summaryrefslogtreecommitdiff
path: root/include/SComponent
diff options
context:
space:
mode:
authorlepelog <lepelog@users.noreply.github.com>2021-01-07 02:04:53 +0100
committerGitHub <noreply@github.com>2021-01-06 20:04:53 -0500
commit0cf65151b3a1a85a5d3ad74a367045e596aee1aa (patch)
tree9ac4f66b24945629766d587a9514ad513b11241c /include/SComponent
parent792509e0a15687b76bee216440ccd3d90554f37e (diff)
Split SComponent (#45)
* split c_math * split c_angle * split c_API_controller_pad * split c_API_graphic * split c_bg_s_chk * c_bg_s_gnd_chk split * more c_bg split * split c_cc_d * delete asm * split c_cc_s * split c_lib * split c_m2d and c_m3d_g_aab * split c_m3d_g_cir * split c_m3d_g_cps * split rest of c_m3d_g * split c_m3d * split c_malloc * split c_request * split c_sxyz * split and partly decompile c_xyz * format * c_angle.h * begin c_angle decomp * c_angle * progress adding stub classes for SComponent * more c_m3d * remove some asm and format * more m3d headers * more c_angle decomp * c_lib headers * add public to classes * fix csXyz member names * c_sxyz partly OK * move Zero csXyz to c_sxyz header * c_API_graphic * delete some unused asm * move math extern data, decompile some functions * delete unused asm * fix duplicated c_angle.h * fix an inlined function name, add more inlined functions for c_angle.h (currently unused) * format Co-authored-by: Pheenoh <pheenoh@gmail.com>
Diffstat (limited to 'include/SComponent')
-rw-r--r--include/SComponent/c_API_graphic.h10
-rw-r--r--include/SComponent/c_angle.h104
-rw-r--r--include/SComponent/c_angle/asm/func_80271030.s13
-rw-r--r--include/SComponent/c_angle/asm/func_80271064.s13
-rw-r--r--include/SComponent/c_angle/asm/func_80271098.s13
-rw-r--r--include/SComponent/c_angle/asm/func_80271264.s20
-rw-r--r--include/SComponent/c_angle/asm/func_802712B4.s16
-rw-r--r--include/SComponent/c_angle/asm/func_80271BD4.s46
-rw-r--r--include/SComponent/c_angle/c_angle.h14
-rw-r--r--include/SComponent/c_bg_s_chk.h14
-rw-r--r--include/SComponent/c_bg_s_chk/asm/func_80267B4C.s9
-rw-r--r--include/SComponent/c_bg_s_chk/asm/func_80267B70.s19
-rw-r--r--include/SComponent/c_bg_s_chk/asm/func_80267BB8.s9
-rw-r--r--include/SComponent/c_bg_s_chk/asm/func_80267BDC.s18
-rw-r--r--include/SComponent/c_bg_s_gnd_chk.h15
-rw-r--r--include/SComponent/c_bg_s_gnd_chk/asm/func_80267C1C.s30
-rw-r--r--include/SComponent/c_bg_s_gnd_chk/asm/func_80267C94.s31
-rw-r--r--include/SComponent/c_bg_s_gnd_chk/asm/func_80267D0C.s7
-rw-r--r--include/SComponent/c_bg_s_gnd_chk/asm/func_80267D28.s7
-rw-r--r--include/SComponent/c_bg_s_gnd_chk/asm/func_80267D44.s4
-rw-r--r--include/SComponent/c_bg_s_gnd_chk/asm/func_80267D54.s2
-rw-r--r--include/SComponent/c_bg_s_lin_chk.h16
-rw-r--r--include/SComponent/c_bg_s_lin_chk/asm/func_80267D5C.s24
-rw-r--r--include/SComponent/c_bg_s_lin_chk/asm/func_80267DBC.s37
-rw-r--r--include/SComponent/c_bg_s_lin_chk/asm/func_80267E48.s34
-rw-r--r--include/SComponent/c_bg_s_lin_chk/asm/func_80267ED0.s28
-rw-r--r--include/SComponent/c_bg_s_lin_chk/asm/func_80267F40.s16
-rw-r--r--include/SComponent/c_bg_s_lin_chk/asm/func_80267F80.s2
-rw-r--r--include/SComponent/c_bg_s_poly_info.h15
-rw-r--r--include/SComponent/c_bg_s_poly_info/asm/func_80268074.s15
-rw-r--r--include/SComponent/c_bg_s_poly_info/asm/func_802680B0.s19
-rw-r--r--include/SComponent/c_bg_s_poly_info/asm/func_802680F8.s12
-rw-r--r--include/SComponent/c_bg_s_poly_info/asm/func_80268120.s10
-rw-r--r--include/SComponent/c_bg_s_poly_info/asm/func_80268148.s9
-rw-r--r--include/SComponent/c_bg_s_poly_info/asm/func_8026816C.s4
-rw-r--r--include/SComponent/c_bg_s_poly_info/asm/func_8026817C.s11
-rw-r--r--include/SComponent/c_bg_s_poly_info/asm/func_802681A4.s2
-rw-r--r--include/SComponent/c_bg_s_poly_info/asm/func_802681AC.s5
-rw-r--r--include/SComponent/c_bg_s_shdw_draw.h20
-rw-r--r--include/SComponent/c_bg_s_shdw_draw/asm/func_80267F88.s18
-rw-r--r--include/SComponent/c_bg_s_shdw_draw/asm/func_80267FD0.s32
-rw-r--r--include/SComponent/c_bg_s_shdw_draw/asm/func_80268048.s9
-rw-r--r--include/SComponent/c_bg_s_shdw_draw/asm/func_8026806C.s2
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263358.s4
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263368.s18
-rw-r--r--include/SComponent/c_cc_d/asm/func_802633A8.s78
-rw-r--r--include/SComponent/c_cc_d/asm/func_802634D4.s126
-rw-r--r--include/SComponent/c_cc_d/asm/func_802636A0.s140
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263894.s2
-rw-r--r--include/SComponent/c_cc_d/asm/func_8026389C.s2
-rw-r--r--include/SComponent/c_cc_d/asm/func_802638A4.s24
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263904.s12
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263934.s10
-rw-r--r--include/SComponent/c_cc_d/asm/func_8026395C.s5
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263970.s5
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263984.s11
-rw-r--r--include/SComponent/c_cc_d/asm/func_802639B0.s5
-rw-r--r--include/SComponent/c_cc_d/asm/func_802639C4.s19
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263A10.s3
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263A1C.s11
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263A48.s8
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263A64.s9
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263A88.s52
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263B58.s14
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263B90.s15
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263BCC.s14
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263C04.s38
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263C9C.s41
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263D38.s20
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263D7C.s20
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263DC0.s20
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263E04.s52
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263ED4.s23
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263F24.s23
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263F74.s23
-rw-r--r--include/SComponent/c_cc_d/asm/func_80263FC4.s20
-rw-r--r--include/SComponent/c_cc_d/asm/func_80264014.s96
-rw-r--r--include/SComponent/c_cc_d/asm/func_8026417C.s22
-rw-r--r--include/SComponent/c_cc_d/asm/func_802641C8.s20
-rw-r--r--include/SComponent/c_cc_d/asm/func_8026420C.s20
-rw-r--r--include/SComponent/c_cc_d/asm/func_80264250.s14
-rw-r--r--include/SComponent/c_cc_d/asm/func_80264288.s20
-rw-r--r--include/SComponent/c_cc_d/asm/func_802642CC.s20
-rw-r--r--include/SComponent/c_cc_d/asm/func_80264310.s25
-rw-r--r--include/SComponent/c_cc_d/asm/func_80264368.s26
-rw-r--r--include/SComponent/c_cc_d/asm/func_802643D0.s63
-rw-r--r--include/SComponent/c_cc_d/asm/func_802644B8.s13
-rw-r--r--include/SComponent/c_cc_d/asm/func_802644EC.s22
-rw-r--r--include/SComponent/c_cc_d/asm/func_80264538.s20
-rw-r--r--include/SComponent/c_cc_d/asm/func_8026457C.s20
-rw-r--r--include/SComponent/c_cc_d/asm/func_802645C0.s14
-rw-r--r--include/SComponent/c_cc_d/asm/func_802645F8.s22
-rw-r--r--include/SComponent/c_cc_d/asm/func_80264644.s20
-rw-r--r--include/SComponent/c_cc_d/asm/func_80264688.s25
-rw-r--r--include/SComponent/c_cc_d/asm/func_802646E0.s35
-rw-r--r--include/SComponent/c_cc_d/asm/func_8026476C.s41
-rw-r--r--include/SComponent/c_cc_d/asm/func_80264808.s13
-rw-r--r--include/SComponent/c_cc_d/asm/func_8026483C.s4
-rw-r--r--include/SComponent/c_cc_d/asm/func_8026484C.s7
-rw-r--r--include/SComponent/c_cc_d/asm/func_80264868.s6
-rw-r--r--include/SComponent/c_cc_d/asm/func_80264880.s5
-rw-r--r--include/SComponent/c_cc_d/asm/func_80264894.s7
-rw-r--r--include/SComponent/c_cc_d/asm/func_802648B0.s6
-rw-r--r--include/SComponent/c_cc_d/asm/func_802648C8.s4
-rw-r--r--include/SComponent/c_cc_d/asm/func_802648D8.s4
-rw-r--r--include/SComponent/c_cc_d/asm/func_802648E8.s6
-rw-r--r--include/SComponent/c_cc_d/asm/func_80264900.s7
-rw-r--r--include/SComponent/c_cc_d/asm/func_8026491C.s7
-rw-r--r--include/SComponent/c_cc_d/asm/func_80264938.s43
-rw-r--r--include/SComponent/c_cc_d/asm/func_802649D8.s2
-rw-r--r--include/SComponent/c_cc_d/asm/func_802649E0.s2
-rw-r--r--include/SComponent/c_cc_d/asm/func_802649E8.s1
-rw-r--r--include/SComponent/c_cc_d/asm/func_802649EC.s3
-rw-r--r--include/SComponent/c_cc_d/asm/func_802649F8.s21
-rw-r--r--include/SComponent/c_cc_d/asm/func_80264A4C.s3
-rw-r--r--include/SComponent/c_cc_d/asm/func_80264A54.s3
-rw-r--r--include/SComponent/c_cc_d/asm/func_80264A5C.s3
-rw-r--r--include/SComponent/c_cc_d/asm/func_80264A64.s3
-rw-r--r--include/SComponent/c_cc_s/asm/func_80264A6C.s10
-rw-r--r--include/SComponent/c_cc_s/asm/func_80264A94.s59
-rw-r--r--include/SComponent/c_cc_s/asm/func_80264B60.s8
-rw-r--r--include/SComponent/c_cc_s/asm/func_80264B80.s11
-rw-r--r--include/SComponent/c_cc_s/asm/func_80264BA8.s48
-rw-r--r--include/SComponent/c_cc_s/asm/func_80264C5C.s40
-rw-r--r--include/SComponent/c_cc_s/asm/func_80264CF0.s43
-rw-r--r--include/SComponent/c_cc_s/asm/func_80264D90.s42
-rw-r--r--include/SComponent/c_cc_s/asm/func_80264E2C.s73
-rw-r--r--include/SComponent/c_cc_s/asm/func_80264F40.s146
-rw-r--r--include/SComponent/c_cc_s/asm/func_8026515C.s57
-rw-r--r--include/SComponent/c_cc_s/asm/func_80265230.s99
-rw-r--r--include/SComponent/c_cc_s/asm/func_802653A0.s10
-rw-r--r--include/SComponent/c_cc_s/asm/func_802653C8.s140
-rw-r--r--include/SComponent/c_cc_s/asm/func_802655E4.s94
-rw-r--r--include/SComponent/c_cc_s/asm/func_80265750.s307
-rw-r--r--include/SComponent/c_cc_s/asm/func_80265BB4.s76
-rw-r--r--include/SComponent/c_cc_s/asm/func_80265CCC.s25
-rw-r--r--include/SComponent/c_cc_s/asm/func_80265D30.s57
-rw-r--r--include/SComponent/c_cc_s/asm/func_80265DF4.s1
-rw-r--r--include/SComponent/c_cc_s/asm/func_80265DF8.s1
-rw-r--r--include/SComponent/c_cc_s/asm/func_80265DFC.s1
-rw-r--r--include/SComponent/c_cc_s/asm/func_80265E00.s2
-rw-r--r--include/SComponent/c_cc_s/asm/func_80265E08.s2
-rw-r--r--include/SComponent/c_cc_s/asm/func_80265E10.s2
-rw-r--r--include/SComponent/c_cc_s/asm/func_80265E18.s1
-rw-r--r--include/SComponent/c_lib.h36
-rw-r--r--include/SComponent/c_lib/asm/func_8026F93C.s8
-rw-r--r--include/SComponent/c_lib/asm/func_8026F95C.s8
-rw-r--r--include/SComponent/c_lib/asm/func_8026F97C.s54
-rw-r--r--include/SComponent/c_lib/asm/func_8026FA3C.s19
-rw-r--r--include/SComponent/c_lib/asm/func_8026FA80.s16
-rw-r--r--include/SComponent/c_lib/asm/func_8026FAB8.s230
-rw-r--r--include/SComponent/c_lib/asm/func_8026FDF4.s249
-rw-r--r--include/SComponent/c_lib/asm/func_80270178.s129
-rw-r--r--include/SComponent/c_lib/asm/func_80270350.s136
-rw-r--r--include/SComponent/c_lib/asm/func_80270540.s56
-rw-r--r--include/SComponent/c_lib/asm/func_80270608.s23
-rw-r--r--include/SComponent/c_lib/asm/func_8027065C.s33
-rw-r--r--include/SComponent/c_lib/asm/func_802706D0.s31
-rw-r--r--include/SComponent/c_lib/asm/func_80270740.s30
-rw-r--r--include/SComponent/c_lib/asm/func_802707AC.s135
-rw-r--r--include/SComponent/c_lib/asm/func_80270990.s142
-rw-r--r--include/SComponent/c_lib/asm/func_80270B90.s32
-rw-r--r--include/SComponent/c_lib/asm/func_80270C04.s14
-rw-r--r--include/SComponent/c_lib/asm/func_80270C3C.s14
-rw-r--r--include/SComponent/c_lib/asm/func_80270C74.s93
-rw-r--r--include/SComponent/c_lib/asm/func_80270DC0.s25
-rw-r--r--include/SComponent/c_lib/asm/func_80270E24.s10
-rw-r--r--include/SComponent/c_lib/asm/func_80270E4C.s4
-rw-r--r--include/SComponent/c_lib/asm/func_80270E5C.s20
-rw-r--r--include/SComponent/c_lib/asm/func_80270EA4.s20
-rw-r--r--include/SComponent/c_lib/asm/func_80270EEC.s12
-rw-r--r--include/SComponent/c_lib/asm/func_80270F1C.s15
-rw-r--r--include/SComponent/c_lib/asm/func_80270F58.s4
-rw-r--r--include/SComponent/c_m2d.h10
-rw-r--r--include/SComponent/c_m2d/asm/func_80268260.s218
-rw-r--r--include/SComponent/c_m3d.h82
-rw-r--r--include/SComponent/c_m3d/asm/func_80268560.s20
-rw-r--r--include/SComponent/c_m3d/asm/func_802685B0.s25
-rw-r--r--include/SComponent/c_m3d/asm/func_80268614.s6
-rw-r--r--include/SComponent/c_m3d/asm/func_8026862C.s60
-rw-r--r--include/SComponent/c_m3d/asm/func_80268710.s70
-rw-r--r--include/SComponent/c_m3d/asm/func_80268814.s34
-rw-r--r--include/SComponent/c_m3d/asm/func_80268894.s8
-rw-r--r--include/SComponent/c_m3d/asm/func_802688B4.s26
-rw-r--r--include/SComponent/c_m3d/asm/func_8026891C.s53
-rw-r--r--include/SComponent/c_m3d/asm/func_802689E8.s89
-rw-r--r--include/SComponent/c_m3d/asm/func_80268B0C.s47
-rw-r--r--include/SComponent/c_m3d/asm/func_80268BB4.s47
-rw-r--r--include/SComponent/c_m3d/asm/func_80268C5C.s168
-rw-r--r--include/SComponent/c_m3d/asm/func_80268ED4.s26
-rw-r--r--include/SComponent/c_m3d/asm/func_80268F34.s75
-rw-r--r--include/SComponent/c_m3d/asm/func_80269050.s834
-rw-r--r--include/SComponent/c_m3d/asm/func_80269C2C.s96
-rw-r--r--include/SComponent/c_m3d/asm/func_80269D64.s57
-rw-r--r--include/SComponent/c_m3d/asm/func_80269E18.s110
-rw-r--r--include/SComponent/c_m3d/asm/func_80269FBC.s110
-rw-r--r--include/SComponent/c_m3d/asm/func_8026A160.s101
-rw-r--r--include/SComponent/c_m3d/asm/func_8026A2E4.s110
-rw-r--r--include/SComponent/c_m3d/asm/func_8026A488.s101
-rw-r--r--include/SComponent/c_m3d/asm/func_8026A60C.s112
-rw-r--r--include/SComponent/c_m3d/asm/func_8026A7B8.s69
-rw-r--r--include/SComponent/c_m3d/asm/func_8026A8C0.s35
-rw-r--r--include/SComponent/c_m3d/asm/func_8026A944.s110
-rw-r--r--include/SComponent/c_m3d/asm/func_8026AAE8.s65
-rw-r--r--include/SComponent/c_m3d/asm/func_8026ABD8.s110
-rw-r--r--include/SComponent/c_m3d/asm/func_8026AD7C.s110
-rw-r--r--include/SComponent/c_m3d/asm/func_8026AF20.s101
-rw-r--r--include/SComponent/c_m3d/asm/func_8026B0A4.s60
-rw-r--r--include/SComponent/c_m3d/asm/func_8026B17C.s52
-rw-r--r--include/SComponent/c_m3d/asm/func_8026B238.s18
-rw-r--r--include/SComponent/c_m3d/asm/func_8026B280.s166
-rw-r--r--include/SComponent/c_m3d/asm/func_8026B4E8.s265
-rw-r--r--include/SComponent/c_m3d/asm/func_8026B8A4.s117
-rw-r--r--include/SComponent/c_m3d/asm/func_8026BA48.s156
-rw-r--r--include/SComponent/c_m3d/asm/func_8026BC7C.s34
-rw-r--r--include/SComponent/c_m3d/asm/func_8026BCFC.s37
-rw-r--r--include/SComponent/c_m3d/asm/func_8026BD88.s57
-rw-r--r--include/SComponent/c_m3d/asm/func_8026BE5C.s44
-rw-r--r--include/SComponent/c_m3d/asm/func_8026BF04.s217
-rw-r--r--include/SComponent/c_m3d/asm/func_8026C22C.s112
-rw-r--r--include/SComponent/c_m3d/asm/func_8026C3B4.s153
-rw-r--r--include/SComponent/c_m3d/asm/func_8026C5D0.s241
-rw-r--r--include/SComponent/c_m3d/asm/func_8026C944.s492
-rw-r--r--include/SComponent/c_m3d/asm/func_8026D044.s27
-rw-r--r--include/SComponent/c_m3d/asm/func_8026D0B0.s26
-rw-r--r--include/SComponent/c_m3d/asm/func_8026D114.s190
-rw-r--r--include/SComponent/c_m3d/asm/func_8026D3D4.s481
-rw-r--r--include/SComponent/c_m3d/asm/func_8026DAE0.s92
-rw-r--r--include/SComponent/c_m3d/asm/func_8026DC3C.s137
-rw-r--r--include/SComponent/c_m3d/asm/func_8026DE2C.s205
-rw-r--r--include/SComponent/c_m3d/asm/func_8026E12C.s252
-rw-r--r--include/SComponent/c_m3d/asm/func_8026E4FC.s29
-rw-r--r--include/SComponent/c_m3d/asm/func_8026E570.s94
-rw-r--r--include/SComponent/c_m3d/asm/func_8026E6C4.s11
-rw-r--r--include/SComponent/c_m3d/asm/func_8026E6F0.s114
-rw-r--r--include/SComponent/c_m3d/asm/func_8026E8A0.s59
-rw-r--r--include/SComponent/c_m3d/asm/func_8026E980.s57
-rw-r--r--include/SComponent/c_m3d/asm/func_8026EA5C.s57
-rw-r--r--include/SComponent/c_m3d/asm/func_8026EB38.s35
-rw-r--r--include/SComponent/c_m3d/asm/func_8026EBBC.s32
-rw-r--r--include/SComponent/c_m3d/asm/func_8026EC3C.s6
-rw-r--r--include/SComponent/c_m3d_g_aab.h22
-rw-r--r--include/SComponent/c_m3d_g_aab/asm/func_8026EC54.s13
-rw-r--r--include/SComponent/c_m3d_g_aab/asm/func_8026EC88.s20
-rw-r--r--include/SComponent/c_m3d_g_aab/asm/func_8026ECD0.s5
-rw-r--r--include/SComponent/c_m3d_g_aab/asm/func_8026ECE4.s5
-rw-r--r--include/SComponent/c_m3d_g_aab/asm/func_8026ECF8.s9
-rw-r--r--include/SComponent/c_m3d_g_aab/asm/func_8026ED1C.s17
-rw-r--r--include/SComponent/c_m3d_g_aab/asm/func_8026ED60.s17
-rw-r--r--include/SComponent/c_m3d_g_aab/asm/func_8026EDA4.s18
-rw-r--r--include/SComponent/c_m3d_g_aab/asm/func_8026EDE4.s18
-rw-r--r--include/SComponent/c_m3d_g_aab/asm/func_8026EE24.s17
-rw-r--r--include/SComponent/c_m3d_g_aab/asm/func_8026EE68.s19
-rw-r--r--include/SComponent/c_m3d_g_cir.h13
-rw-r--r--include/SComponent/c_m3d_g_cir/asm/func_8026EEB4.s7
-rw-r--r--include/SComponent/c_m3d_g_cir/asm/func_8026EED0.s19
-rw-r--r--include/SComponent/c_m3d_g_cir/asm/func_8026EF18.s25
-rw-r--r--include/SComponent/c_m3d_g_cir/asm/func_8026EF74.s5
-rw-r--r--include/SComponent/c_m3d_g_cps.h18
-rw-r--r--include/SComponent/c_m3d_g_cps/asm/func_8026EF88.s7
-rw-r--r--include/SComponent/c_m3d_g_cps/asm/func_8026EFA4.s25
-rw-r--r--include/SComponent/c_m3d_g_cps/asm/func_8026F000.s15
-rw-r--r--include/SComponent/c_m3d_g_cps/asm/func_8026F03C.s17
-rw-r--r--include/SComponent/c_m3d_g_cps/asm/func_8026F080.s10
-rw-r--r--include/SComponent/c_m3d_g_cyl.h23
-rw-r--r--include/SComponent/c_m3d_g_cyl/asm/func_8026F0A8.s27
-rw-r--r--include/SComponent/c_m3d_g_cyl/asm/func_8026F114.s27
-rw-r--r--include/SComponent/c_m3d_g_cyl/asm/func_8026F180.s23
-rw-r--r--include/SComponent/c_m3d_g_cyl/asm/func_8026F1DC.s7
-rw-r--r--include/SComponent/c_m3d_g_cyl/asm/func_8026F1F8.s2
-rw-r--r--include/SComponent/c_m3d_g_cyl/asm/func_8026F200.s2
-rw-r--r--include/SComponent/c_m3d_g_cyl/asm/func_8026F208.s9
-rw-r--r--include/SComponent/c_m3d_g_cyl/asm/func_8026F22C.s8
-rw-r--r--include/SComponent/c_m3d_g_cyl/asm/func_8026F24C.s23
-rw-r--r--include/SComponent/c_m3d_g_lin.h16
-rw-r--r--include/SComponent/c_m3d_g_lin/asm/func_8026F2A8.s16
-rw-r--r--include/SComponent/c_m3d_g_lin/asm/func_8026F2E8.s13
-rw-r--r--include/SComponent/c_m3d_g_lin/asm/func_8026F31C.s13
-rw-r--r--include/SComponent/c_m3d_g_lin/asm/func_8026F350.s28
-rw-r--r--include/SComponent/c_m3d_g_lin/asm/func_8026F3C0.s7
-rw-r--r--include/SComponent/c_m3d_g_pla.h18
-rw-r--r--include/SComponent/c_m3d_g_pla/asm/func_8026F3DC.s11
-rw-r--r--include/SComponent/c_m3d_g_pla/asm/func_8026F408.s49
-rw-r--r--include/SComponent/c_m3d_g_pla/asm/func_8026F4C4.s26
-rw-r--r--include/SComponent/c_m3d_g_pla/asm/func_8026F52C.s20
-rw-r--r--include/SComponent/c_m3d_g_pla/asm/func_8026F57C.s23
-rw-r--r--include/SComponent/c_m3d_g_pla/asm/func_8026F5D4.s21
-rw-r--r--include/SComponent/c_m3d_g_pla/asm/func_8026F624.s9
-rw-r--r--include/SComponent/c_m3d_g_sph.h21
-rw-r--r--include/SComponent/c_m3d_g_sph/asm/func_8026F648.s7
-rw-r--r--include/SComponent/c_m3d_g_sph/asm/func_8026F664.s17
-rw-r--r--include/SComponent/c_m3d_g_sph/asm/func_8026F6A8.s24
-rw-r--r--include/SComponent/c_m3d_g_sph/asm/func_8026F708.s2
-rw-r--r--include/SComponent/c_m3d_g_sph/asm/func_8026F710.s11
-rw-r--r--include/SComponent/c_m3d_g_sph/asm/func_8026F73C.s12
-rw-r--r--include/SComponent/c_m3d_g_sph/asm/func_8026F76C.s17
-rw-r--r--include/SComponent/c_m3d_g_tri.h17
-rw-r--r--include/SComponent/c_m3d_g_tri/asm/func_8026F7B0.s11
-rw-r--r--include/SComponent/c_m3d_g_tri/asm/func_8026F7DC.s32
-rw-r--r--include/SComponent/c_m3d_g_tri/asm/func_8026F85C.s27
-rw-r--r--include/SComponent/c_m3d_g_tri/asm/func_8026F8C8.s29
-rw-r--r--include/SComponent/c_malloc.h15
-rw-r--r--include/SComponent/c_math.h19
-rw-r--r--include/SComponent/c_math/asm/func_802675E4.s25
-rw-r--r--include/SComponent/c_math/asm/func_80267674.s116
-rw-r--r--include/SComponent/c_math/asm/func_80267814.s18
-rw-r--r--include/SComponent/c_math/asm/func_8026786C.s58
-rw-r--r--include/SComponent/c_math/asm/func_802679E4.s58
-rw-r--r--include/SComponent/c_request.h14
-rw-r--r--include/SComponent/c_request/asm/func_802667D4.s12
-rw-r--r--include/SComponent/c_request/asm/func_80266800.s12
-rw-r--r--include/SComponent/c_request/asm/func_80266830.s8
-rw-r--r--include/SComponent/c_request/asm/func_80266850.s12
-rw-r--r--include/SComponent/c_sxyz.h20
-rw-r--r--include/SComponent/c_sxyz/asm/func_802674E8.s41
-rw-r--r--include/SComponent/c_sxyz/asm/func_8026758C.s24
-rw-r--r--include/SComponent/c_xyz.h66
-rw-r--r--include/SComponent/c_xyz/asm/func_80266DC4.s78
-rw-r--r--include/SComponent/c_xyz/asm/func_80267128.s10
-rw-r--r--include/SComponent/c_xyz/asm/func_80267150.s90
-rw-r--r--include/SComponent/c_xyz/asm/func_80267290.s89
321 files changed, 14470 insertions, 16 deletions
diff --git a/include/SComponent/c_API_graphic.h b/include/SComponent/c_API_graphic.h
new file mode 100644
index 0000000000..addd8ce849
--- /dev/null
+++ b/include/SComponent/c_API_graphic.h
@@ -0,0 +1,10 @@
+#ifndef __C_API_GRAPHIC_H_
+#define __C_API_GRAPHIC_H_
+
+#include "global.h"
+
+void cAPIGph_Painter(void);
+void cAPIGph_BeforeOfDraw(void);
+void cAPIGph_AfterOfDraw(void);
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_angle.h b/include/SComponent/c_angle.h
new file mode 100644
index 0000000000..09a99e0388
--- /dev/null
+++ b/include/SComponent/c_angle.h
@@ -0,0 +1,104 @@
+#ifndef __C_ANGLE_H_
+#define __C_ANGLE_H_
+
+#include "SComponent/c_xyz.h"
+#include "global.h"
+
+class cSAngle {
+private:
+ s16 mAngle;
+
+public:
+ cSAngle() {}
+ cSAngle(const cSAngle&);
+ cSAngle(s16);
+ cSAngle(float);
+ s16 Val() const { return this->mAngle; }
+ // void Set(s16 angle) { this->mAngle = angle; }
+ void Val(const cSAngle&);
+ void Val(s16);
+ void Val(float);
+ float Degree(void) const;
+ float Radian(void) const;
+ float Norm(void) const;
+ s16 Abs(void) const;
+ s16 Inv(void) const;
+ float Sin(void) const;
+ float Cos(void) const;
+ cSAngle operator-(void) const;
+ cSAngle operator+(const cSAngle&) const;
+ cSAngle operator-(const cSAngle&) const;
+ void operator+=(const cSAngle&);
+ void operator-=(const cSAngle&);
+ cSAngle operator+(short) const;
+ cSAngle operator-(short) const;
+ void operator+=(short);
+ cSAngle operator*(float) const;
+ void operator*=(float);
+ bool operator<(const cSAngle& other) const { return mAngle < other.mAngle; }
+ bool operator>(const cSAngle& other) const { return mAngle > other.mAngle; }
+ operator s16(void) const { return mAngle; }
+ void operator=(const cSAngle& other) { mAngle = other.mAngle; }
+ static cSAngle getMaxNegative(void) { return cSAngle((s16)-0x8000); }
+ void mirrorAtMaxNeg(void) { *this = getMaxNegative() - *this; }
+};
+
+cSAngle operator+(short, const cSAngle&);
+cSAngle operator-(short, const cSAngle&);
+
+class cDegree {
+private:
+ float mDegree;
+
+public:
+ cDegree(float);
+ cDegree& Formal(void);
+ void Val(float);
+ float Radian(void) const;
+ float Sin(void) const;
+ float Cos(void) const;
+ float Tan(void) const;
+};
+
+class cSPolar {
+private:
+ float mRadial;
+ cSAngle mAngle1;
+ cSAngle mAngle2;
+
+public:
+ cSPolar() {}
+ cSPolar(const cXyz&);
+ cSPolar& Formal(void);
+ void Val(float, short, short);
+ void Val(const cXyz&);
+ cXyz Xyz(void) const;
+ void Globe(class cSGlobe*) const;
+};
+
+class cSGlobe {
+private:
+ float mRadius;
+ cSAngle mAzimuth; // original: V
+ cSAngle mInclination; // original: U
+
+public:
+ cSGlobe(const cSGlobe&);
+ cSGlobe(float, short, short);
+ cSGlobe(float, const cSAngle&, const cSAngle&);
+ cSGlobe(const cXyz&);
+ cSGlobe& Formal(void);
+ void Val(const cSGlobe&);
+ void Val(float, short, short);
+ void Val(float, const cSAngle&, const cSAngle&);
+ void Val(const cXyz&);
+ float R(void) const { return mRadius; }
+ const cSAngle& V(void) const { return mAzimuth; }
+ const cSAngle& U(void) const { return mInclination; }
+ cXyz Xyz(void) const;
+ void Polar(cSPolar*) const;
+ cXyz Norm(void) const;
+ cSGlobe& Invert(void);
+};
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_angle/asm/func_80271030.s b/include/SComponent/c_angle/asm/func_80271030.s
new file mode 100644
index 0000000000..f58388a4e9
--- /dev/null
+++ b/include/SComponent/c_angle/asm/func_80271030.s
@@ -0,0 +1,13 @@
+/* 80271030 0026DF70 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80271034 0026DF74 C0 42 B8 0C */ lfs f2, lbl_8045520C-_SDA2_BASE_(r2)
+/* 80271038 0026DF78 A8 03 00 00 */ lha r0, 0(r3)
+/* 8027103C 0026DF7C C8 22 B8 10 */ lfd f1, lbl_80455210-_SDA2_BASE_(r2)
+/* 80271040 0026DF80 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 80271044 0026DF84 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80271048 0026DF88 3C 00 43 30 */ lis r0, 0x4330
+/* 8027104C 0026DF8C 90 01 00 08 */ stw r0, 8(r1)
+/* 80271050 0026DF90 C8 01 00 08 */ lfd f0, 8(r1)
+/* 80271054 0026DF94 EC 00 08 28 */ fsubs f0, f0, f1
+/* 80271058 0026DF98 EC 22 00 32 */ fmuls f1, f2, f0
+/* 8027105C 0026DF9C 38 21 00 10 */ addi r1, r1, 0x10
+/* 80271060 0026DFA0 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_angle/asm/func_80271064.s b/include/SComponent/c_angle/asm/func_80271064.s
new file mode 100644
index 0000000000..23d5cd7be1
--- /dev/null
+++ b/include/SComponent/c_angle/asm/func_80271064.s
@@ -0,0 +1,13 @@
+/* 80271064 0026DFA4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80271068 0026DFA8 C0 42 B8 18 */ lfs f2, lbl_80455218-_SDA2_BASE_(r2)
+/* 8027106C 0026DFAC A8 03 00 00 */ lha r0, 0(r3)
+/* 80271070 0026DFB0 C8 22 B8 10 */ lfd f1, lbl_80455210-_SDA2_BASE_(r2)
+/* 80271074 0026DFB4 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 80271078 0026DFB8 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8027107C 0026DFBC 3C 00 43 30 */ lis r0, 0x4330
+/* 80271080 0026DFC0 90 01 00 08 */ stw r0, 8(r1)
+/* 80271084 0026DFC4 C8 01 00 08 */ lfd f0, 8(r1)
+/* 80271088 0026DFC8 EC 00 08 28 */ fsubs f0, f0, f1
+/* 8027108C 0026DFCC EC 22 00 32 */ fmuls f1, f2, f0
+/* 80271090 0026DFD0 38 21 00 10 */ addi r1, r1, 0x10
+/* 80271094 0026DFD4 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_angle/asm/func_80271098.s b/include/SComponent/c_angle/asm/func_80271098.s
new file mode 100644
index 0000000000..53387be03f
--- /dev/null
+++ b/include/SComponent/c_angle/asm/func_80271098.s
@@ -0,0 +1,13 @@
+/* 80271098 0026DFD8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8027109C 0026DFDC C0 42 B8 1C */ lfs f2, lbl_8045521C-_SDA2_BASE_(r2)
+/* 802710A0 0026DFE0 A8 03 00 00 */ lha r0, 0(r3)
+/* 802710A4 0026DFE4 C8 22 B8 10 */ lfd f1, lbl_80455210-_SDA2_BASE_(r2)
+/* 802710A8 0026DFE8 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 802710AC 0026DFEC 90 01 00 0C */ stw r0, 0xc(r1)
+/* 802710B0 0026DFF0 3C 00 43 30 */ lis r0, 0x4330
+/* 802710B4 0026DFF4 90 01 00 08 */ stw r0, 8(r1)
+/* 802710B8 0026DFF8 C8 01 00 08 */ lfd f0, 8(r1)
+/* 802710BC 0026DFFC EC 00 08 28 */ fsubs f0, f0, f1
+/* 802710C0 0026E000 EC 22 00 32 */ fmuls f1, f2, f0
+/* 802710C4 0026E004 38 21 00 10 */ addi r1, r1, 0x10
+/* 802710C8 0026E008 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_angle/asm/func_80271264.s b/include/SComponent/c_angle/asm/func_80271264.s
new file mode 100644
index 0000000000..0eb4364e6a
--- /dev/null
+++ b/include/SComponent/c_angle/asm/func_80271264.s
@@ -0,0 +1,20 @@
+/* 80271264 0026E1A4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80271268 0026E1A8 7C 08 02 A6 */ mflr r0
+/* 8027126C 0026E1AC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80271270 0026E1B0 A8 04 00 00 */ lha r0, 0(r4)
+/* 80271274 0026E1B4 C8 42 B8 10 */ lfd f2, lbl_80455210-_SDA2_BASE_(r2)
+/* 80271278 0026E1B8 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 8027127C 0026E1BC 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80271280 0026E1C0 3C 00 43 30 */ lis r0, 0x4330
+/* 80271284 0026E1C4 90 01 00 08 */ stw r0, 8(r1)
+/* 80271288 0026E1C8 C8 01 00 08 */ lfd f0, 8(r1)
+/* 8027128C 0026E1CC EC 00 10 28 */ fsubs f0, f0, f2
+/* 80271290 0026E1D0 EC 00 00 72 */ fmuls f0, f0, f1
+/* 80271294 0026E1D4 FC 00 00 1E */ fctiwz f0, f0
+/* 80271298 0026E1D8 D8 01 00 10 */ stfd f0, 0x10(r1)
+/* 8027129C 0026E1DC 80 81 00 14 */ lwz r4, 0x14(r1)
+/* 802712A0 0026E1E0 4B FF FC F9 */ bl __ct__7cSAngleFs
+/* 802712A4 0026E1E4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802712A8 0026E1E8 7C 08 03 A6 */ mtlr r0
+/* 802712AC 0026E1EC 38 21 00 20 */ addi r1, r1, 0x20
+/* 802712B0 0026E1F0 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_angle/asm/func_802712B4.s b/include/SComponent/c_angle/asm/func_802712B4.s
new file mode 100644
index 0000000000..3c8d99d7bd
--- /dev/null
+++ b/include/SComponent/c_angle/asm/func_802712B4.s
@@ -0,0 +1,16 @@
+/* 802712B4 0026E1F4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802712B8 0026E1F8 A8 03 00 00 */ lha r0, 0(r3)
+/* 802712BC 0026E1FC C8 42 B8 10 */ lfd f2, lbl_80455210-_SDA2_BASE_(r2)
+/* 802712C0 0026E200 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 802712C4 0026E204 90 01 00 0C */ stw r0, 0xc(r1)
+/* 802712C8 0026E208 3C 00 43 30 */ lis r0, 0x4330
+/* 802712CC 0026E20C 90 01 00 08 */ stw r0, 8(r1)
+/* 802712D0 0026E210 C8 01 00 08 */ lfd f0, 8(r1)
+/* 802712D4 0026E214 EC 00 10 28 */ fsubs f0, f0, f2
+/* 802712D8 0026E218 EC 00 00 72 */ fmuls f0, f0, f1
+/* 802712DC 0026E21C FC 00 00 1E */ fctiwz f0, f0
+/* 802712E0 0026E220 D8 01 00 10 */ stfd f0, 0x10(r1)
+/* 802712E4 0026E224 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802712E8 0026E228 B0 03 00 00 */ sth r0, 0(r3)
+/* 802712EC 0026E22C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802712F0 0026E230 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_angle/asm/func_80271BD4.s b/include/SComponent/c_angle/asm/func_80271BD4.s
new file mode 100644
index 0000000000..e0936cdf5d
--- /dev/null
+++ b/include/SComponent/c_angle/asm/func_80271BD4.s
@@ -0,0 +1,46 @@
+/* 80271BD4 0026EB14 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80271BD8 0026EB18 7C 08 02 A6 */ mflr r0
+/* 80271BDC 0026EB1C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80271BE0 0026EB20 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80271BE4 0026EB24 3C 60 80 43 */ lis r3, lbl_80430F98@ha
+/* 80271BE8 0026EB28 3B E3 0F 98 */ addi r31, r3, lbl_80430F98@l
+/* 80271BEC 0026EB2C 38 6D 8C 08 */ addi r3, r13, 0x80451188 - 0x80458580 /*SDA HACK; original: lbl_80451188-_SDA_BASE_*/
+/* 80271BF0 0026EB30 38 80 00 00 */ li r4, 0
+/* 80271BF4 0026EB34 4B FF F3 A5 */ bl __ct__7cSAngleFs
+/* 80271BF8 0026EB38 3C 80 80 03 */ lis r4, cSAngle_NS_dtor@ha
+/* 80271BFC 0026EB3C 38 84 05 10 */ addi r4, r4, cSAngle_NS_dtor@l
+/* 80271C00 0026EB40 38 BF 00 00 */ addi r5, r31, 0
+/* 80271C04 0026EB44 48 0F 00 21 */ bl func_80361C24
+/* 80271C08 0026EB48 38 6D 8C 0C */ addi r3, r13, 0x8045118C - 0x80458580 /*SDA HACK; original: lbl_8045118C-_SDA_BASE_*/
+/* 80271C0C 0026EB4C 38 80 00 B6 */ li r4, 0xb6
+/* 80271C10 0026EB50 4B FF F3 89 */ bl __ct__7cSAngleFs
+/* 80271C14 0026EB54 3C 80 80 03 */ lis r4, cSAngle_NS_dtor@ha
+/* 80271C18 0026EB58 38 84 05 10 */ addi r4, r4, cSAngle_NS_dtor@l
+/* 80271C1C 0026EB5C 38 BF 00 0C */ addi r5, r31, 0xc
+/* 80271C20 0026EB60 48 0F 00 05 */ bl func_80361C24
+/* 80271C24 0026EB64 38 6D 8C 10 */ addi r3, r13, 0x80451190 - 0x80458580 /*SDA HACK; original: lbl_80451190-_SDA_BASE_*/
+/* 80271C28 0026EB68 38 80 40 00 */ li r4, 0x4000
+/* 80271C2C 0026EB6C 4B FF F3 6D */ bl __ct__7cSAngleFs
+/* 80271C30 0026EB70 3C 80 80 03 */ lis r4, cSAngle_NS_dtor@ha
+/* 80271C34 0026EB74 38 84 05 10 */ addi r4, r4, cSAngle_NS_dtor@l
+/* 80271C38 0026EB78 38 BF 00 18 */ addi r5, r31, 0x18
+/* 80271C3C 0026EB7C 48 0E FF E9 */ bl func_80361C24
+/* 80271C40 0026EB80 38 6D 8C 14 */ addi r3, r13, 0x80451194 - 0x80458580 /*SDA HACK; original: lbl_80451194-_SDA_BASE_*/
+/* 80271C44 0026EB84 38 80 80 00 */ li r4, -32768
+/* 80271C48 0026EB88 4B FF F3 51 */ bl __ct__7cSAngleFs
+/* 80271C4C 0026EB8C 3C 80 80 03 */ lis r4, cSAngle_NS_dtor@ha
+/* 80271C50 0026EB90 38 84 05 10 */ addi r4, r4, cSAngle_NS_dtor@l
+/* 80271C54 0026EB94 38 BF 00 24 */ addi r5, r31, 0x24
+/* 80271C58 0026EB98 48 0E FF CD */ bl func_80361C24
+/* 80271C5C 0026EB9C 38 6D 8C 18 */ addi r3, r13, 0x80451198 - 0x80458580 /*SDA HACK; original: lbl_80451198-_SDA_BASE_*/
+/* 80271C60 0026EBA0 38 80 C0 00 */ li r4, -16384
+/* 80271C64 0026EBA4 4B FF F3 35 */ bl __ct__7cSAngleFs
+/* 80271C68 0026EBA8 3C 80 80 03 */ lis r4, cSAngle_NS_dtor@ha
+/* 80271C6C 0026EBAC 38 84 05 10 */ addi r4, r4, cSAngle_NS_dtor@l
+/* 80271C70 0026EBB0 38 BF 00 30 */ addi r5, r31, 0x30
+/* 80271C74 0026EBB4 48 0E FF B1 */ bl func_80361C24
+/* 80271C78 0026EBB8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80271C7C 0026EBBC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80271C80 0026EBC0 7C 08 03 A6 */ mtlr r0
+/* 80271C84 0026EBC4 38 21 00 10 */ addi r1, r1, 0x10
+/* 80271C88 0026EBC8 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_angle/c_angle.h b/include/SComponent/c_angle/c_angle.h
deleted file mode 100644
index c73747ca47..0000000000
--- a/include/SComponent/c_angle/c_angle.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef __C_ANGLE_H_
-#define __C_ANGLE_H_
-
-#include "global.h"
-
-class cSAngle {
-public:
- cSAngle();
-
-private:
- s16 value;
-};
-
-#endif \ No newline at end of file
diff --git a/include/SComponent/c_bg_s_chk.h b/include/SComponent/c_bg_s_chk.h
new file mode 100644
index 0000000000..0d6016e4f0
--- /dev/null
+++ b/include/SComponent/c_bg_s_chk.h
@@ -0,0 +1,14 @@
+#ifndef __C_BG_S_CHK_H_
+#define __C_BG_S_CHK_H_
+
+#include "global.h"
+
+class cBgS_Chk {
+public:
+ cBgS_Chk(void);
+ ~cBgS_Chk(void);
+ void SetExtChk(cBgS_Chk&);
+ bool ChkSameActorPid(unsigned int) const;
+};
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_bg_s_chk/asm/func_80267B4C.s b/include/SComponent/c_bg_s_chk/asm/func_80267B4C.s
new file mode 100644
index 0000000000..f6368d6fdb
--- /dev/null
+++ b/include/SComponent/c_bg_s_chk/asm/func_80267B4C.s
@@ -0,0 +1,9 @@
+/* 80267B4C 00264A8C 3C 80 80 3C */ lis r4, lbl_803C3F80@ha
+/* 80267B50 00264A90 38 04 3F 80 */ addi r0, r4, lbl_803C3F80@l
+/* 80267B54 00264A94 90 03 00 10 */ stw r0, 0x10(r3)
+/* 80267B58 00264A98 38 00 00 00 */ li r0, 0
+/* 80267B5C 00264A9C 90 03 00 00 */ stw r0, 0(r3)
+/* 80267B60 00264AA0 90 03 00 04 */ stw r0, 4(r3)
+/* 80267B64 00264AA4 38 00 00 01 */ li r0, 1
+/* 80267B68 00264AA8 98 03 00 0C */ stb r0, 0xc(r3)
+/* 80267B6C 00264AAC 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_bg_s_chk/asm/func_80267B70.s b/include/SComponent/c_bg_s_chk/asm/func_80267B70.s
new file mode 100644
index 0000000000..eb0cabb579
--- /dev/null
+++ b/include/SComponent/c_bg_s_chk/asm/func_80267B70.s
@@ -0,0 +1,19 @@
+/* 80267B70 00264AB0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80267B74 00264AB4 7C 08 02 A6 */ mflr r0
+/* 80267B78 00264AB8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80267B7C 00264ABC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80267B80 00264AC0 7C 7F 1B 79 */ or. r31, r3, r3
+/* 80267B84 00264AC4 41 82 00 1C */ beq lbl_80267BA0
+/* 80267B88 00264AC8 3C A0 80 3C */ lis r5, lbl_803C3F80@ha
+/* 80267B8C 00264ACC 38 05 3F 80 */ addi r0, r5, lbl_803C3F80@l
+/* 80267B90 00264AD0 90 1F 00 10 */ stw r0, 0x10(r31)
+/* 80267B94 00264AD4 7C 80 07 35 */ extsh. r0, r4
+/* 80267B98 00264AD8 40 81 00 08 */ ble lbl_80267BA0
+/* 80267B9C 00264ADC 48 06 71 A1 */ bl __dl__FPv
+lbl_80267BA0:
+/* 80267BA0 00264AE0 7F E3 FB 78 */ mr r3, r31
+/* 80267BA4 00264AE4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80267BA8 00264AE8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80267BAC 00264AEC 7C 08 03 A6 */ mtlr r0
+/* 80267BB0 00264AF0 38 21 00 10 */ addi r1, r1, 0x10
+/* 80267BB4 00264AF4 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_bg_s_chk/asm/func_80267BB8.s b/include/SComponent/c_bg_s_chk/asm/func_80267BB8.s
new file mode 100644
index 0000000000..95613597cd
--- /dev/null
+++ b/include/SComponent/c_bg_s_chk/asm/func_80267BB8.s
@@ -0,0 +1,9 @@
+/* 80267BB8 00264AF8 80 04 00 00 */ lwz r0, 0(r4)
+/* 80267BBC 00264AFC 90 03 00 00 */ stw r0, 0(r3)
+/* 80267BC0 00264B00 80 04 00 04 */ lwz r0, 4(r4)
+/* 80267BC4 00264B04 90 03 00 04 */ stw r0, 4(r3)
+/* 80267BC8 00264B08 80 04 00 08 */ lwz r0, 8(r4)
+/* 80267BCC 00264B0C 90 03 00 08 */ stw r0, 8(r3)
+/* 80267BD0 00264B10 88 04 00 0C */ lbz r0, 0xc(r4)
+/* 80267BD4 00264B14 98 03 00 0C */ stb r0, 0xc(r3)
+/* 80267BD8 00264B18 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_bg_s_chk/asm/func_80267BDC.s b/include/SComponent/c_bg_s_chk/asm/func_80267BDC.s
new file mode 100644
index 0000000000..46b6af51d2
--- /dev/null
+++ b/include/SComponent/c_bg_s_chk/asm/func_80267BDC.s
@@ -0,0 +1,18 @@
+/* 80267BDC 00264B1C 80 A3 00 08 */ lwz r5, 8(r3)
+/* 80267BE0 00264B20 3C 05 00 01 */ addis r0, r5, 1
+/* 80267BE4 00264B24 28 00 FF FF */ cmplwi r0, 0xffff
+/* 80267BE8 00264B28 41 82 00 1C */ beq lbl_80267C04
+/* 80267BEC 00264B2C 3C 04 00 01 */ addis r0, r4, 1
+/* 80267BF0 00264B30 28 00 FF FF */ cmplwi r0, 0xffff
+/* 80267BF4 00264B34 41 82 00 10 */ beq lbl_80267C04
+/* 80267BF8 00264B38 88 03 00 0C */ lbz r0, 0xc(r3)
+/* 80267BFC 00264B3C 28 00 00 00 */ cmplwi r0, 0
+/* 80267C00 00264B40 40 82 00 0C */ bne lbl_80267C0C
+lbl_80267C04:
+/* 80267C04 00264B44 38 60 00 00 */ li r3, 0
+/* 80267C08 00264B48 4E 80 00 20 */ blr
+lbl_80267C0C:
+/* 80267C0C 00264B4C 7C 05 20 50 */ subf r0, r5, r4
+/* 80267C10 00264B50 7C 00 00 34 */ cntlzw r0, r0
+/* 80267C14 00264B54 54 03 DE 3E */ rlwinm r3, r0, 0x1b, 0x18, 0x1f
+/* 80267C18 00264B58 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_bg_s_gnd_chk.h b/include/SComponent/c_bg_s_gnd_chk.h
new file mode 100644
index 0000000000..c0f0406852
--- /dev/null
+++ b/include/SComponent/c_bg_s_gnd_chk.h
@@ -0,0 +1,15 @@
+#ifndef __C_BG_S_GND_CHK_H_
+#define __C_BG_S_GND_CHK_H_
+
+#include "SComponent/c_xyz.h"
+#include "global.h"
+
+class cBgS_GndChk {
+ cBgS_GndChk(void);
+ ~cBgS_GndChk(void);
+ void SetPos(const Vec*);
+ void SetPos(const cXyz*);
+ void PreCheck(void);
+};
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_bg_s_gnd_chk/asm/func_80267C1C.s b/include/SComponent/c_bg_s_gnd_chk/asm/func_80267C1C.s
new file mode 100644
index 0000000000..1a3ea4f532
--- /dev/null
+++ b/include/SComponent/c_bg_s_gnd_chk/asm/func_80267C1C.s
@@ -0,0 +1,30 @@
+/* 80267C1C 00264B5C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80267C20 00264B60 7C 08 02 A6 */ mflr r0
+/* 80267C24 00264B64 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80267C28 00264B68 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80267C2C 00264B6C 7C 7F 1B 78 */ mr r31, r3
+/* 80267C30 00264B70 4B FF FF 1D */ bl __ct__8cBgS_ChkFv
+/* 80267C34 00264B74 38 7F 00 14 */ addi r3, r31, 0x14
+/* 80267C38 00264B78 48 00 04 3D */ bl __ct__13cBgS_PolyInfoFv
+/* 80267C3C 00264B7C 3C 60 80 3C */ lis r3, lbl_803C3F90@ha
+/* 80267C40 00264B80 38 63 3F 90 */ addi r3, r3, lbl_803C3F90@l
+/* 80267C44 00264B84 90 7F 00 10 */ stw r3, 0x10(r31)
+/* 80267C48 00264B88 38 03 00 0C */ addi r0, r3, 0xc
+/* 80267C4C 00264B8C 90 1F 00 20 */ stw r0, 0x20(r31)
+/* 80267C50 00264B90 3C 60 80 43 */ lis r3, lbl_80430CF4@ha
+/* 80267C54 00264B94 C4 03 0C F4 */ lfsu f0, lbl_80430CF4@l(r3)
+/* 80267C58 00264B98 D0 1F 00 24 */ stfs f0, 0x24(r31)
+/* 80267C5C 00264B9C C0 03 00 04 */ lfs f0, 4(r3)
+/* 80267C60 00264BA0 D0 1F 00 28 */ stfs f0, 0x28(r31)
+/* 80267C64 00264BA4 C0 03 00 08 */ lfs f0, 8(r3)
+/* 80267C68 00264BA8 D0 1F 00 2C */ stfs f0, 0x2c(r31)
+/* 80267C6C 00264BAC 38 00 FF FF */ li r0, -1
+/* 80267C70 00264BB0 90 1F 00 08 */ stw r0, 8(r31)
+/* 80267C74 00264BB4 38 00 00 02 */ li r0, 2
+/* 80267C78 00264BB8 90 1F 00 30 */ stw r0, 0x30(r31)
+/* 80267C7C 00264BBC 7F E3 FB 78 */ mr r3, r31
+/* 80267C80 00264BC0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80267C84 00264BC4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80267C88 00264BC8 7C 08 03 A6 */ mtlr r0
+/* 80267C8C 00264BCC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80267C90 00264BD0 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_bg_s_gnd_chk/asm/func_80267C94.s b/include/SComponent/c_bg_s_gnd_chk/asm/func_80267C94.s
new file mode 100644
index 0000000000..e4766d5f42
--- /dev/null
+++ b/include/SComponent/c_bg_s_gnd_chk/asm/func_80267C94.s
@@ -0,0 +1,31 @@
+/* 80267C94 00264BD4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80267C98 00264BD8 7C 08 02 A6 */ mflr r0
+/* 80267C9C 00264BDC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80267CA0 00264BE0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80267CA4 00264BE4 93 C1 00 08 */ stw r30, 8(r1)
+/* 80267CA8 00264BE8 7C 7E 1B 79 */ or. r30, r3, r3
+/* 80267CAC 00264BEC 7C 9F 23 78 */ mr r31, r4
+/* 80267CB0 00264BF0 41 82 00 40 */ beq lbl_80267CF0
+/* 80267CB4 00264BF4 3C 60 80 3C */ lis r3, lbl_803C3F90@ha
+/* 80267CB8 00264BF8 38 63 3F 90 */ addi r3, r3, lbl_803C3F90@l
+/* 80267CBC 00264BFC 90 7E 00 10 */ stw r3, 0x10(r30)
+/* 80267CC0 00264C00 38 03 00 0C */ addi r0, r3, 0xc
+/* 80267CC4 00264C04 90 1E 00 20 */ stw r0, 0x20(r30)
+/* 80267CC8 00264C08 38 7E 00 14 */ addi r3, r30, 0x14
+/* 80267CCC 00264C0C 38 80 00 00 */ li r4, 0
+/* 80267CD0 00264C10 48 00 03 E1 */ bl __dt__13cBgS_PolyInfoFv
+/* 80267CD4 00264C14 7F C3 F3 78 */ mr r3, r30
+/* 80267CD8 00264C18 38 80 00 00 */ li r4, 0
+/* 80267CDC 00264C1C 4B FF FE 95 */ bl __dt__8cBgS_ChkFv
+/* 80267CE0 00264C20 7F E0 07 35 */ extsh. r0, r31
+/* 80267CE4 00264C24 40 81 00 0C */ ble lbl_80267CF0
+/* 80267CE8 00264C28 7F C3 F3 78 */ mr r3, r30
+/* 80267CEC 00264C2C 48 06 70 51 */ bl __dl__FPv
+lbl_80267CF0:
+/* 80267CF0 00264C30 7F C3 F3 78 */ mr r3, r30
+/* 80267CF4 00264C34 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80267CF8 00264C38 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80267CFC 00264C3C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80267D00 00264C40 7C 08 03 A6 */ mtlr r0
+/* 80267D04 00264C44 38 21 00 10 */ addi r1, r1, 0x10
+/* 80267D08 00264C48 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_bg_s_gnd_chk/asm/func_80267D0C.s b/include/SComponent/c_bg_s_gnd_chk/asm/func_80267D0C.s
new file mode 100644
index 0000000000..c7faae8d87
--- /dev/null
+++ b/include/SComponent/c_bg_s_gnd_chk/asm/func_80267D0C.s
@@ -0,0 +1,7 @@
+/* 80267D0C 00264C4C C0 04 00 00 */ lfs f0, 0(r4)
+/* 80267D10 00264C50 D0 03 00 24 */ stfs f0, 0x24(r3)
+/* 80267D14 00264C54 C0 04 00 04 */ lfs f0, 4(r4)
+/* 80267D18 00264C58 D0 03 00 28 */ stfs f0, 0x28(r3)
+/* 80267D1C 00264C5C C0 04 00 08 */ lfs f0, 8(r4)
+/* 80267D20 00264C60 D0 03 00 2C */ stfs f0, 0x2c(r3)
+/* 80267D24 00264C64 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_bg_s_gnd_chk/asm/func_80267D28.s b/include/SComponent/c_bg_s_gnd_chk/asm/func_80267D28.s
new file mode 100644
index 0000000000..eedbd8c9d8
--- /dev/null
+++ b/include/SComponent/c_bg_s_gnd_chk/asm/func_80267D28.s
@@ -0,0 +1,7 @@
+/* 80267D28 00264C68 C0 04 00 00 */ lfs f0, 0(r4)
+/* 80267D2C 00264C6C D0 03 00 24 */ stfs f0, 0x24(r3)
+/* 80267D30 00264C70 C0 04 00 04 */ lfs f0, 4(r4)
+/* 80267D34 00264C74 D0 03 00 28 */ stfs f0, 0x28(r3)
+/* 80267D38 00264C78 C0 04 00 08 */ lfs f0, 8(r4)
+/* 80267D3C 00264C7C D0 03 00 2C */ stfs f0, 0x2c(r3)
+/* 80267D40 00264C80 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_bg_s_gnd_chk/asm/func_80267D44.s b/include/SComponent/c_bg_s_gnd_chk/asm/func_80267D44.s
new file mode 100644
index 0000000000..033ca9b06c
--- /dev/null
+++ b/include/SComponent/c_bg_s_gnd_chk/asm/func_80267D44.s
@@ -0,0 +1,4 @@
+/* 80267D44 00264C84 80 03 00 30 */ lwz r0, 0x30(r3)
+/* 80267D48 00264C88 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e
+/* 80267D4C 00264C8C 90 03 00 38 */ stw r0, 0x38(r3)
+/* 80267D50 00264C90 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_bg_s_gnd_chk/asm/func_80267D54.s b/include/SComponent/c_bg_s_gnd_chk/asm/func_80267D54.s
new file mode 100644
index 0000000000..dc99041e64
--- /dev/null
+++ b/include/SComponent/c_bg_s_gnd_chk/asm/func_80267D54.s
@@ -0,0 +1,2 @@
+/* 80267D54 00264C94 38 63 FF EC */ addi r3, r3, -20
+/* 80267D58 00264C98 4B FF FF 3C */ b __dt__11cBgS_GndChkFv \ No newline at end of file
diff --git a/include/SComponent/c_bg_s_lin_chk.h b/include/SComponent/c_bg_s_lin_chk.h
new file mode 100644
index 0000000000..91e28b3a52
--- /dev/null
+++ b/include/SComponent/c_bg_s_lin_chk.h
@@ -0,0 +1,16 @@
+#ifndef __C_BG_S_LIN_CHK_H_
+#define __C_BG_S_LIN_CHK_H_
+
+#include "SComponent/c_xyz.h"
+#include "global.h"
+
+class cBgS_LinChk {
+public:
+ cBgS_LinChk(void);
+ ~cBgS_LinChk(void);
+ void ct(void);
+ void Set2(const cXyz*, const cXyz*, unsigned int);
+ void PreCalc(void);
+};
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_bg_s_lin_chk/asm/func_80267D5C.s b/include/SComponent/c_bg_s_lin_chk/asm/func_80267D5C.s
new file mode 100644
index 0000000000..b9d619c588
--- /dev/null
+++ b/include/SComponent/c_bg_s_lin_chk/asm/func_80267D5C.s
@@ -0,0 +1,24 @@
+/* 80267D5C 00264C9C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80267D60 00264CA0 7C 08 02 A6 */ mflr r0
+/* 80267D64 00264CA4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80267D68 00264CA8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80267D6C 00264CAC 7C 7F 1B 78 */ mr r31, r3
+/* 80267D70 00264CB0 4B FF FD DD */ bl __ct__8cBgS_ChkFv
+/* 80267D74 00264CB4 38 7F 00 14 */ addi r3, r31, 0x14
+/* 80267D78 00264CB8 48 00 02 FD */ bl __ct__13cBgS_PolyInfoFv
+/* 80267D7C 00264CBC 3C 60 80 3C */ lis r3, lbl_803C3FA8@ha
+/* 80267D80 00264CC0 38 63 3F A8 */ addi r3, r3, lbl_803C3FA8@l
+/* 80267D84 00264CC4 90 7F 00 10 */ stw r3, 0x10(r31)
+/* 80267D88 00264CC8 38 03 00 0C */ addi r0, r3, 0xc
+/* 80267D8C 00264CCC 90 1F 00 20 */ stw r0, 0x20(r31)
+/* 80267D90 00264CD0 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 80267D94 00264CD4 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 80267D98 00264CD8 90 1F 00 3C */ stw r0, 0x3c(r31)
+/* 80267D9C 00264CDC 7F E3 FB 78 */ mr r3, r31
+/* 80267DA0 00264CE0 48 00 00 A9 */ bl ct__11cBgS_LinChkFv
+/* 80267DA4 00264CE4 7F E3 FB 78 */ mr r3, r31
+/* 80267DA8 00264CE8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80267DAC 00264CEC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80267DB0 00264CF0 7C 08 03 A6 */ mtlr r0
+/* 80267DB4 00264CF4 38 21 00 10 */ addi r1, r1, 0x10
+/* 80267DB8 00264CF8 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_bg_s_lin_chk/asm/func_80267DBC.s b/include/SComponent/c_bg_s_lin_chk/asm/func_80267DBC.s
new file mode 100644
index 0000000000..1bdfa8a8f7
--- /dev/null
+++ b/include/SComponent/c_bg_s_lin_chk/asm/func_80267DBC.s
@@ -0,0 +1,37 @@
+/* 80267DBC 00264CFC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80267DC0 00264D00 7C 08 02 A6 */ mflr r0
+/* 80267DC4 00264D04 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80267DC8 00264D08 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80267DCC 00264D0C 93 C1 00 08 */ stw r30, 8(r1)
+/* 80267DD0 00264D10 7C 7E 1B 79 */ or. r30, r3, r3
+/* 80267DD4 00264D14 7C 9F 23 78 */ mr r31, r4
+/* 80267DD8 00264D18 41 82 00 54 */ beq lbl_80267E2C
+/* 80267DDC 00264D1C 3C 60 80 3C */ lis r3, lbl_803C3FA8@ha
+/* 80267DE0 00264D20 38 63 3F A8 */ addi r3, r3, lbl_803C3FA8@l
+/* 80267DE4 00264D24 90 7E 00 10 */ stw r3, 0x10(r30)
+/* 80267DE8 00264D28 38 03 00 0C */ addi r0, r3, 0xc
+/* 80267DEC 00264D2C 90 1E 00 20 */ stw r0, 0x20(r30)
+/* 80267DF0 00264D30 34 1E 00 24 */ addic. r0, r30, 0x24
+/* 80267DF4 00264D34 41 82 00 10 */ beq lbl_80267E04
+/* 80267DF8 00264D38 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 80267DFC 00264D3C 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 80267E00 00264D40 90 1E 00 3C */ stw r0, 0x3c(r30)
+lbl_80267E04:
+/* 80267E04 00264D44 38 7E 00 14 */ addi r3, r30, 0x14
+/* 80267E08 00264D48 38 80 00 00 */ li r4, 0
+/* 80267E0C 00264D4C 48 00 02 A5 */ bl __dt__13cBgS_PolyInfoFv
+/* 80267E10 00264D50 7F C3 F3 78 */ mr r3, r30
+/* 80267E14 00264D54 38 80 00 00 */ li r4, 0
+/* 80267E18 00264D58 4B FF FD 59 */ bl __dt__8cBgS_ChkFv
+/* 80267E1C 00264D5C 7F E0 07 35 */ extsh. r0, r31
+/* 80267E20 00264D60 40 81 00 0C */ ble lbl_80267E2C
+/* 80267E24 00264D64 7F C3 F3 78 */ mr r3, r30
+/* 80267E28 00264D68 48 06 6F 15 */ bl __dl__FPv
+lbl_80267E2C:
+/* 80267E2C 00264D6C 7F C3 F3 78 */ mr r3, r30
+/* 80267E30 00264D70 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80267E34 00264D74 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80267E38 00264D78 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80267E3C 00264D7C 7C 08 03 A6 */ mtlr r0
+/* 80267E40 00264D80 38 21 00 10 */ addi r1, r1, 0x10
+/* 80267E44 00264D84 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_bg_s_lin_chk/asm/func_80267E48.s b/include/SComponent/c_bg_s_lin_chk/asm/func_80267E48.s
new file mode 100644
index 0000000000..aada51b750
--- /dev/null
+++ b/include/SComponent/c_bg_s_lin_chk/asm/func_80267E48.s
@@ -0,0 +1,34 @@
+/* 80267E48 00264D88 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80267E4C 00264D8C 7C 08 02 A6 */ mflr r0
+/* 80267E50 00264D90 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80267E54 00264D94 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80267E58 00264D98 7C 7F 1B 78 */ mr r31, r3
+/* 80267E5C 00264D9C 3C 60 80 43 */ lis r3, lbl_80430CF4@ha
+/* 80267E60 00264DA0 C4 03 0C F4 */ lfsu f0, lbl_80430CF4@l(r3)
+/* 80267E64 00264DA4 D0 01 00 08 */ stfs f0, 8(r1)
+/* 80267E68 00264DA8 C0 03 00 04 */ lfs f0, 4(r3)
+/* 80267E6C 00264DAC D0 01 00 0C */ stfs f0, 0xc(r1)
+/* 80267E70 00264DB0 C0 03 00 08 */ lfs f0, 8(r3)
+/* 80267E74 00264DB4 D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 80267E78 00264DB8 38 7F 00 24 */ addi r3, r31, 0x24
+/* 80267E7C 00264DBC 38 81 00 08 */ addi r4, r1, 8
+/* 80267E80 00264DC0 7C 85 23 78 */ mr r5, r4
+/* 80267E84 00264DC4 48 00 74 65 */ bl SetStartEnd__8cM3dGLinFRC4cXyzRC4cXyz
+/* 80267E88 00264DC8 C0 01 00 08 */ lfs f0, 8(r1)
+/* 80267E8C 00264DCC D0 1F 00 40 */ stfs f0, 0x40(r31)
+/* 80267E90 00264DD0 C0 01 00 0C */ lfs f0, 0xc(r1)
+/* 80267E94 00264DD4 D0 1F 00 44 */ stfs f0, 0x44(r31)
+/* 80267E98 00264DD8 C0 01 00 10 */ lfs f0, 0x10(r1)
+/* 80267E9C 00264DDC D0 1F 00 48 */ stfs f0, 0x48(r31)
+/* 80267EA0 00264DE0 38 00 FF FF */ li r0, -1
+/* 80267EA4 00264DE4 90 1F 00 08 */ stw r0, 8(r31)
+/* 80267EA8 00264DE8 38 60 00 00 */ li r3, 0
+/* 80267EAC 00264DEC 90 7F 00 4C */ stw r3, 0x4c(r31)
+/* 80267EB0 00264DF0 38 00 00 01 */ li r0, 1
+/* 80267EB4 00264DF4 98 1F 00 53 */ stb r0, 0x53(r31)
+/* 80267EB8 00264DF8 98 7F 00 54 */ stb r3, 0x54(r31)
+/* 80267EBC 00264DFC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80267EC0 00264E00 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80267EC4 00264E04 7C 08 03 A6 */ mtlr r0
+/* 80267EC8 00264E08 38 21 00 20 */ addi r1, r1, 0x20
+/* 80267ECC 00264E0C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_bg_s_lin_chk/asm/func_80267ED0.s b/include/SComponent/c_bg_s_lin_chk/asm/func_80267ED0.s
new file mode 100644
index 0000000000..a76584ed9e
--- /dev/null
+++ b/include/SComponent/c_bg_s_lin_chk/asm/func_80267ED0.s
@@ -0,0 +1,28 @@
+/* 80267ED0 00264E10 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80267ED4 00264E14 7C 08 02 A6 */ mflr r0
+/* 80267ED8 00264E18 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80267EDC 00264E1C 39 61 00 20 */ addi r11, r1, 0x20
+/* 80267EE0 00264E20 48 0F A2 FD */ bl _savegpr_29
+/* 80267EE4 00264E24 7C 7D 1B 78 */ mr r29, r3
+/* 80267EE8 00264E28 7C BE 2B 78 */ mr r30, r5
+/* 80267EEC 00264E2C 7C DF 33 78 */ mr r31, r6
+/* 80267EF0 00264E30 38 7D 00 24 */ addi r3, r29, 0x24
+/* 80267EF4 00264E34 48 00 73 F5 */ bl SetStartEnd__8cM3dGLinFRC4cXyzRC4cXyz
+/* 80267EF8 00264E38 C0 1E 00 00 */ lfs f0, 0(r30)
+/* 80267EFC 00264E3C D0 1D 00 40 */ stfs f0, 0x40(r29)
+/* 80267F00 00264E40 C0 1E 00 04 */ lfs f0, 4(r30)
+/* 80267F04 00264E44 D0 1D 00 44 */ stfs f0, 0x44(r29)
+/* 80267F08 00264E48 C0 1E 00 08 */ lfs f0, 8(r30)
+/* 80267F0C 00264E4C D0 1D 00 48 */ stfs f0, 0x48(r29)
+/* 80267F10 00264E50 93 FD 00 08 */ stw r31, 8(r29)
+/* 80267F14 00264E54 80 1D 00 4C */ lwz r0, 0x4c(r29)
+/* 80267F18 00264E58 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a
+/* 80267F1C 00264E5C 90 1D 00 4C */ stw r0, 0x4c(r29)
+/* 80267F20 00264E60 38 7D 00 14 */ addi r3, r29, 0x14
+/* 80267F24 00264E64 48 00 01 FD */ bl ClearPi__13cBgS_PolyInfoFv
+/* 80267F28 00264E68 39 61 00 20 */ addi r11, r1, 0x20
+/* 80267F2C 00264E6C 48 0F A2 FD */ bl _restgpr_29
+/* 80267F30 00264E70 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80267F34 00264E74 7C 08 03 A6 */ mtlr r0
+/* 80267F38 00264E78 38 21 00 20 */ addi r1, r1, 0x20
+/* 80267F3C 00264E7C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_bg_s_lin_chk/asm/func_80267F40.s b/include/SComponent/c_bg_s_lin_chk/asm/func_80267F40.s
new file mode 100644
index 0000000000..e111aa6719
--- /dev/null
+++ b/include/SComponent/c_bg_s_lin_chk/asm/func_80267F40.s
@@ -0,0 +1,16 @@
+/* 80267F40 00264E80 80 03 00 4C */ lwz r0, 0x4c(r3)
+/* 80267F44 00264E84 54 00 00 42 */ rlwinm r0, r0, 0, 1, 1
+/* 80267F48 00264E88 7C 00 00 34 */ cntlzw r0, r0
+/* 80267F4C 00264E8C 54 00 D9 7E */ srwi r0, r0, 5
+/* 80267F50 00264E90 98 03 00 50 */ stb r0, 0x50(r3)
+/* 80267F54 00264E94 80 03 00 4C */ lwz r0, 0x4c(r3)
+/* 80267F58 00264E98 54 00 00 00 */ rlwinm r0, r0, 0, 0, 0
+/* 80267F5C 00264E9C 7C 00 00 34 */ cntlzw r0, r0
+/* 80267F60 00264EA0 54 00 D9 7E */ srwi r0, r0, 5
+/* 80267F64 00264EA4 98 03 00 51 */ stb r0, 0x51(r3)
+/* 80267F68 00264EA8 80 03 00 4C */ lwz r0, 0x4c(r3)
+/* 80267F6C 00264EAC 54 00 00 84 */ rlwinm r0, r0, 0, 2, 2
+/* 80267F70 00264EB0 7C 00 00 34 */ cntlzw r0, r0
+/* 80267F74 00264EB4 54 00 D9 7E */ srwi r0, r0, 5
+/* 80267F78 00264EB8 98 03 00 52 */ stb r0, 0x52(r3)
+/* 80267F7C 00264EBC 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_bg_s_lin_chk/asm/func_80267F80.s b/include/SComponent/c_bg_s_lin_chk/asm/func_80267F80.s
new file mode 100644
index 0000000000..f971b9fc35
--- /dev/null
+++ b/include/SComponent/c_bg_s_lin_chk/asm/func_80267F80.s
@@ -0,0 +1,2 @@
+/* 80267F80 00264EC0 38 63 FF EC */ addi r3, r3, -20
+/* 80267F84 00264EC4 4B FF FE 38 */ b __dt__11cBgS_LinChkFv \ No newline at end of file
diff --git a/include/SComponent/c_bg_s_poly_info.h b/include/SComponent/c_bg_s_poly_info.h
index e82aaade48..873e5c4743 100644
--- a/include/SComponent/c_bg_s_poly_info.h
+++ b/include/SComponent/c_bg_s_poly_info.h
@@ -1,6 +1,19 @@
#ifndef C_BG_S_POLY_INFO_H_
#define C_BG_S_POLY_INFO_H_
-struct cBgS_PolyInfo {};
+#include "global.h"
+
+class cBgS_PolyInfo {
+public:
+ cBgS_PolyInfo(void);
+ ~cBgS_PolyInfo(void);
+ bool ChkSetInfo(void) const;
+ void ClearPi(void);
+ void SetPolyInfo(const cBgS_PolyInfo&);
+ void SetActorInfo(int, void*, unsigned int);
+ bool ChkSafe(const void*, unsigned int) const;
+ void SetPolyIndex(int);
+ bool ChkBgIndex(void) const;
+};
#endif \ No newline at end of file
diff --git a/include/SComponent/c_bg_s_poly_info/asm/func_80268074.s b/include/SComponent/c_bg_s_poly_info/asm/func_80268074.s
new file mode 100644
index 0000000000..ae051fa81c
--- /dev/null
+++ b/include/SComponent/c_bg_s_poly_info/asm/func_80268074.s
@@ -0,0 +1,15 @@
+/* 80268074 00264FB4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80268078 00264FB8 7C 08 02 A6 */ mflr r0
+/* 8026807C 00264FBC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80268080 00264FC0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80268084 00264FC4 7C 7F 1B 78 */ mr r31, r3
+/* 80268088 00264FC8 3C 80 80 3C */ lis r4, lbl_803C3FD0@ha
+/* 8026808C 00264FCC 38 04 3F D0 */ addi r0, r4, lbl_803C3FD0@l
+/* 80268090 00264FD0 90 03 00 0C */ stw r0, 0xc(r3)
+/* 80268094 00264FD4 48 00 00 8D */ bl ClearPi__13cBgS_PolyInfoFv
+/* 80268098 00264FD8 7F E3 FB 78 */ mr r3, r31
+/* 8026809C 00264FDC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802680A0 00264FE0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802680A4 00264FE4 7C 08 03 A6 */ mtlr r0
+/* 802680A8 00264FE8 38 21 00 10 */ addi r1, r1, 0x10
+/* 802680AC 00264FEC 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_bg_s_poly_info/asm/func_802680B0.s b/include/SComponent/c_bg_s_poly_info/asm/func_802680B0.s
new file mode 100644
index 0000000000..4c369c5ee9
--- /dev/null
+++ b/include/SComponent/c_bg_s_poly_info/asm/func_802680B0.s
@@ -0,0 +1,19 @@
+/* 802680B0 00264FF0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802680B4 00264FF4 7C 08 02 A6 */ mflr r0
+/* 802680B8 00264FF8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802680BC 00264FFC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802680C0 00265000 7C 7F 1B 79 */ or. r31, r3, r3
+/* 802680C4 00265004 41 82 00 1C */ beq lbl_802680E0
+/* 802680C8 00265008 3C A0 80 3C */ lis r5, lbl_803C3FD0@ha
+/* 802680CC 0026500C 38 05 3F D0 */ addi r0, r5, lbl_803C3FD0@l
+/* 802680D0 00265010 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 802680D4 00265014 7C 80 07 35 */ extsh. r0, r4
+/* 802680D8 00265018 40 81 00 08 */ ble lbl_802680E0
+/* 802680DC 0026501C 48 06 6C 61 */ bl __dl__FPv
+lbl_802680E0:
+/* 802680E0 00265020 7F E3 FB 78 */ mr r3, r31
+/* 802680E4 00265024 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802680E8 00265028 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802680EC 0026502C 7C 08 03 A6 */ mtlr r0
+/* 802680F0 00265030 38 21 00 10 */ addi r1, r1, 0x10
+/* 802680F4 00265034 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_bg_s_poly_info/asm/func_802680F8.s b/include/SComponent/c_bg_s_poly_info/asm/func_802680F8.s
new file mode 100644
index 0000000000..0a808e711c
--- /dev/null
+++ b/include/SComponent/c_bg_s_poly_info/asm/func_802680F8.s
@@ -0,0 +1,12 @@
+/* 802680F8 00265038 A0 03 00 00 */ lhz r0, 0(r3)
+/* 802680FC 0026503C 28 00 FF FF */ cmplwi r0, 0xffff
+/* 80268100 00265040 41 82 00 10 */ beq lbl_80268110
+/* 80268104 00265044 A0 03 00 02 */ lhz r0, 2(r3)
+/* 80268108 00265048 28 00 01 00 */ cmplwi r0, 0x100
+/* 8026810C 0026504C 40 82 00 0C */ bne lbl_80268118
+lbl_80268110:
+/* 80268110 00265050 38 60 00 00 */ li r3, 0
+/* 80268114 00265054 4E 80 00 20 */ blr
+lbl_80268118:
+/* 80268118 00265058 38 60 00 01 */ li r3, 1
+/* 8026811C 0026505C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_bg_s_poly_info/asm/func_80268120.s b/include/SComponent/c_bg_s_poly_info/asm/func_80268120.s
new file mode 100644
index 0000000000..08fa4e3b1d
--- /dev/null
+++ b/include/SComponent/c_bg_s_poly_info/asm/func_80268120.s
@@ -0,0 +1,10 @@
+/* 80268120 00265060 3C 80 00 01 */ lis r4, 0x0000FFFF@ha
+/* 80268124 00265064 38 04 FF FF */ addi r0, r4, 0x0000FFFF@l
+/* 80268128 00265068 B0 03 00 00 */ sth r0, 0(r3)
+/* 8026812C 0026506C 38 00 01 00 */ li r0, 0x100
+/* 80268130 00265070 B0 03 00 02 */ sth r0, 2(r3)
+/* 80268134 00265074 38 00 00 00 */ li r0, 0
+/* 80268138 00265078 90 03 00 04 */ stw r0, 4(r3)
+/* 8026813C 0026507C 38 00 FF FF */ li r0, -1
+/* 80268140 00265080 90 03 00 08 */ stw r0, 8(r3)
+/* 80268144 00265084 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_bg_s_poly_info/asm/func_80268148.s b/include/SComponent/c_bg_s_poly_info/asm/func_80268148.s
new file mode 100644
index 0000000000..e151525026
--- /dev/null
+++ b/include/SComponent/c_bg_s_poly_info/asm/func_80268148.s
@@ -0,0 +1,9 @@
+/* 80268148 00265088 A0 04 00 00 */ lhz r0, 0(r4)
+/* 8026814C 0026508C B0 03 00 00 */ sth r0, 0(r3)
+/* 80268150 00265090 A0 04 00 02 */ lhz r0, 2(r4)
+/* 80268154 00265094 B0 03 00 02 */ sth r0, 2(r3)
+/* 80268158 00265098 80 04 00 04 */ lwz r0, 4(r4)
+/* 8026815C 0026509C 90 03 00 04 */ stw r0, 4(r3)
+/* 80268160 002650A0 80 04 00 08 */ lwz r0, 8(r4)
+/* 80268164 002650A4 90 03 00 08 */ stw r0, 8(r3)
+/* 80268168 002650A8 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_bg_s_poly_info/asm/func_8026816C.s b/include/SComponent/c_bg_s_poly_info/asm/func_8026816C.s
new file mode 100644
index 0000000000..3b307a0a64
--- /dev/null
+++ b/include/SComponent/c_bg_s_poly_info/asm/func_8026816C.s
@@ -0,0 +1,4 @@
+/* 8026816C 002650AC B0 83 00 02 */ sth r4, 2(r3)
+/* 80268170 002650B0 90 A3 00 04 */ stw r5, 4(r3)
+/* 80268174 002650B4 90 C3 00 08 */ stw r6, 8(r3)
+/* 80268178 002650B8 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_bg_s_poly_info/asm/func_8026817C.s b/include/SComponent/c_bg_s_poly_info/asm/func_8026817C.s
new file mode 100644
index 0000000000..27fda2f852
--- /dev/null
+++ b/include/SComponent/c_bg_s_poly_info/asm/func_8026817C.s
@@ -0,0 +1,11 @@
+/* 8026817C 002650BC 80 03 00 04 */ lwz r0, 4(r3)
+/* 80268180 002650C0 7C 00 20 40 */ cmplw r0, r4
+/* 80268184 002650C4 40 82 00 18 */ bne lbl_8026819C
+/* 80268188 002650C8 80 03 00 08 */ lwz r0, 8(r3)
+/* 8026818C 002650CC 7C 00 28 40 */ cmplw r0, r5
+/* 80268190 002650D0 40 82 00 0C */ bne lbl_8026819C
+/* 80268194 002650D4 38 60 00 01 */ li r3, 1
+/* 80268198 002650D8 4E 80 00 20 */ blr
+lbl_8026819C:
+/* 8026819C 002650DC 38 60 00 00 */ li r3, 0
+/* 802681A0 002650E0 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_bg_s_poly_info/asm/func_802681A4.s b/include/SComponent/c_bg_s_poly_info/asm/func_802681A4.s
new file mode 100644
index 0000000000..5b6195e980
--- /dev/null
+++ b/include/SComponent/c_bg_s_poly_info/asm/func_802681A4.s
@@ -0,0 +1,2 @@
+/* 802681A4 002650E4 B0 83 00 00 */ sth r4, 0(r3)
+/* 802681A8 002650E8 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_bg_s_poly_info/asm/func_802681AC.s b/include/SComponent/c_bg_s_poly_info/asm/func_802681AC.s
new file mode 100644
index 0000000000..7c15041ccb
--- /dev/null
+++ b/include/SComponent/c_bg_s_poly_info/asm/func_802681AC.s
@@ -0,0 +1,5 @@
+/* 802681AC 002650EC A0 03 00 02 */ lhz r0, 2(r3)
+/* 802681B0 002650F0 20 60 01 00 */ subfic r3, r0, 0x100
+/* 802681B4 002650F4 30 03 FF FF */ addic r0, r3, -1
+/* 802681B8 002650F8 7C 60 19 10 */ subfe r3, r0, r3
+/* 802681BC 002650FC 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_bg_s_shdw_draw.h b/include/SComponent/c_bg_s_shdw_draw.h
new file mode 100644
index 0000000000..df209720e6
--- /dev/null
+++ b/include/SComponent/c_bg_s_shdw_draw.h
@@ -0,0 +1,20 @@
+#ifndef __C_BG_S_SHDW_DRAW_H_
+#define __C_BG_S_SHDW_DRAW_H_
+
+#include "SComponent/c_m3d_g_pla.h"
+#include "SComponent/c_xyz.h"
+#include "global.h"
+
+struct cBgD_Vtx_t;
+
+typedef int (*cBgS_ShdwDraw_Callback)(class cBgS_ShdwDraw*, cBgD_Vtx_t*, int, int, int, cM3dGPla*);
+
+class cBgS_ShdwDraw {
+public:
+ cBgS_ShdwDraw(void);
+ ~cBgS_ShdwDraw(void);
+ void Set(cXyz&, cXyz&);
+ void SetCallback(cBgS_ShdwDraw_Callback);
+};
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_bg_s_shdw_draw/asm/func_80267F88.s b/include/SComponent/c_bg_s_shdw_draw/asm/func_80267F88.s
new file mode 100644
index 0000000000..f87827abb8
--- /dev/null
+++ b/include/SComponent/c_bg_s_shdw_draw/asm/func_80267F88.s
@@ -0,0 +1,18 @@
+/* 80267F88 00264EC8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80267F8C 00264ECC 7C 08 02 A6 */ mflr r0
+/* 80267F90 00264ED0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80267F94 00264ED4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80267F98 00264ED8 7C 7F 1B 78 */ mr r31, r3
+/* 80267F9C 00264EDC 4B FF FB B1 */ bl __ct__8cBgS_ChkFv
+/* 80267FA0 00264EE0 3C 60 80 3C */ lis r3, lbl_803C3FC0@ha
+/* 80267FA4 00264EE4 38 03 3F C0 */ addi r0, r3, lbl_803C3FC0@l
+/* 80267FA8 00264EE8 90 1F 00 10 */ stw r0, 0x10(r31)
+/* 80267FAC 00264EEC 3C 60 80 3A */ lis r3, lbl_803A7218@ha
+/* 80267FB0 00264EF0 38 03 72 18 */ addi r0, r3, lbl_803A7218@l
+/* 80267FB4 00264EF4 90 1F 00 2C */ stw r0, 0x2c(r31)
+/* 80267FB8 00264EF8 7F E3 FB 78 */ mr r3, r31
+/* 80267FBC 00264EFC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80267FC0 00264F00 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80267FC4 00264F04 7C 08 03 A6 */ mtlr r0
+/* 80267FC8 00264F08 38 21 00 10 */ addi r1, r1, 0x10
+/* 80267FCC 00264F0C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_bg_s_shdw_draw/asm/func_80267FD0.s b/include/SComponent/c_bg_s_shdw_draw/asm/func_80267FD0.s
new file mode 100644
index 0000000000..7e48edcc21
--- /dev/null
+++ b/include/SComponent/c_bg_s_shdw_draw/asm/func_80267FD0.s
@@ -0,0 +1,32 @@
+/* 80267FD0 00264F10 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80267FD4 00264F14 7C 08 02 A6 */ mflr r0
+/* 80267FD8 00264F18 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80267FDC 00264F1C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80267FE0 00264F20 93 C1 00 08 */ stw r30, 8(r1)
+/* 80267FE4 00264F24 7C 7E 1B 79 */ or. r30, r3, r3
+/* 80267FE8 00264F28 7C 9F 23 78 */ mr r31, r4
+/* 80267FEC 00264F2C 41 82 00 40 */ beq lbl_8026802C
+/* 80267FF0 00264F30 3C 60 80 3C */ lis r3, lbl_803C3FC0@ha
+/* 80267FF4 00264F34 38 03 3F C0 */ addi r0, r3, lbl_803C3FC0@l
+/* 80267FF8 00264F38 90 1E 00 10 */ stw r0, 0x10(r30)
+/* 80267FFC 00264F3C 34 1E 00 14 */ addic. r0, r30, 0x14
+/* 80268000 00264F40 41 82 00 10 */ beq lbl_80268010
+/* 80268004 00264F44 3C 60 80 3A */ lis r3, lbl_803A7218@ha
+/* 80268008 00264F48 38 03 72 18 */ addi r0, r3, lbl_803A7218@l
+/* 8026800C 00264F4C 90 1E 00 2C */ stw r0, 0x2c(r30)
+lbl_80268010:
+/* 80268010 00264F50 7F C3 F3 78 */ mr r3, r30
+/* 80268014 00264F54 38 80 00 00 */ li r4, 0
+/* 80268018 00264F58 4B FF FB 59 */ bl __dt__8cBgS_ChkFv
+/* 8026801C 00264F5C 7F E0 07 35 */ extsh. r0, r31
+/* 80268020 00264F60 40 81 00 0C */ ble lbl_8026802C
+/* 80268024 00264F64 7F C3 F3 78 */ mr r3, r30
+/* 80268028 00264F68 48 06 6D 15 */ bl __dl__FPv
+lbl_8026802C:
+/* 8026802C 00264F6C 7F C3 F3 78 */ mr r3, r30
+/* 80268030 00264F70 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80268034 00264F74 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80268038 00264F78 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026803C 00264F7C 7C 08 03 A6 */ mtlr r0
+/* 80268040 00264F80 38 21 00 10 */ addi r1, r1, 0x10
+/* 80268044 00264F84 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_bg_s_shdw_draw/asm/func_80268048.s b/include/SComponent/c_bg_s_shdw_draw/asm/func_80268048.s
new file mode 100644
index 0000000000..4356823434
--- /dev/null
+++ b/include/SComponent/c_bg_s_shdw_draw/asm/func_80268048.s
@@ -0,0 +1,9 @@
+/* 80268048 00264F88 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026804C 00264F8C 7C 08 02 A6 */ mflr r0
+/* 80268050 00264F90 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80268054 00264F94 38 63 00 14 */ addi r3, r3, 0x14
+/* 80268058 00264F98 48 00 6B FD */ bl Set__8cM3dGAabFPC4cXyzPC4cXyz
+/* 8026805C 00264F9C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80268060 00264FA0 7C 08 03 A6 */ mtlr r0
+/* 80268064 00264FA4 38 21 00 10 */ addi r1, r1, 0x10
+/* 80268068 00264FA8 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_bg_s_shdw_draw/asm/func_8026806C.s b/include/SComponent/c_bg_s_shdw_draw/asm/func_8026806C.s
new file mode 100644
index 0000000000..17407969b3
--- /dev/null
+++ b/include/SComponent/c_bg_s_shdw_draw/asm/func_8026806C.s
@@ -0,0 +1,2 @@
+/* 8026806C 00264FAC 90 83 00 30 */ stw r4, 0x30(r3)
+/* 80268070 00264FB0 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80263358.s b/include/SComponent/c_cc_d/asm/func_80263358.s
new file mode 100644
index 0000000000..12f4cf8174
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263358.s
@@ -0,0 +1,4 @@
+/* 80263358 00260298 90 83 00 00 */ stw r4, 0(r3)
+/* 8026335C 0026029C 90 A3 00 04 */ stw r5, 4(r3)
+/* 80263360 002602A0 90 C3 00 08 */ stw r6, 8(r3)
+/* 80263364 002602A4 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_80263368.s b/include/SComponent/c_cc_d/asm/func_80263368.s
new file mode 100644
index 0000000000..3a62b90cce
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263368.s
@@ -0,0 +1,18 @@
+/* 80263368 002602A8 80 A3 00 00 */ lwz r5, 0(r3)
+/* 8026336C 002602AC 80 04 00 00 */ lwz r0, 0(r4)
+/* 80263370 002602B0 7C A0 00 39 */ and. r0, r5, r0
+/* 80263374 002602B4 41 82 00 24 */ beq lbl_80263398
+/* 80263378 002602B8 80 A3 00 08 */ lwz r5, 8(r3)
+/* 8026337C 002602BC 80 04 00 08 */ lwz r0, 8(r4)
+/* 80263380 002602C0 7C A0 00 39 */ and. r0, r5, r0
+/* 80263384 002602C4 41 82 00 14 */ beq lbl_80263398
+/* 80263388 002602C8 80 63 00 04 */ lwz r3, 4(r3)
+/* 8026338C 002602CC 80 04 00 04 */ lwz r0, 4(r4)
+/* 80263390 002602D0 7C 60 00 39 */ and. r0, r3, r0
+/* 80263394 002602D4 40 82 00 0C */ bne lbl_802633A0
+lbl_80263398:
+/* 80263398 002602D8 38 60 00 00 */ li r3, 0
+/* 8026339C 002602DC 4E 80 00 20 */ blr
+lbl_802633A0:
+/* 802633A0 002602E0 38 60 00 01 */ li r3, 1
+/* 802633A4 002602E4 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_802633A8.s b/include/SComponent/c_cc_d/asm/func_802633A8.s
new file mode 100644
index 0000000000..4175811ff1
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802633A8.s
@@ -0,0 +1,78 @@
+/* 802633A8 002602E8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802633AC 002602EC 7C 08 02 A6 */ mflr r0
+/* 802633B0 002602F0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802633B4 002602F4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802633B8 002602F8 7C 7F 1B 78 */ mr r31, r3
+/* 802633BC 002602FC 38 A4 00 0C */ addi r5, r4, 0xc
+/* 802633C0 00260300 48 00 B8 95 */ bl Set__8cM3dGAabFPC4cXyzPC4cXyz
+/* 802633C4 00260304 C0 42 B6 18 */ lfs f2, lbl_80455018-_SDA2_BASE_(r2)
+/* 802633C8 00260308 C0 3F 00 0C */ lfs f1, 0xc(r31)
+/* 802633CC 0026030C C0 1F 00 00 */ lfs f0, 0(r31)
+/* 802633D0 00260310 EC 01 00 28 */ fsubs f0, f1, f0
+/* 802633D4 00260314 EC 02 00 32 */ fmuls f0, f2, f0
+/* 802633D8 00260318 D0 1F 00 20 */ stfs f0, 0x20(r31)
+/* 802633DC 0026031C C0 1F 00 20 */ lfs f0, 0x20(r31)
+/* 802633E0 00260320 FC 00 02 10 */ fabs f0, f0
+/* 802633E4 00260324 FC 20 00 18 */ frsp f1, f0
+/* 802633E8 00260328 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 802633EC 0026032C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802633F0 00260330 7C 00 00 26 */ mfcr r0
+/* 802633F4 00260334 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 802633F8 00260338 98 1F 00 1C */ stb r0, 0x1c(r31)
+/* 802633FC 0026033C 88 1F 00 1C */ lbz r0, 0x1c(r31)
+/* 80263400 00260340 28 00 00 00 */ cmplwi r0, 0
+/* 80263404 00260344 40 82 00 14 */ bne lbl_80263418
+/* 80263408 00260348 C0 22 B6 1C */ lfs f1, lbl_8045501C-_SDA2_BASE_(r2)
+/* 8026340C 0026034C C0 1F 00 20 */ lfs f0, 0x20(r31)
+/* 80263410 00260350 EC 01 00 24 */ fdivs f0, f1, f0
+/* 80263414 00260354 D0 1F 00 24 */ stfs f0, 0x24(r31)
+lbl_80263418:
+/* 80263418 00260358 C0 42 B6 18 */ lfs f2, lbl_80455018-_SDA2_BASE_(r2)
+/* 8026341C 0026035C C0 3F 00 10 */ lfs f1, 0x10(r31)
+/* 80263420 00260360 C0 1F 00 04 */ lfs f0, 4(r31)
+/* 80263424 00260364 EC 01 00 28 */ fsubs f0, f1, f0
+/* 80263428 00260368 EC 02 00 32 */ fmuls f0, f2, f0
+/* 8026342C 0026036C D0 1F 00 2C */ stfs f0, 0x2c(r31)
+/* 80263430 00260370 C0 1F 00 2C */ lfs f0, 0x2c(r31)
+/* 80263434 00260374 FC 00 02 10 */ fabs f0, f0
+/* 80263438 00260378 FC 20 00 18 */ frsp f1, f0
+/* 8026343C 0026037C C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 80263440 00260380 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80263444 00260384 7C 00 00 26 */ mfcr r0
+/* 80263448 00260388 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 8026344C 0026038C 98 1F 00 28 */ stb r0, 0x28(r31)
+/* 80263450 00260390 88 1F 00 28 */ lbz r0, 0x28(r31)
+/* 80263454 00260394 28 00 00 00 */ cmplwi r0, 0
+/* 80263458 00260398 40 82 00 14 */ bne lbl_8026346C
+/* 8026345C 0026039C C0 22 B6 1C */ lfs f1, lbl_8045501C-_SDA2_BASE_(r2)
+/* 80263460 002603A0 C0 1F 00 2C */ lfs f0, 0x2c(r31)
+/* 80263464 002603A4 EC 01 00 24 */ fdivs f0, f1, f0
+/* 80263468 002603A8 D0 1F 00 30 */ stfs f0, 0x30(r31)
+lbl_8026346C:
+/* 8026346C 002603AC C0 42 B6 18 */ lfs f2, lbl_80455018-_SDA2_BASE_(r2)
+/* 80263470 002603B0 C0 3F 00 14 */ lfs f1, 0x14(r31)
+/* 80263474 002603B4 C0 1F 00 08 */ lfs f0, 8(r31)
+/* 80263478 002603B8 EC 01 00 28 */ fsubs f0, f1, f0
+/* 8026347C 002603BC EC 02 00 32 */ fmuls f0, f2, f0
+/* 80263480 002603C0 D0 1F 00 38 */ stfs f0, 0x38(r31)
+/* 80263484 002603C4 C0 1F 00 38 */ lfs f0, 0x38(r31)
+/* 80263488 002603C8 FC 00 02 10 */ fabs f0, f0
+/* 8026348C 002603CC FC 20 00 18 */ frsp f1, f0
+/* 80263490 002603D0 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 80263494 002603D4 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80263498 002603D8 7C 00 00 26 */ mfcr r0
+/* 8026349C 002603DC 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 802634A0 002603E0 98 1F 00 34 */ stb r0, 0x34(r31)
+/* 802634A4 002603E4 88 1F 00 34 */ lbz r0, 0x34(r31)
+/* 802634A8 002603E8 28 00 00 00 */ cmplwi r0, 0
+/* 802634AC 002603EC 40 82 00 14 */ bne lbl_802634C0
+/* 802634B0 002603F0 C0 22 B6 1C */ lfs f1, lbl_8045501C-_SDA2_BASE_(r2)
+/* 802634B4 002603F4 C0 1F 00 38 */ lfs f0, 0x38(r31)
+/* 802634B8 002603F8 EC 01 00 24 */ fdivs f0, f1, f0
+/* 802634BC 002603FC D0 1F 00 3C */ stfs f0, 0x3c(r31)
+lbl_802634C0:
+/* 802634C0 00260400 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802634C4 00260404 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802634C8 00260408 7C 08 03 A6 */ mtlr r0
+/* 802634CC 0026040C 38 21 00 10 */ addi r1, r1, 0x10
+/* 802634D0 00260410 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_802634D4.s b/include/SComponent/c_cc_d/asm/func_802634D4.s
new file mode 100644
index 0000000000..62a2cd6675
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802634D4.s
@@ -0,0 +1,126 @@
+/* 802634D4 00260414 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802634D8 00260418 7C 08 02 A6 */ mflr r0
+/* 802634DC 0026041C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802634E0 00260420 28 06 00 00 */ cmplwi r6, 0
+/* 802634E4 00260424 41 82 00 1C */ beq lbl_80263500
+/* 802634E8 00260428 7C 83 23 78 */ mr r3, r4
+/* 802634EC 0026042C 38 80 FF FF */ li r4, -1
+/* 802634F0 00260430 38 A0 FF FF */ li r5, -1
+/* 802634F4 00260434 38 C0 FF FF */ li r6, -1
+/* 802634F8 00260438 4B FF FE 61 */ bl Set__15cCcD_DivideInfoFUlUlUl
+/* 802634FC 0026043C 48 00 01 94 */ b lbl_80263690
+lbl_80263500:
+/* 80263500 00260440 88 03 00 1C */ lbz r0, 0x1c(r3)
+/* 80263504 00260444 28 00 00 00 */ cmplwi r0, 0
+/* 80263508 00260448 40 82 00 74 */ bne lbl_8026357C
+/* 8026350C 0026044C C0 43 00 24 */ lfs f2, 0x24(r3)
+/* 80263510 00260450 C0 05 00 00 */ lfs f0, 0(r5)
+/* 80263514 00260454 C0 23 00 00 */ lfs f1, 0(r3)
+/* 80263518 00260458 EC 00 08 28 */ fsubs f0, f0, f1
+/* 8026351C 0026045C EC 02 00 32 */ fmuls f0, f2, f0
+/* 80263520 00260460 FC 00 00 1E */ fctiwz f0, f0
+/* 80263524 00260464 D8 01 00 08 */ stfd f0, 8(r1)
+/* 80263528 00260468 81 01 00 0C */ lwz r8, 0xc(r1)
+/* 8026352C 0026046C C0 05 00 0C */ lfs f0, 0xc(r5)
+/* 80263530 00260470 EC 00 08 28 */ fsubs f0, f0, f1
+/* 80263534 00260474 EC 02 00 32 */ fmuls f0, f2, f0
+/* 80263538 00260478 FC 00 00 1E */ fctiwz f0, f0
+/* 8026353C 0026047C D8 01 00 10 */ stfd f0, 0x10(r1)
+/* 80263540 00260480 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80263544 00260484 2C 00 00 1F */ cmpwi r0, 0x1f
+/* 80263548 00260488 40 81 00 08 */ ble lbl_80263550
+/* 8026354C 0026048C 38 00 00 1F */ li r0, 0x1f
+lbl_80263550:
+/* 80263550 00260490 54 00 10 3A */ slwi r0, r0, 2
+/* 80263554 00260494 3C C0 80 3A */ lis r6, lbl_8039A7E8@ha
+/* 80263558 00260498 38 C6 A7 E8 */ addi r6, r6, lbl_8039A7E8@l
+/* 8026355C 0026049C 7C E6 00 2E */ lwzx r7, r6, r0
+/* 80263560 002604A0 2C 08 00 00 */ cmpwi r8, 0
+/* 80263564 002604A4 40 81 00 1C */ ble lbl_80263580
+/* 80263568 002604A8 38 08 FF FF */ addi r0, r8, -1
+/* 8026356C 002604AC 54 00 10 3A */ slwi r0, r0, 2
+/* 80263570 002604B0 7C 06 00 2E */ lwzx r0, r6, r0
+/* 80263574 002604B4 7C E7 00 78 */ andc r7, r7, r0
+/* 80263578 002604B8 48 00 00 08 */ b lbl_80263580
+lbl_8026357C:
+/* 8026357C 002604BC 38 E0 FF FF */ li r7, -1
+lbl_80263580:
+/* 80263580 002604C0 88 03 00 28 */ lbz r0, 0x28(r3)
+/* 80263584 002604C4 28 00 00 00 */ cmplwi r0, 0
+/* 80263588 002604C8 40 82 00 74 */ bne lbl_802635FC
+/* 8026358C 002604CC C0 43 00 30 */ lfs f2, 0x30(r3)
+/* 80263590 002604D0 C0 05 00 04 */ lfs f0, 4(r5)
+/* 80263594 002604D4 C0 23 00 04 */ lfs f1, 4(r3)
+/* 80263598 002604D8 EC 00 08 28 */ fsubs f0, f0, f1
+/* 8026359C 002604DC EC 02 00 32 */ fmuls f0, f2, f0
+/* 802635A0 002604E0 FC 00 00 1E */ fctiwz f0, f0
+/* 802635A4 002604E4 D8 01 00 10 */ stfd f0, 0x10(r1)
+/* 802635A8 002604E8 81 21 00 14 */ lwz r9, 0x14(r1)
+/* 802635AC 002604EC C0 05 00 10 */ lfs f0, 0x10(r5)
+/* 802635B0 002604F0 EC 00 08 28 */ fsubs f0, f0, f1
+/* 802635B4 002604F4 EC 02 00 32 */ fmuls f0, f2, f0
+/* 802635B8 002604F8 FC 00 00 1E */ fctiwz f0, f0
+/* 802635BC 002604FC D8 01 00 08 */ stfd f0, 8(r1)
+/* 802635C0 00260500 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 802635C4 00260504 2C 00 00 1F */ cmpwi r0, 0x1f
+/* 802635C8 00260508 40 81 00 08 */ ble lbl_802635D0
+/* 802635CC 0026050C 38 00 00 1F */ li r0, 0x1f
+lbl_802635D0:
+/* 802635D0 00260510 54 00 10 3A */ slwi r0, r0, 2
+/* 802635D4 00260514 3C C0 80 3A */ lis r6, lbl_8039A7E8@ha
+/* 802635D8 00260518 38 C6 A7 E8 */ addi r6, r6, lbl_8039A7E8@l
+/* 802635DC 0026051C 7D 06 00 2E */ lwzx r8, r6, r0
+/* 802635E0 00260520 2C 09 00 00 */ cmpwi r9, 0
+/* 802635E4 00260524 40 81 00 1C */ ble lbl_80263600
+/* 802635E8 00260528 38 09 FF FF */ addi r0, r9, -1
+/* 802635EC 0026052C 54 00 10 3A */ slwi r0, r0, 2
+/* 802635F0 00260530 7C 06 00 2E */ lwzx r0, r6, r0
+/* 802635F4 00260534 7D 08 00 78 */ andc r8, r8, r0
+/* 802635F8 00260538 48 00 00 08 */ b lbl_80263600
+lbl_802635FC:
+/* 802635FC 0026053C 39 00 FF FF */ li r8, -1
+lbl_80263600:
+/* 80263600 00260540 88 03 00 34 */ lbz r0, 0x34(r3)
+/* 80263604 00260544 28 00 00 00 */ cmplwi r0, 0
+/* 80263608 00260548 40 82 00 74 */ bne lbl_8026367C
+/* 8026360C 0026054C C0 43 00 3C */ lfs f2, 0x3c(r3)
+/* 80263610 00260550 C0 05 00 08 */ lfs f0, 8(r5)
+/* 80263614 00260554 C0 23 00 08 */ lfs f1, 8(r3)
+/* 80263618 00260558 EC 00 08 28 */ fsubs f0, f0, f1
+/* 8026361C 0026055C EC 02 00 32 */ fmuls f0, f2, f0
+/* 80263620 00260560 FC 00 00 1E */ fctiwz f0, f0
+/* 80263624 00260564 D8 01 00 10 */ stfd f0, 0x10(r1)
+/* 80263628 00260568 81 21 00 14 */ lwz r9, 0x14(r1)
+/* 8026362C 0026056C C0 05 00 14 */ lfs f0, 0x14(r5)
+/* 80263630 00260570 EC 00 08 28 */ fsubs f0, f0, f1
+/* 80263634 00260574 EC 02 00 32 */ fmuls f0, f2, f0
+/* 80263638 00260578 FC 00 00 1E */ fctiwz f0, f0
+/* 8026363C 0026057C D8 01 00 08 */ stfd f0, 8(r1)
+/* 80263640 00260580 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 80263644 00260584 2C 00 00 1F */ cmpwi r0, 0x1f
+/* 80263648 00260588 40 81 00 08 */ ble lbl_80263650
+/* 8026364C 0026058C 38 00 00 1F */ li r0, 0x1f
+lbl_80263650:
+/* 80263650 00260590 54 00 10 3A */ slwi r0, r0, 2
+/* 80263654 00260594 3C 60 80 3A */ lis r3, lbl_8039A7E8@ha
+/* 80263658 00260598 38 63 A7 E8 */ addi r3, r3, lbl_8039A7E8@l
+/* 8026365C 0026059C 7C C3 00 2E */ lwzx r6, r3, r0
+/* 80263660 002605A0 2C 09 00 00 */ cmpwi r9, 0
+/* 80263664 002605A4 40 81 00 1C */ ble lbl_80263680
+/* 80263668 002605A8 38 09 FF FF */ addi r0, r9, -1
+/* 8026366C 002605AC 54 00 10 3A */ slwi r0, r0, 2
+/* 80263670 002605B0 7C 03 00 2E */ lwzx r0, r3, r0
+/* 80263674 002605B4 7C C6 00 78 */ andc r6, r6, r0
+/* 80263678 002605B8 48 00 00 08 */ b lbl_80263680
+lbl_8026367C:
+/* 8026367C 002605BC 38 C0 FF FF */ li r6, -1
+lbl_80263680:
+/* 80263680 002605C0 7C 83 23 78 */ mr r3, r4
+/* 80263684 002605C4 7C E4 3B 78 */ mr r4, r7
+/* 80263688 002605C8 7D 05 43 78 */ mr r5, r8
+/* 8026368C 002605CC 4B FF FC CD */ bl Set__15cCcD_DivideInfoFUlUlUl
+lbl_80263690:
+/* 80263690 002605D0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80263694 002605D4 7C 08 03 A6 */ mtlr r0
+/* 80263698 002605D8 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026369C 002605DC 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_802636A0.s b/include/SComponent/c_cc_d/asm/func_802636A0.s
new file mode 100644
index 0000000000..edd447afb8
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802636A0.s
@@ -0,0 +1,140 @@
+/* 802636A0 002605E0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802636A4 002605E4 7C 08 02 A6 */ mflr r0
+/* 802636A8 002605E8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802636AC 002605EC 88 03 00 1C */ lbz r0, 0x1c(r3)
+/* 802636B0 002605F0 28 00 00 00 */ cmplwi r0, 0
+/* 802636B4 002605F4 40 82 00 8C */ bne lbl_80263740
+/* 802636B8 002605F8 C0 43 00 24 */ lfs f2, 0x24(r3)
+/* 802636BC 002605FC C0 05 00 00 */ lfs f0, 0(r5)
+/* 802636C0 00260600 C0 23 00 00 */ lfs f1, 0(r3)
+/* 802636C4 00260604 EC 00 08 28 */ fsubs f0, f0, f1
+/* 802636C8 00260608 EC 02 00 32 */ fmuls f0, f2, f0
+/* 802636CC 0026060C FC 00 00 1E */ fctiwz f0, f0
+/* 802636D0 00260610 D8 01 00 08 */ stfd f0, 8(r1)
+/* 802636D4 00260614 81 01 00 0C */ lwz r8, 0xc(r1)
+/* 802636D8 00260618 C0 05 00 0C */ lfs f0, 0xc(r5)
+/* 802636DC 0026061C EC 00 08 28 */ fsubs f0, f0, f1
+/* 802636E0 00260620 EC 02 00 32 */ fmuls f0, f2, f0
+/* 802636E4 00260624 FC 00 00 1E */ fctiwz f0, f0
+/* 802636E8 00260628 D8 01 00 10 */ stfd f0, 0x10(r1)
+/* 802636EC 0026062C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802636F0 00260630 2C 00 00 00 */ cmpwi r0, 0
+/* 802636F4 00260634 41 80 00 0C */ blt lbl_80263700
+/* 802636F8 00260638 2C 08 00 1F */ cmpwi r8, 0x1f
+/* 802636FC 0026063C 40 81 00 0C */ ble lbl_80263708
+lbl_80263700:
+/* 80263700 00260640 38 E0 00 00 */ li r7, 0
+/* 80263704 00260644 48 00 00 40 */ b lbl_80263744
+lbl_80263708:
+/* 80263708 00260648 2C 00 00 1F */ cmpwi r0, 0x1f
+/* 8026370C 0026064C 40 81 00 08 */ ble lbl_80263714
+/* 80263710 00260650 38 00 00 1F */ li r0, 0x1f
+lbl_80263714:
+/* 80263714 00260654 54 00 10 3A */ slwi r0, r0, 2
+/* 80263718 00260658 3C C0 80 3A */ lis r6, lbl_8039A7E8@ha
+/* 8026371C 0026065C 38 C6 A7 E8 */ addi r6, r6, lbl_8039A7E8@l
+/* 80263720 00260660 7C E6 00 2E */ lwzx r7, r6, r0
+/* 80263724 00260664 2C 08 00 00 */ cmpwi r8, 0
+/* 80263728 00260668 40 81 00 1C */ ble lbl_80263744
+/* 8026372C 0026066C 38 08 FF FF */ addi r0, r8, -1
+/* 80263730 00260670 54 00 10 3A */ slwi r0, r0, 2
+/* 80263734 00260674 7C 06 00 2E */ lwzx r0, r6, r0
+/* 80263738 00260678 7C E7 00 78 */ andc r7, r7, r0
+/* 8026373C 0026067C 48 00 00 08 */ b lbl_80263744
+lbl_80263740:
+/* 80263740 00260680 38 E0 FF FF */ li r7, -1
+lbl_80263744:
+/* 80263744 00260684 88 03 00 28 */ lbz r0, 0x28(r3)
+/* 80263748 00260688 28 00 00 00 */ cmplwi r0, 0
+/* 8026374C 0026068C 40 82 00 8C */ bne lbl_802637D8
+/* 80263750 00260690 C0 43 00 30 */ lfs f2, 0x30(r3)
+/* 80263754 00260694 C0 05 00 04 */ lfs f0, 4(r5)
+/* 80263758 00260698 C0 23 00 04 */ lfs f1, 4(r3)
+/* 8026375C 0026069C EC 00 08 28 */ fsubs f0, f0, f1
+/* 80263760 002606A0 EC 02 00 32 */ fmuls f0, f2, f0
+/* 80263764 002606A4 FC 00 00 1E */ fctiwz f0, f0
+/* 80263768 002606A8 D8 01 00 10 */ stfd f0, 0x10(r1)
+/* 8026376C 002606AC 81 21 00 14 */ lwz r9, 0x14(r1)
+/* 80263770 002606B0 C0 05 00 10 */ lfs f0, 0x10(r5)
+/* 80263774 002606B4 EC 00 08 28 */ fsubs f0, f0, f1
+/* 80263778 002606B8 EC 02 00 32 */ fmuls f0, f2, f0
+/* 8026377C 002606BC FC 00 00 1E */ fctiwz f0, f0
+/* 80263780 002606C0 D8 01 00 08 */ stfd f0, 8(r1)
+/* 80263784 002606C4 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 80263788 002606C8 2C 00 00 00 */ cmpwi r0, 0
+/* 8026378C 002606CC 41 80 00 0C */ blt lbl_80263798
+/* 80263790 002606D0 2C 09 00 1F */ cmpwi r9, 0x1f
+/* 80263794 002606D4 40 81 00 0C */ ble lbl_802637A0
+lbl_80263798:
+/* 80263798 002606D8 39 00 00 00 */ li r8, 0
+/* 8026379C 002606DC 48 00 00 40 */ b lbl_802637DC
+lbl_802637A0:
+/* 802637A0 002606E0 2C 00 00 1F */ cmpwi r0, 0x1f
+/* 802637A4 002606E4 40 81 00 08 */ ble lbl_802637AC
+/* 802637A8 002606E8 38 00 00 1F */ li r0, 0x1f
+lbl_802637AC:
+/* 802637AC 002606EC 54 00 10 3A */ slwi r0, r0, 2
+/* 802637B0 002606F0 3C C0 80 3A */ lis r6, lbl_8039A7E8@ha
+/* 802637B4 002606F4 38 C6 A7 E8 */ addi r6, r6, lbl_8039A7E8@l
+/* 802637B8 002606F8 7D 06 00 2E */ lwzx r8, r6, r0
+/* 802637BC 002606FC 2C 09 00 00 */ cmpwi r9, 0
+/* 802637C0 00260700 40 81 00 1C */ ble lbl_802637DC
+/* 802637C4 00260704 38 09 FF FF */ addi r0, r9, -1
+/* 802637C8 00260708 54 00 10 3A */ slwi r0, r0, 2
+/* 802637CC 0026070C 7C 06 00 2E */ lwzx r0, r6, r0
+/* 802637D0 00260710 7D 08 00 78 */ andc r8, r8, r0
+/* 802637D4 00260714 48 00 00 08 */ b lbl_802637DC
+lbl_802637D8:
+/* 802637D8 00260718 39 00 FF FF */ li r8, -1
+lbl_802637DC:
+/* 802637DC 0026071C 88 03 00 34 */ lbz r0, 0x34(r3)
+/* 802637E0 00260720 28 00 00 00 */ cmplwi r0, 0
+/* 802637E4 00260724 40 82 00 8C */ bne lbl_80263870
+/* 802637E8 00260728 C0 43 00 3C */ lfs f2, 0x3c(r3)
+/* 802637EC 0026072C C0 05 00 08 */ lfs f0, 8(r5)
+/* 802637F0 00260730 C0 23 00 08 */ lfs f1, 8(r3)
+/* 802637F4 00260734 EC 00 08 28 */ fsubs f0, f0, f1
+/* 802637F8 00260738 EC 02 00 32 */ fmuls f0, f2, f0
+/* 802637FC 0026073C FC 00 00 1E */ fctiwz f0, f0
+/* 80263800 00260740 D8 01 00 10 */ stfd f0, 0x10(r1)
+/* 80263804 00260744 81 21 00 14 */ lwz r9, 0x14(r1)
+/* 80263808 00260748 C0 05 00 14 */ lfs f0, 0x14(r5)
+/* 8026380C 0026074C EC 00 08 28 */ fsubs f0, f0, f1
+/* 80263810 00260750 EC 02 00 32 */ fmuls f0, f2, f0
+/* 80263814 00260754 FC 00 00 1E */ fctiwz f0, f0
+/* 80263818 00260758 D8 01 00 08 */ stfd f0, 8(r1)
+/* 8026381C 0026075C 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 80263820 00260760 2C 00 00 00 */ cmpwi r0, 0
+/* 80263824 00260764 41 80 00 0C */ blt lbl_80263830
+/* 80263828 00260768 2C 09 00 1F */ cmpwi r9, 0x1f
+/* 8026382C 0026076C 40 81 00 0C */ ble lbl_80263838
+lbl_80263830:
+/* 80263830 00260770 38 C0 00 00 */ li r6, 0
+/* 80263834 00260774 48 00 00 40 */ b lbl_80263874
+lbl_80263838:
+/* 80263838 00260778 2C 00 00 1F */ cmpwi r0, 0x1f
+/* 8026383C 0026077C 40 81 00 08 */ ble lbl_80263844
+/* 80263840 00260780 38 00 00 1F */ li r0, 0x1f
+lbl_80263844:
+/* 80263844 00260784 54 00 10 3A */ slwi r0, r0, 2
+/* 80263848 00260788 3C 60 80 3A */ lis r3, lbl_8039A7E8@ha
+/* 8026384C 0026078C 38 63 A7 E8 */ addi r3, r3, lbl_8039A7E8@l
+/* 80263850 00260790 7C C3 00 2E */ lwzx r6, r3, r0
+/* 80263854 00260794 2C 09 00 00 */ cmpwi r9, 0
+/* 80263858 00260798 40 81 00 1C */ ble lbl_80263874
+/* 8026385C 0026079C 38 09 FF FF */ addi r0, r9, -1
+/* 80263860 002607A0 54 00 10 3A */ slwi r0, r0, 2
+/* 80263864 002607A4 7C 03 00 2E */ lwzx r0, r3, r0
+/* 80263868 002607A8 7C C6 00 78 */ andc r6, r6, r0
+/* 8026386C 002607AC 48 00 00 08 */ b lbl_80263874
+lbl_80263870:
+/* 80263870 002607B0 38 C0 FF FF */ li r6, -1
+lbl_80263874:
+/* 80263874 002607B4 7C 83 23 78 */ mr r3, r4
+/* 80263878 002607B8 7C E4 3B 78 */ mr r4, r7
+/* 8026387C 002607BC 7D 05 43 78 */ mr r5, r8
+/* 80263880 002607C0 4B FF FA D9 */ bl Set__15cCcD_DivideInfoFUlUlUl
+/* 80263884 002607C4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80263888 002607C8 7C 08 03 A6 */ mtlr r0
+/* 8026388C 002607CC 38 21 00 20 */ addi r1, r1, 0x20
+/* 80263890 002607D0 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80263894.s b/include/SComponent/c_cc_d/asm/func_80263894.s
new file mode 100644
index 0000000000..10e36b2bf4
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263894.s
@@ -0,0 +1,2 @@
+/* 80263894 002607D4 38 60 00 00 */ li r3, 0
+/* 80263898 002607D8 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_8026389C.s b/include/SComponent/c_cc_d/asm/func_8026389C.s
new file mode 100644
index 0000000000..8dbb147c92
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_8026389C.s
@@ -0,0 +1,2 @@
+/* 8026389C 002607DC 38 60 00 00 */ li r3, 0
+/* 802638A0 002607E0 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_802638A4.s b/include/SComponent/c_cc_d/asm/func_802638A4.s
new file mode 100644
index 0000000000..32c526f467
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802638A4.s
@@ -0,0 +1,24 @@
+/* 802638A4 002607E4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802638A8 002607E8 7C 08 02 A6 */ mflr r0
+/* 802638AC 002607EC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802638B0 002607F0 39 61 00 20 */ addi r11, r1, 0x20
+/* 802638B4 002607F4 48 0F E9 21 */ bl _savegpr_27
+/* 802638B8 002607F8 7C 7B 1B 78 */ mr r27, r3
+/* 802638BC 002607FC 7C 9C 23 78 */ mr r28, r4
+/* 802638C0 00260800 7C BD 2B 78 */ mr r29, r5
+/* 802638C4 00260804 7C DE 33 78 */ mr r30, r6
+/* 802638C8 00260808 7C FF 3B 78 */ mr r31, r7
+/* 802638CC 0026080C 81 83 00 18 */ lwz r12, 0x18(r3)
+/* 802638D0 00260810 81 8C 00 14 */ lwz r12, 0x14(r12)
+/* 802638D4 00260814 7D 89 03 A6 */ mtctr r12
+/* 802638D8 00260818 4E 80 04 21 */ bctrl
+/* 802638DC 0026081C 9B 9B 00 14 */ stb r28, 0x14(r27)
+/* 802638E0 00260820 9B BB 00 15 */ stb r29, 0x15(r27)
+/* 802638E4 00260824 93 DB 00 0C */ stw r30, 0xc(r27)
+/* 802638E8 00260828 93 FB 00 10 */ stw r31, 0x10(r27)
+/* 802638EC 0026082C 39 61 00 20 */ addi r11, r1, 0x20
+/* 802638F0 00260830 48 0F E9 31 */ bl _restgpr_27
+/* 802638F4 00260834 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802638F8 00260838 7C 08 03 A6 */ mtlr r0
+/* 802638FC 0026083C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80263900 00260840 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_80263904.s b/include/SComponent/c_cc_d/asm/func_80263904.s
new file mode 100644
index 0000000000..14ebeb4aae
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263904.s
@@ -0,0 +1,12 @@
+/* 80263904 00260844 C0 02 B6 20 */ lfs f0, lbl_80455020-_SDA2_BASE_(r2)
+/* 80263908 00260848 D0 03 00 00 */ stfs f0, 0(r3)
+/* 8026390C 0026084C D0 03 00 04 */ stfs f0, 4(r3)
+/* 80263910 00260850 D0 03 00 08 */ stfs f0, 8(r3)
+/* 80263914 00260854 38 80 00 00 */ li r4, 0
+/* 80263918 00260858 90 83 00 0C */ stw r4, 0xc(r3)
+/* 8026391C 0026085C 38 00 FF FF */ li r0, -1
+/* 80263920 00260860 90 03 00 10 */ stw r0, 0x10(r3)
+/* 80263924 00260864 98 83 00 14 */ stb r4, 0x14(r3)
+/* 80263928 00260868 98 83 00 15 */ stb r4, 0x15(r3)
+/* 8026392C 0026086C 98 83 00 16 */ stb r4, 0x16(r3)
+/* 80263930 00260870 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_80263934.s b/include/SComponent/c_cc_d/asm/func_80263934.s
new file mode 100644
index 0000000000..dfd0af0a23
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263934.s
@@ -0,0 +1,10 @@
+/* 80263934 00260874 C0 03 00 00 */ lfs f0, 0(r3)
+/* 80263938 00260878 EC 00 08 2A */ fadds f0, f0, f1
+/* 8026393C 0026087C D0 03 00 00 */ stfs f0, 0(r3)
+/* 80263940 00260880 C0 03 00 04 */ lfs f0, 4(r3)
+/* 80263944 00260884 EC 00 10 2A */ fadds f0, f0, f2
+/* 80263948 00260888 D0 03 00 04 */ stfs f0, 4(r3)
+/* 8026394C 0026088C C0 03 00 08 */ lfs f0, 8(r3)
+/* 80263950 00260890 EC 00 18 2A */ fadds f0, f0, f3
+/* 80263954 00260894 D0 03 00 08 */ stfs f0, 8(r3)
+/* 80263958 00260898 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_8026395C.s b/include/SComponent/c_cc_d/asm/func_8026395C.s
new file mode 100644
index 0000000000..93a5fed983
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_8026395C.s
@@ -0,0 +1,5 @@
+/* 8026395C 0026089C C0 02 B6 20 */ lfs f0, lbl_80455020-_SDA2_BASE_(r2)
+/* 80263960 002608A0 D0 03 00 08 */ stfs f0, 8(r3)
+/* 80263964 002608A4 D0 03 00 04 */ stfs f0, 4(r3)
+/* 80263968 002608A8 D0 03 00 00 */ stfs f0, 0(r3)
+/* 8026396C 002608AC 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_80263970.s b/include/SComponent/c_cc_d/asm/func_80263970.s
new file mode 100644
index 0000000000..bebe66117c
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263970.s
@@ -0,0 +1,5 @@
+/* 80263970 002608B0 88 03 00 16 */ lbz r0, 0x16(r3)
+/* 80263974 002608B4 7C 00 20 00 */ cmpw r0, r4
+/* 80263978 002608B8 4C 80 00 20 */ bgelr
+/* 8026397C 002608BC 98 83 00 16 */ stb r4, 0x16(r3)
+/* 80263980 002608C0 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_80263984.s b/include/SComponent/c_cc_d/asm/func_80263984.s
new file mode 100644
index 0000000000..1a5bc06d53
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263984.s
@@ -0,0 +1,11 @@
+/* 80263984 002608C4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80263988 002608C8 88 03 00 14 */ lbz r0, 0x14(r3)
+/* 8026398C 002608CC C8 22 B6 28 */ lfd f1, lbl_80455028-_SDA2_BASE_(r2)
+/* 80263990 002608D0 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 80263994 002608D4 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80263998 002608D8 3C 00 43 30 */ lis r0, 0x4330
+/* 8026399C 002608DC 90 01 00 08 */ stw r0, 8(r1)
+/* 802639A0 002608E0 C8 01 00 08 */ lfd f0, 8(r1)
+/* 802639A4 002608E4 EC 20 08 28 */ fsubs f1, f0, f1
+/* 802639A8 002608E8 38 21 00 10 */ addi r1, r1, 0x10
+/* 802639AC 002608EC 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_802639B0.s b/include/SComponent/c_cc_d/asm/func_802639B0.s
new file mode 100644
index 0000000000..3501d64268
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802639B0.s
@@ -0,0 +1,5 @@
+/* 802639B0 002608F0 38 00 00 00 */ li r0, 0
+/* 802639B4 002608F4 90 03 00 00 */ stw r0, 0(r3)
+/* 802639B8 002608F8 90 03 00 04 */ stw r0, 4(r3)
+/* 802639BC 002608FC 90 03 00 08 */ stw r0, 8(r3)
+/* 802639C0 00260900 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_802639C4.s b/include/SComponent/c_cc_d/asm/func_802639C4.s
new file mode 100644
index 0000000000..a8f0461811
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802639C4.s
@@ -0,0 +1,19 @@
+/* 802639C4 00260904 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802639C8 00260908 7C 08 02 A6 */ mflr r0
+/* 802639CC 0026090C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802639D0 00260910 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802639D4 00260914 93 C1 00 08 */ stw r30, 8(r1)
+/* 802639D8 00260918 7C 7E 1B 78 */ mr r30, r3
+/* 802639DC 0026091C 7C 9F 23 78 */ mr r31, r4
+/* 802639E0 00260920 48 00 0E 6D */ bl Set__10cCcD_ObjAtFRC13cCcD_SrcObjAt
+/* 802639E4 00260924 38 7E 00 18 */ addi r3, r30, 0x18
+/* 802639E8 00260928 38 9F 00 0C */ addi r4, r31, 0xc
+/* 802639EC 0026092C 48 00 0E 95 */ bl Set__10cCcD_ObjTgFRC13cCcD_SrcObjTg
+/* 802639F0 00260930 80 1F 00 14 */ lwz r0, 0x14(r31)
+/* 802639F4 00260934 90 1E 00 2C */ stw r0, 0x2c(r30)
+/* 802639F8 00260938 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802639FC 0026093C 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80263A00 00260940 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80263A04 00260944 7C 08 03 A6 */ mtlr r0
+/* 80263A08 00260948 38 21 00 10 */ addi r1, r1, 0x10
+/* 80263A0C 0026094C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_80263A10.s b/include/SComponent/c_cc_d/asm/func_80263A10.s
new file mode 100644
index 0000000000..e87325751f
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263A10.s
@@ -0,0 +1,3 @@
+/* 80263A10 00260950 38 00 00 00 */ li r0, 0
+/* 80263A14 00260954 90 03 00 40 */ stw r0, 0x40(r3)
+/* 80263A18 00260958 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_80263A1C.s b/include/SComponent/c_cc_d/asm/func_80263A1C.s
new file mode 100644
index 0000000000..51a286da35
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263A1C.s
@@ -0,0 +1,11 @@
+/* 80263A1C 0026095C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80263A20 00260960 7C 08 02 A6 */ mflr r0
+/* 80263A24 00260964 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80263A28 00260968 80 04 00 00 */ lwz r0, 0(r4)
+/* 80263A2C 0026096C 90 03 00 40 */ stw r0, 0x40(r3)
+/* 80263A30 00260970 38 84 00 04 */ addi r4, r4, 4
+/* 80263A34 00260974 4B FF FF 91 */ bl Set__14cCcD_ObjHitInfFRC17cCcD_SrcObjHitInf
+/* 80263A38 00260978 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80263A3C 0026097C 7C 08 03 A6 */ mtlr r0
+/* 80263A40 00260980 38 21 00 10 */ addi r1, r1, 0x10
+/* 80263A44 00260984 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_80263A48.s b/include/SComponent/c_cc_d/asm/func_80263A48.s
new file mode 100644
index 0000000000..37db6b989b
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263A48.s
@@ -0,0 +1,8 @@
+/* 80263A48 00260988 80 63 00 44 */ lwz r3, 0x44(r3)
+/* 80263A4C 0026098C 28 03 00 00 */ cmplwi r3, 0
+/* 80263A50 00260990 40 82 00 0C */ bne lbl_80263A5C
+/* 80263A54 00260994 38 60 00 00 */ li r3, 0
+/* 80263A58 00260998 4E 80 00 20 */ blr
+lbl_80263A5C:
+/* 80263A5C 0026099C 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 80263A60 002609A0 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80263A64.s b/include/SComponent/c_cc_d/asm/func_80263A64.s
new file mode 100644
index 0000000000..0ef3957033
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263A64.s
@@ -0,0 +1,9 @@
+/* 80263A64 002609A4 38 00 00 02 */ li r0, 2
+/* 80263A68 002609A8 90 04 00 00 */ stw r0, 0(r4)
+/* 80263A6C 002609AC C0 02 B6 20 */ lfs f0, lbl_80455020-_SDA2_BASE_(r2)
+/* 80263A70 002609B0 D0 04 00 14 */ stfs f0, 0x14(r4)
+/* 80263A74 002609B4 D0 04 00 10 */ stfs f0, 0x10(r4)
+/* 80263A78 002609B8 D0 04 00 0C */ stfs f0, 0xc(r4)
+/* 80263A7C 002609BC D0 04 00 08 */ stfs f0, 8(r4)
+/* 80263A80 002609C0 D0 04 00 04 */ stfs f0, 4(r4)
+/* 80263A84 002609C4 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80263A88.s b/include/SComponent/c_cc_d/asm/func_80263A88.s
new file mode 100644
index 0000000000..dde715e254
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263A88.s
@@ -0,0 +1,52 @@
+/* 80263A88 002609C8 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80263A8C 002609CC 7C 08 02 A6 */ mflr r0
+/* 80263A90 002609D0 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80263A94 002609D4 3C C0 80 3A */ lis r6, lbl_803A37C0@ha
+/* 80263A98 002609D8 38 06 37 C0 */ addi r0, r6, lbl_803A37C0@l
+/* 80263A9C 002609DC 90 01 00 18 */ stw r0, 0x18(r1)
+/* 80263AA0 002609E0 C0 03 00 20 */ lfs f0, 0x20(r3)
+/* 80263AA4 002609E4 D0 01 00 08 */ stfs f0, 8(r1)
+/* 80263AA8 002609E8 C0 03 00 24 */ lfs f0, 0x24(r3)
+/* 80263AAC 002609EC D0 01 00 0C */ stfs f0, 0xc(r1)
+/* 80263AB0 002609F0 C0 03 00 28 */ lfs f0, 0x28(r3)
+/* 80263AB4 002609F4 D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 80263AB8 002609F8 C0 03 00 2C */ lfs f0, 0x2c(r3)
+/* 80263ABC 002609FC D0 01 00 14 */ stfs f0, 0x14(r1)
+/* 80263AC0 00260A00 3C C0 80 3B */ lis r6, lbl_803ABB84@ha
+/* 80263AC4 00260A04 38 06 BB 84 */ addi r0, r6, lbl_803ABB84@l
+/* 80263AC8 00260A08 90 01 00 18 */ stw r0, 0x18(r1)
+/* 80263ACC 00260A0C 80 C3 00 34 */ lwz r6, 0x34(r3)
+/* 80263AD0 00260A10 80 03 00 38 */ lwz r0, 0x38(r3)
+/* 80263AD4 00260A14 90 C1 00 1C */ stw r6, 0x1c(r1)
+/* 80263AD8 00260A18 90 01 00 20 */ stw r0, 0x20(r1)
+/* 80263ADC 00260A1C 80 03 00 3C */ lwz r0, 0x3c(r3)
+/* 80263AE0 00260A20 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80263AE4 00260A24 80 C3 00 40 */ lwz r6, 0x40(r3)
+/* 80263AE8 00260A28 80 03 00 44 */ lwz r0, 0x44(r3)
+/* 80263AEC 00260A2C 90 C1 00 28 */ stw r6, 0x28(r1)
+/* 80263AF0 00260A30 90 01 00 2C */ stw r0, 0x2c(r1)
+/* 80263AF4 00260A34 80 03 00 48 */ lwz r0, 0x48(r3)
+/* 80263AF8 00260A38 90 01 00 30 */ stw r0, 0x30(r1)
+/* 80263AFC 00260A3C 80 C3 00 4C */ lwz r6, 0x4c(r3)
+/* 80263B00 00260A40 80 03 00 50 */ lwz r0, 0x50(r3)
+/* 80263B04 00260A44 90 C1 00 34 */ stw r6, 0x34(r1)
+/* 80263B08 00260A48 90 01 00 38 */ stw r0, 0x38(r1)
+/* 80263B0C 00260A4C 80 03 00 54 */ lwz r0, 0x54(r3)
+/* 80263B10 00260A50 90 01 00 3C */ stw r0, 0x3c(r1)
+/* 80263B14 00260A54 38 64 00 20 */ addi r3, r4, 0x20
+/* 80263B18 00260A58 38 81 00 08 */ addi r4, r1, 8
+/* 80263B1C 00260A5C 48 00 A6 11 */ bl cM3d_Cross_CpsTri__FRC8cM3dGCps8cM3dGTriP3Vec
+/* 80263B20 00260A60 3C 80 80 3B */ lis r4, lbl_803ABB84@ha
+/* 80263B24 00260A64 38 04 BB 84 */ addi r0, r4, lbl_803ABB84@l
+/* 80263B28 00260A68 90 01 00 18 */ stw r0, 0x18(r1)
+/* 80263B2C 00260A6C 3C 80 80 3A */ lis r4, lbl_803A37C0@ha
+/* 80263B30 00260A70 38 04 37 C0 */ addi r0, r4, lbl_803A37C0@l
+/* 80263B34 00260A74 90 01 00 18 */ stw r0, 0x18(r1)
+/* 80263B38 00260A78 54 63 06 3E */ clrlwi r3, r3, 0x18
+/* 80263B3C 00260A7C 30 03 FF FF */ addic r0, r3, -1
+/* 80263B40 00260A80 7C 00 19 10 */ subfe r0, r0, r3
+/* 80263B44 00260A84 54 03 06 3E */ clrlwi r3, r0, 0x18
+/* 80263B48 00260A88 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80263B4C 00260A8C 7C 08 03 A6 */ mtlr r0
+/* 80263B50 00260A90 38 21 00 40 */ addi r1, r1, 0x40
+/* 80263B54 00260A94 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80263B58.s b/include/SComponent/c_cc_d/asm/func_80263B58.s
new file mode 100644
index 0000000000..f55c416cd3
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263B58.s
@@ -0,0 +1,14 @@
+/* 80263B58 00260A98 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80263B5C 00260A9C 7C 08 02 A6 */ mflr r0
+/* 80263B60 00260AA0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80263B64 00260AA4 38 63 00 20 */ addi r3, r3, 0x20
+/* 80263B68 00260AA8 38 84 00 20 */ addi r4, r4, 0x20
+/* 80263B6C 00260AAC 48 00 BC 45 */ bl cross__8cM3dGTriCFPC8cM3dGCylP3Vec
+/* 80263B70 00260AB0 54 63 06 3E */ clrlwi r3, r3, 0x18
+/* 80263B74 00260AB4 30 03 FF FF */ addic r0, r3, -1
+/* 80263B78 00260AB8 7C 00 19 10 */ subfe r0, r0, r3
+/* 80263B7C 00260ABC 54 03 06 3E */ clrlwi r3, r0, 0x18
+/* 80263B80 00260AC0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80263B84 00260AC4 7C 08 03 A6 */ mtlr r0
+/* 80263B88 00260AC8 38 21 00 10 */ addi r1, r1, 0x10
+/* 80263B8C 00260ACC 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80263B90.s b/include/SComponent/c_cc_d/asm/func_80263B90.s
new file mode 100644
index 0000000000..f5085dc0e2
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263B90.s
@@ -0,0 +1,15 @@
+/* 80263B90 00260AD0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80263B94 00260AD4 7C 08 02 A6 */ mflr r0
+/* 80263B98 00260AD8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80263B9C 00260ADC 7C 66 1B 78 */ mr r6, r3
+/* 80263BA0 00260AE0 38 64 00 20 */ addi r3, r4, 0x20
+/* 80263BA4 00260AE4 38 86 00 20 */ addi r4, r6, 0x20
+/* 80263BA8 00260AE8 48 00 83 5D */ bl cM3d_Cross_SphTri__FPC8cM3dGSphPC8cM3dGTriP3Vec
+/* 80263BAC 00260AEC 54 63 06 3E */ clrlwi r3, r3, 0x18
+/* 80263BB0 00260AF0 30 03 FF FF */ addic r0, r3, -1
+/* 80263BB4 00260AF4 7C 00 19 10 */ subfe r0, r0, r3
+/* 80263BB8 00260AF8 54 03 06 3E */ clrlwi r3, r0, 0x18
+/* 80263BBC 00260AFC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80263BC0 00260B00 7C 08 03 A6 */ mtlr r0
+/* 80263BC4 00260B04 38 21 00 10 */ addi r1, r1, 0x10
+/* 80263BC8 00260B08 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80263BCC.s b/include/SComponent/c_cc_d/asm/func_80263BCC.s
new file mode 100644
index 0000000000..450e8b0abb
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263BCC.s
@@ -0,0 +1,14 @@
+/* 80263BCC 00260B0C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80263BD0 00260B10 7C 08 02 A6 */ mflr r0
+/* 80263BD4 00260B14 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80263BD8 00260B18 38 63 00 20 */ addi r3, r3, 0x20
+/* 80263BDC 00260B1C 38 84 00 20 */ addi r4, r4, 0x20
+/* 80263BE0 00260B20 48 00 A2 4D */ bl cM3d_Cross_TriTri__FRC8cM3dGTriRC8cM3dGTriP3Vec
+/* 80263BE4 00260B24 54 63 06 3E */ clrlwi r3, r3, 0x18
+/* 80263BE8 00260B28 30 03 FF FF */ addic r0, r3, -1
+/* 80263BEC 00260B2C 7C 00 19 10 */ subfe r0, r0, r3
+/* 80263BF0 00260B30 54 03 06 3E */ clrlwi r3, r0, 0x18
+/* 80263BF4 00260B34 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80263BF8 00260B38 7C 08 03 A6 */ mtlr r0
+/* 80263BFC 00260B3C 38 21 00 10 */ addi r1, r1, 0x10
+/* 80263C00 00260B40 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80263C04.s b/include/SComponent/c_cc_d/asm/func_80263C04.s
new file mode 100644
index 0000000000..c6dfddb8b6
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263C04.s
@@ -0,0 +1,38 @@
+/* 80263C04 00260B44 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80263C08 00260B48 7C 08 02 A6 */ mflr r0
+/* 80263C0C 00260B4C 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80263C10 00260B50 93 E1 00 3C */ stw r31, 0x3c(r1)
+/* 80263C14 00260B54 7C 7F 1B 78 */ mr r31, r3
+/* 80263C18 00260B58 48 00 B0 E1 */ bl ClearForMinMax__8cM3dGAabFv
+/* 80263C1C 00260B5C C0 1F 00 34 */ lfs f0, 0x34(r31)
+/* 80263C20 00260B60 D0 01 00 20 */ stfs f0, 0x20(r1)
+/* 80263C24 00260B64 C0 1F 00 38 */ lfs f0, 0x38(r31)
+/* 80263C28 00260B68 D0 01 00 24 */ stfs f0, 0x24(r1)
+/* 80263C2C 00260B6C C0 1F 00 3C */ lfs f0, 0x3c(r31)
+/* 80263C30 00260B70 D0 01 00 28 */ stfs f0, 0x28(r1)
+/* 80263C34 00260B74 7F E3 FB 78 */ mr r3, r31
+/* 80263C38 00260B78 38 81 00 20 */ addi r4, r1, 0x20
+/* 80263C3C 00260B7C 48 00 B0 E1 */ bl SetMinMax__8cM3dGAabFRC4cXyz
+/* 80263C40 00260B80 C0 1F 00 40 */ lfs f0, 0x40(r31)
+/* 80263C44 00260B84 D0 01 00 14 */ stfs f0, 0x14(r1)
+/* 80263C48 00260B88 C0 1F 00 44 */ lfs f0, 0x44(r31)
+/* 80263C4C 00260B8C D0 01 00 18 */ stfs f0, 0x18(r1)
+/* 80263C50 00260B90 C0 1F 00 48 */ lfs f0, 0x48(r31)
+/* 80263C54 00260B94 D0 01 00 1C */ stfs f0, 0x1c(r1)
+/* 80263C58 00260B98 7F E3 FB 78 */ mr r3, r31
+/* 80263C5C 00260B9C 38 81 00 14 */ addi r4, r1, 0x14
+/* 80263C60 00260BA0 48 00 B0 BD */ bl SetMinMax__8cM3dGAabFRC4cXyz
+/* 80263C64 00260BA4 C0 1F 00 4C */ lfs f0, 0x4c(r31)
+/* 80263C68 00260BA8 D0 01 00 08 */ stfs f0, 8(r1)
+/* 80263C6C 00260BAC C0 1F 00 50 */ lfs f0, 0x50(r31)
+/* 80263C70 00260BB0 D0 01 00 0C */ stfs f0, 0xc(r1)
+/* 80263C74 00260BB4 C0 1F 00 54 */ lfs f0, 0x54(r31)
+/* 80263C78 00260BB8 D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 80263C7C 00260BBC 7F E3 FB 78 */ mr r3, r31
+/* 80263C80 00260BC0 38 81 00 08 */ addi r4, r1, 8
+/* 80263C84 00260BC4 48 00 B0 99 */ bl SetMinMax__8cM3dGAabFRC4cXyz
+/* 80263C88 00260BC8 83 E1 00 3C */ lwz r31, 0x3c(r1)
+/* 80263C8C 00260BCC 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80263C90 00260BD0 7C 08 03 A6 */ mtlr r0
+/* 80263C94 00260BD4 38 21 00 40 */ addi r1, r1, 0x40
+/* 80263C98 00260BD8 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80263C9C.s b/include/SComponent/c_cc_d/asm/func_80263C9C.s
new file mode 100644
index 0000000000..f1c4930f14
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263C9C.s
@@ -0,0 +1,41 @@
+/* 80263C9C 00260BDC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80263CA0 00260BE0 7C 08 02 A6 */ mflr r0
+/* 80263CA4 00260BE4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80263CA8 00260BE8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80263CAC 00260BEC 93 C1 00 08 */ stw r30, 8(r1)
+/* 80263CB0 00260BF0 7C 7E 1B 78 */ mr r30, r3
+/* 80263CB4 00260BF4 7C BF 2B 78 */ mr r31, r5
+/* 80263CB8 00260BF8 38 7E 00 20 */ addi r3, r30, 0x20
+/* 80263CBC 00260BFC 48 0E 34 D9 */ bl PSVECDotProduct
+/* 80263CC0 00260C00 C0 1E 00 2C */ lfs f0, 0x2c(r30)
+/* 80263CC4 00260C04 EC 20 08 2A */ fadds f1, f0, f1
+/* 80263CC8 00260C08 C0 02 B6 20 */ lfs f0, lbl_80455020-_SDA2_BASE_(r2)
+/* 80263CCC 00260C0C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80263CD0 00260C10 4C 41 13 82 */ cror 2, 1, 2
+/* 80263CD4 00260C14 40 82 00 20 */ bne lbl_80263CF4
+/* 80263CD8 00260C18 C0 1E 00 20 */ lfs f0, 0x20(r30)
+/* 80263CDC 00260C1C D0 1F 00 00 */ stfs f0, 0(r31)
+/* 80263CE0 00260C20 C0 1E 00 24 */ lfs f0, 0x24(r30)
+/* 80263CE4 00260C24 D0 1F 00 04 */ stfs f0, 4(r31)
+/* 80263CE8 00260C28 C0 1E 00 28 */ lfs f0, 0x28(r30)
+/* 80263CEC 00260C2C D0 1F 00 08 */ stfs f0, 8(r31)
+/* 80263CF0 00260C30 48 00 00 2C */ b lbl_80263D1C
+lbl_80263CF4:
+/* 80263CF4 00260C34 C0 1E 00 20 */ lfs f0, 0x20(r30)
+/* 80263CF8 00260C38 D0 1F 00 00 */ stfs f0, 0(r31)
+/* 80263CFC 00260C3C C0 1E 00 24 */ lfs f0, 0x24(r30)
+/* 80263D00 00260C40 D0 1F 00 04 */ stfs f0, 4(r31)
+/* 80263D04 00260C44 C0 1E 00 28 */ lfs f0, 0x28(r30)
+/* 80263D08 00260C48 D0 1F 00 08 */ stfs f0, 8(r31)
+/* 80263D0C 00260C4C 7F E3 FB 78 */ mr r3, r31
+/* 80263D10 00260C50 7F E4 FB 78 */ mr r4, r31
+/* 80263D14 00260C54 C0 22 B6 30 */ lfs f1, lbl_80455030-_SDA2_BASE_(r2)
+/* 80263D18 00260C58 48 0E 33 C1 */ bl PSVECScale
+lbl_80263D1C:
+/* 80263D1C 00260C5C 38 60 00 01 */ li r3, 1
+/* 80263D20 00260C60 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80263D24 00260C64 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80263D28 00260C68 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80263D2C 00260C6C 7C 08 03 A6 */ mtlr r0
+/* 80263D30 00260C70 38 21 00 10 */ addi r1, r1, 0x10
+/* 80263D34 00260C74 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80263D38.s b/include/SComponent/c_cc_d/asm/func_80263D38.s
new file mode 100644
index 0000000000..b4db780606
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263D38.s
@@ -0,0 +1,20 @@
+/* 80263D38 00260C78 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80263D3C 00260C7C 7C 08 02 A6 */ mflr r0
+/* 80263D40 00260C80 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80263D44 00260C84 28 04 00 00 */ cmplwi r4, 0
+/* 80263D48 00260C88 41 82 00 08 */ beq lbl_80263D50
+/* 80263D4C 00260C8C 38 84 00 20 */ addi r4, r4, 0x20
+lbl_80263D50:
+/* 80263D50 00260C90 38 63 00 20 */ addi r3, r3, 0x20
+/* 80263D54 00260C94 48 00 93 C1 */ bl cM3d_Cross_CpsCps__FRC8cM3dGCpsRC8cM3dGCpsP3Vec
+/* 80263D58 00260C98 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80263D5C 00260C9C 41 82 00 0C */ beq lbl_80263D68
+/* 80263D60 00260CA0 38 60 00 01 */ li r3, 1
+/* 80263D64 00260CA4 48 00 00 08 */ b lbl_80263D6C
+lbl_80263D68:
+/* 80263D68 00260CA8 38 60 00 00 */ li r3, 0
+lbl_80263D6C:
+/* 80263D6C 00260CAC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80263D70 00260CB0 7C 08 03 A6 */ mtlr r0
+/* 80263D74 00260CB4 38 21 00 10 */ addi r1, r1, 0x10
+/* 80263D78 00260CB8 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80263D7C.s b/include/SComponent/c_cc_d/asm/func_80263D7C.s
new file mode 100644
index 0000000000..cc986237be
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263D7C.s
@@ -0,0 +1,20 @@
+/* 80263D7C 00260CBC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80263D80 00260CC0 7C 08 02 A6 */ mflr r0
+/* 80263D84 00260CC4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80263D88 00260CC8 28 04 00 00 */ cmplwi r4, 0
+/* 80263D8C 00260CCC 41 82 00 08 */ beq lbl_80263D94
+/* 80263D90 00260CD0 38 84 00 20 */ addi r4, r4, 0x20
+lbl_80263D94:
+/* 80263D94 00260CD4 38 63 00 20 */ addi r3, r3, 0x20
+/* 80263D98 00260CD8 48 00 96 3D */ bl cM3d_Cross_CpsCyl__FRC8cM3dGCpsRC8cM3dGCylP3Vec
+/* 80263D9C 00260CDC 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80263DA0 00260CE0 41 82 00 0C */ beq lbl_80263DAC
+/* 80263DA4 00260CE4 38 60 00 01 */ li r3, 1
+/* 80263DA8 00260CE8 48 00 00 08 */ b lbl_80263DB0
+lbl_80263DAC:
+/* 80263DAC 00260CEC 38 60 00 00 */ li r3, 0
+lbl_80263DB0:
+/* 80263DB0 00260CF0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80263DB4 00260CF4 7C 08 03 A6 */ mtlr r0
+/* 80263DB8 00260CF8 38 21 00 10 */ addi r1, r1, 0x10
+/* 80263DBC 00260CFC 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80263DC0.s b/include/SComponent/c_cc_d/asm/func_80263DC0.s
new file mode 100644
index 0000000000..198f525f61
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263DC0.s
@@ -0,0 +1,20 @@
+/* 80263DC0 00260D00 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80263DC4 00260D04 7C 08 02 A6 */ mflr r0
+/* 80263DC8 00260D08 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80263DCC 00260D0C 28 04 00 00 */ cmplwi r4, 0
+/* 80263DD0 00260D10 41 82 00 08 */ beq lbl_80263DD8
+/* 80263DD4 00260D14 38 84 00 20 */ addi r4, r4, 0x20
+lbl_80263DD8:
+/* 80263DD8 00260D18 38 63 00 20 */ addi r3, r3, 0x20
+/* 80263DDC 00260D1C 48 00 9E 61 */ bl cM3d_Cross_CpsSph__FRC8cM3dGCpsRC8cM3dGSphP3Vec
+/* 80263DE0 00260D20 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80263DE4 00260D24 41 82 00 0C */ beq lbl_80263DF0
+/* 80263DE8 00260D28 38 60 00 01 */ li r3, 1
+/* 80263DEC 00260D2C 48 00 00 08 */ b lbl_80263DF4
+lbl_80263DF0:
+/* 80263DF0 00260D30 38 60 00 00 */ li r3, 0
+lbl_80263DF4:
+/* 80263DF4 00260D34 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80263DF8 00260D38 7C 08 03 A6 */ mtlr r0
+/* 80263DFC 00260D3C 38 21 00 10 */ addi r1, r1, 0x10
+/* 80263E00 00260D40 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80263E04.s b/include/SComponent/c_cc_d/asm/func_80263E04.s
new file mode 100644
index 0000000000..0e1a207f44
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263E04.s
@@ -0,0 +1,52 @@
+/* 80263E04 00260D44 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80263E08 00260D48 7C 08 02 A6 */ mflr r0
+/* 80263E0C 00260D4C 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80263E10 00260D50 3C C0 80 3A */ lis r6, lbl_803A37C0@ha
+/* 80263E14 00260D54 38 06 37 C0 */ addi r0, r6, lbl_803A37C0@l
+/* 80263E18 00260D58 90 01 00 18 */ stw r0, 0x18(r1)
+/* 80263E1C 00260D5C C0 04 00 20 */ lfs f0, 0x20(r4)
+/* 80263E20 00260D60 D0 01 00 08 */ stfs f0, 8(r1)
+/* 80263E24 00260D64 C0 04 00 24 */ lfs f0, 0x24(r4)
+/* 80263E28 00260D68 D0 01 00 0C */ stfs f0, 0xc(r1)
+/* 80263E2C 00260D6C C0 04 00 28 */ lfs f0, 0x28(r4)
+/* 80263E30 00260D70 D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 80263E34 00260D74 C0 04 00 2C */ lfs f0, 0x2c(r4)
+/* 80263E38 00260D78 D0 01 00 14 */ stfs f0, 0x14(r1)
+/* 80263E3C 00260D7C 3C C0 80 3B */ lis r6, lbl_803ABB84@ha
+/* 80263E40 00260D80 38 06 BB 84 */ addi r0, r6, lbl_803ABB84@l
+/* 80263E44 00260D84 90 01 00 18 */ stw r0, 0x18(r1)
+/* 80263E48 00260D88 80 C4 00 34 */ lwz r6, 0x34(r4)
+/* 80263E4C 00260D8C 80 04 00 38 */ lwz r0, 0x38(r4)
+/* 80263E50 00260D90 90 C1 00 1C */ stw r6, 0x1c(r1)
+/* 80263E54 00260D94 90 01 00 20 */ stw r0, 0x20(r1)
+/* 80263E58 00260D98 80 04 00 3C */ lwz r0, 0x3c(r4)
+/* 80263E5C 00260D9C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80263E60 00260DA0 80 C4 00 40 */ lwz r6, 0x40(r4)
+/* 80263E64 00260DA4 80 04 00 44 */ lwz r0, 0x44(r4)
+/* 80263E68 00260DA8 90 C1 00 28 */ stw r6, 0x28(r1)
+/* 80263E6C 00260DAC 90 01 00 2C */ stw r0, 0x2c(r1)
+/* 80263E70 00260DB0 80 04 00 48 */ lwz r0, 0x48(r4)
+/* 80263E74 00260DB4 90 01 00 30 */ stw r0, 0x30(r1)
+/* 80263E78 00260DB8 80 C4 00 4C */ lwz r6, 0x4c(r4)
+/* 80263E7C 00260DBC 80 04 00 50 */ lwz r0, 0x50(r4)
+/* 80263E80 00260DC0 90 C1 00 34 */ stw r6, 0x34(r1)
+/* 80263E84 00260DC4 90 01 00 38 */ stw r0, 0x38(r1)
+/* 80263E88 00260DC8 80 04 00 54 */ lwz r0, 0x54(r4)
+/* 80263E8C 00260DCC 90 01 00 3C */ stw r0, 0x3c(r1)
+/* 80263E90 00260DD0 38 63 00 20 */ addi r3, r3, 0x20
+/* 80263E94 00260DD4 38 81 00 08 */ addi r4, r1, 8
+/* 80263E98 00260DD8 48 00 A2 95 */ bl cM3d_Cross_CpsTri__FRC8cM3dGCps8cM3dGTriP3Vec
+/* 80263E9C 00260DDC 3C 80 80 3B */ lis r4, lbl_803ABB84@ha
+/* 80263EA0 00260DE0 38 04 BB 84 */ addi r0, r4, lbl_803ABB84@l
+/* 80263EA4 00260DE4 90 01 00 18 */ stw r0, 0x18(r1)
+/* 80263EA8 00260DE8 3C 80 80 3A */ lis r4, lbl_803A37C0@ha
+/* 80263EAC 00260DEC 38 04 37 C0 */ addi r0, r4, lbl_803A37C0@l
+/* 80263EB0 00260DF0 90 01 00 18 */ stw r0, 0x18(r1)
+/* 80263EB4 00260DF4 54 63 06 3E */ clrlwi r3, r3, 0x18
+/* 80263EB8 00260DF8 30 03 FF FF */ addic r0, r3, -1
+/* 80263EBC 00260DFC 7C 00 19 10 */ subfe r0, r0, r3
+/* 80263EC0 00260E00 54 03 06 3E */ clrlwi r3, r0, 0x18
+/* 80263EC4 00260E04 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80263EC8 00260E08 7C 08 03 A6 */ mtlr r0
+/* 80263ECC 00260E0C 38 21 00 40 */ addi r1, r1, 0x40
+/* 80263ED0 00260E10 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80263ED4.s b/include/SComponent/c_cc_d/asm/func_80263ED4.s
new file mode 100644
index 0000000000..6bd1c4df2b
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263ED4.s
@@ -0,0 +1,23 @@
+/* 80263ED4 00260E14 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80263ED8 00260E18 7C 08 02 A6 */ mflr r0
+/* 80263EDC 00260E1C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80263EE0 00260E20 C0 02 B6 20 */ lfs f0, lbl_80455020-_SDA2_BASE_(r2)
+/* 80263EE4 00260E24 D0 05 00 00 */ stfs f0, 0(r5)
+/* 80263EE8 00260E28 28 04 00 00 */ cmplwi r4, 0
+/* 80263EEC 00260E2C 41 82 00 08 */ beq lbl_80263EF4
+/* 80263EF0 00260E30 38 84 00 20 */ addi r4, r4, 0x20
+lbl_80263EF4:
+/* 80263EF4 00260E34 38 63 00 20 */ addi r3, r3, 0x20
+/* 80263EF8 00260E38 38 A1 00 08 */ addi r5, r1, 8
+/* 80263EFC 00260E3C 48 00 92 19 */ bl cM3d_Cross_CpsCps__FRC8cM3dGCpsRC8cM3dGCpsP3Vec
+/* 80263F00 00260E40 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80263F04 00260E44 41 82 00 0C */ beq lbl_80263F10
+/* 80263F08 00260E48 38 60 00 01 */ li r3, 1
+/* 80263F0C 00260E4C 48 00 00 08 */ b lbl_80263F14
+lbl_80263F10:
+/* 80263F10 00260E50 38 60 00 00 */ li r3, 0
+lbl_80263F14:
+/* 80263F14 00260E54 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80263F18 00260E58 7C 08 03 A6 */ mtlr r0
+/* 80263F1C 00260E5C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80263F20 00260E60 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80263F24.s b/include/SComponent/c_cc_d/asm/func_80263F24.s
new file mode 100644
index 0000000000..6f01f252f3
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263F24.s
@@ -0,0 +1,23 @@
+/* 80263F24 00260E64 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80263F28 00260E68 7C 08 02 A6 */ mflr r0
+/* 80263F2C 00260E6C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80263F30 00260E70 C0 02 B6 20 */ lfs f0, lbl_80455020-_SDA2_BASE_(r2)
+/* 80263F34 00260E74 D0 05 00 00 */ stfs f0, 0(r5)
+/* 80263F38 00260E78 28 04 00 00 */ cmplwi r4, 0
+/* 80263F3C 00260E7C 41 82 00 08 */ beq lbl_80263F44
+/* 80263F40 00260E80 38 84 00 20 */ addi r4, r4, 0x20
+lbl_80263F44:
+/* 80263F44 00260E84 38 63 00 20 */ addi r3, r3, 0x20
+/* 80263F48 00260E88 38 A1 00 08 */ addi r5, r1, 8
+/* 80263F4C 00260E8C 48 00 94 89 */ bl cM3d_Cross_CpsCyl__FRC8cM3dGCpsRC8cM3dGCylP3Vec
+/* 80263F50 00260E90 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80263F54 00260E94 41 82 00 0C */ beq lbl_80263F60
+/* 80263F58 00260E98 38 60 00 01 */ li r3, 1
+/* 80263F5C 00260E9C 48 00 00 08 */ b lbl_80263F64
+lbl_80263F60:
+/* 80263F60 00260EA0 38 60 00 00 */ li r3, 0
+lbl_80263F64:
+/* 80263F64 00260EA4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80263F68 00260EA8 7C 08 03 A6 */ mtlr r0
+/* 80263F6C 00260EAC 38 21 00 20 */ addi r1, r1, 0x20
+/* 80263F70 00260EB0 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80263F74.s b/include/SComponent/c_cc_d/asm/func_80263F74.s
new file mode 100644
index 0000000000..cca7be6d74
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263F74.s
@@ -0,0 +1,23 @@
+/* 80263F74 00260EB4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80263F78 00260EB8 7C 08 02 A6 */ mflr r0
+/* 80263F7C 00260EBC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80263F80 00260EC0 C0 02 B6 20 */ lfs f0, lbl_80455020-_SDA2_BASE_(r2)
+/* 80263F84 00260EC4 D0 05 00 00 */ stfs f0, 0(r5)
+/* 80263F88 00260EC8 28 04 00 00 */ cmplwi r4, 0
+/* 80263F8C 00260ECC 41 82 00 08 */ beq lbl_80263F94
+/* 80263F90 00260ED0 38 84 00 20 */ addi r4, r4, 0x20
+lbl_80263F94:
+/* 80263F94 00260ED4 38 63 00 20 */ addi r3, r3, 0x20
+/* 80263F98 00260ED8 38 A1 00 08 */ addi r5, r1, 8
+/* 80263F9C 00260EDC 48 00 9C A1 */ bl cM3d_Cross_CpsSph__FRC8cM3dGCpsRC8cM3dGSphP3Vec
+/* 80263FA0 00260EE0 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80263FA4 00260EE4 41 82 00 0C */ beq lbl_80263FB0
+/* 80263FA8 00260EE8 38 60 00 01 */ li r3, 1
+/* 80263FAC 00260EEC 48 00 00 08 */ b lbl_80263FB4
+lbl_80263FB0:
+/* 80263FB0 00260EF0 38 60 00 00 */ li r3, 0
+lbl_80263FB4:
+/* 80263FB4 00260EF4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80263FB8 00260EF8 7C 08 03 A6 */ mtlr r0
+/* 80263FBC 00260EFC 38 21 00 20 */ addi r1, r1, 0x20
+/* 80263FC0 00260F00 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_80263FC4.s b/include/SComponent/c_cc_d/asm/func_80263FC4.s
new file mode 100644
index 0000000000..e01945e35d
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80263FC4.s
@@ -0,0 +1,20 @@
+/* 80263FC4 00260F04 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80263FC8 00260F08 7C 08 02 A6 */ mflr r0
+/* 80263FCC 00260F0C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80263FD0 00260F10 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80263FD4 00260F14 7C 7F 1B 78 */ mr r31, r3
+/* 80263FD8 00260F18 48 00 AD 21 */ bl ClearForMinMax__8cM3dGAabFv
+/* 80263FDC 00260F1C 7F E3 FB 78 */ mr r3, r31
+/* 80263FE0 00260F20 38 9F 00 20 */ addi r4, r31, 0x20
+/* 80263FE4 00260F24 48 00 AD 39 */ bl SetMinMax__8cM3dGAabFRC4cXyz
+/* 80263FE8 00260F28 7F E3 FB 78 */ mr r3, r31
+/* 80263FEC 00260F2C 38 9F 00 2C */ addi r4, r31, 0x2c
+/* 80263FF0 00260F30 48 00 AD 2D */ bl SetMinMax__8cM3dGAabFRC4cXyz
+/* 80263FF4 00260F34 7F E3 FB 78 */ mr r3, r31
+/* 80263FF8 00260F38 C0 3F 00 3C */ lfs f1, 0x3c(r31)
+/* 80263FFC 00260F3C 48 00 AE 6D */ bl PlusR__8cM3dGAabFf
+/* 80264000 00260F40 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80264004 00260F44 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80264008 00260F48 7C 08 03 A6 */ mtlr r0
+/* 8026400C 00260F4C 38 21 00 10 */ addi r1, r1, 0x10
+/* 80264010 00260F50 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80264014.s b/include/SComponent/c_cc_d/asm/func_80264014.s
new file mode 100644
index 0000000000..2f0350146f
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80264014.s
@@ -0,0 +1,96 @@
+/* 80264014 00260F54 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 80264018 00260F58 7C 08 02 A6 */ mflr r0
+/* 8026401C 00260F5C 90 01 00 54 */ stw r0, 0x54(r1)
+/* 80264020 00260F60 DB E1 00 40 */ stfd f31, 0x40(r1)
+/* 80264024 00260F64 F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0
+/* 80264028 00260F68 39 61 00 40 */ addi r11, r1, 0x40
+/* 8026402C 00260F6C 48 0F E1 AD */ bl _savegpr_28
+/* 80264030 00260F70 7C 7C 1B 78 */ mr r28, r3
+/* 80264034 00260F74 7C 9D 23 78 */ mr r29, r4
+/* 80264038 00260F78 7C BE 2B 78 */ mr r30, r5
+/* 8026403C 00260F7C 3B FC 00 2C */ addi r31, r28, 0x2c
+/* 80264040 00260F80 7F E3 FB 78 */ mr r3, r31
+/* 80264044 00260F84 38 9C 00 20 */ addi r4, r28, 0x20
+/* 80264048 00260F88 38 A1 00 20 */ addi r5, r1, 0x20
+/* 8026404C 00260F8C 48 0E 30 69 */ bl PSVECSubtract
+/* 80264050 00260F90 38 61 00 20 */ addi r3, r1, 0x20
+/* 80264054 00260F94 7C 64 1B 78 */ mr r4, r3
+/* 80264058 00260F98 48 0E 31 3D */ bl PSVECDotProduct
+/* 8026405C 00260F9C FF E0 08 90 */ fmr f31, f1
+/* 80264060 00260FA0 FC 00 FA 10 */ fabs f0, f31
+/* 80264064 00260FA4 FC 20 00 18 */ frsp f1, f0
+/* 80264068 00260FA8 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026406C 00260FAC FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80264070 00260FB0 40 80 00 0C */ bge lbl_8026407C
+/* 80264074 00260FB4 38 60 00 00 */ li r3, 0
+/* 80264078 00260FB8 48 00 00 E4 */ b lbl_8026415C
+lbl_8026407C:
+/* 8026407C 00260FBC 7F A3 EB 78 */ mr r3, r29
+/* 80264080 00260FC0 38 9C 00 20 */ addi r4, r28, 0x20
+/* 80264084 00260FC4 38 A1 00 14 */ addi r5, r1, 0x14
+/* 80264088 00260FC8 48 0E 30 2D */ bl PSVECSubtract
+/* 8026408C 00260FCC 38 61 00 14 */ addi r3, r1, 0x14
+/* 80264090 00260FD0 38 81 00 20 */ addi r4, r1, 0x20
+/* 80264094 00260FD4 48 0E 31 01 */ bl PSVECDotProduct
+/* 80264098 00260FD8 EC 21 F8 24 */ fdivs f1, f1, f31
+/* 8026409C 00260FDC C0 02 B6 20 */ lfs f0, lbl_80455020-_SDA2_BASE_(r2)
+/* 802640A0 00260FE0 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802640A4 00260FE4 40 80 00 20 */ bge lbl_802640C4
+/* 802640A8 00260FE8 C0 1C 00 20 */ lfs f0, 0x20(r28)
+/* 802640AC 00260FEC D0 01 00 08 */ stfs f0, 8(r1)
+/* 802640B0 00260FF0 C0 1C 00 24 */ lfs f0, 0x24(r28)
+/* 802640B4 00260FF4 D0 01 00 0C */ stfs f0, 0xc(r1)
+/* 802640B8 00260FF8 C0 1C 00 28 */ lfs f0, 0x28(r28)
+/* 802640BC 00260FFC D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 802640C0 00261000 48 00 00 48 */ b lbl_80264108
+lbl_802640C4:
+/* 802640C4 00261004 C0 02 B6 1C */ lfs f0, lbl_8045501C-_SDA2_BASE_(r2)
+/* 802640C8 00261008 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802640CC 0026100C 40 81 00 20 */ ble lbl_802640EC
+/* 802640D0 00261010 C0 1F 00 00 */ lfs f0, 0(r31)
+/* 802640D4 00261014 D0 01 00 08 */ stfs f0, 8(r1)
+/* 802640D8 00261018 C0 1F 00 04 */ lfs f0, 4(r31)
+/* 802640DC 0026101C D0 01 00 0C */ stfs f0, 0xc(r1)
+/* 802640E0 00261020 C0 1F 00 08 */ lfs f0, 8(r31)
+/* 802640E4 00261024 D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 802640E8 00261028 48 00 00 20 */ b lbl_80264108
+lbl_802640EC:
+/* 802640EC 0026102C 38 61 00 20 */ addi r3, r1, 0x20
+/* 802640F0 00261030 7C 64 1B 78 */ mr r4, r3
+/* 802640F4 00261034 48 0E 2F E5 */ bl PSVECScale
+/* 802640F8 00261038 38 61 00 20 */ addi r3, r1, 0x20
+/* 802640FC 0026103C 38 9C 00 20 */ addi r4, r28, 0x20
+/* 80264100 00261040 38 A1 00 08 */ addi r5, r1, 8
+/* 80264104 00261044 48 0E 2F 8D */ bl PSVECAdd
+lbl_80264108:
+/* 80264108 00261048 7F A3 EB 78 */ mr r3, r29
+/* 8026410C 0026104C 38 81 00 08 */ addi r4, r1, 8
+/* 80264110 00261050 7F C5 F3 78 */ mr r5, r30
+/* 80264114 00261054 48 0E 2F A1 */ bl PSVECSubtract
+/* 80264118 00261058 7F C3 F3 78 */ mr r3, r30
+/* 8026411C 0026105C 48 0E 30 35 */ bl PSVECMag
+/* 80264120 00261060 FC 00 0A 10 */ fabs f0, f1
+/* 80264124 00261064 FC 20 00 18 */ frsp f1, f0
+/* 80264128 00261068 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026412C 0026106C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80264130 00261070 40 80 00 1C */ bge lbl_8026414C
+/* 80264134 00261074 C0 02 B6 20 */ lfs f0, lbl_80455020-_SDA2_BASE_(r2)
+/* 80264138 00261078 D0 1E 00 00 */ stfs f0, 0(r30)
+/* 8026413C 0026107C D0 1E 00 04 */ stfs f0, 4(r30)
+/* 80264140 00261080 D0 1E 00 08 */ stfs f0, 8(r30)
+/* 80264144 00261084 38 60 00 00 */ li r3, 0
+/* 80264148 00261088 48 00 00 14 */ b lbl_8026415C
+lbl_8026414C:
+/* 8026414C 0026108C 7F C3 F3 78 */ mr r3, r30
+/* 80264150 00261090 7F C4 F3 78 */ mr r4, r30
+/* 80264154 00261094 48 0E 2F A1 */ bl PSVECNormalize
+/* 80264158 00261098 38 60 00 01 */ li r3, 1
+lbl_8026415C:
+/* 8026415C 0026109C E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0
+/* 80264160 002610A0 CB E1 00 40 */ lfd f31, 0x40(r1)
+/* 80264164 002610A4 39 61 00 40 */ addi r11, r1, 0x40
+/* 80264168 002610A8 48 0F E0 BD */ bl _restgpr_28
+/* 8026416C 002610AC 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 80264170 002610B0 7C 08 03 A6 */ mtlr r0
+/* 80264174 002610B4 38 21 00 50 */ addi r1, r1, 0x50
+/* 80264178 002610B8 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_8026417C.s b/include/SComponent/c_cc_d/asm/func_8026417C.s
new file mode 100644
index 0000000000..ad6b75abaf
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_8026417C.s
@@ -0,0 +1,22 @@
+/* 8026417C 002610BC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80264180 002610C0 7C 08 02 A6 */ mflr r0
+/* 80264184 002610C4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80264188 002610C8 7C 66 1B 78 */ mr r6, r3
+/* 8026418C 002610CC 28 04 00 00 */ cmplwi r4, 0
+/* 80264190 002610D0 41 82 00 08 */ beq lbl_80264198
+/* 80264194 002610D4 38 84 00 20 */ addi r4, r4, 0x20
+lbl_80264198:
+/* 80264198 002610D8 7C 83 23 78 */ mr r3, r4
+/* 8026419C 002610DC 38 86 00 20 */ addi r4, r6, 0x20
+/* 802641A0 002610E0 48 00 92 35 */ bl cM3d_Cross_CpsCyl__FRC8cM3dGCpsRC8cM3dGCylP3Vec
+/* 802641A4 002610E4 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802641A8 002610E8 41 82 00 0C */ beq lbl_802641B4
+/* 802641AC 002610EC 38 60 00 01 */ li r3, 1
+/* 802641B0 002610F0 48 00 00 08 */ b lbl_802641B8
+lbl_802641B4:
+/* 802641B4 002610F4 38 60 00 00 */ li r3, 0
+lbl_802641B8:
+/* 802641B8 002610F8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802641BC 002610FC 7C 08 03 A6 */ mtlr r0
+/* 802641C0 00261100 38 21 00 10 */ addi r1, r1, 0x10
+/* 802641C4 00261104 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_802641C8.s b/include/SComponent/c_cc_d/asm/func_802641C8.s
new file mode 100644
index 0000000000..5e7a2d5830
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802641C8.s
@@ -0,0 +1,20 @@
+/* 802641C8 00261108 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802641CC 0026110C 7C 08 02 A6 */ mflr r0
+/* 802641D0 00261110 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802641D4 00261114 28 04 00 00 */ cmplwi r4, 0
+/* 802641D8 00261118 41 82 00 08 */ beq lbl_802641E0
+/* 802641DC 0026111C 38 84 00 20 */ addi r4, r4, 0x20
+lbl_802641E0:
+/* 802641E0 00261120 38 63 00 20 */ addi r3, r3, 0x20
+/* 802641E4 00261124 48 00 B0 49 */ bl cross__8cM3dGCylCFPC8cM3dGCylP4cXyz
+/* 802641E8 00261128 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802641EC 0026112C 41 82 00 0C */ beq lbl_802641F8
+/* 802641F0 00261130 38 60 00 01 */ li r3, 1
+/* 802641F4 00261134 48 00 00 08 */ b lbl_802641FC
+lbl_802641F8:
+/* 802641F8 00261138 38 60 00 00 */ li r3, 0
+lbl_802641FC:
+/* 802641FC 0026113C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80264200 00261140 7C 08 03 A6 */ mtlr r0
+/* 80264204 00261144 38 21 00 10 */ addi r1, r1, 0x10
+/* 80264208 00261148 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_8026420C.s b/include/SComponent/c_cc_d/asm/func_8026420C.s
new file mode 100644
index 0000000000..730d79bc13
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_8026420C.s
@@ -0,0 +1,20 @@
+/* 8026420C 0026114C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80264210 00261150 7C 08 02 A6 */ mflr r0
+/* 80264214 00261154 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80264218 00261158 28 04 00 00 */ cmplwi r4, 0
+/* 8026421C 0026115C 41 82 00 08 */ beq lbl_80264224
+/* 80264220 00261160 38 84 00 20 */ addi r4, r4, 0x20
+lbl_80264224:
+/* 80264224 00261164 38 63 00 20 */ addi r3, r3, 0x20
+/* 80264228 00261168 48 00 AF E1 */ bl cross__8cM3dGCylCFPC8cM3dGSphP4cXyz
+/* 8026422C 0026116C 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80264230 00261170 41 82 00 0C */ beq lbl_8026423C
+/* 80264234 00261174 38 60 00 01 */ li r3, 1
+/* 80264238 00261178 48 00 00 08 */ b lbl_80264240
+lbl_8026423C:
+/* 8026423C 0026117C 38 60 00 00 */ li r3, 0
+lbl_80264240:
+/* 80264240 00261180 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80264244 00261184 7C 08 03 A6 */ mtlr r0
+/* 80264248 00261188 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026424C 0026118C 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80264250.s b/include/SComponent/c_cc_d/asm/func_80264250.s
new file mode 100644
index 0000000000..63058cb7ed
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80264250.s
@@ -0,0 +1,14 @@
+/* 80264250 00261190 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80264254 00261194 7C 08 02 A6 */ mflr r0
+/* 80264258 00261198 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026425C 0026119C 38 63 00 20 */ addi r3, r3, 0x20
+/* 80264260 002611A0 38 84 00 20 */ addi r4, r4, 0x20
+/* 80264264 002611A4 48 00 83 6D */ bl cM3d_Cross_CylTri__FPC8cM3dGCylPC8cM3dGTriP3Vec
+/* 80264268 002611A8 54 63 06 3E */ clrlwi r3, r3, 0x18
+/* 8026426C 002611AC 30 03 FF FF */ addic r0, r3, -1
+/* 80264270 002611B0 7C 00 19 10 */ subfe r0, r0, r3
+/* 80264274 002611B4 54 03 06 3E */ clrlwi r3, r0, 0x18
+/* 80264278 002611B8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026427C 002611BC 7C 08 03 A6 */ mtlr r0
+/* 80264280 002611C0 38 21 00 10 */ addi r1, r1, 0x10
+/* 80264284 002611C4 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80264288.s b/include/SComponent/c_cc_d/asm/func_80264288.s
new file mode 100644
index 0000000000..db6dac0e6a
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80264288.s
@@ -0,0 +1,20 @@
+/* 80264288 002611C8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026428C 002611CC 7C 08 02 A6 */ mflr r0
+/* 80264290 002611D0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80264294 002611D4 28 04 00 00 */ cmplwi r4, 0
+/* 80264298 002611D8 41 82 00 08 */ beq lbl_802642A0
+/* 8026429C 002611DC 38 84 00 20 */ addi r4, r4, 0x20
+lbl_802642A0:
+/* 802642A0 002611E0 38 63 00 20 */ addi r3, r3, 0x20
+/* 802642A4 002611E4 48 00 7F 89 */ bl cM3d_Cross_CylCyl__FPC8cM3dGCylPC8cM3dGCylPf
+/* 802642A8 002611E8 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802642AC 002611EC 41 82 00 0C */ beq lbl_802642B8
+/* 802642B0 002611F0 38 60 00 01 */ li r3, 1
+/* 802642B4 002611F4 48 00 00 08 */ b lbl_802642BC
+lbl_802642B8:
+/* 802642B8 002611F8 38 60 00 00 */ li r3, 0
+lbl_802642BC:
+/* 802642BC 002611FC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802642C0 00261200 7C 08 03 A6 */ mtlr r0
+/* 802642C4 00261204 38 21 00 10 */ addi r1, r1, 0x10
+/* 802642C8 00261208 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_802642CC.s b/include/SComponent/c_cc_d/asm/func_802642CC.s
new file mode 100644
index 0000000000..21048fc64c
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802642CC.s
@@ -0,0 +1,20 @@
+/* 802642CC 0026120C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802642D0 00261210 7C 08 02 A6 */ mflr r0
+/* 802642D4 00261214 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802642D8 00261218 28 04 00 00 */ cmplwi r4, 0
+/* 802642DC 0026121C 41 82 00 08 */ beq lbl_802642E4
+/* 802642E0 00261220 38 84 00 20 */ addi r4, r4, 0x20
+lbl_802642E4:
+/* 802642E4 00261224 38 63 00 20 */ addi r3, r3, 0x20
+/* 802642E8 00261228 48 00 75 BD */ bl cM3d_Cross_CylSph__FPC8cM3dGCylPC8cM3dGSphPf
+/* 802642EC 0026122C 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802642F0 00261230 41 82 00 0C */ beq lbl_802642FC
+/* 802642F4 00261234 38 60 00 01 */ li r3, 1
+/* 802642F8 00261238 48 00 00 08 */ b lbl_80264300
+lbl_802642FC:
+/* 802642FC 0026123C 38 60 00 00 */ li r3, 0
+lbl_80264300:
+/* 80264300 00261240 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80264304 00261244 7C 08 03 A6 */ mtlr r0
+/* 80264308 00261248 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026430C 0026124C 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80264310.s b/include/SComponent/c_cc_d/asm/func_80264310.s
new file mode 100644
index 0000000000..bdf52c6003
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80264310.s
@@ -0,0 +1,25 @@
+/* 80264310 00261250 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80264314 00261254 7C 08 02 A6 */ mflr r0
+/* 80264318 00261258 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026431C 0026125C 7C 66 1B 78 */ mr r6, r3
+/* 80264320 00261260 C0 02 B6 20 */ lfs f0, lbl_80455020-_SDA2_BASE_(r2)
+/* 80264324 00261264 D0 05 00 00 */ stfs f0, 0(r5)
+/* 80264328 00261268 28 04 00 00 */ cmplwi r4, 0
+/* 8026432C 0026126C 41 82 00 08 */ beq lbl_80264334
+/* 80264330 00261270 38 84 00 20 */ addi r4, r4, 0x20
+lbl_80264334:
+/* 80264334 00261274 7C 83 23 78 */ mr r3, r4
+/* 80264338 00261278 38 86 00 20 */ addi r4, r6, 0x20
+/* 8026433C 0026127C 38 A1 00 08 */ addi r5, r1, 8
+/* 80264340 00261280 48 00 90 95 */ bl cM3d_Cross_CpsCyl__FRC8cM3dGCpsRC8cM3dGCylP3Vec
+/* 80264344 00261284 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80264348 00261288 41 82 00 0C */ beq lbl_80264354
+/* 8026434C 0026128C 38 60 00 01 */ li r3, 1
+/* 80264350 00261290 48 00 00 08 */ b lbl_80264358
+lbl_80264354:
+/* 80264354 00261294 38 60 00 00 */ li r3, 0
+lbl_80264358:
+/* 80264358 00261298 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026435C 0026129C 7C 08 03 A6 */ mtlr r0
+/* 80264360 002612A0 38 21 00 20 */ addi r1, r1, 0x20
+/* 80264364 002612A4 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80264368.s b/include/SComponent/c_cc_d/asm/func_80264368.s
new file mode 100644
index 0000000000..c51c4bd3ed
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80264368.s
@@ -0,0 +1,26 @@
+/* 80264368 002612A8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026436C 002612AC 7C 08 02 A6 */ mflr r0
+/* 80264370 002612B0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80264374 002612B4 C0 83 00 20 */ lfs f4, 0x20(r3)
+/* 80264378 002612B8 C0 63 00 2C */ lfs f3, 0x2c(r3)
+/* 8026437C 002612BC EC 04 18 28 */ fsubs f0, f4, f3
+/* 80264380 002612C0 D0 01 00 14 */ stfs f0, 0x14(r1)
+/* 80264384 002612C4 C0 43 00 24 */ lfs f2, 0x24(r3)
+/* 80264388 002612C8 D0 41 00 18 */ stfs f2, 0x18(r1)
+/* 8026438C 002612CC C0 23 00 28 */ lfs f1, 0x28(r3)
+/* 80264390 002612D0 EC 01 18 28 */ fsubs f0, f1, f3
+/* 80264394 002612D4 D0 01 00 1C */ stfs f0, 0x1c(r1)
+/* 80264398 002612D8 EC 04 18 2A */ fadds f0, f4, f3
+/* 8026439C 002612DC D0 01 00 08 */ stfs f0, 8(r1)
+/* 802643A0 002612E0 C0 03 00 30 */ lfs f0, 0x30(r3)
+/* 802643A4 002612E4 EC 02 00 2A */ fadds f0, f2, f0
+/* 802643A8 002612E8 D0 01 00 0C */ stfs f0, 0xc(r1)
+/* 802643AC 002612EC EC 01 18 2A */ fadds f0, f1, f3
+/* 802643B0 002612F0 D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 802643B4 002612F4 38 81 00 14 */ addi r4, r1, 0x14
+/* 802643B8 002612F8 38 A1 00 08 */ addi r5, r1, 8
+/* 802643BC 002612FC 48 00 A8 99 */ bl Set__8cM3dGAabFPC4cXyzPC4cXyz
+/* 802643C0 00261300 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802643C4 00261304 7C 08 03 A6 */ mtlr r0
+/* 802643C8 00261308 38 21 00 20 */ addi r1, r1, 0x20
+/* 802643CC 0026130C 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_802643D0.s b/include/SComponent/c_cc_d/asm/func_802643D0.s
new file mode 100644
index 0000000000..9567451e0c
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802643D0.s
@@ -0,0 +1,63 @@
+/* 802643D0 00261310 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802643D4 00261314 7C 08 02 A6 */ mflr r0
+/* 802643D8 00261318 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802643DC 0026131C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802643E0 00261320 7C BF 2B 78 */ mr r31, r5
+/* 802643E4 00261324 C0 43 00 24 */ lfs f2, 0x24(r3)
+/* 802643E8 00261328 C0 64 00 04 */ lfs f3, 4(r4)
+/* 802643EC 0026132C FC 02 18 40 */ fcmpo cr0, f2, f3
+/* 802643F0 00261330 40 81 00 1C */ ble lbl_8026440C
+/* 802643F4 00261334 C0 03 00 20 */ lfs f0, 0x20(r3)
+/* 802643F8 00261338 D0 01 00 08 */ stfs f0, 8(r1)
+/* 802643FC 0026133C D0 41 00 0C */ stfs f2, 0xc(r1)
+/* 80264400 00261340 C0 03 00 28 */ lfs f0, 0x28(r3)
+/* 80264404 00261344 D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 80264408 00261348 48 00 00 48 */ b lbl_80264450
+lbl_8026440C:
+/* 8026440C 0026134C C0 03 00 30 */ lfs f0, 0x30(r3)
+/* 80264410 00261350 EC 22 00 2A */ fadds f1, f2, f0
+/* 80264414 00261354 FC 01 18 40 */ fcmpo cr0, f1, f3
+/* 80264418 00261358 40 80 00 20 */ bge lbl_80264438
+/* 8026441C 0026135C C0 03 00 20 */ lfs f0, 0x20(r3)
+/* 80264420 00261360 D0 01 00 08 */ stfs f0, 8(r1)
+/* 80264424 00261364 D0 41 00 0C */ stfs f2, 0xc(r1)
+/* 80264428 00261368 C0 03 00 28 */ lfs f0, 0x28(r3)
+/* 8026442C 0026136C D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 80264430 00261370 D0 21 00 0C */ stfs f1, 0xc(r1)
+/* 80264434 00261374 48 00 00 1C */ b lbl_80264450
+lbl_80264438:
+/* 80264438 00261378 C0 03 00 20 */ lfs f0, 0x20(r3)
+/* 8026443C 0026137C D0 01 00 08 */ stfs f0, 8(r1)
+/* 80264440 00261380 D0 41 00 0C */ stfs f2, 0xc(r1)
+/* 80264444 00261384 C0 03 00 28 */ lfs f0, 0x28(r3)
+/* 80264448 00261388 D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 8026444C 0026138C D0 61 00 0C */ stfs f3, 0xc(r1)
+lbl_80264450:
+/* 80264450 00261390 7C 83 23 78 */ mr r3, r4
+/* 80264454 00261394 38 81 00 08 */ addi r4, r1, 8
+/* 80264458 00261398 7F E5 FB 78 */ mr r5, r31
+/* 8026445C 0026139C 48 0E 2C 59 */ bl PSVECSubtract
+/* 80264460 002613A0 7F E3 FB 78 */ mr r3, r31
+/* 80264464 002613A4 48 0E 2C ED */ bl PSVECMag
+/* 80264468 002613A8 FC 00 0A 10 */ fabs f0, f1
+/* 8026446C 002613AC FC 20 00 18 */ frsp f1, f0
+/* 80264470 002613B0 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 80264474 002613B4 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80264478 002613B8 40 80 00 1C */ bge lbl_80264494
+/* 8026447C 002613BC C0 02 B6 20 */ lfs f0, lbl_80455020-_SDA2_BASE_(r2)
+/* 80264480 002613C0 D0 1F 00 00 */ stfs f0, 0(r31)
+/* 80264484 002613C4 D0 1F 00 04 */ stfs f0, 4(r31)
+/* 80264488 002613C8 D0 1F 00 08 */ stfs f0, 8(r31)
+/* 8026448C 002613CC 38 60 00 00 */ li r3, 0
+/* 80264490 002613D0 48 00 00 14 */ b lbl_802644A4
+lbl_80264494:
+/* 80264494 002613D4 7F E3 FB 78 */ mr r3, r31
+/* 80264498 002613D8 7F E4 FB 78 */ mr r4, r31
+/* 8026449C 002613DC 48 0E 2C 59 */ bl PSVECNormalize
+/* 802644A0 002613E0 38 60 00 01 */ li r3, 1
+lbl_802644A4:
+/* 802644A4 002613E4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802644A8 002613E8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802644AC 002613EC 7C 08 03 A6 */ mtlr r0
+/* 802644B0 002613F0 38 21 00 20 */ addi r1, r1, 0x20
+/* 802644B4 002613F4 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_802644B8.s b/include/SComponent/c_cc_d/asm/func_802644B8.s
new file mode 100644
index 0000000000..6b64503472
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802644B8.s
@@ -0,0 +1,13 @@
+/* 802644B8 002613F8 38 00 00 01 */ li r0, 1
+/* 802644BC 002613FC 90 04 00 00 */ stw r0, 0(r4)
+/* 802644C0 00261400 C0 03 00 20 */ lfs f0, 0x20(r3)
+/* 802644C4 00261404 D0 04 00 04 */ stfs f0, 4(r4)
+/* 802644C8 00261408 C0 03 00 24 */ lfs f0, 0x24(r3)
+/* 802644CC 0026140C D0 04 00 08 */ stfs f0, 8(r4)
+/* 802644D0 00261410 C0 03 00 28 */ lfs f0, 0x28(r3)
+/* 802644D4 00261414 D0 04 00 0C */ stfs f0, 0xc(r4)
+/* 802644D8 00261418 C0 03 00 2C */ lfs f0, 0x2c(r3)
+/* 802644DC 0026141C D0 04 00 10 */ stfs f0, 0x10(r4)
+/* 802644E0 00261420 C0 03 00 30 */ lfs f0, 0x30(r3)
+/* 802644E4 00261424 D0 04 00 14 */ stfs f0, 0x14(r4)
+/* 802644E8 00261428 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_802644EC.s b/include/SComponent/c_cc_d/asm/func_802644EC.s
new file mode 100644
index 0000000000..d892ec1e1a
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802644EC.s
@@ -0,0 +1,22 @@
+/* 802644EC 0026142C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802644F0 00261430 7C 08 02 A6 */ mflr r0
+/* 802644F4 00261434 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802644F8 00261438 7C 66 1B 78 */ mr r6, r3
+/* 802644FC 0026143C 28 04 00 00 */ cmplwi r4, 0
+/* 80264500 00261440 41 82 00 08 */ beq lbl_80264508
+/* 80264504 00261444 38 84 00 20 */ addi r4, r4, 0x20
+lbl_80264508:
+/* 80264508 00261448 7C 83 23 78 */ mr r3, r4
+/* 8026450C 0026144C 38 86 00 20 */ addi r4, r6, 0x20
+/* 80264510 00261450 48 00 97 2D */ bl cM3d_Cross_CpsSph__FRC8cM3dGCpsRC8cM3dGSphP3Vec
+/* 80264514 00261454 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80264518 00261458 41 82 00 0C */ beq lbl_80264524
+/* 8026451C 0026145C 38 60 00 01 */ li r3, 1
+/* 80264520 00261460 48 00 00 08 */ b lbl_80264528
+lbl_80264524:
+/* 80264524 00261464 38 60 00 00 */ li r3, 0
+lbl_80264528:
+/* 80264528 00261468 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026452C 0026146C 7C 08 03 A6 */ mtlr r0
+/* 80264530 00261470 38 21 00 10 */ addi r1, r1, 0x10
+/* 80264534 00261474 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80264538.s b/include/SComponent/c_cc_d/asm/func_80264538.s
new file mode 100644
index 0000000000..320884f3e9
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80264538.s
@@ -0,0 +1,20 @@
+/* 80264538 00261478 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026453C 0026147C 7C 08 02 A6 */ mflr r0
+/* 80264540 00261480 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80264544 00261484 28 04 00 00 */ cmplwi r4, 0
+/* 80264548 00261488 41 82 00 08 */ beq lbl_80264550
+/* 8026454C 0026148C 38 84 00 20 */ addi r4, r4, 0x20
+lbl_80264550:
+/* 80264550 00261490 38 63 00 20 */ addi r3, r3, 0x20
+/* 80264554 00261494 48 00 B1 E9 */ bl cross__8cM3dGSphCFPC8cM3dGCylP4cXyz
+/* 80264558 00261498 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026455C 0026149C 41 82 00 0C */ beq lbl_80264568
+/* 80264560 002614A0 38 60 00 01 */ li r3, 1
+/* 80264564 002614A4 48 00 00 08 */ b lbl_8026456C
+lbl_80264568:
+/* 80264568 002614A8 38 60 00 00 */ li r3, 0
+lbl_8026456C:
+/* 8026456C 002614AC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80264570 002614B0 7C 08 03 A6 */ mtlr r0
+/* 80264574 002614B4 38 21 00 10 */ addi r1, r1, 0x10
+/* 80264578 002614B8 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_8026457C.s b/include/SComponent/c_cc_d/asm/func_8026457C.s
new file mode 100644
index 0000000000..571b8c16c6
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_8026457C.s
@@ -0,0 +1,20 @@
+/* 8026457C 002614BC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80264580 002614C0 7C 08 02 A6 */ mflr r0
+/* 80264584 002614C4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80264588 002614C8 28 04 00 00 */ cmplwi r4, 0
+/* 8026458C 002614CC 41 82 00 08 */ beq lbl_80264594
+/* 80264590 002614D0 38 84 00 20 */ addi r4, r4, 0x20
+lbl_80264594:
+/* 80264594 002614D4 38 63 00 20 */ addi r3, r3, 0x20
+/* 80264598 002614D8 48 00 B1 79 */ bl cross__8cM3dGSphCFPC8cM3dGSphP4cXyz
+/* 8026459C 002614DC 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802645A0 002614E0 41 82 00 0C */ beq lbl_802645AC
+/* 802645A4 002614E4 38 60 00 01 */ li r3, 1
+/* 802645A8 002614E8 48 00 00 08 */ b lbl_802645B0
+lbl_802645AC:
+/* 802645AC 002614EC 38 60 00 00 */ li r3, 0
+lbl_802645B0:
+/* 802645B0 002614F0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802645B4 002614F4 7C 08 03 A6 */ mtlr r0
+/* 802645B8 002614F8 38 21 00 10 */ addi r1, r1, 0x10
+/* 802645BC 002614FC 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_802645C0.s b/include/SComponent/c_cc_d/asm/func_802645C0.s
new file mode 100644
index 0000000000..a393855363
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802645C0.s
@@ -0,0 +1,14 @@
+/* 802645C0 00261500 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802645C4 00261504 7C 08 02 A6 */ mflr r0
+/* 802645C8 00261508 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802645CC 0026150C 38 63 00 20 */ addi r3, r3, 0x20
+/* 802645D0 00261510 38 84 00 20 */ addi r4, r4, 0x20
+/* 802645D4 00261514 48 00 79 31 */ bl cM3d_Cross_SphTri__FPC8cM3dGSphPC8cM3dGTriP3Vec
+/* 802645D8 00261518 54 63 06 3E */ clrlwi r3, r3, 0x18
+/* 802645DC 0026151C 30 03 FF FF */ addic r0, r3, -1
+/* 802645E0 00261520 7C 00 19 10 */ subfe r0, r0, r3
+/* 802645E4 00261524 54 03 06 3E */ clrlwi r3, r0, 0x18
+/* 802645E8 00261528 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802645EC 0026152C 7C 08 03 A6 */ mtlr r0
+/* 802645F0 00261530 38 21 00 10 */ addi r1, r1, 0x10
+/* 802645F4 00261534 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_802645F8.s b/include/SComponent/c_cc_d/asm/func_802645F8.s
new file mode 100644
index 0000000000..fb6381001d
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802645F8.s
@@ -0,0 +1,22 @@
+/* 802645F8 00261538 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802645FC 0026153C 7C 08 02 A6 */ mflr r0
+/* 80264600 00261540 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80264604 00261544 7C 66 1B 78 */ mr r6, r3
+/* 80264608 00261548 28 04 00 00 */ cmplwi r4, 0
+/* 8026460C 0026154C 41 82 00 08 */ beq lbl_80264614
+/* 80264610 00261550 38 84 00 20 */ addi r4, r4, 0x20
+lbl_80264614:
+/* 80264614 00261554 7C 83 23 78 */ mr r3, r4
+/* 80264618 00261558 38 86 00 20 */ addi r4, r6, 0x20
+/* 8026461C 0026155C 48 00 72 89 */ bl cM3d_Cross_CylSph__FPC8cM3dGCylPC8cM3dGSphPf
+/* 80264620 00261560 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80264624 00261564 41 82 00 0C */ beq lbl_80264630
+/* 80264628 00261568 38 60 00 01 */ li r3, 1
+/* 8026462C 0026156C 48 00 00 08 */ b lbl_80264634
+lbl_80264630:
+/* 80264630 00261570 38 60 00 00 */ li r3, 0
+lbl_80264634:
+/* 80264634 00261574 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80264638 00261578 7C 08 03 A6 */ mtlr r0
+/* 8026463C 0026157C 38 21 00 10 */ addi r1, r1, 0x10
+/* 80264640 00261580 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80264644.s b/include/SComponent/c_cc_d/asm/func_80264644.s
new file mode 100644
index 0000000000..24849363cb
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80264644.s
@@ -0,0 +1,20 @@
+/* 80264644 00261584 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80264648 00261588 7C 08 02 A6 */ mflr r0
+/* 8026464C 0026158C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80264650 00261590 28 04 00 00 */ cmplwi r4, 0
+/* 80264654 00261594 41 82 00 08 */ beq lbl_8026465C
+/* 80264658 00261598 38 84 00 20 */ addi r4, r4, 0x20
+lbl_8026465C:
+/* 8026465C 0026159C 38 63 00 20 */ addi r3, r3, 0x20
+/* 80264660 002615A0 48 00 76 1D */ bl cM3d_Cross_SphSph__FPC8cM3dGSphPC8cM3dGSphPf
+/* 80264664 002615A4 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80264668 002615A8 41 82 00 0C */ beq lbl_80264674
+/* 8026466C 002615AC 38 60 00 01 */ li r3, 1
+/* 80264670 002615B0 48 00 00 08 */ b lbl_80264678
+lbl_80264674:
+/* 80264674 002615B4 38 60 00 00 */ li r3, 0
+lbl_80264678:
+/* 80264678 002615B8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026467C 002615BC 7C 08 03 A6 */ mtlr r0
+/* 80264680 002615C0 38 21 00 10 */ addi r1, r1, 0x10
+/* 80264684 002615C4 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80264688.s b/include/SComponent/c_cc_d/asm/func_80264688.s
new file mode 100644
index 0000000000..8abb1731b5
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80264688.s
@@ -0,0 +1,25 @@
+/* 80264688 002615C8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026468C 002615CC 7C 08 02 A6 */ mflr r0
+/* 80264690 002615D0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80264694 002615D4 7C 66 1B 78 */ mr r6, r3
+/* 80264698 002615D8 C0 02 B6 20 */ lfs f0, lbl_80455020-_SDA2_BASE_(r2)
+/* 8026469C 002615DC D0 05 00 00 */ stfs f0, 0(r5)
+/* 802646A0 002615E0 28 04 00 00 */ cmplwi r4, 0
+/* 802646A4 002615E4 41 82 00 08 */ beq lbl_802646AC
+/* 802646A8 002615E8 38 84 00 20 */ addi r4, r4, 0x20
+lbl_802646AC:
+/* 802646AC 002615EC 7C 83 23 78 */ mr r3, r4
+/* 802646B0 002615F0 38 86 00 20 */ addi r4, r6, 0x20
+/* 802646B4 002615F4 38 A1 00 08 */ addi r5, r1, 8
+/* 802646B8 002615F8 48 00 95 85 */ bl cM3d_Cross_CpsSph__FRC8cM3dGCpsRC8cM3dGSphP3Vec
+/* 802646BC 002615FC 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802646C0 00261600 41 82 00 0C */ beq lbl_802646CC
+/* 802646C4 00261604 38 60 00 01 */ li r3, 1
+/* 802646C8 00261608 48 00 00 08 */ b lbl_802646D0
+lbl_802646CC:
+/* 802646CC 0026160C 38 60 00 00 */ li r3, 0
+lbl_802646D0:
+/* 802646D0 00261610 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802646D4 00261614 7C 08 03 A6 */ mtlr r0
+/* 802646D8 00261618 38 21 00 20 */ addi r1, r1, 0x20
+/* 802646DC 0026161C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_802646E0.s b/include/SComponent/c_cc_d/asm/func_802646E0.s
new file mode 100644
index 0000000000..99e7dbf374
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802646E0.s
@@ -0,0 +1,35 @@
+/* 802646E0 00261620 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802646E4 00261624 7C 08 02 A6 */ mflr r0
+/* 802646E8 00261628 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802646EC 0026162C C0 83 00 20 */ lfs f4, 0x20(r3)
+/* 802646F0 00261630 D0 81 00 08 */ stfs f4, 8(r1)
+/* 802646F4 00261634 C0 63 00 24 */ lfs f3, 0x24(r3)
+/* 802646F8 00261638 D0 61 00 0C */ stfs f3, 0xc(r1)
+/* 802646FC 0026163C C0 43 00 28 */ lfs f2, 0x28(r3)
+/* 80264700 00261640 D0 41 00 10 */ stfs f2, 0x10(r1)
+/* 80264704 00261644 D0 81 00 14 */ stfs f4, 0x14(r1)
+/* 80264708 00261648 D0 61 00 18 */ stfs f3, 0x18(r1)
+/* 8026470C 0026164C D0 41 00 1C */ stfs f2, 0x1c(r1)
+/* 80264710 00261650 FC 00 20 18 */ frsp f0, f4
+/* 80264714 00261654 C0 23 00 2C */ lfs f1, 0x2c(r3)
+/* 80264718 00261658 EC 00 08 28 */ fsubs f0, f0, f1
+/* 8026471C 0026165C D0 01 00 14 */ stfs f0, 0x14(r1)
+/* 80264720 00261660 FC 00 18 18 */ frsp f0, f3
+/* 80264724 00261664 EC 00 08 28 */ fsubs f0, f0, f1
+/* 80264728 00261668 D0 01 00 18 */ stfs f0, 0x18(r1)
+/* 8026472C 0026166C FC 00 10 18 */ frsp f0, f2
+/* 80264730 00261670 EC 00 08 28 */ fsubs f0, f0, f1
+/* 80264734 00261674 D0 01 00 1C */ stfs f0, 0x1c(r1)
+/* 80264738 00261678 EC 04 08 2A */ fadds f0, f4, f1
+/* 8026473C 0026167C D0 01 00 08 */ stfs f0, 8(r1)
+/* 80264740 00261680 EC 03 08 2A */ fadds f0, f3, f1
+/* 80264744 00261684 D0 01 00 0C */ stfs f0, 0xc(r1)
+/* 80264748 00261688 EC 02 08 2A */ fadds f0, f2, f1
+/* 8026474C 0026168C D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 80264750 00261690 38 81 00 14 */ addi r4, r1, 0x14
+/* 80264754 00261694 38 A1 00 08 */ addi r5, r1, 8
+/* 80264758 00261698 48 00 A4 FD */ bl Set__8cM3dGAabFPC4cXyzPC4cXyz
+/* 8026475C 0026169C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80264760 002616A0 7C 08 03 A6 */ mtlr r0
+/* 80264764 002616A4 38 21 00 20 */ addi r1, r1, 0x20
+/* 80264768 002616A8 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_8026476C.s b/include/SComponent/c_cc_d/asm/func_8026476C.s
new file mode 100644
index 0000000000..db13ce7ceb
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_8026476C.s
@@ -0,0 +1,41 @@
+/* 8026476C 002616AC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80264770 002616B0 7C 08 02 A6 */ mflr r0
+/* 80264774 002616B4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80264778 002616B8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8026477C 002616BC 7C BF 2B 78 */ mr r31, r5
+/* 80264780 002616C0 C0 24 00 00 */ lfs f1, 0(r4)
+/* 80264784 002616C4 C0 03 00 20 */ lfs f0, 0x20(r3)
+/* 80264788 002616C8 EC 01 00 28 */ fsubs f0, f1, f0
+/* 8026478C 002616CC D0 05 00 00 */ stfs f0, 0(r5)
+/* 80264790 002616D0 C0 24 00 04 */ lfs f1, 4(r4)
+/* 80264794 002616D4 C0 03 00 24 */ lfs f0, 0x24(r3)
+/* 80264798 002616D8 EC 01 00 28 */ fsubs f0, f1, f0
+/* 8026479C 002616DC D0 05 00 04 */ stfs f0, 4(r5)
+/* 802647A0 002616E0 C0 24 00 08 */ lfs f1, 8(r4)
+/* 802647A4 002616E4 C0 03 00 28 */ lfs f0, 0x28(r3)
+/* 802647A8 002616E8 EC 01 00 28 */ fsubs f0, f1, f0
+/* 802647AC 002616EC D0 05 00 08 */ stfs f0, 8(r5)
+/* 802647B0 002616F0 7F E3 FB 78 */ mr r3, r31
+/* 802647B4 002616F4 48 0E 29 9D */ bl PSVECMag
+/* 802647B8 002616F8 FC 00 0A 10 */ fabs f0, f1
+/* 802647BC 002616FC FC 20 00 18 */ frsp f1, f0
+/* 802647C0 00261700 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 802647C4 00261704 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802647C8 00261708 40 80 00 1C */ bge lbl_802647E4
+/* 802647CC 0026170C C0 02 B6 20 */ lfs f0, lbl_80455020-_SDA2_BASE_(r2)
+/* 802647D0 00261710 D0 1F 00 00 */ stfs f0, 0(r31)
+/* 802647D4 00261714 D0 1F 00 04 */ stfs f0, 4(r31)
+/* 802647D8 00261718 D0 1F 00 08 */ stfs f0, 8(r31)
+/* 802647DC 0026171C 38 60 00 00 */ li r3, 0
+/* 802647E0 00261720 48 00 00 14 */ b lbl_802647F4
+lbl_802647E4:
+/* 802647E4 00261724 7F E3 FB 78 */ mr r3, r31
+/* 802647E8 00261728 7F E4 FB 78 */ mr r4, r31
+/* 802647EC 0026172C 48 0E 29 09 */ bl PSVECNormalize
+/* 802647F0 00261730 38 60 00 01 */ li r3, 1
+lbl_802647F4:
+/* 802647F4 00261734 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802647F8 00261738 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802647FC 0026173C 7C 08 03 A6 */ mtlr r0
+/* 80264800 00261740 38 21 00 10 */ addi r1, r1, 0x10
+/* 80264804 00261744 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80264808.s b/include/SComponent/c_cc_d/asm/func_80264808.s
new file mode 100644
index 0000000000..b14286b808
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80264808.s
@@ -0,0 +1,13 @@
+/* 80264808 00261748 38 00 00 00 */ li r0, 0
+/* 8026480C 0026174C 90 04 00 00 */ stw r0, 0(r4)
+/* 80264810 00261750 C0 03 00 20 */ lfs f0, 0x20(r3)
+/* 80264814 00261754 D0 04 00 04 */ stfs f0, 4(r4)
+/* 80264818 00261758 C0 03 00 24 */ lfs f0, 0x24(r3)
+/* 8026481C 0026175C D0 04 00 08 */ stfs f0, 8(r4)
+/* 80264820 00261760 C0 03 00 28 */ lfs f0, 0x28(r3)
+/* 80264824 00261764 D0 04 00 0C */ stfs f0, 0xc(r4)
+/* 80264828 00261768 C0 03 00 2C */ lfs f0, 0x2c(r3)
+/* 8026482C 0026176C D0 04 00 10 */ stfs f0, 0x10(r4)
+/* 80264830 00261770 C0 02 B6 20 */ lfs f0, lbl_80455020-_SDA2_BASE_(r2)
+/* 80264834 00261774 D0 04 00 14 */ stfs f0, 0x14(r4)
+/* 80264838 00261778 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_8026483C.s b/include/SComponent/c_cc_d/asm/func_8026483C.s
new file mode 100644
index 0000000000..d93dddc9e5
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_8026483C.s
@@ -0,0 +1,4 @@
+/* 8026483C 0026177C 38 00 00 01 */ li r0, 1
+/* 80264840 00261780 90 03 00 04 */ stw r0, 4(r3)
+/* 80264844 00261784 90 83 00 08 */ stw r4, 8(r3)
+/* 80264848 00261788 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_8026484C.s b/include/SComponent/c_cc_d/asm/func_8026484C.s
new file mode 100644
index 0000000000..a7216c18e6
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_8026484C.s
@@ -0,0 +1,7 @@
+/* 8026484C 0026178C 80 04 00 08 */ lwz r0, 8(r4)
+/* 80264850 00261790 90 03 00 00 */ stw r0, 0(r3)
+/* 80264854 00261794 80 04 00 00 */ lwz r0, 0(r4)
+/* 80264858 00261798 90 03 00 10 */ stw r0, 0x10(r3)
+/* 8026485C 0026179C 88 04 00 04 */ lbz r0, 4(r4)
+/* 80264860 002617A0 98 03 00 14 */ stb r0, 0x14(r3)
+/* 80264864 002617A4 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_80264868.s b/include/SComponent/c_cc_d/asm/func_80264868.s
new file mode 100644
index 0000000000..9551800d17
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80264868.s
@@ -0,0 +1,6 @@
+/* 80264868 002617A8 80 03 00 04 */ lwz r0, 4(r3)
+/* 8026486C 002617AC 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
+/* 80264870 002617B0 90 03 00 04 */ stw r0, 4(r3)
+/* 80264874 002617B4 38 00 00 00 */ li r0, 0
+/* 80264878 002617B8 90 03 00 08 */ stw r0, 8(r3)
+/* 8026487C 002617BC 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_80264880.s b/include/SComponent/c_cc_d/asm/func_80264880.s
new file mode 100644
index 0000000000..3c480f93c7
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80264880.s
@@ -0,0 +1,5 @@
+/* 80264880 002617C0 80 04 00 04 */ lwz r0, 4(r4)
+/* 80264884 002617C4 90 03 00 00 */ stw r0, 0(r3)
+/* 80264888 002617C8 80 04 00 00 */ lwz r0, 0(r4)
+/* 8026488C 002617CC 90 03 00 10 */ stw r0, 0x10(r3)
+/* 80264890 002617D0 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80264894.s b/include/SComponent/c_cc_d/asm/func_80264894.s
new file mode 100644
index 0000000000..14b09e72f5
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80264894.s
@@ -0,0 +1,7 @@
+/* 80264894 002617D4 80 03 00 00 */ lwz r0, 0(r3)
+/* 80264898 002617D8 54 00 07 F4 */ rlwinm r0, r0, 0, 0x1f, 0x1a
+/* 8026489C 002617DC 90 03 00 00 */ stw r0, 0(r3)
+/* 802648A0 002617E0 80 03 00 00 */ lwz r0, 0(r3)
+/* 802648A4 002617E4 7C 00 23 78 */ or r0, r0, r4
+/* 802648A8 002617E8 90 03 00 00 */ stw r0, 0(r3)
+/* 802648AC 002617EC 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_802648B0.s b/include/SComponent/c_cc_d/asm/func_802648B0.s
new file mode 100644
index 0000000000..44dba4e580
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802648B0.s
@@ -0,0 +1,6 @@
+/* 802648B0 002617F0 80 03 00 04 */ lwz r0, 4(r3)
+/* 802648B4 002617F4 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
+/* 802648B8 002617F8 90 03 00 04 */ stw r0, 4(r3)
+/* 802648BC 002617FC 38 00 00 00 */ li r0, 0
+/* 802648C0 00261800 90 03 00 08 */ stw r0, 8(r3)
+/* 802648C4 00261804 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_802648C8.s b/include/SComponent/c_cc_d/asm/func_802648C8.s
new file mode 100644
index 0000000000..6080793036
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802648C8.s
@@ -0,0 +1,4 @@
+/* 802648C8 00261808 38 00 00 01 */ li r0, 1
+/* 802648CC 0026180C 90 03 00 04 */ stw r0, 4(r3)
+/* 802648D0 00261810 90 83 00 08 */ stw r4, 8(r3)
+/* 802648D4 00261814 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_802648D8.s b/include/SComponent/c_cc_d/asm/func_802648D8.s
new file mode 100644
index 0000000000..fe22b19569
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802648D8.s
@@ -0,0 +1,4 @@
+/* 802648D8 00261818 38 00 00 01 */ li r0, 1
+/* 802648DC 0026181C 90 03 00 04 */ stw r0, 4(r3)
+/* 802648E0 00261820 90 83 00 08 */ stw r4, 8(r3)
+/* 802648E4 00261824 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_802648E8.s b/include/SComponent/c_cc_d/asm/func_802648E8.s
new file mode 100644
index 0000000000..7fd11d8f5c
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802648E8.s
@@ -0,0 +1,6 @@
+/* 802648E8 00261828 80 03 00 04 */ lwz r0, 4(r3)
+/* 802648EC 0026182C 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
+/* 802648F0 00261830 90 03 00 04 */ stw r0, 4(r3)
+/* 802648F4 00261834 38 00 00 00 */ li r0, 0
+/* 802648F8 00261838 90 03 00 08 */ stw r0, 8(r3)
+/* 802648FC 0026183C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_80264900.s b/include/SComponent/c_cc_d/asm/func_80264900.s
new file mode 100644
index 0000000000..27178983f5
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80264900.s
@@ -0,0 +1,7 @@
+/* 80264900 00261840 80 03 00 00 */ lwz r0, 0(r3)
+/* 80264904 00261844 54 00 07 F6 */ rlwinm r0, r0, 0, 0x1f, 0x1b
+/* 80264908 00261848 90 03 00 00 */ stw r0, 0(r3)
+/* 8026490C 0026184C 80 03 00 00 */ lwz r0, 0(r3)
+/* 80264910 00261850 7C 00 23 78 */ or r0, r0, r4
+/* 80264914 00261854 90 03 00 00 */ stw r0, 0(r3)
+/* 80264918 00261858 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_d/asm/func_8026491C.s b/include/SComponent/c_cc_d/asm/func_8026491C.s
new file mode 100644
index 0000000000..4aae0c9c67
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_8026491C.s
@@ -0,0 +1,7 @@
+/* 8026491C 0026185C 80 03 00 00 */ lwz r0, 0(r3)
+/* 80264920 00261860 54 00 07 30 */ rlwinm r0, r0, 0, 0x1c, 0x18
+/* 80264924 00261864 90 03 00 00 */ stw r0, 0(r3)
+/* 80264928 00261868 80 03 00 00 */ lwz r0, 0(r3)
+/* 8026492C 0026186C 7C 00 23 78 */ or r0, r0, r4
+/* 80264930 00261870 90 03 00 00 */ stw r0, 0(r3)
+/* 80264934 00261874 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80264938.s b/include/SComponent/c_cc_d/asm/func_80264938.s
new file mode 100644
index 0000000000..f8eb986317
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80264938.s
@@ -0,0 +1,43 @@
+/* 80264938 00261878 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026493C 0026187C 7C 08 02 A6 */ mflr r0
+/* 80264940 00261880 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80264944 00261884 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80264948 00261888 7C 7F 1B 79 */ or. r31, r3, r3
+/* 8026494C 0026188C 41 82 00 74 */ beq lbl_802649C0
+/* 80264950 00261890 3C 60 80 3C */ lis r3, lbl_803C366C@ha
+/* 80264954 00261894 38 63 36 6C */ addi r3, r3, lbl_803C366C@l
+/* 80264958 00261898 90 7F 00 1C */ stw r3, 0x1c(r31)
+/* 8026495C 0026189C 38 03 00 58 */ addi r0, r3, 0x58
+/* 80264960 002618A0 90 1F 00 30 */ stw r0, 0x30(r31)
+/* 80264964 002618A4 34 1F 00 20 */ addic. r0, r31, 0x20
+/* 80264968 002618A8 41 82 00 24 */ beq lbl_8026498C
+/* 8026496C 002618AC 3C 60 80 3B */ lis r3, lbl_803ABB84@ha
+/* 80264970 002618B0 38 03 BB 84 */ addi r0, r3, lbl_803ABB84@l
+/* 80264974 002618B4 90 1F 00 30 */ stw r0, 0x30(r31)
+/* 80264978 002618B8 34 1F 00 20 */ addic. r0, r31, 0x20
+/* 8026497C 002618BC 41 82 00 10 */ beq lbl_8026498C
+/* 80264980 002618C0 3C 60 80 3A */ lis r3, lbl_803A37C0@ha
+/* 80264984 002618C4 38 03 37 C0 */ addi r0, r3, lbl_803A37C0@l
+/* 80264988 002618C8 90 1F 00 30 */ stw r0, 0x30(r31)
+lbl_8026498C:
+/* 8026498C 002618CC 28 1F 00 00 */ cmplwi r31, 0
+/* 80264990 002618D0 41 82 00 20 */ beq lbl_802649B0
+/* 80264994 002618D4 3C 60 80 3C */ lis r3, lbl_803C36D0@ha
+/* 80264998 002618D8 38 03 36 D0 */ addi r0, r3, lbl_803C36D0@l
+/* 8026499C 002618DC 90 1F 00 1C */ stw r0, 0x1c(r31)
+/* 802649A0 002618E0 41 82 00 10 */ beq lbl_802649B0
+/* 802649A4 002618E4 3C 60 80 3A */ lis r3, lbl_803A7218@ha
+/* 802649A8 002618E8 38 03 72 18 */ addi r0, r3, lbl_803A7218@l
+/* 802649AC 002618EC 90 1F 00 18 */ stw r0, 0x18(r31)
+lbl_802649B0:
+/* 802649B0 002618F0 7C 80 07 35 */ extsh. r0, r4
+/* 802649B4 002618F4 40 81 00 0C */ ble lbl_802649C0
+/* 802649B8 002618F8 7F E3 FB 78 */ mr r3, r31
+/* 802649BC 002618FC 48 06 A3 81 */ bl __dl__FPv
+lbl_802649C0:
+/* 802649C0 00261900 7F E3 FB 78 */ mr r3, r31
+/* 802649C4 00261904 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802649C8 00261908 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802649CC 0026190C 7C 08 03 A6 */ mtlr r0
+/* 802649D0 00261910 38 21 00 10 */ addi r1, r1, 0x10
+/* 802649D4 00261914 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_802649D8.s b/include/SComponent/c_cc_d/asm/func_802649D8.s
new file mode 100644
index 0000000000..dc7a489445
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802649D8.s
@@ -0,0 +1,2 @@
+/* 802649D8 00261918 38 60 00 00 */ li r3, 0
+/* 802649DC 0026191C 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_802649E0.s b/include/SComponent/c_cc_d/asm/func_802649E0.s
new file mode 100644
index 0000000000..bde74e56b5
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802649E0.s
@@ -0,0 +1,2 @@
+/* 802649E0 00261920 38 60 00 00 */ li r3, 0
+/* 802649E4 00261924 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_802649E8.s b/include/SComponent/c_cc_d/asm/func_802649E8.s
new file mode 100644
index 0000000000..83c7b2b059
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802649E8.s
@@ -0,0 +1 @@
+/* 802649E8 00261928 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_802649EC.s b/include/SComponent/c_cc_d/asm/func_802649EC.s
new file mode 100644
index 0000000000..80b8a90213
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802649EC.s
@@ -0,0 +1,3 @@
+/* 802649EC 0026192C 38 00 00 00 */ li r0, 0
+/* 802649F0 00261930 98 03 00 16 */ stb r0, 0x16(r3)
+/* 802649F4 00261934 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_802649F8.s b/include/SComponent/c_cc_d/asm/func_802649F8.s
new file mode 100644
index 0000000000..e2415f65d1
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_802649F8.s
@@ -0,0 +1,21 @@
+/* 802649F8 00261938 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802649FC 0026193C 7C 08 02 A6 */ mflr r0
+/* 80264A00 00261940 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80264A04 00261944 3C 60 80 43 */ lis r3, lbl_80430CF4@ha
+/* 80264A08 00261948 38 83 0C F4 */ addi r4, r3, lbl_80430CF4@l
+/* 80264A0C 0026194C C0 04 00 00 */ lfs f0, 0(r4)
+/* 80264A10 00261950 3C 60 80 43 */ lis r3, lbl_80430CB4@ha
+/* 80264A14 00261954 D4 03 0C B4 */ stfsu f0, lbl_80430CB4@l(r3)
+/* 80264A18 00261958 C0 04 00 04 */ lfs f0, 4(r4)
+/* 80264A1C 0026195C D0 03 00 04 */ stfs f0, 4(r3)
+/* 80264A20 00261960 C0 04 00 08 */ lfs f0, 8(r4)
+/* 80264A24 00261964 D0 03 00 08 */ stfs f0, 8(r3)
+/* 80264A28 00261968 3C 80 80 01 */ lis r4, cXyz_NS_dtor@ha
+/* 80264A2C 0026196C 38 84 91 84 */ addi r4, r4, cXyz_NS_dtor@l
+/* 80264A30 00261970 3C A0 80 43 */ lis r5, lbl_80430CA8@ha
+/* 80264A34 00261974 38 A5 0C A8 */ addi r5, r5, lbl_80430CA8@l
+/* 80264A38 00261978 48 0F D1 ED */ bl func_80361C24
+/* 80264A3C 0026197C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80264A40 00261980 7C 08 03 A6 */ mtlr r0
+/* 80264A44 00261984 38 21 00 10 */ addi r1, r1, 0x10
+/* 80264A48 00261988 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80264A4C.s b/include/SComponent/c_cc_d/asm/func_80264A4C.s
new file mode 100644
index 0000000000..cb69e44d6f
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80264A4C.s
@@ -0,0 +1,3 @@
+/* 80264A4C 0026198C 38 63 FF E0 */ addi r3, r3, -32
+/*.global __dt__12cCcD_TriAttrFv*/
+/* 80264A50 00261990 4B FF FE E8 */ b __dt__12cCcD_TriAttrFv \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80264A54.s b/include/SComponent/c_cc_d/asm/func_80264A54.s
new file mode 100644
index 0000000000..3d1ef23b9b
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80264A54.s
@@ -0,0 +1,3 @@
+/* 80264A54 00261994 38 63 FF E0 */ addi r3, r3, -32
+/*.global cCcD_CpsAttr_NS_dtor*/
+/* 80264A58 00261998 4B E2 09 F8 */ b cCcD_CpsAttr_NS_dtor \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80264A5C.s b/include/SComponent/c_cc_d/asm/func_80264A5C.s
new file mode 100644
index 0000000000..1f91ae7eed
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80264A5C.s
@@ -0,0 +1,3 @@
+/* 80264A5C 0026199C 38 63 FF E0 */ addi r3, r3, -32
+/*.global cCcD_CylAttr_NS_dtor*/
+/* 80264A60 002619A0 4B E2 0A 80 */ b cCcD_CylAttr_NS_dtor \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/asm/func_80264A64.s b/include/SComponent/c_cc_d/asm/func_80264A64.s
new file mode 100644
index 0000000000..42db5475cf
--- /dev/null
+++ b/include/SComponent/c_cc_d/asm/func_80264A64.s
@@ -0,0 +1,3 @@
+/* 80264A64 002619A4 38 63 FF E0 */ addi r3, r3, -32
+/*.global cCcD_SphAttr_NS_dtor*/
+/* 80264A68 002619A8 4B E2 27 B4 */ b cCcD_SphAttr_NS_dtor \ No newline at end of file
diff --git a/include/SComponent/c_cc_s/asm/func_80264A6C.s b/include/SComponent/c_cc_s/asm/func_80264A6C.s
new file mode 100644
index 0000000000..1f08bca1fa
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_80264A6C.s
@@ -0,0 +1,10 @@
+/* 80264A6C 002619AC 3C 80 80 3C */ lis r4, lbl_803C3748@ha
+/* 80264A70 002619B0 38 04 37 48 */ addi r0, r4, lbl_803C3748@l
+/* 80264A74 002619B4 90 03 28 48 */ stw r0, 0x2848(r3)
+/* 80264A78 002619B8 3C 80 80 3A */ lis r4, lbl_803A7218@ha
+/* 80264A7C 002619BC 38 04 72 18 */ addi r0, r4, lbl_803A7218@l
+/* 80264A80 002619C0 90 03 28 20 */ stw r0, 0x2820(r3)
+/* 80264A84 002619C4 3C 80 80 3A */ lis r4, lbl_803A7200@ha
+/* 80264A88 002619C8 38 04 72 00 */ addi r0, r4, lbl_803A7200@l
+/* 80264A8C 002619CC 90 03 28 20 */ stw r0, 0x2820(r3)
+/* 80264A90 002619D0 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_s/asm/func_80264A94.s b/include/SComponent/c_cc_s/asm/func_80264A94.s
new file mode 100644
index 0000000000..3e2604e5a5
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_80264A94.s
@@ -0,0 +1,59 @@
+/* 80264A94 002619D4 7C 65 1B 78 */ mr r5, r3
+/* 80264A98 002619D8 38 80 00 00 */ li r4, 0
+/* 80264A9C 002619DC 38 C3 04 00 */ addi r6, r3, 0x400
+/* 80264AA0 002619E0 38 06 00 03 */ addi r0, r6, 3
+/* 80264AA4 002619E4 7C 05 00 50 */ subf r0, r5, r0
+/* 80264AA8 002619E8 54 00 F0 BE */ srwi r0, r0, 2
+/* 80264AAC 002619EC 7C 09 03 A6 */ mtctr r0
+/* 80264AB0 002619F0 7C 05 30 40 */ cmplw r5, r6
+/* 80264AB4 002619F4 40 80 00 10 */ bge lbl_80264AC4
+lbl_80264AB8:
+/* 80264AB8 002619F8 90 85 00 00 */ stw r4, 0(r5)
+/* 80264ABC 002619FC 38 A5 00 04 */ addi r5, r5, 4
+/* 80264AC0 00261A00 42 00 FF F8 */ bdnz lbl_80264AB8
+lbl_80264AC4:
+/* 80264AC4 00261A04 38 80 00 00 */ li r4, 0
+/* 80264AC8 00261A08 B0 83 28 00 */ sth r4, 0x2800(r3)
+/* 80264ACC 00261A0C 38 A3 10 00 */ addi r5, r3, 0x1000
+/* 80264AD0 00261A10 38 05 00 03 */ addi r0, r5, 3
+/* 80264AD4 00261A14 7C 06 00 50 */ subf r0, r6, r0
+/* 80264AD8 00261A18 54 00 F0 BE */ srwi r0, r0, 2
+/* 80264ADC 00261A1C 7C 09 03 A6 */ mtctr r0
+/* 80264AE0 00261A20 7C 06 28 40 */ cmplw r6, r5
+/* 80264AE4 00261A24 40 80 00 10 */ bge lbl_80264AF4
+lbl_80264AE8:
+/* 80264AE8 00261A28 90 86 00 00 */ stw r4, 0(r6)
+/* 80264AEC 00261A2C 38 C6 00 04 */ addi r6, r6, 4
+/* 80264AF0 00261A30 42 00 FF F8 */ bdnz lbl_80264AE8
+lbl_80264AF4:
+/* 80264AF4 00261A34 38 80 00 00 */ li r4, 0
+/* 80264AF8 00261A38 B0 83 28 02 */ sth r4, 0x2802(r3)
+/* 80264AFC 00261A3C 38 C3 14 00 */ addi r6, r3, 0x1400
+/* 80264B00 00261A40 38 06 00 03 */ addi r0, r6, 3
+/* 80264B04 00261A44 7C 05 00 50 */ subf r0, r5, r0
+/* 80264B08 00261A48 54 00 F0 BE */ srwi r0, r0, 2
+/* 80264B0C 00261A4C 7C 09 03 A6 */ mtctr r0
+/* 80264B10 00261A50 7C 05 30 40 */ cmplw r5, r6
+/* 80264B14 00261A54 40 80 00 10 */ bge lbl_80264B24
+lbl_80264B18:
+/* 80264B18 00261A58 90 85 00 00 */ stw r4, 0(r5)
+/* 80264B1C 00261A5C 38 A5 00 04 */ addi r5, r5, 4
+/* 80264B20 00261A60 42 00 FF F8 */ bdnz lbl_80264B18
+lbl_80264B24:
+/* 80264B24 00261A64 38 A0 00 00 */ li r5, 0
+/* 80264B28 00261A68 B0 A3 28 04 */ sth r5, 0x2804(r3)
+/* 80264B2C 00261A6C 38 83 28 00 */ addi r4, r3, 0x2800
+/* 80264B30 00261A70 38 04 00 03 */ addi r0, r4, 3
+/* 80264B34 00261A74 7C 06 00 50 */ subf r0, r6, r0
+/* 80264B38 00261A78 54 00 F0 BE */ srwi r0, r0, 2
+/* 80264B3C 00261A7C 7C 09 03 A6 */ mtctr r0
+/* 80264B40 00261A80 7C 06 20 40 */ cmplw r6, r4
+/* 80264B44 00261A84 40 80 00 10 */ bge lbl_80264B54
+lbl_80264B48:
+/* 80264B48 00261A88 90 A6 00 00 */ stw r5, 0(r6)
+/* 80264B4C 00261A8C 38 C6 00 04 */ addi r6, r6, 4
+/* 80264B50 00261A90 42 00 FF F8 */ bdnz lbl_80264B48
+lbl_80264B54:
+/* 80264B54 00261A94 38 00 00 00 */ li r0, 0
+/* 80264B58 00261A98 B0 03 28 06 */ sth r0, 0x2806(r3)
+/* 80264B5C 00261A9C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_s/asm/func_80264B60.s b/include/SComponent/c_cc_s/asm/func_80264B60.s
new file mode 100644
index 0000000000..a86f9dccd7
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_80264B60.s
@@ -0,0 +1,8 @@
+/* 80264B60 00261AA0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80264B64 00261AA4 7C 08 02 A6 */ mflr r0
+/* 80264B68 00261AA8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80264B6C 00261AAC 4B FF FF 29 */ bl Ct__4cCcSFv
+/* 80264B70 00261AB0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80264B74 00261AB4 7C 08 03 A6 */ mtlr r0
+/* 80264B78 00261AB8 38 21 00 10 */ addi r1, r1, 0x10
+/* 80264B7C 00261ABC 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_s/asm/func_80264B80.s b/include/SComponent/c_cc_s/asm/func_80264B80.s
new file mode 100644
index 0000000000..3b7026e5c1
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_80264B80.s
@@ -0,0 +1,11 @@
+/* 80264B80 00261AC0 54 80 06 3E */ clrlwi r0, r4, 0x18
+/* 80264B84 00261AC4 28 00 00 FF */ cmplwi r0, 0xff
+/* 80264B88 00261AC8 40 82 00 0C */ bne lbl_80264B94
+/* 80264B8C 00261ACC 38 60 00 00 */ li r3, 0
+/* 80264B90 00261AD0 4E 80 00 20 */ blr
+lbl_80264B94:
+/* 80264B94 00261AD4 28 00 00 FE */ cmplwi r0, 0xfe
+/* 80264B98 00261AD8 38 60 00 02 */ li r3, 2
+/* 80264B9C 00261ADC 4C 82 00 20 */ bnelr
+/* 80264BA0 00261AE0 38 60 00 01 */ li r3, 1
+/* 80264BA4 00261AE4 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_s/asm/func_80264BA8.s b/include/SComponent/c_cc_s/asm/func_80264BA8.s
new file mode 100644
index 0000000000..316879dd2b
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_80264BA8.s
@@ -0,0 +1,48 @@
+/* 80264BA8 00261AE8 80 04 00 00 */ lwz r0, 0(r4)
+/* 80264BAC 00261AEC 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80264BB0 00261AF0 41 82 00 24 */ beq lbl_80264BD4
+/* 80264BB4 00261AF4 A0 03 28 00 */ lhz r0, 0x2800(r3)
+/* 80264BB8 00261AF8 28 00 01 00 */ cmplwi r0, 0x100
+/* 80264BBC 00261AFC 40 80 00 18 */ bge lbl_80264BD4
+/* 80264BC0 00261B00 54 00 13 BA */ rlwinm r0, r0, 2, 0xe, 0x1d
+/* 80264BC4 00261B04 7C 83 01 2E */ stwx r4, r3, r0
+/* 80264BC8 00261B08 A0 A3 28 00 */ lhz r5, 0x2800(r3)
+/* 80264BCC 00261B0C 38 05 00 01 */ addi r0, r5, 1
+/* 80264BD0 00261B10 B0 03 28 00 */ sth r0, 0x2800(r3)
+lbl_80264BD4:
+/* 80264BD4 00261B14 80 04 00 18 */ lwz r0, 0x18(r4)
+/* 80264BD8 00261B18 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80264BDC 00261B1C 41 82 00 28 */ beq lbl_80264C04
+/* 80264BE0 00261B20 A0 03 28 02 */ lhz r0, 0x2802(r3)
+/* 80264BE4 00261B24 28 00 03 00 */ cmplwi r0, 0x300
+/* 80264BE8 00261B28 40 80 00 1C */ bge lbl_80264C04
+/* 80264BEC 00261B2C 54 00 13 BA */ rlwinm r0, r0, 2, 0xe, 0x1d
+/* 80264BF0 00261B30 7C A3 02 14 */ add r5, r3, r0
+/* 80264BF4 00261B34 90 85 04 00 */ stw r4, 0x400(r5)
+/* 80264BF8 00261B38 A0 A3 28 02 */ lhz r5, 0x2802(r3)
+/* 80264BFC 00261B3C 38 05 00 01 */ addi r0, r5, 1
+/* 80264C00 00261B40 B0 03 28 02 */ sth r0, 0x2802(r3)
+lbl_80264C04:
+/* 80264C04 00261B44 80 04 00 2C */ lwz r0, 0x2c(r4)
+/* 80264C08 00261B48 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80264C0C 00261B4C 41 82 00 28 */ beq lbl_80264C34
+/* 80264C10 00261B50 A0 03 28 04 */ lhz r0, 0x2804(r3)
+/* 80264C14 00261B54 28 00 01 00 */ cmplwi r0, 0x100
+/* 80264C18 00261B58 40 80 00 1C */ bge lbl_80264C34
+/* 80264C1C 00261B5C 54 00 13 BA */ rlwinm r0, r0, 2, 0xe, 0x1d
+/* 80264C20 00261B60 7C A3 02 14 */ add r5, r3, r0
+/* 80264C24 00261B64 90 85 10 00 */ stw r4, 0x1000(r5)
+/* 80264C28 00261B68 A0 A3 28 04 */ lhz r5, 0x2804(r3)
+/* 80264C2C 00261B6C 38 05 00 01 */ addi r0, r5, 1
+/* 80264C30 00261B70 B0 03 28 04 */ sth r0, 0x2804(r3)
+lbl_80264C34:
+/* 80264C34 00261B74 A0 03 28 06 */ lhz r0, 0x2806(r3)
+/* 80264C38 00261B78 28 00 05 00 */ cmplwi r0, 0x500
+/* 80264C3C 00261B7C 4C 80 00 20 */ bgelr
+/* 80264C40 00261B80 54 00 13 BA */ rlwinm r0, r0, 2, 0xe, 0x1d
+/* 80264C44 00261B84 7C A3 02 14 */ add r5, r3, r0
+/* 80264C48 00261B88 90 85 14 00 */ stw r4, 0x1400(r5)
+/* 80264C4C 00261B8C A0 83 28 06 */ lhz r4, 0x2806(r3)
+/* 80264C50 00261B90 38 04 00 01 */ addi r0, r4, 1
+/* 80264C54 00261B94 B0 03 28 06 */ sth r0, 0x2806(r3)
+/* 80264C58 00261B98 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_s/asm/func_80264C5C.s b/include/SComponent/c_cc_s/asm/func_80264C5C.s
new file mode 100644
index 0000000000..b15f7f7cad
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_80264C5C.s
@@ -0,0 +1,40 @@
+/* 80264C5C 00261B9C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80264C60 00261BA0 7C 08 02 A6 */ mflr r0
+/* 80264C64 00261BA4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80264C68 00261BA8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80264C6C 00261BAC 93 C1 00 08 */ stw r30, 8(r1)
+/* 80264C70 00261BB0 7C 7E 1B 78 */ mr r30, r3
+/* 80264C74 00261BB4 3B FE 10 00 */ addi r31, r30, 0x1000
+/* 80264C78 00261BB8 48 00 00 48 */ b lbl_80264CC0
+lbl_80264C7C:
+/* 80264C7C 00261BBC 80 7F 00 00 */ lwz r3, 0(r31)
+/* 80264C80 00261BC0 28 03 00 00 */ cmplwi r3, 0
+/* 80264C84 00261BC4 41 82 00 38 */ beq lbl_80264CBC
+/* 80264C88 00261BC8 81 83 00 3C */ lwz r12, 0x3c(r3)
+/* 80264C8C 00261BCC 81 8C 00 10 */ lwz r12, 0x10(r12)
+/* 80264C90 00261BD0 7D 89 03 A6 */ mtctr r12
+/* 80264C94 00261BD4 4E 80 04 21 */ bctrl
+/* 80264C98 00261BD8 81 83 00 3C */ lwz r12, 0x3c(r3)
+/* 80264C9C 00261BDC 81 8C 00 28 */ lwz r12, 0x28(r12)
+/* 80264CA0 00261BE0 7D 89 03 A6 */ mtctr r12
+/* 80264CA4 00261BE4 4E 80 04 21 */ bctrl
+/* 80264CA8 00261BE8 80 7F 00 00 */ lwz r3, 0(r31)
+/* 80264CAC 00261BEC 80 63 00 44 */ lwz r3, 0x44(r3)
+/* 80264CB0 00261BF0 28 03 00 00 */ cmplwi r3, 0
+/* 80264CB4 00261BF4 41 82 00 08 */ beq lbl_80264CBC
+/* 80264CB8 00261BF8 4B FF EC A5 */ bl ClrCcMove__9cCcD_SttsFv
+lbl_80264CBC:
+/* 80264CBC 00261BFC 3B FF 00 04 */ addi r31, r31, 4
+lbl_80264CC0:
+/* 80264CC0 00261C00 A0 1E 28 04 */ lhz r0, 0x2804(r30)
+/* 80264CC4 00261C04 54 03 10 3A */ slwi r3, r0, 2
+/* 80264CC8 00261C08 38 03 10 00 */ addi r0, r3, 0x1000
+/* 80264CCC 00261C0C 7C 1E 02 14 */ add r0, r30, r0
+/* 80264CD0 00261C10 7C 1F 00 40 */ cmplw r31, r0
+/* 80264CD4 00261C14 41 80 FF A8 */ blt lbl_80264C7C
+/* 80264CD8 00261C18 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80264CDC 00261C1C 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80264CE0 00261C20 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80264CE4 00261C24 7C 08 03 A6 */ mtlr r0
+/* 80264CE8 00261C28 38 21 00 10 */ addi r1, r1, 0x10
+/* 80264CEC 00261C2C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_s/asm/func_80264CF0.s b/include/SComponent/c_cc_s/asm/func_80264CF0.s
new file mode 100644
index 0000000000..48fc9d9f22
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_80264CF0.s
@@ -0,0 +1,43 @@
+/* 80264CF0 00261C30 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80264CF4 00261C34 7C 08 02 A6 */ mflr r0
+/* 80264CF8 00261C38 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80264CFC 00261C3C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80264D00 00261C40 93 C1 00 08 */ stw r30, 8(r1)
+/* 80264D04 00261C44 7C 7E 1B 78 */ mr r30, r3
+/* 80264D08 00261C48 3B FE 04 00 */ addi r31, r30, 0x400
+/* 80264D0C 00261C4C 48 00 00 54 */ b lbl_80264D60
+lbl_80264D10:
+/* 80264D10 00261C50 80 7F 00 00 */ lwz r3, 0(r31)
+/* 80264D14 00261C54 28 03 00 00 */ cmplwi r3, 0
+/* 80264D18 00261C58 41 82 00 44 */ beq lbl_80264D5C
+/* 80264D1C 00261C5C 81 83 00 3C */ lwz r12, 0x3c(r3)
+/* 80264D20 00261C60 81 8C 00 10 */ lwz r12, 0x10(r12)
+/* 80264D24 00261C64 7D 89 03 A6 */ mtctr r12
+/* 80264D28 00261C68 4E 80 04 21 */ bctrl
+/* 80264D2C 00261C6C 81 83 00 3C */ lwz r12, 0x3c(r3)
+/* 80264D30 00261C70 81 8C 00 24 */ lwz r12, 0x24(r12)
+/* 80264D34 00261C74 7D 89 03 A6 */ mtctr r12
+/* 80264D38 00261C78 4E 80 04 21 */ bctrl
+/* 80264D3C 00261C7C 80 7F 00 00 */ lwz r3, 0(r31)
+/* 80264D40 00261C80 80 63 00 44 */ lwz r3, 0x44(r3)
+/* 80264D44 00261C84 28 03 00 00 */ cmplwi r3, 0
+/* 80264D48 00261C88 41 82 00 14 */ beq lbl_80264D5C
+/* 80264D4C 00261C8C 81 83 00 18 */ lwz r12, 0x18(r3)
+/* 80264D50 00261C90 81 8C 00 1C */ lwz r12, 0x1c(r12)
+/* 80264D54 00261C94 7D 89 03 A6 */ mtctr r12
+/* 80264D58 00261C98 4E 80 04 21 */ bctrl
+lbl_80264D5C:
+/* 80264D5C 00261C9C 3B FF 00 04 */ addi r31, r31, 4
+lbl_80264D60:
+/* 80264D60 00261CA0 A0 1E 28 02 */ lhz r0, 0x2802(r30)
+/* 80264D64 00261CA4 54 03 10 3A */ slwi r3, r0, 2
+/* 80264D68 00261CA8 38 03 04 00 */ addi r0, r3, 0x400
+/* 80264D6C 00261CAC 7C 1E 02 14 */ add r0, r30, r0
+/* 80264D70 00261CB0 7C 1F 00 40 */ cmplw r31, r0
+/* 80264D74 00261CB4 41 80 FF 9C */ blt lbl_80264D10
+/* 80264D78 00261CB8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80264D7C 00261CBC 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80264D80 00261CC0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80264D84 00261CC4 7C 08 03 A6 */ mtlr r0
+/* 80264D88 00261CC8 38 21 00 10 */ addi r1, r1, 0x10
+/* 80264D8C 00261CCC 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_s/asm/func_80264D90.s b/include/SComponent/c_cc_s/asm/func_80264D90.s
new file mode 100644
index 0000000000..5cd58a1630
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_80264D90.s
@@ -0,0 +1,42 @@
+/* 80264D90 00261CD0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80264D94 00261CD4 7C 08 02 A6 */ mflr r0
+/* 80264D98 00261CD8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80264D9C 00261CDC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80264DA0 00261CE0 93 C1 00 08 */ stw r30, 8(r1)
+/* 80264DA4 00261CE4 7C 7E 1B 78 */ mr r30, r3
+/* 80264DA8 00261CE8 7F DF F3 78 */ mr r31, r30
+/* 80264DAC 00261CEC 48 00 00 54 */ b lbl_80264E00
+lbl_80264DB0:
+/* 80264DB0 00261CF0 80 7F 00 00 */ lwz r3, 0(r31)
+/* 80264DB4 00261CF4 28 03 00 00 */ cmplwi r3, 0
+/* 80264DB8 00261CF8 41 82 00 44 */ beq lbl_80264DFC
+/* 80264DBC 00261CFC 81 83 00 3C */ lwz r12, 0x3c(r3)
+/* 80264DC0 00261D00 81 8C 00 10 */ lwz r12, 0x10(r12)
+/* 80264DC4 00261D04 7D 89 03 A6 */ mtctr r12
+/* 80264DC8 00261D08 4E 80 04 21 */ bctrl
+/* 80264DCC 00261D0C 81 83 00 3C */ lwz r12, 0x3c(r3)
+/* 80264DD0 00261D10 81 8C 00 20 */ lwz r12, 0x20(r12)
+/* 80264DD4 00261D14 7D 89 03 A6 */ mtctr r12
+/* 80264DD8 00261D18 4E 80 04 21 */ bctrl
+/* 80264DDC 00261D1C 80 7F 00 00 */ lwz r3, 0(r31)
+/* 80264DE0 00261D20 80 63 00 44 */ lwz r3, 0x44(r3)
+/* 80264DE4 00261D24 28 03 00 00 */ cmplwi r3, 0
+/* 80264DE8 00261D28 41 82 00 14 */ beq lbl_80264DFC
+/* 80264DEC 00261D2C 81 83 00 18 */ lwz r12, 0x18(r3)
+/* 80264DF0 00261D30 81 8C 00 18 */ lwz r12, 0x18(r12)
+/* 80264DF4 00261D34 7D 89 03 A6 */ mtctr r12
+/* 80264DF8 00261D38 4E 80 04 21 */ bctrl
+lbl_80264DFC:
+/* 80264DFC 00261D3C 3B FF 00 04 */ addi r31, r31, 4
+lbl_80264E00:
+/* 80264E00 00261D40 A0 1E 28 00 */ lhz r0, 0x2800(r30)
+/* 80264E04 00261D44 54 00 10 3A */ slwi r0, r0, 2
+/* 80264E08 00261D48 7C 1E 02 14 */ add r0, r30, r0
+/* 80264E0C 00261D4C 7C 1F 00 40 */ cmplw r31, r0
+/* 80264E10 00261D50 41 80 FF A0 */ blt lbl_80264DB0
+/* 80264E14 00261D54 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80264E18 00261D58 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80264E1C 00261D5C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80264E20 00261D60 7C 08 03 A6 */ mtlr r0
+/* 80264E24 00261D64 38 21 00 10 */ addi r1, r1, 0x10
+/* 80264E28 00261D68 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_s/asm/func_80264E2C.s b/include/SComponent/c_cc_s/asm/func_80264E2C.s
new file mode 100644
index 0000000000..bdd46d1010
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_80264E2C.s
@@ -0,0 +1,73 @@
+/* 80264E2C 00261D6C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80264E30 00261D70 7C 08 02 A6 */ mflr r0
+/* 80264E34 00261D74 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80264E38 00261D78 39 61 00 20 */ addi r11, r1, 0x20
+/* 80264E3C 00261D7C 48 0F D3 99 */ bl _savegpr_27
+/* 80264E40 00261D80 7C 7B 1B 78 */ mr r27, r3
+/* 80264E44 00261D84 7C 9C 23 78 */ mr r28, r4
+/* 80264E48 00261D88 7C BF 2B 78 */ mr r31, r5
+/* 80264E4C 00261D8C 7F 83 E3 78 */ mr r3, r28
+/* 80264E50 00261D90 4B FF EB F9 */ bl GetAc__8cCcD_ObjFv
+/* 80264E54 00261D94 7C 7D 1B 78 */ mr r29, r3
+/* 80264E58 00261D98 7F E3 FB 78 */ mr r3, r31
+/* 80264E5C 00261D9C 4B FF EB ED */ bl GetAc__8cCcD_ObjFv
+/* 80264E60 00261DA0 28 1D 00 00 */ cmplwi r29, 0
+/* 80264E64 00261DA4 41 82 00 14 */ beq lbl_80264E78
+/* 80264E68 00261DA8 28 03 00 00 */ cmplwi r3, 0
+/* 80264E6C 00261DAC 41 82 00 0C */ beq lbl_80264E78
+/* 80264E70 00261DB0 7C 1D 18 40 */ cmplw r29, r3
+/* 80264E74 00261DB4 41 82 00 28 */ beq lbl_80264E9C
+lbl_80264E78:
+/* 80264E78 00261DB8 80 1C 00 00 */ lwz r0, 0(r28)
+/* 80264E7C 00261DBC 54 03 06 FC */ rlwinm r3, r0, 0, 0x1b, 0x1e
+/* 80264E80 00261DC0 80 1F 00 18 */ lwz r0, 0x18(r31)
+/* 80264E84 00261DC4 7C 60 00 39 */ and. r0, r3, r0
+/* 80264E88 00261DC8 41 82 00 14 */ beq lbl_80264E9C
+/* 80264E8C 00261DCC 80 7C 00 10 */ lwz r3, 0x10(r28)
+/* 80264E90 00261DD0 80 1F 00 28 */ lwz r0, 0x28(r31)
+/* 80264E94 00261DD4 7C 60 00 39 */ and. r0, r3, r0
+/* 80264E98 00261DD8 40 82 00 0C */ bne lbl_80264EA4
+lbl_80264E9C:
+/* 80264E9C 00261DDC 38 60 00 01 */ li r3, 1
+/* 80264EA0 00261DE0 48 00 00 88 */ b lbl_80264F28
+lbl_80264EA4:
+/* 80264EA4 00261DE4 83 DC 00 44 */ lwz r30, 0x44(r28)
+/* 80264EA8 00261DE8 80 7F 00 44 */ lwz r3, 0x44(r31)
+/* 80264EAC 00261DEC 81 83 00 18 */ lwz r12, 0x18(r3)
+/* 80264EB0 00261DF0 81 8C 00 10 */ lwz r12, 0x10(r12)
+/* 80264EB4 00261DF4 7D 89 03 A6 */ mtctr r12
+/* 80264EB8 00261DF8 4E 80 04 21 */ bctrl
+/* 80264EBC 00261DFC 7C 7D 1B 78 */ mr r29, r3
+/* 80264EC0 00261E00 7F C3 F3 78 */ mr r3, r30
+/* 80264EC4 00261E04 81 9E 00 18 */ lwz r12, 0x18(r30)
+/* 80264EC8 00261E08 81 8C 00 10 */ lwz r12, 0x10(r12)
+/* 80264ECC 00261E0C 7D 89 03 A6 */ mtctr r12
+/* 80264ED0 00261E10 4E 80 04 21 */ bctrl
+/* 80264ED4 00261E14 7C 7E 1B 78 */ mr r30, r3
+/* 80264ED8 00261E18 7F E3 FB 78 */ mr r3, r31
+/* 80264EDC 00261E1C 81 9F 00 3C */ lwz r12, 0x3c(r31)
+/* 80264EE0 00261E20 81 8C 00 10 */ lwz r12, 0x10(r12)
+/* 80264EE4 00261E24 7D 89 03 A6 */ mtctr r12
+/* 80264EE8 00261E28 4E 80 04 21 */ bctrl
+/* 80264EEC 00261E2C 7C 7F 1B 78 */ mr r31, r3
+/* 80264EF0 00261E30 7F 83 E3 78 */ mr r3, r28
+/* 80264EF4 00261E34 81 9C 00 3C */ lwz r12, 0x3c(r28)
+/* 80264EF8 00261E38 81 8C 00 10 */ lwz r12, 0x10(r12)
+/* 80264EFC 00261E3C 7D 89 03 A6 */ mtctr r12
+/* 80264F00 00261E40 4E 80 04 21 */ bctrl
+/* 80264F04 00261E44 7C 64 1B 78 */ mr r4, r3
+/* 80264F08 00261E48 7F 63 DB 78 */ mr r3, r27
+/* 80264F0C 00261E4C 7F E5 FB 78 */ mr r5, r31
+/* 80264F10 00261E50 7F C6 F3 78 */ mr r6, r30
+/* 80264F14 00261E54 7F A7 EB 78 */ mr r7, r29
+/* 80264F18 00261E58 81 9B 28 48 */ lwz r12, 0x2848(r27)
+/* 80264F1C 00261E5C 81 8C 00 18 */ lwz r12, 0x18(r12)
+/* 80264F20 00261E60 7D 89 03 A6 */ mtctr r12
+/* 80264F24 00261E64 4E 80 04 21 */ bctrl
+lbl_80264F28:
+/* 80264F28 00261E68 39 61 00 20 */ addi r11, r1, 0x20
+/* 80264F2C 00261E6C 48 0F D2 F5 */ bl _restgpr_27
+/* 80264F30 00261E70 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80264F34 00261E74 7C 08 03 A6 */ mtlr r0
+/* 80264F38 00261E78 38 21 00 20 */ addi r1, r1, 0x20
+/* 80264F3C 00261E7C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_s/asm/func_80264F40.s b/include/SComponent/c_cc_s/asm/func_80264F40.s
new file mode 100644
index 0000000000..500d911635
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_80264F40.s
@@ -0,0 +1,146 @@
+/* 80264F40 00261E80 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80264F44 00261E84 7C 08 02 A6 */ mflr r0
+/* 80264F48 00261E88 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80264F4C 00261E8C 39 61 00 30 */ addi r11, r1, 0x30
+/* 80264F50 00261E90 48 0F D2 7D */ bl _savegpr_25
+/* 80264F54 00261E94 7C 7F 1B 78 */ mr r31, r3
+/* 80264F58 00261E98 A0 03 28 02 */ lhz r0, 0x2802(r3)
+/* 80264F5C 00261E9C 54 04 10 3A */ slwi r4, r0, 2
+/* 80264F60 00261EA0 3B A4 04 00 */ addi r29, r4, 0x400
+/* 80264F64 00261EA4 7F BF EA 14 */ add r29, r31, r29
+/* 80264F68 00261EA8 4B FF FE 29 */ bl ClrAtHitInf__4cCcSFv
+/* 80264F6C 00261EAC 7F E3 FB 78 */ mr r3, r31
+/* 80264F70 00261EB0 4B FF FD 81 */ bl ClrTgHitInf__4cCcSFv
+/* 80264F74 00261EB4 7F FC FB 78 */ mr r28, r31
+/* 80264F78 00261EB8 3C 60 80 43 */ lis r3, lbl_80430CCC@ha
+/* 80264F7C 00261EBC 3B C3 0C CC */ addi r30, r3, lbl_80430CCC@l
+/* 80264F80 00261EC0 48 00 01 B0 */ b lbl_80265130
+lbl_80264F84:
+/* 80264F84 00261EC4 80 7C 00 00 */ lwz r3, 0(r28)
+/* 80264F88 00261EC8 28 03 00 00 */ cmplwi r3, 0
+/* 80264F8C 00261ECC 41 82 01 A0 */ beq lbl_8026512C
+/* 80264F90 00261ED0 80 03 00 00 */ lwz r0, 0(r3)
+/* 80264F94 00261ED4 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80264F98 00261ED8 41 82 01 94 */ beq lbl_8026512C
+/* 80264F9C 00261EDC 81 83 00 3C */ lwz r12, 0x3c(r3)
+/* 80264FA0 00261EE0 81 8C 00 18 */ lwz r12, 0x18(r12)
+/* 80264FA4 00261EE4 7D 89 03 A6 */ mtctr r12
+/* 80264FA8 00261EE8 4E 80 04 21 */ bctrl
+/* 80264FAC 00261EEC 7C 7B 1B 78 */ mr r27, r3
+/* 80264FB0 00261EF0 3B 5F 04 00 */ addi r26, r31, 0x400
+/* 80264FB4 00261EF4 48 00 01 70 */ b lbl_80265124
+lbl_80264FB8:
+/* 80264FB8 00261EF8 80 7A 00 00 */ lwz r3, 0(r26)
+/* 80264FBC 00261EFC 28 03 00 00 */ cmplwi r3, 0
+/* 80264FC0 00261F00 41 82 01 60 */ beq lbl_80265120
+/* 80264FC4 00261F04 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 80264FC8 00261F08 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80264FCC 00261F0C 41 82 01 54 */ beq lbl_80265120
+/* 80264FD0 00261F10 38 83 00 48 */ addi r4, r3, 0x48
+/* 80264FD4 00261F14 80 7C 00 00 */ lwz r3, 0(r28)
+/* 80264FD8 00261F18 38 63 00 48 */ addi r3, r3, 0x48
+/* 80264FDC 00261F1C 4B FF E3 8D */ bl Chk__15cCcD_DivideInfoCFRC15cCcD_DivideInfo
+/* 80264FE0 00261F20 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80264FE4 00261F24 41 82 01 3C */ beq lbl_80265120
+/* 80264FE8 00261F28 7F E3 FB 78 */ mr r3, r31
+/* 80264FEC 00261F2C 80 9C 00 00 */ lwz r4, 0(r28)
+/* 80264FF0 00261F30 80 BA 00 00 */ lwz r5, 0(r26)
+/* 80264FF4 00261F34 4B FF FE 39 */ bl ChkNoHitAtTg__4cCcSFP8cCcD_ObjP8cCcD_Obj
+/* 80264FF8 00261F38 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80264FFC 00261F3C 40 82 01 24 */ bne lbl_80265120
+/* 80265000 00261F40 80 7A 00 00 */ lwz r3, 0(r26)
+/* 80265004 00261F44 81 83 00 3C */ lwz r12, 0x3c(r3)
+/* 80265008 00261F48 81 8C 00 18 */ lwz r12, 0x18(r12)
+/* 8026500C 00261F4C 7D 89 03 A6 */ mtctr r12
+/* 80265010 00261F50 4E 80 04 21 */ bctrl
+/* 80265014 00261F54 7C 79 1B 78 */ mr r25, r3
+/* 80265018 00261F58 88 0D 8B D8 */ lbz r0, lbl_80451158-_SDA_BASE_(r13)
+/* 8026501C 00261F5C 7C 00 07 75 */ extsb. r0, r0
+/* 80265020 00261F60 40 82 00 28 */ bne lbl_80265048
+/* 80265024 00261F64 3C 60 80 43 */ lis r3, lbl_80430CCC@ha
+/* 80265028 00261F68 38 63 0C CC */ addi r3, r3, lbl_80430CCC@l
+/* 8026502C 00261F6C 3C 80 80 01 */ lis r4, cXyz_NS_dtor@ha
+/* 80265030 00261F70 38 84 91 84 */ addi r4, r4, cXyz_NS_dtor@l
+/* 80265034 00261F74 3C A0 80 43 */ lis r5, lbl_80430CC0@ha
+/* 80265038 00261F78 38 A5 0C C0 */ addi r5, r5, lbl_80430CC0@l
+/* 8026503C 00261F7C 48 0F CB E9 */ bl func_80361C24
+/* 80265040 00261F80 38 00 00 01 */ li r0, 1
+/* 80265044 00261F84 98 0D 8B D8 */ stb r0, lbl_80451158-_SDA_BASE_(r13)
+lbl_80265048:
+/* 80265048 00261F88 7F 63 DB 78 */ mr r3, r27
+/* 8026504C 00261F8C 7F 24 CB 78 */ mr r4, r25
+/* 80265050 00261F90 3C A0 80 43 */ lis r5, lbl_80430CCC@ha
+/* 80265054 00261F94 38 A5 0C CC */ addi r5, r5, lbl_80430CCC@l
+/* 80265058 00261F98 81 9B 00 1C */ lwz r12, 0x1c(r27)
+/* 8026505C 00261F9C 81 8C 00 0C */ lwz r12, 0xc(r12)
+/* 80265060 00261FA0 7D 89 03 A6 */ mtctr r12
+/* 80265064 00261FA4 4E 80 04 21 */ bctrl
+/* 80265068 00261FA8 38 C0 00 01 */ li r6, 1
+/* 8026506C 00261FAC 80 9C 00 00 */ lwz r4, 0(r28)
+/* 80265070 00261FB0 80 04 00 40 */ lwz r0, 0x40(r4)
+/* 80265074 00261FB4 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 80265078 00261FB8 40 82 00 18 */ bne lbl_80265090
+/* 8026507C 00261FBC 80 BA 00 00 */ lwz r5, 0(r26)
+/* 80265080 00261FC0 80 05 00 40 */ lwz r0, 0x40(r5)
+/* 80265084 00261FC4 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 80265088 00261FC8 40 82 00 08 */ bne lbl_80265090
+/* 8026508C 00261FCC 38 C0 00 00 */ li r6, 0
+lbl_80265090:
+/* 80265090 00261FD0 54 C0 06 3F */ clrlwi. r0, r6, 0x18
+/* 80265094 00261FD4 40 82 00 24 */ bne lbl_802650B8
+/* 80265098 00261FD8 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026509C 00261FDC 41 82 00 1C */ beq lbl_802650B8
+/* 802650A0 00261FE0 7F E3 FB 78 */ mr r3, r31
+/* 802650A4 00261FE4 80 BA 00 00 */ lwz r5, 0(r26)
+/* 802650A8 00261FE8 3C C0 80 43 */ lis r6, lbl_80430CCC@ha
+/* 802650AC 00261FEC 38 C6 0C CC */ addi r6, r6, lbl_80430CCC@l
+/* 802650B0 00261FF0 48 00 03 19 */ bl SetAtTgCommonHitInf__4cCcSFP8cCcD_ObjP8cCcD_ObjP4cXyz
+/* 802650B4 00261FF4 48 00 00 6C */ b lbl_80265120
+lbl_802650B8:
+/* 802650B8 00261FF8 54 C0 06 3F */ clrlwi. r0, r6, 0x18
+/* 802650BC 00261FFC 41 82 00 64 */ beq lbl_80265120
+/* 802650C0 00262000 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802650C4 00262004 40 82 00 5C */ bne lbl_80265120
+/* 802650C8 00262008 7C 83 23 78 */ mr r3, r4
+/* 802650CC 0026200C 81 84 00 3C */ lwz r12, 0x3c(r4)
+/* 802650D0 00262010 81 8C 00 18 */ lwz r12, 0x18(r12)
+/* 802650D4 00262014 7D 89 03 A6 */ mtctr r12
+/* 802650D8 00262018 4E 80 04 21 */ bctrl
+/* 802650DC 0026201C 28 03 00 00 */ cmplwi r3, 0
+/* 802650E0 00262020 40 82 00 1C */ bne lbl_802650FC
+/* 802650E4 00262024 C0 02 B6 38 */ lfs f0, lbl_80455038-_SDA2_BASE_(r2)
+/* 802650E8 00262028 3C 60 80 43 */ lis r3, lbl_80430CCC@ha
+/* 802650EC 0026202C D0 03 0C CC */ stfs f0, lbl_80430CCC@l(r3)
+/* 802650F0 00262030 D0 1E 00 04 */ stfs f0, 4(r30)
+/* 802650F4 00262034 D0 1E 00 08 */ stfs f0, 8(r30)
+/* 802650F8 00262038 48 00 00 10 */ b lbl_80265108
+lbl_802650FC:
+/* 802650FC 0026203C 3C 80 80 43 */ lis r4, lbl_80430CCC@ha
+/* 80265100 00262040 38 84 0C CC */ addi r4, r4, lbl_80430CCC@l
+/* 80265104 00262044 48 00 9D 21 */ bl CalcCenter__8cM3dGAabCFP4cXyz
+lbl_80265108:
+/* 80265108 00262048 7F E3 FB 78 */ mr r3, r31
+/* 8026510C 0026204C 80 9C 00 00 */ lwz r4, 0(r28)
+/* 80265110 00262050 80 BA 00 00 */ lwz r5, 0(r26)
+/* 80265114 00262054 3C C0 80 43 */ lis r6, lbl_80430CCC@ha
+/* 80265118 00262058 38 C6 0C CC */ addi r6, r6, lbl_80430CCC@l
+/* 8026511C 0026205C 48 00 02 AD */ bl SetAtTgCommonHitInf__4cCcSFP8cCcD_ObjP8cCcD_ObjP4cXyz
+lbl_80265120:
+/* 80265120 00262060 3B 5A 00 04 */ addi r26, r26, 4
+lbl_80265124:
+/* 80265124 00262064 7C 1A E8 40 */ cmplw r26, r29
+/* 80265128 00262068 41 80 FE 90 */ blt lbl_80264FB8
+lbl_8026512C:
+/* 8026512C 0026206C 3B 9C 00 04 */ addi r28, r28, 4
+lbl_80265130:
+/* 80265130 00262070 A0 1F 28 00 */ lhz r0, 0x2800(r31)
+/* 80265134 00262074 54 00 10 3A */ slwi r0, r0, 2
+/* 80265138 00262078 7C 1F 02 14 */ add r0, r31, r0
+/* 8026513C 0026207C 7C 1C 00 40 */ cmplw r28, r0
+/* 80265140 00262080 41 80 FE 44 */ blt lbl_80264F84
+/* 80265144 00262084 39 61 00 30 */ addi r11, r1, 0x30
+/* 80265148 00262088 48 0F D0 D1 */ bl _restgpr_25
+/* 8026514C 0026208C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80265150 00262090 7C 08 03 A6 */ mtlr r0
+/* 80265154 00262094 38 21 00 30 */ addi r1, r1, 0x30
+/* 80265158 00262098 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_s/asm/func_8026515C.s b/include/SComponent/c_cc_s/asm/func_8026515C.s
new file mode 100644
index 0000000000..696e025472
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_8026515C.s
@@ -0,0 +1,57 @@
+/* 8026515C 0026209C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80265160 002620A0 7C 08 02 A6 */ mflr r0
+/* 80265164 002620A4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80265168 002620A8 39 61 00 20 */ addi r11, r1, 0x20
+/* 8026516C 002620AC 48 0F D0 6D */ bl _savegpr_28
+/* 80265170 002620B0 7C 7C 1B 78 */ mr r28, r3
+/* 80265174 002620B4 7C 9D 23 78 */ mr r29, r4
+/* 80265178 002620B8 7C BE 2B 78 */ mr r30, r5
+/* 8026517C 002620BC 7F A3 EB 78 */ mr r3, r29
+/* 80265180 002620C0 4B FF E8 C9 */ bl GetAc__8cCcD_ObjFv
+/* 80265184 002620C4 7C 7F 1B 78 */ mr r31, r3
+/* 80265188 002620C8 7F C3 F3 78 */ mr r3, r30
+/* 8026518C 002620CC 4B FF E8 BD */ bl GetAc__8cCcD_ObjFv
+/* 80265190 002620D0 28 1F 00 00 */ cmplwi r31, 0
+/* 80265194 002620D4 41 82 00 2C */ beq lbl_802651C0
+/* 80265198 002620D8 28 03 00 00 */ cmplwi r3, 0
+/* 8026519C 002620DC 41 82 00 24 */ beq lbl_802651C0
+/* 802651A0 002620E0 7C 1F 18 40 */ cmplw r31, r3
+/* 802651A4 002620E4 40 82 00 1C */ bne lbl_802651C0
+/* 802651A8 002620E8 80 1D 00 2C */ lwz r0, 0x2c(r29)
+/* 802651AC 002620EC 54 00 05 6B */ rlwinm. r0, r0, 0, 0x15, 0x15
+/* 802651B0 002620F0 40 82 00 10 */ bne lbl_802651C0
+/* 802651B4 002620F4 80 1E 00 2C */ lwz r0, 0x2c(r30)
+/* 802651B8 002620F8 54 00 05 6B */ rlwinm. r0, r0, 0, 0x15, 0x15
+/* 802651BC 002620FC 41 82 00 50 */ beq lbl_8026520C
+lbl_802651C0:
+/* 802651C0 00262100 80 BD 00 2C */ lwz r5, 0x2c(r29)
+/* 802651C4 00262104 54 A3 07 3C */ rlwinm r3, r5, 0, 0x1c, 0x1e
+/* 802651C8 00262108 80 9E 00 2C */ lwz r4, 0x2c(r30)
+/* 802651CC 0026210C 54 80 EF 3C */ rlwinm r0, r4, 0x1d, 0x1c, 0x1e
+/* 802651D0 00262110 7C 60 00 39 */ and. r0, r3, r0
+/* 802651D4 00262114 41 82 00 38 */ beq lbl_8026520C
+/* 802651D8 00262118 54 A3 EF 3C */ rlwinm r3, r5, 0x1d, 0x1c, 0x1e
+/* 802651DC 0026211C 54 80 07 3C */ rlwinm r0, r4, 0, 0x1c, 0x1e
+/* 802651E0 00262120 7C 60 00 39 */ and. r0, r3, r0
+/* 802651E4 00262124 41 82 00 28 */ beq lbl_8026520C
+/* 802651E8 00262128 7F 83 E3 78 */ mr r3, r28
+/* 802651EC 0026212C 7F A4 EB 78 */ mr r4, r29
+/* 802651F0 00262130 7F C5 F3 78 */ mr r5, r30
+/* 802651F4 00262134 81 9C 28 48 */ lwz r12, 0x2848(r28)
+/* 802651F8 00262138 81 8C 00 20 */ lwz r12, 0x20(r12)
+/* 802651FC 0026213C 7D 89 03 A6 */ mtctr r12
+/* 80265200 00262140 4E 80 04 21 */ bctrl
+/* 80265204 00262144 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80265208 00262148 41 82 00 0C */ beq lbl_80265214
+lbl_8026520C:
+/* 8026520C 0026214C 38 60 00 01 */ li r3, 1
+/* 80265210 00262150 48 00 00 08 */ b lbl_80265218
+lbl_80265214:
+/* 80265214 00262154 38 60 00 00 */ li r3, 0
+lbl_80265218:
+/* 80265218 00262158 39 61 00 20 */ addi r11, r1, 0x20
+/* 8026521C 0026215C 48 0F D0 09 */ bl _restgpr_28
+/* 80265220 00262160 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80265224 00262164 7C 08 03 A6 */ mtlr r0
+/* 80265228 00262168 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026522C 0026216C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_s/asm/func_80265230.s b/include/SComponent/c_cc_s/asm/func_80265230.s
new file mode 100644
index 0000000000..4d6c323d32
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_80265230.s
@@ -0,0 +1,99 @@
+/* 80265230 00262170 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80265234 00262174 7C 08 02 A6 */ mflr r0
+/* 80265238 00262178 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8026523C 0026217C 39 61 00 30 */ addi r11, r1, 0x30
+/* 80265240 00262180 48 0F CF 8D */ bl _savegpr_25
+/* 80265244 00262184 7C 7B 1B 78 */ mr r27, r3
+/* 80265248 00262188 4B FF FA 15 */ bl ClrCoHitInf__4cCcSFv
+/* 8026524C 0026218C A0 1B 28 04 */ lhz r0, 0x2804(r27)
+/* 80265250 00262190 28 00 00 01 */ cmplwi r0, 1
+/* 80265254 00262194 40 81 01 34 */ ble lbl_80265388
+/* 80265258 00262198 54 03 13 BA */ rlwinm r3, r0, 2, 0xe, 0x1d
+/* 8026525C 0026219C 3B E3 10 00 */ addi r31, r3, 0x1000
+/* 80265260 002621A0 7F FB FA 14 */ add r31, r27, r31
+/* 80265264 002621A4 3B DB 10 00 */ addi r30, r27, 0x1000
+/* 80265268 002621A8 3B 5F FF FC */ addi r26, r31, -4
+/* 8026526C 002621AC 48 00 01 14 */ b lbl_80265380
+lbl_80265270:
+/* 80265270 002621B0 80 7E 00 00 */ lwz r3, 0(r30)
+/* 80265274 002621B4 28 03 00 00 */ cmplwi r3, 0
+/* 80265278 002621B8 41 82 01 04 */ beq lbl_8026537C
+/* 8026527C 002621BC 80 03 00 2C */ lwz r0, 0x2c(r3)
+/* 80265280 002621C0 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80265284 002621C4 41 82 00 F8 */ beq lbl_8026537C
+/* 80265288 002621C8 81 83 00 3C */ lwz r12, 0x3c(r3)
+/* 8026528C 002621CC 81 8C 00 18 */ lwz r12, 0x18(r12)
+/* 80265290 002621D0 7D 89 03 A6 */ mtctr r12
+/* 80265294 002621D4 4E 80 04 21 */ bctrl
+/* 80265298 002621D8 7C 7D 1B 78 */ mr r29, r3
+/* 8026529C 002621DC 3B 9E 00 04 */ addi r28, r30, 4
+/* 802652A0 002621E0 48 00 00 D4 */ b lbl_80265374
+lbl_802652A4:
+/* 802652A4 002621E4 80 7C 00 00 */ lwz r3, 0(r28)
+/* 802652A8 002621E8 28 03 00 00 */ cmplwi r3, 0
+/* 802652AC 002621EC 41 82 00 C4 */ beq lbl_80265370
+/* 802652B0 002621F0 80 03 00 2C */ lwz r0, 0x2c(r3)
+/* 802652B4 002621F4 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 802652B8 002621F8 41 82 00 B8 */ beq lbl_80265370
+/* 802652BC 002621FC 38 83 00 48 */ addi r4, r3, 0x48
+/* 802652C0 00262200 80 7E 00 00 */ lwz r3, 0(r30)
+/* 802652C4 00262204 38 63 00 48 */ addi r3, r3, 0x48
+/* 802652C8 00262208 4B FF E0 A1 */ bl Chk__15cCcD_DivideInfoCFRC15cCcD_DivideInfo
+/* 802652CC 0026220C 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802652D0 00262210 41 82 00 A0 */ beq lbl_80265370
+/* 802652D4 00262214 7F 63 DB 78 */ mr r3, r27
+/* 802652D8 00262218 80 9E 00 00 */ lwz r4, 0(r30)
+/* 802652DC 0026221C 80 BC 00 00 */ lwz r5, 0(r28)
+/* 802652E0 00262220 4B FF FE 7D */ bl ChkNoHitCo__4cCcSFP8cCcD_ObjP8cCcD_Obj
+/* 802652E4 00262224 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802652E8 00262228 40 82 00 88 */ bne lbl_80265370
+/* 802652EC 0026222C 80 7C 00 00 */ lwz r3, 0(r28)
+/* 802652F0 00262230 81 83 00 3C */ lwz r12, 0x3c(r3)
+/* 802652F4 00262234 81 8C 00 18 */ lwz r12, 0x18(r12)
+/* 802652F8 00262238 7D 89 03 A6 */ mtctr r12
+/* 802652FC 0026223C 4E 80 04 21 */ bctrl
+/* 80265300 00262240 7C 79 1B 78 */ mr r25, r3
+/* 80265304 00262244 7F A3 EB 78 */ mr r3, r29
+/* 80265308 00262248 7F 24 CB 78 */ mr r4, r25
+/* 8026530C 0026224C 38 A1 00 08 */ addi r5, r1, 8
+/* 80265310 00262250 81 9D 00 1C */ lwz r12, 0x1c(r29)
+/* 80265314 00262254 81 8C 00 28 */ lwz r12, 0x28(r12)
+/* 80265318 00262258 7D 89 03 A6 */ mtctr r12
+/* 8026531C 0026225C 4E 80 04 21 */ bctrl
+/* 80265320 00262260 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80265324 00262264 41 82 00 4C */ beq lbl_80265370
+/* 80265328 00262268 7F 23 CB 78 */ mr r3, r25
+/* 8026532C 0026226C 81 99 00 1C */ lwz r12, 0x1c(r25)
+/* 80265330 00262270 81 8C 00 48 */ lwz r12, 0x48(r12)
+/* 80265334 00262274 7D 89 03 A6 */ mtctr r12
+/* 80265338 00262278 4E 80 04 21 */ bctrl
+/* 8026533C 0026227C 7C 79 1B 78 */ mr r25, r3
+/* 80265340 00262280 7F A3 EB 78 */ mr r3, r29
+/* 80265344 00262284 81 9D 00 1C */ lwz r12, 0x1c(r29)
+/* 80265348 00262288 81 8C 00 48 */ lwz r12, 0x48(r12)
+/* 8026534C 0026228C 7D 89 03 A6 */ mtctr r12
+/* 80265350 00262290 4E 80 04 21 */ bctrl
+/* 80265354 00262294 7C 65 1B 78 */ mr r5, r3
+/* 80265358 00262298 7F 63 DB 78 */ mr r3, r27
+/* 8026535C 0026229C 80 9E 00 00 */ lwz r4, 0(r30)
+/* 80265360 002622A0 80 DC 00 00 */ lwz r6, 0(r28)
+/* 80265364 002622A4 7F 27 CB 78 */ mr r7, r25
+/* 80265368 002622A8 C0 21 00 08 */ lfs f1, 8(r1)
+/* 8026536C 002622AC 48 00 02 79 */ bl SetCoCommonHitInf__4cCcSFP8cCcD_ObjP4cXyzP8cCcD_ObjP4cXyzf
+lbl_80265370:
+/* 80265370 002622B0 3B 9C 00 04 */ addi r28, r28, 4
+lbl_80265374:
+/* 80265374 002622B4 7C 1C F8 40 */ cmplw r28, r31
+/* 80265378 002622B8 41 80 FF 2C */ blt lbl_802652A4
+lbl_8026537C:
+/* 8026537C 002622BC 3B DE 00 04 */ addi r30, r30, 4
+lbl_80265380:
+/* 80265380 002622C0 7C 1E D0 40 */ cmplw r30, r26
+/* 80265384 002622C4 41 80 FE EC */ blt lbl_80265270
+lbl_80265388:
+/* 80265388 002622C8 39 61 00 30 */ addi r11, r1, 0x30
+/* 8026538C 002622CC 48 0F CE 8D */ bl _restgpr_25
+/* 80265390 002622D0 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80265394 002622D4 7C 08 03 A6 */ mtlr r0
+/* 80265398 002622D8 38 21 00 30 */ addi r1, r1, 0x30
+/* 8026539C 002622DC 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_s/asm/func_802653A0.s b/include/SComponent/c_cc_s/asm/func_802653A0.s
new file mode 100644
index 0000000000..844f85d8aa
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_802653A0.s
@@ -0,0 +1,10 @@
+/* 802653A0 002622E0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802653A4 002622E4 7C 08 02 A6 */ mflr r0
+/* 802653A8 002622E8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802653AC 002622EC 7C E3 3B 78 */ mr r3, r7
+/* 802653B0 002622F0 88 84 00 14 */ lbz r4, 0x14(r4)
+/* 802653B4 002622F4 4B FF E5 BD */ bl cCcD_Stts_NS_PlusDmg
+/* 802653B8 002622F8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802653BC 002622FC 7C 08 03 A6 */ mtlr r0
+/* 802653C0 00262300 38 21 00 10 */ addi r1, r1, 0x10
+/* 802653C4 00262304 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_s/asm/func_802653C8.s b/include/SComponent/c_cc_s/asm/func_802653C8.s
new file mode 100644
index 0000000000..f63ebd519b
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_802653C8.s
@@ -0,0 +1,140 @@
+/* 802653C8 00262308 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 802653CC 0026230C 7C 08 02 A6 */ mflr r0
+/* 802653D0 00262310 90 01 00 54 */ stw r0, 0x54(r1)
+/* 802653D4 00262314 39 61 00 50 */ addi r11, r1, 0x50
+/* 802653D8 00262318 48 0F CD E5 */ bl _savegpr_21
+/* 802653DC 0026231C 7C 7A 1B 78 */ mr r26, r3
+/* 802653E0 00262320 7C 9B 23 78 */ mr r27, r4
+/* 802653E4 00262324 7C BC 2B 78 */ mr r28, r5
+/* 802653E8 00262328 7C DD 33 78 */ mr r29, r6
+/* 802653EC 0026232C 83 E4 00 44 */ lwz r31, 0x44(r4)
+/* 802653F0 00262330 83 C5 00 44 */ lwz r30, 0x44(r5)
+/* 802653F4 00262334 80 04 00 00 */ lwz r0, 0(r4)
+/* 802653F8 00262338 54 16 06 B4 */ rlwinm r22, r0, 0, 0x1a, 0x1a
+/* 802653FC 0026233C 80 05 00 18 */ lwz r0, 0x18(r5)
+/* 80265400 00262340 54 15 06 B4 */ rlwinm r21, r0, 0, 0x1a, 0x1a
+/* 80265404 00262344 7F C3 F3 78 */ mr r3, r30
+/* 80265408 00262348 81 9E 00 18 */ lwz r12, 0x18(r30)
+/* 8026540C 0026234C 81 8C 00 10 */ lwz r12, 0x10(r12)
+/* 80265410 00262350 7D 89 03 A6 */ mtctr r12
+/* 80265414 00262354 4E 80 04 21 */ bctrl
+/* 80265418 00262358 7C 79 1B 78 */ mr r25, r3
+/* 8026541C 0026235C 7F E3 FB 78 */ mr r3, r31
+/* 80265420 00262360 81 9F 00 18 */ lwz r12, 0x18(r31)
+/* 80265424 00262364 81 8C 00 10 */ lwz r12, 0x10(r12)
+/* 80265428 00262368 7D 89 03 A6 */ mtctr r12
+/* 8026542C 0026236C 4E 80 04 21 */ bctrl
+/* 80265430 00262370 7C 78 1B 78 */ mr r24, r3
+/* 80265434 00262374 7F 83 E3 78 */ mr r3, r28
+/* 80265438 00262378 81 9C 00 3C */ lwz r12, 0x3c(r28)
+/* 8026543C 0026237C 81 8C 00 10 */ lwz r12, 0x10(r12)
+/* 80265440 00262380 7D 89 03 A6 */ mtctr r12
+/* 80265444 00262384 4E 80 04 21 */ bctrl
+/* 80265448 00262388 7C 77 1B 78 */ mr r23, r3
+/* 8026544C 0026238C 7F 63 DB 78 */ mr r3, r27
+/* 80265450 00262390 81 9B 00 3C */ lwz r12, 0x3c(r27)
+/* 80265454 00262394 81 8C 00 10 */ lwz r12, 0x10(r12)
+/* 80265458 00262398 7D 89 03 A6 */ mtctr r12
+/* 8026545C 0026239C 4E 80 04 21 */ bctrl
+/* 80265460 002623A0 7C 66 1B 78 */ mr r6, r3
+/* 80265464 002623A4 93 21 00 08 */ stw r25, 8(r1)
+/* 80265468 002623A8 7F 43 D3 78 */ mr r3, r26
+/* 8026546C 002623AC 7E A0 00 34 */ cntlzw r0, r21
+/* 80265470 002623B0 54 04 D9 7E */ srwi r4, r0, 5
+/* 80265474 002623B4 7E C0 00 34 */ cntlzw r0, r22
+/* 80265478 002623B8 54 05 D9 7E */ srwi r5, r0, 5
+/* 8026547C 002623BC 7E E7 BB 78 */ mr r7, r23
+/* 80265480 002623C0 7F E8 FB 78 */ mr r8, r31
+/* 80265484 002623C4 7F C9 F3 78 */ mr r9, r30
+/* 80265488 002623C8 7F 0A C3 78 */ mr r10, r24
+/* 8026548C 002623CC 81 9A 28 48 */ lwz r12, 0x2848(r26)
+/* 80265490 002623D0 81 8C 00 1C */ lwz r12, 0x1c(r12)
+/* 80265494 002623D4 7D 89 03 A6 */ mtctr r12
+/* 80265498 002623D8 4E 80 04 21 */ bctrl
+/* 8026549C 002623DC 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802654A0 002623E0 40 82 01 2C */ bne lbl_802655CC
+/* 802654A4 002623E4 80 1C 00 18 */ lwz r0, 0x18(r28)
+/* 802654A8 002623E8 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a
+/* 802654AC 002623EC 40 82 00 10 */ bne lbl_802654BC
+/* 802654B0 002623F0 7F 63 DB 78 */ mr r3, r27
+/* 802654B4 002623F4 7F 84 E3 78 */ mr r4, r28
+/* 802654B8 002623F8 4B FF F3 85 */ bl SetHit__10cCcD_ObjAtFP8cCcD_Obj
+lbl_802654BC:
+/* 802654BC 002623FC 38 60 00 00 */ li r3, 0
+/* 802654C0 00262400 80 1B 00 00 */ lwz r0, 0(r27)
+/* 802654C4 00262404 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a
+/* 802654C8 00262408 40 82 00 20 */ bne lbl_802654E8
+/* 802654CC 0026240C 80 1B 00 10 */ lwz r0, 0x10(r27)
+/* 802654D0 00262410 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
+/* 802654D4 00262414 41 82 00 10 */ beq lbl_802654E4
+/* 802654D8 00262418 80 1C 00 18 */ lwz r0, 0x18(r28)
+/* 802654DC 0026241C 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19
+/* 802654E0 00262420 40 82 00 08 */ bne lbl_802654E8
+lbl_802654E4:
+/* 802654E4 00262424 38 60 00 01 */ li r3, 1
+lbl_802654E8:
+/* 802654E8 00262428 7C 76 1B 78 */ mr r22, r3
+/* 802654EC 0026242C 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802654F0 00262430 41 82 00 34 */ beq lbl_80265524
+/* 802654F4 00262434 38 7C 00 18 */ addi r3, r28, 0x18
+/* 802654F8 00262438 7F 64 DB 78 */ mr r4, r27
+/* 802654FC 0026243C 4B FF F3 CD */ bl SetHit__10cCcD_ObjTgFP8cCcD_Obj
+/* 80265500 00262440 7F 43 D3 78 */ mr r3, r26
+/* 80265504 00262444 7F 64 DB 78 */ mr r4, r27
+/* 80265508 00262448 7F 85 E3 78 */ mr r5, r28
+/* 8026550C 0026244C 7F E6 FB 78 */ mr r6, r31
+/* 80265510 00262450 7F C7 F3 78 */ mr r7, r30
+/* 80265514 00262454 81 9A 28 48 */ lwz r12, 0x2848(r26)
+/* 80265518 00262458 81 8C 00 08 */ lwz r12, 8(r12)
+/* 8026551C 0026245C 7D 89 03 A6 */ mtctr r12
+/* 80265520 00262460 4E 80 04 21 */ bctrl
+lbl_80265524:
+/* 80265524 00262464 80 1C 00 18 */ lwz r0, 0x18(r28)
+/* 80265528 00262468 54 15 06 B4 */ rlwinm r21, r0, 0, 0x1a, 0x1a
+/* 8026552C 0026246C 7F C3 F3 78 */ mr r3, r30
+/* 80265530 00262470 81 9E 00 18 */ lwz r12, 0x18(r30)
+/* 80265534 00262474 81 8C 00 10 */ lwz r12, 0x10(r12)
+/* 80265538 00262478 7D 89 03 A6 */ mtctr r12
+/* 8026553C 0026247C 4E 80 04 21 */ bctrl
+/* 80265540 00262480 7C 77 1B 78 */ mr r23, r3
+/* 80265544 00262484 7F E3 FB 78 */ mr r3, r31
+/* 80265548 00262488 81 9F 00 18 */ lwz r12, 0x18(r31)
+/* 8026554C 0026248C 81 8C 00 10 */ lwz r12, 0x10(r12)
+/* 80265550 00262490 7D 89 03 A6 */ mtctr r12
+/* 80265554 00262494 4E 80 04 21 */ bctrl
+/* 80265558 00262498 7C 78 1B 78 */ mr r24, r3
+/* 8026555C 0026249C 7F 83 E3 78 */ mr r3, r28
+/* 80265560 002624A0 81 9C 00 3C */ lwz r12, 0x3c(r28)
+/* 80265564 002624A4 81 8C 00 10 */ lwz r12, 0x10(r12)
+/* 80265568 002624A8 7D 89 03 A6 */ mtctr r12
+/* 8026556C 002624AC 4E 80 04 21 */ bctrl
+/* 80265570 002624B0 7C 79 1B 78 */ mr r25, r3
+/* 80265574 002624B4 7F 63 DB 78 */ mr r3, r27
+/* 80265578 002624B8 81 9B 00 3C */ lwz r12, 0x3c(r27)
+/* 8026557C 002624BC 81 8C 00 10 */ lwz r12, 0x10(r12)
+/* 80265580 002624C0 7D 89 03 A6 */ mtctr r12
+/* 80265584 002624C4 4E 80 04 21 */ bctrl
+/* 80265588 002624C8 7C 68 1B 78 */ mr r8, r3
+/* 8026558C 002624CC 93 C1 00 08 */ stw r30, 8(r1)
+/* 80265590 002624D0 93 01 00 0C */ stw r24, 0xc(r1)
+/* 80265594 002624D4 92 E1 00 10 */ stw r23, 0x10(r1)
+/* 80265598 002624D8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8026559C 002624DC 7F 43 D3 78 */ mr r3, r26
+/* 802655A0 002624E0 7E A0 00 34 */ cntlzw r0, r21
+/* 802655A4 002624E4 54 04 D9 7E */ srwi r4, r0, 5
+/* 802655A8 002624E8 7E C5 B3 78 */ mr r5, r22
+/* 802655AC 002624EC 7F 66 DB 78 */ mr r6, r27
+/* 802655B0 002624F0 7F 87 E3 78 */ mr r7, r28
+/* 802655B4 002624F4 7F 29 CB 78 */ mr r9, r25
+/* 802655B8 002624F8 7F EA FB 78 */ mr r10, r31
+/* 802655BC 002624FC 81 9A 28 48 */ lwz r12, 0x2848(r26)
+/* 802655C0 00262500 81 8C 00 14 */ lwz r12, 0x14(r12)
+/* 802655C4 00262504 7D 89 03 A6 */ mtctr r12
+/* 802655C8 00262508 4E 80 04 21 */ bctrl
+lbl_802655CC:
+/* 802655CC 0026250C 39 61 00 50 */ addi r11, r1, 0x50
+/* 802655D0 00262510 48 0F CC 39 */ bl _restgpr_21
+/* 802655D4 00262514 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 802655D8 00262518 7C 08 03 A6 */ mtlr r0
+/* 802655DC 0026251C 38 21 00 50 */ addi r1, r1, 0x50
+/* 802655E0 00262520 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_s/asm/func_802655E4.s b/include/SComponent/c_cc_s/asm/func_802655E4.s
new file mode 100644
index 0000000000..6054569ca6
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_802655E4.s
@@ -0,0 +1,94 @@
+/* 802655E4 00262524 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 802655E8 00262528 7C 08 02 A6 */ mflr r0
+/* 802655EC 0026252C 90 01 00 44 */ stw r0, 0x44(r1)
+/* 802655F0 00262530 DB E1 00 38 */ stfd f31, 0x38(r1)
+/* 802655F4 00262534 39 61 00 38 */ addi r11, r1, 0x38
+/* 802655F8 00262538 48 0F CB C9 */ bl _savegpr_22
+/* 802655FC 0026253C 7C 79 1B 78 */ mr r25, r3
+/* 80265600 00262540 7C 9A 23 78 */ mr r26, r4
+/* 80265604 00262544 7C BB 2B 78 */ mr r27, r5
+/* 80265608 00262548 7C DC 33 78 */ mr r28, r6
+/* 8026560C 0026254C 7C FD 3B 78 */ mr r29, r7
+/* 80265610 00262550 FF E0 08 90 */ fmr f31, f1
+/* 80265614 00262554 80 06 00 2C */ lwz r0, 0x2c(r6)
+/* 80265618 00262558 54 00 05 AC */ rlwinm r0, r0, 0, 0x16, 0x16
+/* 8026561C 0026255C 7C 03 00 34 */ cntlzw r3, r0
+/* 80265620 00262560 54 60 D9 7E */ srwi r0, r3, 5
+/* 80265624 00262564 7C 1F 03 78 */ mr r31, r0
+/* 80265628 00262568 80 04 00 2C */ lwz r0, 0x2c(r4)
+/* 8026562C 0026256C 54 00 05 AC */ rlwinm r0, r0, 0, 0x16, 0x16
+/* 80265630 00262570 7C 00 00 34 */ cntlzw r0, r0
+/* 80265634 00262574 54 00 D9 7E */ srwi r0, r0, 5
+/* 80265638 00262578 7C 1E 03 78 */ mr r30, r0
+/* 8026563C 0026257C 54 60 DE 3F */ rlwinm. r0, r3, 0x1b, 0x18, 0x1f
+/* 80265640 00262580 41 82 00 10 */ beq lbl_80265650
+/* 80265644 00262584 38 7A 00 2C */ addi r3, r26, 0x2c
+/* 80265648 00262588 7F 84 E3 78 */ mr r4, r28
+/* 8026564C 0026258C 4B FF F2 8D */ bl SetHit__10cCcD_ObjCoFP8cCcD_Obj
+lbl_80265650:
+/* 80265650 00262590 57 C0 06 3F */ clrlwi. r0, r30, 0x18
+/* 80265654 00262594 41 82 00 10 */ beq lbl_80265664
+/* 80265658 00262598 38 7C 00 2C */ addi r3, r28, 0x2c
+/* 8026565C 0026259C 7F 44 D3 78 */ mr r4, r26
+/* 80265660 002625A0 4B FF F2 79 */ bl SetHit__10cCcD_ObjCoFP8cCcD_Obj
+lbl_80265664:
+/* 80265664 002625A4 57 E0 06 3F */ clrlwi. r0, r31, 0x18
+/* 80265668 002625A8 41 82 00 34 */ beq lbl_8026569C
+/* 8026566C 002625AC 57 C0 06 3F */ clrlwi. r0, r30, 0x18
+/* 80265670 002625B0 41 82 00 2C */ beq lbl_8026569C
+/* 80265674 002625B4 7F 23 CB 78 */ mr r3, r25
+/* 80265678 002625B8 7F 44 D3 78 */ mr r4, r26
+/* 8026567C 002625BC 7F 65 DB 78 */ mr r5, r27
+/* 80265680 002625C0 7F 86 E3 78 */ mr r6, r28
+/* 80265684 002625C4 7F A7 EB 78 */ mr r7, r29
+/* 80265688 002625C8 FC 20 F8 90 */ fmr f1, f31
+/* 8026568C 002625CC 81 99 28 48 */ lwz r12, 0x2848(r25)
+/* 80265690 002625D0 81 8C 00 0C */ lwz r12, 0xc(r12)
+/* 80265694 002625D4 7D 89 03 A6 */ mtctr r12
+/* 80265698 002625D8 4E 80 04 21 */ bctrl
+lbl_8026569C:
+/* 8026569C 002625DC 82 FA 00 44 */ lwz r23, 0x44(r26)
+/* 802656A0 002625E0 82 DC 00 44 */ lwz r22, 0x44(r28)
+/* 802656A4 002625E4 7E C3 B3 78 */ mr r3, r22
+/* 802656A8 002625E8 81 96 00 18 */ lwz r12, 0x18(r22)
+/* 802656AC 002625EC 81 8C 00 10 */ lwz r12, 0x10(r12)
+/* 802656B0 002625F0 7D 89 03 A6 */ mtctr r12
+/* 802656B4 002625F4 4E 80 04 21 */ bctrl
+/* 802656B8 002625F8 7C 78 1B 78 */ mr r24, r3
+/* 802656BC 002625FC 7E E3 BB 78 */ mr r3, r23
+/* 802656C0 00262600 81 97 00 18 */ lwz r12, 0x18(r23)
+/* 802656C4 00262604 81 8C 00 10 */ lwz r12, 0x10(r12)
+/* 802656C8 00262608 7D 89 03 A6 */ mtctr r12
+/* 802656CC 0026260C 4E 80 04 21 */ bctrl
+/* 802656D0 00262610 7C 7D 1B 78 */ mr r29, r3
+/* 802656D4 00262614 7F 83 E3 78 */ mr r3, r28
+/* 802656D8 00262618 81 9C 00 3C */ lwz r12, 0x3c(r28)
+/* 802656DC 0026261C 81 8C 00 10 */ lwz r12, 0x10(r12)
+/* 802656E0 00262620 7D 89 03 A6 */ mtctr r12
+/* 802656E4 00262624 4E 80 04 21 */ bctrl
+/* 802656E8 00262628 7C 7B 1B 78 */ mr r27, r3
+/* 802656EC 0026262C 7F 43 D3 78 */ mr r3, r26
+/* 802656F0 00262630 81 9A 00 3C */ lwz r12, 0x3c(r26)
+/* 802656F4 00262634 81 8C 00 10 */ lwz r12, 0x10(r12)
+/* 802656F8 00262638 7D 89 03 A6 */ mtctr r12
+/* 802656FC 0026263C 4E 80 04 21 */ bctrl
+/* 80265700 00262640 7C 66 1B 78 */ mr r6, r3
+/* 80265704 00262644 93 01 00 08 */ stw r24, 8(r1)
+/* 80265708 00262648 7F 23 CB 78 */ mr r3, r25
+/* 8026570C 0026264C 7F E4 FB 78 */ mr r4, r31
+/* 80265710 00262650 7F C5 F3 78 */ mr r5, r30
+/* 80265714 00262654 7F 67 DB 78 */ mr r7, r27
+/* 80265718 00262658 7E E8 BB 78 */ mr r8, r23
+/* 8026571C 0026265C 7E C9 B3 78 */ mr r9, r22
+/* 80265720 00262660 7F AA EB 78 */ mr r10, r29
+/* 80265724 00262664 81 99 28 48 */ lwz r12, 0x2848(r25)
+/* 80265728 00262668 81 8C 00 10 */ lwz r12, 0x10(r12)
+/* 8026572C 0026266C 7D 89 03 A6 */ mtctr r12
+/* 80265730 00262670 4E 80 04 21 */ bctrl
+/* 80265734 00262674 CB E1 00 38 */ lfd f31, 0x38(r1)
+/* 80265738 00262678 39 61 00 38 */ addi r11, r1, 0x38
+/* 8026573C 0026267C 48 0F CA D1 */ bl _restgpr_22
+/* 80265740 00262680 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80265744 00262684 7C 08 03 A6 */ mtlr r0
+/* 80265748 00262688 38 21 00 40 */ addi r1, r1, 0x40
+/* 8026574C 0026268C 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_s/asm/func_80265750.s b/include/SComponent/c_cc_s/asm/func_80265750.s
new file mode 100644
index 0000000000..ea7f0d40e4
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_80265750.s
@@ -0,0 +1,307 @@
+/* 80265750 00262690 94 21 FF 80 */ stwu r1, -0x80(r1)
+/* 80265754 00262694 7C 08 02 A6 */ mflr r0
+/* 80265758 00262698 90 01 00 84 */ stw r0, 0x84(r1)
+/* 8026575C 0026269C DB E1 00 70 */ stfd f31, 0x70(r1)
+/* 80265760 002626A0 F3 E1 00 78 */ psq_st f31, 120(r1), 0, 0
+/* 80265764 002626A4 DB C1 00 60 */ stfd f30, 0x60(r1)
+/* 80265768 002626A8 F3 C1 00 68 */ psq_st f30, 104(r1), 0, 0
+/* 8026576C 002626AC DB A1 00 50 */ stfd f29, 0x50(r1)
+/* 80265770 002626B0 F3 A1 00 58 */ psq_st f29, 88(r1), 0, 0
+/* 80265774 002626B4 39 61 00 50 */ addi r11, r1, 0x50
+/* 80265778 002626B8 48 0F CA 55 */ bl _savegpr_25
+/* 8026577C 002626BC 7C 7A 1B 78 */ mr r26, r3
+/* 80265780 002626C0 7C 9B 23 78 */ mr r27, r4
+/* 80265784 002626C4 7C BC 2B 78 */ mr r28, r5
+/* 80265788 002626C8 7C DD 33 78 */ mr r29, r6
+/* 8026578C 002626CC 7C FE 3B 78 */ mr r30, r7
+/* 80265790 002626D0 FF A0 08 90 */ fmr f29, f1
+/* 80265794 002626D4 80 04 00 2C */ lwz r0, 0x2c(r4)
+/* 80265798 002626D8 54 00 05 EF */ rlwinm. r0, r0, 0, 0x17, 0x17
+/* 8026579C 002626DC 40 82 03 E8 */ bne lbl_80265B84
+/* 802657A0 002626E0 80 1D 00 2C */ lwz r0, 0x2c(r29)
+/* 802657A4 002626E4 54 00 05 EF */ rlwinm. r0, r0, 0, 0x17, 0x17
+/* 802657A8 002626E8 41 82 00 08 */ beq lbl_802657B0
+/* 802657AC 002626EC 48 00 03 D8 */ b lbl_80265B84
+lbl_802657B0:
+/* 802657B0 002626F0 80 7B 00 44 */ lwz r3, 0x44(r27)
+/* 802657B4 002626F4 28 03 00 00 */ cmplwi r3, 0
+/* 802657B8 002626F8 41 82 03 CC */ beq lbl_80265B84
+/* 802657BC 002626FC 80 9D 00 44 */ lwz r4, 0x44(r29)
+/* 802657C0 00262700 28 04 00 00 */ cmplwi r4, 0
+/* 802657C4 00262704 40 82 00 08 */ bne lbl_802657CC
+/* 802657C8 00262708 48 00 03 BC */ b lbl_80265B84
+lbl_802657CC:
+/* 802657CC 0026270C 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 802657D0 00262710 28 00 00 00 */ cmplwi r0, 0
+/* 802657D4 00262714 41 82 00 10 */ beq lbl_802657E4
+/* 802657D8 00262718 80 64 00 0C */ lwz r3, 0xc(r4)
+/* 802657DC 0026271C 7C 00 18 40 */ cmplw r0, r3
+/* 802657E0 00262720 41 82 03 A4 */ beq lbl_80265B84
+lbl_802657E4:
+/* 802657E4 00262724 FC 00 EA 10 */ fabs f0, f29
+/* 802657E8 00262728 FC 20 00 18 */ frsp f1, f0
+/* 802657EC 0026272C C0 02 B6 3C */ lfs f0, lbl_8045503C-_SDA2_BASE_(r2)
+/* 802657F0 00262730 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802657F4 00262734 41 80 03 90 */ blt lbl_80265B84
+/* 802657F8 00262738 7F 43 D3 78 */ mr r3, r26
+/* 802657FC 0026273C 7F 64 DB 78 */ mr r4, r27
+/* 80265800 00262740 7F A5 EB 78 */ mr r5, r29
+/* 80265804 00262744 81 9A 28 48 */ lwz r12, 0x2848(r26)
+/* 80265808 00262748 81 8C 00 2C */ lwz r12, 0x2c(r12)
+/* 8026580C 0026274C 7D 89 03 A6 */ mtctr r12
+/* 80265810 00262750 4E 80 04 21 */ bctrl
+/* 80265814 00262754 3B E0 00 00 */ li r31, 0
+/* 80265818 00262758 80 1B 00 2C */ lwz r0, 0x2c(r27)
+/* 8026581C 0026275C 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
+/* 80265820 00262760 41 82 00 14 */ beq lbl_80265834
+/* 80265824 00262764 80 1D 00 2C */ lwz r0, 0x2c(r29)
+/* 80265828 00262768 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
+/* 8026582C 0026276C 41 82 00 08 */ beq lbl_80265834
+/* 80265830 00262770 3B E0 00 01 */ li r31, 1
+lbl_80265834:
+/* 80265834 00262774 80 7B 00 44 */ lwz r3, 0x44(r27)
+/* 80265838 00262778 88 83 00 14 */ lbz r4, 0x14(r3)
+/* 8026583C 0026277C 7F 43 D3 78 */ mr r3, r26
+/* 80265840 00262780 4B FF F3 41 */ bl GetWt__4cCcSCFUc
+/* 80265844 00262784 7C 79 1B 78 */ mr r25, r3
+/* 80265848 00262788 80 7D 00 44 */ lwz r3, 0x44(r29)
+/* 8026584C 0026278C 88 83 00 14 */ lbz r4, 0x14(r3)
+/* 80265850 00262790 7F 43 D3 78 */ mr r3, r26
+/* 80265854 00262794 4B FF F3 2D */ bl GetWt__4cCcSCFUc
+/* 80265858 00262798 7C 7A 1B 78 */ mr r26, r3
+/* 8026585C 0026279C 80 7B 00 44 */ lwz r3, 0x44(r27)
+/* 80265860 002627A0 4B FF E1 25 */ bl GetWeightF__9cCcD_SttsCFv
+/* 80265864 002627A4 FF C0 08 90 */ fmr f30, f1
+/* 80265868 002627A8 80 7D 00 44 */ lwz r3, 0x44(r29)
+/* 8026586C 002627AC 4B FF E1 19 */ bl GetWeightF__9cCcD_SttsCFv
+/* 80265870 002627B0 EC 7E 08 2A */ fadds f3, f30, f1
+/* 80265874 002627B4 FC 00 1A 10 */ fabs f0, f3
+/* 80265878 002627B8 FC 40 00 18 */ frsp f2, f0
+/* 8026587C 002627BC C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 80265880 002627C0 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 80265884 002627C4 40 80 00 10 */ bge lbl_80265894
+/* 80265888 002627C8 C3 C2 B6 40 */ lfs f30, lbl_80455040-_SDA2_BASE_(r2)
+/* 8026588C 002627CC FC 20 F0 90 */ fmr f1, f30
+/* 80265890 002627D0 C0 62 B6 44 */ lfs f3, lbl_80455044-_SDA2_BASE_(r2)
+lbl_80265894:
+/* 80265894 002627D4 C0 02 B6 40 */ lfs f0, lbl_80455040-_SDA2_BASE_(r2)
+/* 80265898 002627D8 EC 40 18 24 */ fdivs f2, f0, f3
+/* 8026589C 002627DC 2C 19 00 00 */ cmpwi r25, 0
+/* 802658A0 002627E0 40 82 00 18 */ bne lbl_802658B8
+/* 802658A4 002627E4 2C 1A 00 00 */ cmpwi r26, 0
+/* 802658A8 002627E8 41 82 02 DC */ beq lbl_80265B84
+/* 802658AC 002627EC C3 E2 B6 38 */ lfs f31, lbl_80455038-_SDA2_BASE_(r2)
+/* 802658B0 002627F0 FF C0 00 90 */ fmr f30, f0
+/* 802658B4 002627F4 48 00 00 5C */ b lbl_80265910
+lbl_802658B8:
+/* 802658B8 002627F8 2C 19 00 01 */ cmpwi r25, 1
+/* 802658BC 002627FC 40 82 00 38 */ bne lbl_802658F4
+/* 802658C0 00262800 2C 1A 00 00 */ cmpwi r26, 0
+/* 802658C4 00262804 40 82 00 10 */ bne lbl_802658D4
+/* 802658C8 00262808 FF E0 00 90 */ fmr f31, f0
+/* 802658CC 0026280C C3 C2 B6 38 */ lfs f30, lbl_80455038-_SDA2_BASE_(r2)
+/* 802658D0 00262810 48 00 00 40 */ b lbl_80265910
+lbl_802658D4:
+/* 802658D4 00262814 2C 1A 00 01 */ cmpwi r26, 1
+/* 802658D8 00262818 40 82 00 10 */ bne lbl_802658E8
+/* 802658DC 0026281C C3 E2 B6 48 */ lfs f31, lbl_80455048-_SDA2_BASE_(r2)
+/* 802658E0 00262820 FF C0 F8 90 */ fmr f30, f31
+/* 802658E4 00262824 48 00 00 2C */ b lbl_80265910
+lbl_802658E8:
+/* 802658E8 00262828 C3 E2 B6 38 */ lfs f31, lbl_80455038-_SDA2_BASE_(r2)
+/* 802658EC 0026282C FF C0 00 90 */ fmr f30, f0
+/* 802658F0 00262830 48 00 00 20 */ b lbl_80265910
+lbl_802658F4:
+/* 802658F4 00262834 2C 1A 00 02 */ cmpwi r26, 2
+/* 802658F8 00262838 40 82 00 10 */ bne lbl_80265908
+/* 802658FC 0026283C EF E1 00 B2 */ fmuls f31, f1, f2
+/* 80265900 00262840 EF DE 00 B2 */ fmuls f30, f30, f2
+/* 80265904 00262844 48 00 00 0C */ b lbl_80265910
+lbl_80265908:
+/* 80265908 00262848 FF E0 00 90 */ fmr f31, f0
+/* 8026590C 0026284C C3 C2 B6 38 */ lfs f30, lbl_80455038-_SDA2_BASE_(r2)
+lbl_80265910:
+/* 80265910 00262850 57 E0 06 3F */ clrlwi. r0, r31, 0x18
+/* 80265914 00262854 41 82 00 20 */ beq lbl_80265934
+/* 80265918 00262858 7F C3 F3 78 */ mr r3, r30
+/* 8026591C 0026285C 7F 84 E3 78 */ mr r4, r28
+/* 80265920 00262860 38 A1 00 0C */ addi r5, r1, 0xc
+/* 80265924 00262864 48 0E 17 91 */ bl PSVECSubtract
+/* 80265928 00262868 38 61 00 0C */ addi r3, r1, 0xc
+/* 8026592C 0026286C 48 0E 18 25 */ bl PSVECMag
+/* 80265930 00262870 48 00 01 18 */ b lbl_80265A48
+lbl_80265934:
+/* 80265934 00262874 C0 3E 00 00 */ lfs f1, 0(r30)
+/* 80265938 00262878 C0 1C 00 00 */ lfs f0, 0(r28)
+/* 8026593C 0026287C EC 61 00 28 */ fsubs f3, f1, f0
+/* 80265940 00262880 D0 61 00 0C */ stfs f3, 0xc(r1)
+/* 80265944 00262884 C0 42 B6 38 */ lfs f2, lbl_80455038-_SDA2_BASE_(r2)
+/* 80265948 00262888 D0 41 00 10 */ stfs f2, 0x10(r1)
+/* 8026594C 0026288C C0 3E 00 08 */ lfs f1, 8(r30)
+/* 80265950 00262890 C0 1C 00 08 */ lfs f0, 8(r28)
+/* 80265954 00262894 EC 01 00 28 */ fsubs f0, f1, f0
+/* 80265958 00262898 D0 01 00 14 */ stfs f0, 0x14(r1)
+/* 8026595C 0026289C EC 23 00 F2 */ fmuls f1, f3, f3
+/* 80265960 002628A0 EC 00 00 32 */ fmuls f0, f0, f0
+/* 80265964 002628A4 EC 21 00 2A */ fadds f1, f1, f0
+/* 80265968 002628A8 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 8026596C 002628AC 40 81 00 58 */ ble lbl_802659C4
+/* 80265970 002628B0 FC 00 08 34 */ frsqrte f0, f1
+/* 80265974 002628B4 C8 82 B6 50 */ lfd f4, lbl_80455050-_SDA2_BASE_(r2)
+/* 80265978 002628B8 FC 44 00 32 */ fmul f2, f4, f0
+/* 8026597C 002628BC C8 62 B6 58 */ lfd f3, lbl_80455058-_SDA2_BASE_(r2)
+/* 80265980 002628C0 FC 00 00 32 */ fmul f0, f0, f0
+/* 80265984 002628C4 FC 01 00 32 */ fmul f0, f1, f0
+/* 80265988 002628C8 FC 03 00 28 */ fsub f0, f3, f0
+/* 8026598C 002628CC FC 02 00 32 */ fmul f0, f2, f0
+/* 80265990 002628D0 FC 44 00 32 */ fmul f2, f4, f0
+/* 80265994 002628D4 FC 00 00 32 */ fmul f0, f0, f0
+/* 80265998 002628D8 FC 01 00 32 */ fmul f0, f1, f0
+/* 8026599C 002628DC FC 03 00 28 */ fsub f0, f3, f0
+/* 802659A0 002628E0 FC 02 00 32 */ fmul f0, f2, f0
+/* 802659A4 002628E4 FC 44 00 32 */ fmul f2, f4, f0
+/* 802659A8 002628E8 FC 00 00 32 */ fmul f0, f0, f0
+/* 802659AC 002628EC FC 01 00 32 */ fmul f0, f1, f0
+/* 802659B0 002628F0 FC 03 00 28 */ fsub f0, f3, f0
+/* 802659B4 002628F4 FC 02 00 32 */ fmul f0, f2, f0
+/* 802659B8 002628F8 FC 21 00 32 */ fmul f1, f1, f0
+/* 802659BC 002628FC FC 20 08 18 */ frsp f1, f1
+/* 802659C0 00262900 48 00 00 88 */ b lbl_80265A48
+lbl_802659C4:
+/* 802659C4 00262904 C8 02 B6 60 */ lfd f0, lbl_80455060-_SDA2_BASE_(r2)
+/* 802659C8 00262908 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802659CC 0026290C 40 80 00 10 */ bge lbl_802659DC
+/* 802659D0 00262910 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 802659D4 00262914 C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+/* 802659D8 00262918 48 00 00 70 */ b lbl_80265A48
+lbl_802659DC:
+/* 802659DC 0026291C D0 21 00 08 */ stfs f1, 8(r1)
+/* 802659E0 00262920 80 81 00 08 */ lwz r4, 8(r1)
+/* 802659E4 00262924 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
+/* 802659E8 00262928 3C 00 7F 80 */ lis r0, 0x7f80
+/* 802659EC 0026292C 7C 03 00 00 */ cmpw r3, r0
+/* 802659F0 00262930 41 82 00 14 */ beq lbl_80265A04
+/* 802659F4 00262934 40 80 00 40 */ bge lbl_80265A34
+/* 802659F8 00262938 2C 03 00 00 */ cmpwi r3, 0
+/* 802659FC 0026293C 41 82 00 20 */ beq lbl_80265A1C
+/* 80265A00 00262940 48 00 00 34 */ b lbl_80265A34
+lbl_80265A04:
+/* 80265A04 00262944 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 80265A08 00262948 41 82 00 0C */ beq lbl_80265A14
+/* 80265A0C 0026294C 38 00 00 01 */ li r0, 1
+/* 80265A10 00262950 48 00 00 28 */ b lbl_80265A38
+lbl_80265A14:
+/* 80265A14 00262954 38 00 00 02 */ li r0, 2
+/* 80265A18 00262958 48 00 00 20 */ b lbl_80265A38
+lbl_80265A1C:
+/* 80265A1C 0026295C 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 80265A20 00262960 41 82 00 0C */ beq lbl_80265A2C
+/* 80265A24 00262964 38 00 00 05 */ li r0, 5
+/* 80265A28 00262968 48 00 00 10 */ b lbl_80265A38
+lbl_80265A2C:
+/* 80265A2C 0026296C 38 00 00 03 */ li r0, 3
+/* 80265A30 00262970 48 00 00 08 */ b lbl_80265A38
+lbl_80265A34:
+/* 80265A34 00262974 38 00 00 04 */ li r0, 4
+lbl_80265A38:
+/* 80265A38 00262978 2C 00 00 01 */ cmpwi r0, 1
+/* 80265A3C 0026297C 40 82 00 0C */ bne lbl_80265A48
+/* 80265A40 00262980 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 80265A44 00262984 C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+lbl_80265A48:
+/* 80265A48 00262988 FC 00 0A 10 */ fabs f0, f1
+/* 80265A4C 0026298C FC 00 00 18 */ frsp f0, f0
+/* 80265A50 00262990 C0 4D 8C 00 */ lfs f2, lbl_80451180-_SDA_BASE_(r13)
+/* 80265A54 00262994 FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 80265A58 00262998 41 80 00 9C */ blt lbl_80265AF4
+/* 80265A5C 0026299C 57 E0 06 3F */ clrlwi. r0, r31, 0x18
+/* 80265A60 002629A0 41 82 00 40 */ beq lbl_80265AA0
+/* 80265A64 002629A4 38 61 00 0C */ addi r3, r1, 0xc
+/* 80265A68 002629A8 7C 64 1B 78 */ mr r4, r3
+/* 80265A6C 002629AC EC 3D 08 24 */ fdivs f1, f29, f1
+/* 80265A70 002629B0 48 0E 16 69 */ bl PSVECScale
+/* 80265A74 002629B4 C0 02 B6 68 */ lfs f0, lbl_80455068-_SDA2_BASE_(r2)
+/* 80265A78 002629B8 EF FF 00 32 */ fmuls f31, f31, f0
+/* 80265A7C 002629BC 38 61 00 0C */ addi r3, r1, 0xc
+/* 80265A80 002629C0 38 81 00 24 */ addi r4, r1, 0x24
+/* 80265A84 002629C4 FC 20 F8 90 */ fmr f1, f31
+/* 80265A88 002629C8 48 0E 16 51 */ bl PSVECScale
+/* 80265A8C 002629CC 38 61 00 0C */ addi r3, r1, 0xc
+/* 80265A90 002629D0 38 81 00 18 */ addi r4, r1, 0x18
+/* 80265A94 002629D4 FC 20 F0 90 */ fmr f1, f30
+/* 80265A98 002629D8 48 0E 16 41 */ bl PSVECScale
+/* 80265A9C 002629DC 48 00 00 A0 */ b lbl_80265B3C
+lbl_80265AA0:
+/* 80265AA0 002629E0 EC 3D 08 24 */ fdivs f1, f29, f1
+/* 80265AA4 002629E4 C0 01 00 0C */ lfs f0, 0xc(r1)
+/* 80265AA8 002629E8 EC 60 00 72 */ fmuls f3, f0, f1
+/* 80265AAC 002629EC D0 61 00 0C */ stfs f3, 0xc(r1)
+/* 80265AB0 002629F0 C0 01 00 14 */ lfs f0, 0x14(r1)
+/* 80265AB4 002629F4 EC 40 00 72 */ fmuls f2, f0, f1
+/* 80265AB8 002629F8 D0 41 00 14 */ stfs f2, 0x14(r1)
+/* 80265ABC 002629FC FC 00 18 50 */ fneg f0, f3
+/* 80265AC0 00262A00 EC 00 07 F2 */ fmuls f0, f0, f31
+/* 80265AC4 00262A04 D0 01 00 24 */ stfs f0, 0x24(r1)
+/* 80265AC8 00262A08 C0 22 B6 38 */ lfs f1, lbl_80455038-_SDA2_BASE_(r2)
+/* 80265ACC 00262A0C D0 21 00 28 */ stfs f1, 0x28(r1)
+/* 80265AD0 00262A10 FC 00 10 50 */ fneg f0, f2
+/* 80265AD4 00262A14 EC 00 07 F2 */ fmuls f0, f0, f31
+/* 80265AD8 00262A18 D0 01 00 2C */ stfs f0, 0x2c(r1)
+/* 80265ADC 00262A1C EC 03 07 B2 */ fmuls f0, f3, f30
+/* 80265AE0 00262A20 D0 01 00 18 */ stfs f0, 0x18(r1)
+/* 80265AE4 00262A24 D0 21 00 1C */ stfs f1, 0x1c(r1)
+/* 80265AE8 00262A28 EC 02 07 B2 */ fmuls f0, f2, f30
+/* 80265AEC 00262A2C D0 01 00 20 */ stfs f0, 0x20(r1)
+/* 80265AF0 00262A30 48 00 00 4C */ b lbl_80265B3C
+lbl_80265AF4:
+/* 80265AF4 00262A34 C0 02 B6 38 */ lfs f0, lbl_80455038-_SDA2_BASE_(r2)
+/* 80265AF8 00262A38 D0 01 00 28 */ stfs f0, 0x28(r1)
+/* 80265AFC 00262A3C D0 01 00 2C */ stfs f0, 0x2c(r1)
+/* 80265B00 00262A40 D0 01 00 1C */ stfs f0, 0x1c(r1)
+/* 80265B04 00262A44 D0 01 00 20 */ stfs f0, 0x20(r1)
+/* 80265B08 00262A48 FC 00 EA 10 */ fabs f0, f29
+/* 80265B0C 00262A4C FC 00 00 18 */ frsp f0, f0
+/* 80265B10 00262A50 FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 80265B14 00262A54 41 80 00 1C */ blt lbl_80265B30
+/* 80265B18 00262A58 FC 00 E8 50 */ fneg f0, f29
+/* 80265B1C 00262A5C EC 00 07 F2 */ fmuls f0, f0, f31
+/* 80265B20 00262A60 D0 01 00 24 */ stfs f0, 0x24(r1)
+/* 80265B24 00262A64 EC 1D 07 B2 */ fmuls f0, f29, f30
+/* 80265B28 00262A68 D0 01 00 18 */ stfs f0, 0x18(r1)
+/* 80265B2C 00262A6C 48 00 00 10 */ b lbl_80265B3C
+lbl_80265B30:
+/* 80265B30 00262A70 FC 00 F8 50 */ fneg f0, f31
+/* 80265B34 00262A74 D0 01 00 24 */ stfs f0, 0x24(r1)
+/* 80265B38 00262A78 D3 C1 00 18 */ stfs f30, 0x18(r1)
+lbl_80265B3C:
+/* 80265B3C 00262A7C 80 7B 00 44 */ lwz r3, 0x44(r27)
+/* 80265B40 00262A80 C0 21 00 24 */ lfs f1, 0x24(r1)
+/* 80265B44 00262A84 C0 41 00 28 */ lfs f2, 0x28(r1)
+/* 80265B48 00262A88 C0 61 00 2C */ lfs f3, 0x2c(r1)
+/* 80265B4C 00262A8C 4B FF DD E9 */ bl PlusCcMove__9cCcD_SttsFfff
+/* 80265B50 00262A90 80 7D 00 44 */ lwz r3, 0x44(r29)
+/* 80265B54 00262A94 C0 21 00 18 */ lfs f1, 0x18(r1)
+/* 80265B58 00262A98 C0 41 00 1C */ lfs f2, 0x1c(r1)
+/* 80265B5C 00262A9C C0 61 00 20 */ lfs f3, 0x20(r1)
+/* 80265B60 00262AA0 4B FF DD D5 */ bl PlusCcMove__9cCcD_SttsFfff
+/* 80265B64 00262AA4 7F 83 E3 78 */ mr r3, r28
+/* 80265B68 00262AA8 38 81 00 24 */ addi r4, r1, 0x24
+/* 80265B6C 00262AAC 7F 85 E3 78 */ mr r5, r28
+/* 80265B70 00262AB0 48 0E 15 21 */ bl PSVECAdd
+/* 80265B74 00262AB4 7F C3 F3 78 */ mr r3, r30
+/* 80265B78 00262AB8 38 81 00 18 */ addi r4, r1, 0x18
+/* 80265B7C 00262ABC 7F C5 F3 78 */ mr r5, r30
+/* 80265B80 00262AC0 48 0E 15 11 */ bl PSVECAdd
+lbl_80265B84:
+/* 80265B84 00262AC4 E3 E1 00 78 */ psq_l f31, 120(r1), 0, 0
+/* 80265B88 00262AC8 CB E1 00 70 */ lfd f31, 0x70(r1)
+/* 80265B8C 00262ACC E3 C1 00 68 */ psq_l f30, 104(r1), 0, 0
+/* 80265B90 00262AD0 CB C1 00 60 */ lfd f30, 0x60(r1)
+/* 80265B94 00262AD4 E3 A1 00 58 */ psq_l f29, 88(r1), 0, 0
+/* 80265B98 00262AD8 CB A1 00 50 */ lfd f29, 0x50(r1)
+/* 80265B9C 00262ADC 39 61 00 50 */ addi r11, r1, 0x50
+/* 80265BA0 00262AE0 48 0F C6 79 */ bl _restgpr_25
+/* 80265BA4 00262AE4 80 01 00 84 */ lwz r0, 0x84(r1)
+/* 80265BA8 00262AE8 7C 08 03 A6 */ mtlr r0
+/* 80265BAC 00262AEC 38 21 00 80 */ addi r1, r1, 0x80
+/* 80265BB0 00262AF0 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_s/asm/func_80265BB4.s b/include/SComponent/c_cc_s/asm/func_80265BB4.s
new file mode 100644
index 0000000000..7c81e22e21
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_80265BB4.s
@@ -0,0 +1,76 @@
+/* 80265BB4 00262AF4 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80265BB8 00262AF8 7C 08 02 A6 */ mflr r0
+/* 80265BBC 00262AFC 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80265BC0 00262B00 39 61 00 40 */ addi r11, r1, 0x40
+/* 80265BC4 00262B04 48 0F C6 19 */ bl _savegpr_29
+/* 80265BC8 00262B08 7C 7F 1B 78 */ mr r31, r3
+/* 80265BCC 00262B0C 3C 60 80 3A */ lis r3, lbl_803A7218@ha
+/* 80265BD0 00262B10 38 03 72 18 */ addi r0, r3, lbl_803A7218@l
+/* 80265BD4 00262B14 90 01 00 20 */ stw r0, 0x20(r1)
+/* 80265BD8 00262B18 38 61 00 08 */ addi r3, r1, 8
+/* 80265BDC 00262B1C 48 00 91 1D */ bl ClearForMinMax__8cM3dGAabFv
+/* 80265BE0 00262B20 3B DF 14 00 */ addi r30, r31, 0x1400
+/* 80265BE4 00262B24 48 00 00 44 */ b lbl_80265C28
+lbl_80265BE8:
+/* 80265BE8 00262B28 80 7E 00 00 */ lwz r3, 0(r30)
+/* 80265BEC 00262B2C 28 03 00 00 */ cmplwi r3, 0
+/* 80265BF0 00262B30 41 82 00 34 */ beq lbl_80265C24
+/* 80265BF4 00262B34 81 83 00 3C */ lwz r12, 0x3c(r3)
+/* 80265BF8 00262B38 81 8C 00 18 */ lwz r12, 0x18(r12)
+/* 80265BFC 00262B3C 7D 89 03 A6 */ mtctr r12
+/* 80265C00 00262B40 4E 80 04 21 */ bctrl
+/* 80265C04 00262B44 7C 7D 1B 78 */ mr r29, r3
+/* 80265C08 00262B48 81 83 00 1C */ lwz r12, 0x1c(r3)
+/* 80265C0C 00262B4C 81 8C 00 4C */ lwz r12, 0x4c(r12)
+/* 80265C10 00262B50 7D 89 03 A6 */ mtctr r12
+/* 80265C14 00262B54 4E 80 04 21 */ bctrl
+/* 80265C18 00262B58 38 61 00 08 */ addi r3, r1, 8
+/* 80265C1C 00262B5C 7F A4 EB 78 */ mr r4, r29
+/* 80265C20 00262B60 48 00 91 41 */ bl SetMinMax__8cM3dGAabFRC8cM3dGAab
+lbl_80265C24:
+/* 80265C24 00262B64 3B DE 00 04 */ addi r30, r30, 4
+lbl_80265C28:
+/* 80265C28 00262B68 A0 1F 28 06 */ lhz r0, 0x2806(r31)
+/* 80265C2C 00262B6C 54 03 10 3A */ slwi r3, r0, 2
+/* 80265C30 00262B70 38 03 14 00 */ addi r0, r3, 0x1400
+/* 80265C34 00262B74 7C 1F 02 14 */ add r0, r31, r0
+/* 80265C38 00262B78 7C 1E 00 40 */ cmplw r30, r0
+/* 80265C3C 00262B7C 41 80 FF AC */ blt lbl_80265BE8
+/* 80265C40 00262B80 38 7F 28 08 */ addi r3, r31, 0x2808
+/* 80265C44 00262B84 38 81 00 08 */ addi r4, r1, 8
+/* 80265C48 00262B88 4B FF D7 61 */ bl SetArea__15cCcD_DivideAreaFRC8cM3dGAab
+/* 80265C4C 00262B8C 3B BF 14 00 */ addi r29, r31, 0x1400
+/* 80265C50 00262B90 48 00 00 40 */ b lbl_80265C90
+lbl_80265C54:
+/* 80265C54 00262B94 80 7D 00 00 */ lwz r3, 0(r29)
+/* 80265C58 00262B98 28 03 00 00 */ cmplwi r3, 0
+/* 80265C5C 00262B9C 41 82 00 30 */ beq lbl_80265C8C
+/* 80265C60 00262BA0 81 83 00 3C */ lwz r12, 0x3c(r3)
+/* 80265C64 00262BA4 81 8C 00 18 */ lwz r12, 0x18(r12)
+/* 80265C68 00262BA8 7D 89 03 A6 */ mtctr r12
+/* 80265C6C 00262BAC 4E 80 04 21 */ bctrl
+/* 80265C70 00262BB0 7C 65 1B 78 */ mr r5, r3
+/* 80265C74 00262BB4 80 7D 00 00 */ lwz r3, 0(r29)
+/* 80265C78 00262BB8 38 83 00 48 */ addi r4, r3, 0x48
+/* 80265C7C 00262BBC 80 03 00 40 */ lwz r0, 0x40(r3)
+/* 80265C80 00262BC0 54 06 07 BC */ rlwinm r6, r0, 0, 0x1e, 0x1e
+/* 80265C84 00262BC4 38 7F 28 08 */ addi r3, r31, 0x2808
+/* 80265C88 00262BC8 4B FF D8 4D */ bl CalcDivideInfo__15cCcD_DivideAreaFP15cCcD_DivideInfoRC8cM3dGAabUl
+lbl_80265C8C:
+/* 80265C8C 00262BCC 3B BD 00 04 */ addi r29, r29, 4
+lbl_80265C90:
+/* 80265C90 00262BD0 A0 1F 28 06 */ lhz r0, 0x2806(r31)
+/* 80265C94 00262BD4 54 03 10 3A */ slwi r3, r0, 2
+/* 80265C98 00262BD8 38 03 14 00 */ addi r0, r3, 0x1400
+/* 80265C9C 00262BDC 7C 1F 02 14 */ add r0, r31, r0
+/* 80265CA0 00262BE0 7C 1D 00 40 */ cmplw r29, r0
+/* 80265CA4 00262BE4 41 80 FF B0 */ blt lbl_80265C54
+/* 80265CA8 00262BE8 3C 60 80 3A */ lis r3, lbl_803A7218@ha
+/* 80265CAC 00262BEC 38 03 72 18 */ addi r0, r3, lbl_803A7218@l
+/* 80265CB0 00262BF0 90 01 00 20 */ stw r0, 0x20(r1)
+/* 80265CB4 00262BF4 39 61 00 40 */ addi r11, r1, 0x40
+/* 80265CB8 00262BF8 48 0F C5 71 */ bl _restgpr_29
+/* 80265CBC 00262BFC 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80265CC0 00262C00 7C 08 03 A6 */ mtlr r0
+/* 80265CC4 00262C04 38 21 00 40 */ addi r1, r1, 0x40
+/* 80265CC8 00262C08 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_s/asm/func_80265CCC.s b/include/SComponent/c_cc_s/asm/func_80265CCC.s
new file mode 100644
index 0000000000..c1fca8f407
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_80265CCC.s
@@ -0,0 +1,25 @@
+/* 80265CCC 00262C0C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80265CD0 00262C10 7C 08 02 A6 */ mflr r0
+/* 80265CD4 00262C14 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80265CD8 00262C18 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80265CDC 00262C1C 7C 7F 1B 78 */ mr r31, r3
+/* 80265CE0 00262C20 4B FF FE D5 */ bl CalcArea__4cCcSFv
+/* 80265CE4 00262C24 7F E3 FB 78 */ mr r3, r31
+/* 80265CE8 00262C28 4B FF F2 59 */ bl ChkAtTg__4cCcSFv
+/* 80265CEC 00262C2C 7F E3 FB 78 */ mr r3, r31
+/* 80265CF0 00262C30 4B FF F5 41 */ bl ChkCo__4cCcSFv
+/* 80265CF4 00262C34 7F E3 FB 78 */ mr r3, r31
+/* 80265CF8 00262C38 81 9F 28 48 */ lwz r12, 0x2848(r31)
+/* 80265CFC 00262C3C 81 8C 00 28 */ lwz r12, 0x28(r12)
+/* 80265D00 00262C40 7D 89 03 A6 */ mtctr r12
+/* 80265D04 00262C44 4E 80 04 21 */ bctrl
+/* 80265D08 00262C48 38 00 00 00 */ li r0, 0
+/* 80265D0C 00262C4C B0 1F 28 00 */ sth r0, 0x2800(r31)
+/* 80265D10 00262C50 B0 1F 28 02 */ sth r0, 0x2802(r31)
+/* 80265D14 00262C54 B0 1F 28 04 */ sth r0, 0x2804(r31)
+/* 80265D18 00262C58 B0 1F 28 06 */ sth r0, 0x2806(r31)
+/* 80265D1C 00262C5C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80265D20 00262C60 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80265D24 00262C64 7C 08 03 A6 */ mtlr r0
+/* 80265D28 00262C68 38 21 00 10 */ addi r1, r1, 0x10
+/* 80265D2C 00262C6C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_cc_s/asm/func_80265D30.s b/include/SComponent/c_cc_s/asm/func_80265D30.s
new file mode 100644
index 0000000000..fbbd623f0e
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_80265D30.s
@@ -0,0 +1,57 @@
+/* 80265D30 00262C70 7C 65 1B 78 */ mr r5, r3
+/* 80265D34 00262C74 38 80 00 00 */ li r4, 0
+/* 80265D38 00262C78 48 00 00 0C */ b lbl_80265D44
+lbl_80265D3C:
+/* 80265D3C 00262C7C 90 85 00 00 */ stw r4, 0(r5)
+/* 80265D40 00262C80 38 A5 00 04 */ addi r5, r5, 4
+lbl_80265D44:
+/* 80265D44 00262C84 A0 03 28 00 */ lhz r0, 0x2800(r3)
+/* 80265D48 00262C88 54 00 10 3A */ slwi r0, r0, 2
+/* 80265D4C 00262C8C 7C 03 02 14 */ add r0, r3, r0
+/* 80265D50 00262C90 7C 05 00 40 */ cmplw r5, r0
+/* 80265D54 00262C94 41 80 FF E8 */ blt lbl_80265D3C
+/* 80265D58 00262C98 38 A0 00 00 */ li r5, 0
+/* 80265D5C 00262C9C B0 A3 28 00 */ sth r5, 0x2800(r3)
+/* 80265D60 00262CA0 38 C3 04 00 */ addi r6, r3, 0x400
+/* 80265D64 00262CA4 48 00 00 0C */ b lbl_80265D70
+lbl_80265D68:
+/* 80265D68 00262CA8 90 A6 00 00 */ stw r5, 0(r6)
+/* 80265D6C 00262CAC 38 C6 00 04 */ addi r6, r6, 4
+lbl_80265D70:
+/* 80265D70 00262CB0 A0 03 28 02 */ lhz r0, 0x2802(r3)
+/* 80265D74 00262CB4 54 04 10 3A */ slwi r4, r0, 2
+/* 80265D78 00262CB8 38 04 04 00 */ addi r0, r4, 0x400
+/* 80265D7C 00262CBC 7C 03 02 14 */ add r0, r3, r0
+/* 80265D80 00262CC0 7C 06 00 40 */ cmplw r6, r0
+/* 80265D84 00262CC4 41 80 FF E4 */ blt lbl_80265D68
+/* 80265D88 00262CC8 38 A0 00 00 */ li r5, 0
+/* 80265D8C 00262CCC B0 A3 28 02 */ sth r5, 0x2802(r3)
+/* 80265D90 00262CD0 38 C3 10 00 */ addi r6, r3, 0x1000
+/* 80265D94 00262CD4 48 00 00 0C */ b lbl_80265DA0
+lbl_80265D98:
+/* 80265D98 00262CD8 90 A6 00 00 */ stw r5, 0(r6)
+/* 80265D9C 00262CDC 38 C6 00 04 */ addi r6, r6, 4
+lbl_80265DA0:
+/* 80265DA0 00262CE0 A0 03 28 04 */ lhz r0, 0x2804(r3)
+/* 80265DA4 00262CE4 54 04 10 3A */ slwi r4, r0, 2
+/* 80265DA8 00262CE8 38 04 10 00 */ addi r0, r4, 0x1000
+/* 80265DAC 00262CEC 7C 03 02 14 */ add r0, r3, r0
+/* 80265DB0 00262CF0 7C 06 00 40 */ cmplw r6, r0
+/* 80265DB4 00262CF4 41 80 FF E4 */ blt lbl_80265D98
+/* 80265DB8 00262CF8 38 A0 00 00 */ li r5, 0
+/* 80265DBC 00262CFC B0 A3 28 04 */ sth r5, 0x2804(r3)
+/* 80265DC0 00262D00 38 C3 14 00 */ addi r6, r3, 0x1400
+/* 80265DC4 00262D04 48 00 00 0C */ b lbl_80265DD0
+lbl_80265DC8:
+/* 80265DC8 00262D08 90 A6 00 00 */ stw r5, 0(r6)
+/* 80265DCC 00262D0C 38 C6 00 04 */ addi r6, r6, 4
+lbl_80265DD0:
+/* 80265DD0 00262D10 A0 03 28 06 */ lhz r0, 0x2806(r3)
+/* 80265DD4 00262D14 54 04 10 3A */ slwi r4, r0, 2
+/* 80265DD8 00262D18 38 04 14 00 */ addi r0, r4, 0x1400
+/* 80265DDC 00262D1C 7C 03 02 14 */ add r0, r3, r0
+/* 80265DE0 00262D20 7C 06 00 40 */ cmplw r6, r0
+/* 80265DE4 00262D24 41 80 FF E4 */ blt lbl_80265DC8
+/* 80265DE8 00262D28 38 00 00 00 */ li r0, 0
+/* 80265DEC 00262D2C B0 03 28 06 */ sth r0, 0x2806(r3)
+/* 80265DF0 00262D30 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_s/asm/func_80265DF4.s b/include/SComponent/c_cc_s/asm/func_80265DF4.s
new file mode 100644
index 0000000000..7f65898e0f
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_80265DF4.s
@@ -0,0 +1 @@
+/* 80265DF4 00262D34 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_s/asm/func_80265DF8.s b/include/SComponent/c_cc_s/asm/func_80265DF8.s
new file mode 100644
index 0000000000..2cc483ce19
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_80265DF8.s
@@ -0,0 +1 @@
+/* 80265DF8 00262D38 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_s/asm/func_80265DFC.s b/include/SComponent/c_cc_s/asm/func_80265DFC.s
new file mode 100644
index 0000000000..3706353da9
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_80265DFC.s
@@ -0,0 +1 @@
+/* 80265DFC 00262D3C 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_s/asm/func_80265E00.s b/include/SComponent/c_cc_s/asm/func_80265E00.s
new file mode 100644
index 0000000000..18b2d32cb2
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_80265E00.s
@@ -0,0 +1,2 @@
+/* 80265E00 00262D40 38 60 00 00 */ li r3, 0
+/* 80265E04 00262D44 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_s/asm/func_80265E08.s b/include/SComponent/c_cc_s/asm/func_80265E08.s
new file mode 100644
index 0000000000..805fda3616
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_80265E08.s
@@ -0,0 +1,2 @@
+/* 80265E08 00262D48 38 60 00 00 */ li r3, 0
+/* 80265E0C 00262D4C 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_s/asm/func_80265E10.s b/include/SComponent/c_cc_s/asm/func_80265E10.s
new file mode 100644
index 0000000000..9474f76e60
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_80265E10.s
@@ -0,0 +1,2 @@
+/* 80265E10 00262D50 38 60 00 00 */ li r3, 0
+/* 80265E14 00262D54 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_cc_s/asm/func_80265E18.s b/include/SComponent/c_cc_s/asm/func_80265E18.s
new file mode 100644
index 0000000000..6517b94489
--- /dev/null
+++ b/include/SComponent/c_cc_s/asm/func_80265E18.s
@@ -0,0 +1 @@
+/* 80265E18 00262D58 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_lib.h b/include/SComponent/c_lib.h
new file mode 100644
index 0000000000..8483ed4248
--- /dev/null
+++ b/include/SComponent/c_lib.h
@@ -0,0 +1,36 @@
+#ifndef __C_LIB_H_
+#define __C_LIB_H_
+
+#include "SComponent/c_xyz.h"
+#include "global.h"
+
+void cLib_memCpy(void*, const void*, unsigned long);
+void cLib_memSet(void*, int, unsigned long);
+float cLib_addCalc(float*, float, float, float, float);
+void cLib_addCalc2(float*, float, float, float);
+void cLib_addCalc0(float*, float, float);
+float cLib_addCalcPos(cXyz*, const cXyz&, float, float, float);
+float cLib_addCalcPosXZ(cXyz*, const cXyz&, float, float, float);
+void cLib_addCalcPos2(cXyz*, const cXyz&, float, float);
+void cLib_addCalcPosXZ2(cXyz*, const cXyz&, float, float);
+short cLib_addCalcAngleS(short*, short, short, short, short);
+void cLib_addCalcAngleS2(short*, short, short, short);
+int cLib_chaseUC(unsigned char*, unsigned char, unsigned char);
+int cLib_chaseS(short*, short, short);
+int cLib_chaseF(float*, float, float);
+int cLib_chasePos(cXyz*, const cXyz&, float);
+int cLib_chasePosXZ(cXyz*, const cXyz&, float);
+int cLib_chaseAngleS(short*, short, short);
+short cLib_targetAngleY(const Vec*, const Vec*);
+short cLib_targetAngleY(const Vec&, const Vec&);
+short cLib_targetAngleX(const cXyz*, const cXyz*);
+void cLib_offsetPos(cXyz*, const cXyz*, short, const cXyz*);
+short cLib_distanceAngleS(short, short);
+void MtxInit(void);
+void MtxTrans(float, float, float, unsigned char);
+void MtxScale(float, float, float, unsigned char);
+void MtxPosition(cXyz*, cXyz*);
+void MtxPush(void);
+Mtx* MtxPull(void);
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_lib/asm/func_8026F93C.s b/include/SComponent/c_lib/asm/func_8026F93C.s
new file mode 100644
index 0000000000..639baee8c6
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_8026F93C.s
@@ -0,0 +1,8 @@
+/* 8026F93C 0026C87C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026F940 0026C880 7C 08 02 A6 */ mflr r0
+/* 8026F944 0026C884 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026F948 0026C888 4B D9 3B F9 */ bl memcpy
+/* 8026F94C 0026C88C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026F950 0026C890 7C 08 03 A6 */ mtlr r0
+/* 8026F954 0026C894 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026F958 0026C898 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_lib/asm/func_8026F95C.s b/include/SComponent/c_lib/asm/func_8026F95C.s
new file mode 100644
index 0000000000..09217b621f
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_8026F95C.s
@@ -0,0 +1,8 @@
+/* 8026F95C 0026C89C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026F960 0026C8A0 7C 08 02 A6 */ mflr r0
+/* 8026F964 0026C8A4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026F968 0026C8A8 4B D9 3A F1 */ bl func_80003458
+/* 8026F96C 0026C8AC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026F970 0026C8B0 7C 08 03 A6 */ mtlr r0
+/* 8026F974 0026C8B4 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026F978 0026C8B8 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_lib/asm/func_8026F97C.s b/include/SComponent/c_lib/asm/func_8026F97C.s
new file mode 100644
index 0000000000..4fefc91a43
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_8026F97C.s
@@ -0,0 +1,54 @@
+/* 8026F97C 0026C8BC C0 A3 00 00 */ lfs f5, 0(r3)
+/* 8026F980 0026C8C0 FC 05 08 00 */ fcmpu cr0, f5, f1
+/* 8026F984 0026C8C4 41 82 00 A4 */ beq lbl_8026FA28
+/* 8026F988 0026C8C8 EC 01 28 28 */ fsubs f0, f1, f5
+/* 8026F98C 0026C8CC EC C2 00 32 */ fmuls f6, f2, f0
+/* 8026F990 0026C8D0 FC 06 20 40 */ fcmpo cr0, f6, f4
+/* 8026F994 0026C8D4 4C 41 13 82 */ cror 2, 1, 2
+/* 8026F998 0026C8D8 41 82 00 14 */ beq lbl_8026F9AC
+/* 8026F99C 0026C8DC FC 40 20 50 */ fneg f2, f4
+/* 8026F9A0 0026C8E0 FC 06 10 40 */ fcmpo cr0, f6, f2
+/* 8026F9A4 0026C8E4 4C 40 13 82 */ cror 2, 0, 2
+/* 8026F9A8 0026C8E8 40 82 00 30 */ bne lbl_8026F9D8
+lbl_8026F9AC:
+/* 8026F9AC 0026C8EC FC 06 18 40 */ fcmpo cr0, f6, f3
+/* 8026F9B0 0026C8F0 40 81 00 08 */ ble lbl_8026F9B8
+/* 8026F9B4 0026C8F4 FC C0 18 90 */ fmr f6, f3
+lbl_8026F9B8:
+/* 8026F9B8 0026C8F8 FC 00 18 50 */ fneg f0, f3
+/* 8026F9BC 0026C8FC FC 06 00 40 */ fcmpo cr0, f6, f0
+/* 8026F9C0 0026C900 40 80 00 08 */ bge lbl_8026F9C8
+/* 8026F9C4 0026C904 FC C0 00 90 */ fmr f6, f0
+lbl_8026F9C8:
+/* 8026F9C8 0026C908 C0 03 00 00 */ lfs f0, 0(r3)
+/* 8026F9CC 0026C90C EC 00 30 2A */ fadds f0, f0, f6
+/* 8026F9D0 0026C910 D0 03 00 00 */ stfs f0, 0(r3)
+/* 8026F9D4 0026C914 48 00 00 54 */ b lbl_8026FA28
+lbl_8026F9D8:
+/* 8026F9D8 0026C918 C0 02 B7 E0 */ lfs f0, lbl_804551E0-_SDA2_BASE_(r2)
+/* 8026F9DC 0026C91C FC 06 00 40 */ fcmpo cr0, f6, f0
+/* 8026F9E0 0026C920 40 81 00 28 */ ble lbl_8026FA08
+/* 8026F9E4 0026C924 FC 06 20 40 */ fcmpo cr0, f6, f4
+/* 8026F9E8 0026C928 40 80 00 40 */ bge lbl_8026FA28
+/* 8026F9EC 0026C92C EC 05 20 2A */ fadds f0, f5, f4
+/* 8026F9F0 0026C930 D0 03 00 00 */ stfs f0, 0(r3)
+/* 8026F9F4 0026C934 C0 03 00 00 */ lfs f0, 0(r3)
+/* 8026F9F8 0026C938 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026F9FC 0026C93C 40 81 00 2C */ ble lbl_8026FA28
+/* 8026FA00 0026C940 D0 23 00 00 */ stfs f1, 0(r3)
+/* 8026FA04 0026C944 48 00 00 24 */ b lbl_8026FA28
+lbl_8026FA08:
+/* 8026FA08 0026C948 FC 06 10 40 */ fcmpo cr0, f6, f2
+/* 8026FA0C 0026C94C 40 81 00 1C */ ble lbl_8026FA28
+/* 8026FA10 0026C950 EC 05 10 2A */ fadds f0, f5, f2
+/* 8026FA14 0026C954 D0 03 00 00 */ stfs f0, 0(r3)
+/* 8026FA18 0026C958 C0 03 00 00 */ lfs f0, 0(r3)
+/* 8026FA1C 0026C95C FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026FA20 0026C960 40 80 00 08 */ bge lbl_8026FA28
+/* 8026FA24 0026C964 D0 23 00 00 */ stfs f1, 0(r3)
+lbl_8026FA28:
+/* 8026FA28 0026C968 C0 03 00 00 */ lfs f0, 0(r3)
+/* 8026FA2C 0026C96C EC 01 00 28 */ fsubs f0, f1, f0
+/* 8026FA30 0026C970 FC 00 02 10 */ fabs f0, f0
+/* 8026FA34 0026C974 FC 20 00 18 */ frsp f1, f0
+/* 8026FA38 0026C978 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_lib/asm/func_8026FA3C.s b/include/SComponent/c_lib/asm/func_8026FA3C.s
new file mode 100644
index 0000000000..9c0c1bf70b
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_8026FA3C.s
@@ -0,0 +1,19 @@
+/* 8026FA3C 0026C97C C0 03 00 00 */ lfs f0, 0(r3)
+/* 8026FA40 0026C980 FC 00 08 00 */ fcmpu cr0, f0, f1
+/* 8026FA44 0026C984 4D 82 00 20 */ beqlr
+/* 8026FA48 0026C988 EC 01 00 28 */ fsubs f0, f1, f0
+/* 8026FA4C 0026C98C EC 22 00 32 */ fmuls f1, f2, f0
+/* 8026FA50 0026C990 FC 01 18 40 */ fcmpo cr0, f1, f3
+/* 8026FA54 0026C994 40 81 00 0C */ ble lbl_8026FA60
+/* 8026FA58 0026C998 FC 20 18 90 */ fmr f1, f3
+/* 8026FA5C 0026C99C 48 00 00 14 */ b lbl_8026FA70
+lbl_8026FA60:
+/* 8026FA60 0026C9A0 FC 00 18 50 */ fneg f0, f3
+/* 8026FA64 0026C9A4 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026FA68 0026C9A8 40 80 00 08 */ bge lbl_8026FA70
+/* 8026FA6C 0026C9AC FC 20 00 90 */ fmr f1, f0
+lbl_8026FA70:
+/* 8026FA70 0026C9B0 C0 03 00 00 */ lfs f0, 0(r3)
+/* 8026FA74 0026C9B4 EC 00 08 2A */ fadds f0, f0, f1
+/* 8026FA78 0026C9B8 D0 03 00 00 */ stfs f0, 0(r3)
+/* 8026FA7C 0026C9BC 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_lib/asm/func_8026FA80.s b/include/SComponent/c_lib/asm/func_8026FA80.s
new file mode 100644
index 0000000000..dfc26d3ee1
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_8026FA80.s
@@ -0,0 +1,16 @@
+/* 8026FA80 0026C9C0 C0 03 00 00 */ lfs f0, 0(r3)
+/* 8026FA84 0026C9C4 EC 20 00 72 */ fmuls f1, f0, f1
+/* 8026FA88 0026C9C8 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 8026FA8C 0026C9CC 40 81 00 0C */ ble lbl_8026FA98
+/* 8026FA90 0026C9D0 FC 20 10 90 */ fmr f1, f2
+/* 8026FA94 0026C9D4 48 00 00 14 */ b lbl_8026FAA8
+lbl_8026FA98:
+/* 8026FA98 0026C9D8 FC 00 10 50 */ fneg f0, f2
+/* 8026FA9C 0026C9DC FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026FAA0 0026C9E0 40 80 00 08 */ bge lbl_8026FAA8
+/* 8026FAA4 0026C9E4 FC 20 00 90 */ fmr f1, f0
+lbl_8026FAA8:
+/* 8026FAA8 0026C9E8 C0 03 00 00 */ lfs f0, 0(r3)
+/* 8026FAAC 0026C9EC EC 00 08 28 */ fsubs f0, f0, f1
+/* 8026FAB0 0026C9F0 D0 03 00 00 */ stfs f0, 0(r3)
+/* 8026FAB4 0026C9F4 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_lib/asm/func_8026FAB8.s b/include/SComponent/c_lib/asm/func_8026FAB8.s
new file mode 100644
index 0000000000..d7c4abf6cc
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_8026FAB8.s
@@ -0,0 +1,230 @@
+/* 8026FAB8 0026C9F8 94 21 FF 90 */ stwu r1, -0x70(r1)
+/* 8026FABC 0026C9FC 7C 08 02 A6 */ mflr r0
+/* 8026FAC0 0026CA00 90 01 00 74 */ stw r0, 0x74(r1)
+/* 8026FAC4 0026CA04 DB E1 00 60 */ stfd f31, 0x60(r1)
+/* 8026FAC8 0026CA08 F3 E1 00 68 */ psq_st f31, 104(r1), 0, 0
+/* 8026FACC 0026CA0C DB C1 00 50 */ stfd f30, 0x50(r1)
+/* 8026FAD0 0026CA10 F3 C1 00 58 */ psq_st f30, 88(r1), 0, 0
+/* 8026FAD4 0026CA14 DB A1 00 40 */ stfd f29, 0x40(r1)
+/* 8026FAD8 0026CA18 F3 A1 00 48 */ psq_st f29, 72(r1), 0, 0
+/* 8026FADC 0026CA1C DB 81 00 30 */ stfd f28, 0x30(r1)
+/* 8026FAE0 0026CA20 F3 81 00 38 */ psq_st f28, 56(r1), 0, 0
+/* 8026FAE4 0026CA24 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 8026FAE8 0026CA28 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 8026FAEC 0026CA2C 7C 7E 1B 78 */ mr r30, r3
+/* 8026FAF0 0026CA30 7C 9F 23 78 */ mr r31, r4
+/* 8026FAF4 0026CA34 FF A0 08 90 */ fmr f29, f1
+/* 8026FAF8 0026CA38 FF C0 10 90 */ fmr f30, f2
+/* 8026FAFC 0026CA3C FF E0 18 90 */ fmr f31, f3
+/* 8026FB00 0026CA40 4B FF 75 6D */ bl __ne__4cXyzCFRC3Vec
+/* 8026FB04 0026CA44 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026FB08 0026CA48 41 82 01 C4 */ beq lbl_8026FCCC
+/* 8026FB0C 0026CA4C 38 61 00 10 */ addi r3, r1, 0x10
+/* 8026FB10 0026CA50 7F C4 F3 78 */ mr r4, r30
+/* 8026FB14 0026CA54 7F E5 FB 78 */ mr r5, r31
+/* 8026FB18 0026CA58 4B FF 70 1D */ bl __mi__4cXyzCFRC3Vec
+/* 8026FB1C 0026CA5C C0 01 00 10 */ lfs f0, 0x10(r1)
+/* 8026FB20 0026CA60 D0 01 00 1C */ stfs f0, 0x1c(r1)
+/* 8026FB24 0026CA64 C0 01 00 14 */ lfs f0, 0x14(r1)
+/* 8026FB28 0026CA68 D0 01 00 20 */ stfs f0, 0x20(r1)
+/* 8026FB2C 0026CA6C C0 01 00 18 */ lfs f0, 0x18(r1)
+/* 8026FB30 0026CA70 D0 01 00 24 */ stfs f0, 0x24(r1)
+/* 8026FB34 0026CA74 38 61 00 1C */ addi r3, r1, 0x1c
+/* 8026FB38 0026CA78 48 0D 76 01 */ bl PSVECSquareMag
+/* 8026FB3C 0026CA7C C0 02 B7 E0 */ lfs f0, lbl_804551E0-_SDA2_BASE_(r2)
+/* 8026FB40 0026CA80 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026FB44 0026CA84 40 81 00 58 */ ble lbl_8026FB9C
+/* 8026FB48 0026CA88 FC 00 08 34 */ frsqrte f0, f1
+/* 8026FB4C 0026CA8C C8 82 B7 E8 */ lfd f4, lbl_804551E8-_SDA2_BASE_(r2)
+/* 8026FB50 0026CA90 FC 44 00 32 */ fmul f2, f4, f0
+/* 8026FB54 0026CA94 C8 62 B7 F0 */ lfd f3, lbl_804551F0-_SDA2_BASE_(r2)
+/* 8026FB58 0026CA98 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026FB5C 0026CA9C FC 01 00 32 */ fmul f0, f1, f0
+/* 8026FB60 0026CAA0 FC 03 00 28 */ fsub f0, f3, f0
+/* 8026FB64 0026CAA4 FC 02 00 32 */ fmul f0, f2, f0
+/* 8026FB68 0026CAA8 FC 44 00 32 */ fmul f2, f4, f0
+/* 8026FB6C 0026CAAC FC 00 00 32 */ fmul f0, f0, f0
+/* 8026FB70 0026CAB0 FC 01 00 32 */ fmul f0, f1, f0
+/* 8026FB74 0026CAB4 FC 03 00 28 */ fsub f0, f3, f0
+/* 8026FB78 0026CAB8 FC 02 00 32 */ fmul f0, f2, f0
+/* 8026FB7C 0026CABC FC 44 00 32 */ fmul f2, f4, f0
+/* 8026FB80 0026CAC0 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026FB84 0026CAC4 FC 01 00 32 */ fmul f0, f1, f0
+/* 8026FB88 0026CAC8 FC 03 00 28 */ fsub f0, f3, f0
+/* 8026FB8C 0026CACC FC 02 00 32 */ fmul f0, f2, f0
+/* 8026FB90 0026CAD0 FC 21 00 32 */ fmul f1, f1, f0
+/* 8026FB94 0026CAD4 FC 20 08 18 */ frsp f1, f1
+/* 8026FB98 0026CAD8 48 00 00 88 */ b lbl_8026FC20
+lbl_8026FB9C:
+/* 8026FB9C 0026CADC C8 02 B7 F8 */ lfd f0, lbl_804551F8-_SDA2_BASE_(r2)
+/* 8026FBA0 0026CAE0 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026FBA4 0026CAE4 40 80 00 10 */ bge lbl_8026FBB4
+/* 8026FBA8 0026CAE8 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026FBAC 0026CAEC C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+/* 8026FBB0 0026CAF0 48 00 00 70 */ b lbl_8026FC20
+lbl_8026FBB4:
+/* 8026FBB4 0026CAF4 D0 21 00 0C */ stfs f1, 0xc(r1)
+/* 8026FBB8 0026CAF8 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 8026FBBC 0026CAFC 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
+/* 8026FBC0 0026CB00 3C 00 7F 80 */ lis r0, 0x7f80
+/* 8026FBC4 0026CB04 7C 03 00 00 */ cmpw r3, r0
+/* 8026FBC8 0026CB08 41 82 00 14 */ beq lbl_8026FBDC
+/* 8026FBCC 0026CB0C 40 80 00 40 */ bge lbl_8026FC0C
+/* 8026FBD0 0026CB10 2C 03 00 00 */ cmpwi r3, 0
+/* 8026FBD4 0026CB14 41 82 00 20 */ beq lbl_8026FBF4
+/* 8026FBD8 0026CB18 48 00 00 34 */ b lbl_8026FC0C
+lbl_8026FBDC:
+/* 8026FBDC 0026CB1C 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026FBE0 0026CB20 41 82 00 0C */ beq lbl_8026FBEC
+/* 8026FBE4 0026CB24 38 00 00 01 */ li r0, 1
+/* 8026FBE8 0026CB28 48 00 00 28 */ b lbl_8026FC10
+lbl_8026FBEC:
+/* 8026FBEC 0026CB2C 38 00 00 02 */ li r0, 2
+/* 8026FBF0 0026CB30 48 00 00 20 */ b lbl_8026FC10
+lbl_8026FBF4:
+/* 8026FBF4 0026CB34 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026FBF8 0026CB38 41 82 00 0C */ beq lbl_8026FC04
+/* 8026FBFC 0026CB3C 38 00 00 05 */ li r0, 5
+/* 8026FC00 0026CB40 48 00 00 10 */ b lbl_8026FC10
+lbl_8026FC04:
+/* 8026FC04 0026CB44 38 00 00 03 */ li r0, 3
+/* 8026FC08 0026CB48 48 00 00 08 */ b lbl_8026FC10
+lbl_8026FC0C:
+/* 8026FC0C 0026CB4C 38 00 00 04 */ li r0, 4
+lbl_8026FC10:
+/* 8026FC10 0026CB50 2C 00 00 01 */ cmpwi r0, 1
+/* 8026FC14 0026CB54 40 82 00 0C */ bne lbl_8026FC20
+/* 8026FC18 0026CB58 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026FC1C 0026CB5C C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+lbl_8026FC20:
+/* 8026FC20 0026CB60 FC 01 F8 40 */ fcmpo cr0, f1, f31
+/* 8026FC24 0026CB64 40 80 00 20 */ bge lbl_8026FC44
+/* 8026FC28 0026CB68 C0 1F 00 00 */ lfs f0, 0(r31)
+/* 8026FC2C 0026CB6C D0 1E 00 00 */ stfs f0, 0(r30)
+/* 8026FC30 0026CB70 C0 1F 00 04 */ lfs f0, 4(r31)
+/* 8026FC34 0026CB74 D0 1E 00 04 */ stfs f0, 4(r30)
+/* 8026FC38 0026CB78 C0 1F 00 08 */ lfs f0, 8(r31)
+/* 8026FC3C 0026CB7C D0 1E 00 08 */ stfs f0, 8(r30)
+/* 8026FC40 0026CB80 48 00 00 8C */ b lbl_8026FCCC
+lbl_8026FC44:
+/* 8026FC44 0026CB84 EF 81 07 72 */ fmuls f28, f1, f29
+/* 8026FC48 0026CB88 38 61 00 1C */ addi r3, r1, 0x1c
+/* 8026FC4C 0026CB8C 7C 64 1B 78 */ mr r4, r3
+/* 8026FC50 0026CB90 FC 20 E8 90 */ fmr f1, f29
+/* 8026FC54 0026CB94 48 0D 74 85 */ bl PSVECScale
+/* 8026FC58 0026CB98 FC 00 E2 10 */ fabs f0, f28
+/* 8026FC5C 0026CB9C FC 20 00 18 */ frsp f1, f0
+/* 8026FC60 0026CBA0 C0 02 B8 00 */ lfs f0, lbl_80455200-_SDA2_BASE_(r2)
+/* 8026FC64 0026CBA4 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026FC68 0026CBA8 41 80 00 4C */ blt lbl_8026FCB4
+/* 8026FC6C 0026CBAC FC 1C F0 40 */ fcmpo cr0, f28, f30
+/* 8026FC70 0026CBB0 40 81 00 18 */ ble lbl_8026FC88
+/* 8026FC74 0026CBB4 38 61 00 1C */ addi r3, r1, 0x1c
+/* 8026FC78 0026CBB8 7C 64 1B 78 */ mr r4, r3
+/* 8026FC7C 0026CBBC EC 3E E0 24 */ fdivs f1, f30, f28
+/* 8026FC80 0026CBC0 48 0D 74 59 */ bl PSVECScale
+/* 8026FC84 0026CBC4 48 00 00 1C */ b lbl_8026FCA0
+lbl_8026FC88:
+/* 8026FC88 0026CBC8 FC 1C F8 40 */ fcmpo cr0, f28, f31
+/* 8026FC8C 0026CBCC 40 80 00 14 */ bge lbl_8026FCA0
+/* 8026FC90 0026CBD0 38 61 00 1C */ addi r3, r1, 0x1c
+/* 8026FC94 0026CBD4 7C 64 1B 78 */ mr r4, r3
+/* 8026FC98 0026CBD8 EC 3F E0 24 */ fdivs f1, f31, f28
+/* 8026FC9C 0026CBDC 48 0D 74 3D */ bl PSVECScale
+lbl_8026FCA0:
+/* 8026FCA0 0026CBE0 7F C3 F3 78 */ mr r3, r30
+/* 8026FCA4 0026CBE4 38 81 00 1C */ addi r4, r1, 0x1c
+/* 8026FCA8 0026CBE8 7F C5 F3 78 */ mr r5, r30
+/* 8026FCAC 0026CBEC 48 0D 74 09 */ bl PSVECSubtract
+/* 8026FCB0 0026CBF0 48 00 00 1C */ b lbl_8026FCCC
+lbl_8026FCB4:
+/* 8026FCB4 0026CBF4 C0 1F 00 00 */ lfs f0, 0(r31)
+/* 8026FCB8 0026CBF8 D0 1E 00 00 */ stfs f0, 0(r30)
+/* 8026FCBC 0026CBFC C0 1F 00 04 */ lfs f0, 4(r31)
+/* 8026FCC0 0026CC00 D0 1E 00 04 */ stfs f0, 4(r30)
+/* 8026FCC4 0026CC04 C0 1F 00 08 */ lfs f0, 8(r31)
+/* 8026FCC8 0026CC08 D0 1E 00 08 */ stfs f0, 8(r30)
+lbl_8026FCCC:
+/* 8026FCCC 0026CC0C 7F C3 F3 78 */ mr r3, r30
+/* 8026FCD0 0026CC10 7F E4 FB 78 */ mr r4, r31
+/* 8026FCD4 0026CC14 48 0D 76 C9 */ bl PSVECSquareDistance
+/* 8026FCD8 0026CC18 C0 02 B7 E0 */ lfs f0, lbl_804551E0-_SDA2_BASE_(r2)
+/* 8026FCDC 0026CC1C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026FCE0 0026CC20 40 81 00 58 */ ble lbl_8026FD38
+/* 8026FCE4 0026CC24 FC 00 08 34 */ frsqrte f0, f1
+/* 8026FCE8 0026CC28 C8 82 B7 E8 */ lfd f4, lbl_804551E8-_SDA2_BASE_(r2)
+/* 8026FCEC 0026CC2C FC 44 00 32 */ fmul f2, f4, f0
+/* 8026FCF0 0026CC30 C8 62 B7 F0 */ lfd f3, lbl_804551F0-_SDA2_BASE_(r2)
+/* 8026FCF4 0026CC34 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026FCF8 0026CC38 FC 01 00 32 */ fmul f0, f1, f0
+/* 8026FCFC 0026CC3C FC 03 00 28 */ fsub f0, f3, f0
+/* 8026FD00 0026CC40 FC 02 00 32 */ fmul f0, f2, f0
+/* 8026FD04 0026CC44 FC 44 00 32 */ fmul f2, f4, f0
+/* 8026FD08 0026CC48 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026FD0C 0026CC4C FC 01 00 32 */ fmul f0, f1, f0
+/* 8026FD10 0026CC50 FC 03 00 28 */ fsub f0, f3, f0
+/* 8026FD14 0026CC54 FC 02 00 32 */ fmul f0, f2, f0
+/* 8026FD18 0026CC58 FC 44 00 32 */ fmul f2, f4, f0
+/* 8026FD1C 0026CC5C FC 00 00 32 */ fmul f0, f0, f0
+/* 8026FD20 0026CC60 FC 01 00 32 */ fmul f0, f1, f0
+/* 8026FD24 0026CC64 FC 03 00 28 */ fsub f0, f3, f0
+/* 8026FD28 0026CC68 FC 02 00 32 */ fmul f0, f2, f0
+/* 8026FD2C 0026CC6C FC 21 00 32 */ fmul f1, f1, f0
+/* 8026FD30 0026CC70 FC 20 08 18 */ frsp f1, f1
+/* 8026FD34 0026CC74 48 00 00 88 */ b lbl_8026FDBC
+lbl_8026FD38:
+/* 8026FD38 0026CC78 C8 02 B7 F8 */ lfd f0, lbl_804551F8-_SDA2_BASE_(r2)
+/* 8026FD3C 0026CC7C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026FD40 0026CC80 40 80 00 10 */ bge lbl_8026FD50
+/* 8026FD44 0026CC84 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026FD48 0026CC88 C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+/* 8026FD4C 0026CC8C 48 00 00 70 */ b lbl_8026FDBC
+lbl_8026FD50:
+/* 8026FD50 0026CC90 D0 21 00 08 */ stfs f1, 8(r1)
+/* 8026FD54 0026CC94 80 81 00 08 */ lwz r4, 8(r1)
+/* 8026FD58 0026CC98 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
+/* 8026FD5C 0026CC9C 3C 00 7F 80 */ lis r0, 0x7f80
+/* 8026FD60 0026CCA0 7C 03 00 00 */ cmpw r3, r0
+/* 8026FD64 0026CCA4 41 82 00 14 */ beq lbl_8026FD78
+/* 8026FD68 0026CCA8 40 80 00 40 */ bge lbl_8026FDA8
+/* 8026FD6C 0026CCAC 2C 03 00 00 */ cmpwi r3, 0
+/* 8026FD70 0026CCB0 41 82 00 20 */ beq lbl_8026FD90
+/* 8026FD74 0026CCB4 48 00 00 34 */ b lbl_8026FDA8
+lbl_8026FD78:
+/* 8026FD78 0026CCB8 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026FD7C 0026CCBC 41 82 00 0C */ beq lbl_8026FD88
+/* 8026FD80 0026CCC0 38 00 00 01 */ li r0, 1
+/* 8026FD84 0026CCC4 48 00 00 28 */ b lbl_8026FDAC
+lbl_8026FD88:
+/* 8026FD88 0026CCC8 38 00 00 02 */ li r0, 2
+/* 8026FD8C 0026CCCC 48 00 00 20 */ b lbl_8026FDAC
+lbl_8026FD90:
+/* 8026FD90 0026CCD0 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026FD94 0026CCD4 41 82 00 0C */ beq lbl_8026FDA0
+/* 8026FD98 0026CCD8 38 00 00 05 */ li r0, 5
+/* 8026FD9C 0026CCDC 48 00 00 10 */ b lbl_8026FDAC
+lbl_8026FDA0:
+/* 8026FDA0 0026CCE0 38 00 00 03 */ li r0, 3
+/* 8026FDA4 0026CCE4 48 00 00 08 */ b lbl_8026FDAC
+lbl_8026FDA8:
+/* 8026FDA8 0026CCE8 38 00 00 04 */ li r0, 4
+lbl_8026FDAC:
+/* 8026FDAC 0026CCEC 2C 00 00 01 */ cmpwi r0, 1
+/* 8026FDB0 0026CCF0 40 82 00 0C */ bne lbl_8026FDBC
+/* 8026FDB4 0026CCF4 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026FDB8 0026CCF8 C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+lbl_8026FDBC:
+/* 8026FDBC 0026CCFC E3 E1 00 68 */ psq_l f31, 104(r1), 0, 0
+/* 8026FDC0 0026CD00 CB E1 00 60 */ lfd f31, 0x60(r1)
+/* 8026FDC4 0026CD04 E3 C1 00 58 */ psq_l f30, 88(r1), 0, 0
+/* 8026FDC8 0026CD08 CB C1 00 50 */ lfd f30, 0x50(r1)
+/* 8026FDCC 0026CD0C E3 A1 00 48 */ psq_l f29, 72(r1), 0, 0
+/* 8026FDD0 0026CD10 CB A1 00 40 */ lfd f29, 0x40(r1)
+/* 8026FDD4 0026CD14 E3 81 00 38 */ psq_l f28, 56(r1), 0, 0
+/* 8026FDD8 0026CD18 CB 81 00 30 */ lfd f28, 0x30(r1)
+/* 8026FDDC 0026CD1C 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 8026FDE0 0026CD20 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 8026FDE4 0026CD24 80 01 00 74 */ lwz r0, 0x74(r1)
+/* 8026FDE8 0026CD28 7C 08 03 A6 */ mtlr r0
+/* 8026FDEC 0026CD2C 38 21 00 70 */ addi r1, r1, 0x70
+/* 8026FDF0 0026CD30 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_lib/asm/func_8026FDF4.s b/include/SComponent/c_lib/asm/func_8026FDF4.s
new file mode 100644
index 0000000000..903b538061
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_8026FDF4.s
@@ -0,0 +1,249 @@
+/* 8026FDF4 0026CD34 94 21 FF 60 */ stwu r1, -0xa0(r1)
+/* 8026FDF8 0026CD38 7C 08 02 A6 */ mflr r0
+/* 8026FDFC 0026CD3C 90 01 00 A4 */ stw r0, 0xa4(r1)
+/* 8026FE00 0026CD40 DB E1 00 90 */ stfd f31, 0x90(r1)
+/* 8026FE04 0026CD44 F3 E1 00 98 */ psq_st f31, 152(r1), 0, 0
+/* 8026FE08 0026CD48 DB C1 00 80 */ stfd f30, 0x80(r1)
+/* 8026FE0C 0026CD4C F3 C1 00 88 */ psq_st f30, 136(r1), 0, 0
+/* 8026FE10 0026CD50 DB A1 00 70 */ stfd f29, 0x70(r1)
+/* 8026FE14 0026CD54 F3 A1 00 78 */ psq_st f29, 120(r1), 0, 0
+/* 8026FE18 0026CD58 DB 81 00 60 */ stfd f28, 0x60(r1)
+/* 8026FE1C 0026CD5C F3 81 00 68 */ psq_st f28, 104(r1), 0, 0
+/* 8026FE20 0026CD60 93 E1 00 5C */ stw r31, 0x5c(r1)
+/* 8026FE24 0026CD64 93 C1 00 58 */ stw r30, 0x58(r1)
+/* 8026FE28 0026CD68 7C 7E 1B 78 */ mr r30, r3
+/* 8026FE2C 0026CD6C 7C 9F 23 78 */ mr r31, r4
+/* 8026FE30 0026CD70 FF A0 08 90 */ fmr f29, f1
+/* 8026FE34 0026CD74 FF C0 10 90 */ fmr f30, f2
+/* 8026FE38 0026CD78 FF E0 18 90 */ fmr f31, f3
+/* 8026FE3C 0026CD7C C0 23 00 00 */ lfs f1, 0(r3)
+/* 8026FE40 0026CD80 C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026FE44 0026CD84 FC 01 00 00 */ fcmpu cr0, f1, f0
+/* 8026FE48 0026CD88 40 82 00 14 */ bne lbl_8026FE5C
+/* 8026FE4C 0026CD8C C0 3E 00 08 */ lfs f1, 8(r30)
+/* 8026FE50 0026CD90 C0 1F 00 08 */ lfs f0, 8(r31)
+/* 8026FE54 0026CD94 FC 01 00 00 */ fcmpu cr0, f1, f0
+/* 8026FE58 0026CD98 41 82 01 D4 */ beq lbl_8027002C
+lbl_8026FE5C:
+/* 8026FE5C 0026CD9C 38 61 00 34 */ addi r3, r1, 0x34
+/* 8026FE60 0026CDA0 7F C4 F3 78 */ mr r4, r30
+/* 8026FE64 0026CDA4 7F E5 FB 78 */ mr r5, r31
+/* 8026FE68 0026CDA8 4B FF 6C CD */ bl __mi__4cXyzCFRC3Vec
+/* 8026FE6C 0026CDAC C0 41 00 34 */ lfs f2, 0x34(r1)
+/* 8026FE70 0026CDB0 D0 41 00 40 */ stfs f2, 0x40(r1)
+/* 8026FE74 0026CDB4 C0 01 00 38 */ lfs f0, 0x38(r1)
+/* 8026FE78 0026CDB8 D0 01 00 44 */ stfs f0, 0x44(r1)
+/* 8026FE7C 0026CDBC C0 21 00 3C */ lfs f1, 0x3c(r1)
+/* 8026FE80 0026CDC0 D0 21 00 48 */ stfs f1, 0x48(r1)
+/* 8026FE84 0026CDC4 D0 41 00 1C */ stfs f2, 0x1c(r1)
+/* 8026FE88 0026CDC8 C0 02 B7 E0 */ lfs f0, lbl_804551E0-_SDA2_BASE_(r2)
+/* 8026FE8C 0026CDCC D0 01 00 20 */ stfs f0, 0x20(r1)
+/* 8026FE90 0026CDD0 D0 21 00 24 */ stfs f1, 0x24(r1)
+/* 8026FE94 0026CDD4 38 61 00 1C */ addi r3, r1, 0x1c
+/* 8026FE98 0026CDD8 48 0D 72 A1 */ bl PSVECSquareMag
+/* 8026FE9C 0026CDDC C0 02 B7 E0 */ lfs f0, lbl_804551E0-_SDA2_BASE_(r2)
+/* 8026FEA0 0026CDE0 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026FEA4 0026CDE4 40 81 00 58 */ ble lbl_8026FEFC
+/* 8026FEA8 0026CDE8 FC 00 08 34 */ frsqrte f0, f1
+/* 8026FEAC 0026CDEC C8 82 B7 E8 */ lfd f4, lbl_804551E8-_SDA2_BASE_(r2)
+/* 8026FEB0 0026CDF0 FC 44 00 32 */ fmul f2, f4, f0
+/* 8026FEB4 0026CDF4 C8 62 B7 F0 */ lfd f3, lbl_804551F0-_SDA2_BASE_(r2)
+/* 8026FEB8 0026CDF8 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026FEBC 0026CDFC FC 01 00 32 */ fmul f0, f1, f0
+/* 8026FEC0 0026CE00 FC 03 00 28 */ fsub f0, f3, f0
+/* 8026FEC4 0026CE04 FC 02 00 32 */ fmul f0, f2, f0
+/* 8026FEC8 0026CE08 FC 44 00 32 */ fmul f2, f4, f0
+/* 8026FECC 0026CE0C FC 00 00 32 */ fmul f0, f0, f0
+/* 8026FED0 0026CE10 FC 01 00 32 */ fmul f0, f1, f0
+/* 8026FED4 0026CE14 FC 03 00 28 */ fsub f0, f3, f0
+/* 8026FED8 0026CE18 FC 02 00 32 */ fmul f0, f2, f0
+/* 8026FEDC 0026CE1C FC 44 00 32 */ fmul f2, f4, f0
+/* 8026FEE0 0026CE20 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026FEE4 0026CE24 FC 01 00 32 */ fmul f0, f1, f0
+/* 8026FEE8 0026CE28 FC 03 00 28 */ fsub f0, f3, f0
+/* 8026FEEC 0026CE2C FC 02 00 32 */ fmul f0, f2, f0
+/* 8026FEF0 0026CE30 FC 21 00 32 */ fmul f1, f1, f0
+/* 8026FEF4 0026CE34 FC 20 08 18 */ frsp f1, f1
+/* 8026FEF8 0026CE38 48 00 00 88 */ b lbl_8026FF80
+lbl_8026FEFC:
+/* 8026FEFC 0026CE3C C8 02 B7 F8 */ lfd f0, lbl_804551F8-_SDA2_BASE_(r2)
+/* 8026FF00 0026CE40 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026FF04 0026CE44 40 80 00 10 */ bge lbl_8026FF14
+/* 8026FF08 0026CE48 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026FF0C 0026CE4C C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+/* 8026FF10 0026CE50 48 00 00 70 */ b lbl_8026FF80
+lbl_8026FF14:
+/* 8026FF14 0026CE54 D0 21 00 0C */ stfs f1, 0xc(r1)
+/* 8026FF18 0026CE58 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 8026FF1C 0026CE5C 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
+/* 8026FF20 0026CE60 3C 00 7F 80 */ lis r0, 0x7f80
+/* 8026FF24 0026CE64 7C 03 00 00 */ cmpw r3, r0
+/* 8026FF28 0026CE68 41 82 00 14 */ beq lbl_8026FF3C
+/* 8026FF2C 0026CE6C 40 80 00 40 */ bge lbl_8026FF6C
+/* 8026FF30 0026CE70 2C 03 00 00 */ cmpwi r3, 0
+/* 8026FF34 0026CE74 41 82 00 20 */ beq lbl_8026FF54
+/* 8026FF38 0026CE78 48 00 00 34 */ b lbl_8026FF6C
+lbl_8026FF3C:
+/* 8026FF3C 0026CE7C 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026FF40 0026CE80 41 82 00 0C */ beq lbl_8026FF4C
+/* 8026FF44 0026CE84 38 00 00 01 */ li r0, 1
+/* 8026FF48 0026CE88 48 00 00 28 */ b lbl_8026FF70
+lbl_8026FF4C:
+/* 8026FF4C 0026CE8C 38 00 00 02 */ li r0, 2
+/* 8026FF50 0026CE90 48 00 00 20 */ b lbl_8026FF70
+lbl_8026FF54:
+/* 8026FF54 0026CE94 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026FF58 0026CE98 41 82 00 0C */ beq lbl_8026FF64
+/* 8026FF5C 0026CE9C 38 00 00 05 */ li r0, 5
+/* 8026FF60 0026CEA0 48 00 00 10 */ b lbl_8026FF70
+lbl_8026FF64:
+/* 8026FF64 0026CEA4 38 00 00 03 */ li r0, 3
+/* 8026FF68 0026CEA8 48 00 00 08 */ b lbl_8026FF70
+lbl_8026FF6C:
+/* 8026FF6C 0026CEAC 38 00 00 04 */ li r0, 4
+lbl_8026FF70:
+/* 8026FF70 0026CEB0 2C 00 00 01 */ cmpwi r0, 1
+/* 8026FF74 0026CEB4 40 82 00 0C */ bne lbl_8026FF80
+/* 8026FF78 0026CEB8 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026FF7C 0026CEBC C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+lbl_8026FF80:
+/* 8026FF80 0026CEC0 FC 01 F8 40 */ fcmpo cr0, f1, f31
+/* 8026FF84 0026CEC4 40 80 00 18 */ bge lbl_8026FF9C
+/* 8026FF88 0026CEC8 C0 1F 00 00 */ lfs f0, 0(r31)
+/* 8026FF8C 0026CECC D0 1E 00 00 */ stfs f0, 0(r30)
+/* 8026FF90 0026CED0 C0 1F 00 08 */ lfs f0, 8(r31)
+/* 8026FF94 0026CED4 D0 1E 00 08 */ stfs f0, 8(r30)
+/* 8026FF98 0026CED8 48 00 00 94 */ b lbl_8027002C
+lbl_8026FF9C:
+/* 8026FF9C 0026CEDC EF 81 07 72 */ fmuls f28, f1, f29
+/* 8026FFA0 0026CEE0 38 61 00 40 */ addi r3, r1, 0x40
+/* 8026FFA4 0026CEE4 7C 64 1B 78 */ mr r4, r3
+/* 8026FFA8 0026CEE8 FC 20 E8 90 */ fmr f1, f29
+/* 8026FFAC 0026CEEC 48 0D 71 2D */ bl PSVECScale
+/* 8026FFB0 0026CEF0 FC 00 E2 10 */ fabs f0, f28
+/* 8026FFB4 0026CEF4 FC 20 00 18 */ frsp f1, f0
+/* 8026FFB8 0026CEF8 C0 02 B8 00 */ lfs f0, lbl_80455200-_SDA2_BASE_(r2)
+/* 8026FFBC 0026CEFC FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026FFC0 0026CF00 41 80 00 5C */ blt lbl_8027001C
+/* 8026FFC4 0026CF04 FC 1C F0 40 */ fcmpo cr0, f28, f30
+/* 8026FFC8 0026CF08 40 81 00 18 */ ble lbl_8026FFE0
+/* 8026FFCC 0026CF0C 38 61 00 40 */ addi r3, r1, 0x40
+/* 8026FFD0 0026CF10 7C 64 1B 78 */ mr r4, r3
+/* 8026FFD4 0026CF14 EC 3E E0 24 */ fdivs f1, f30, f28
+/* 8026FFD8 0026CF18 48 0D 71 01 */ bl PSVECScale
+/* 8026FFDC 0026CF1C 48 00 00 1C */ b lbl_8026FFF8
+lbl_8026FFE0:
+/* 8026FFE0 0026CF20 FC 1C F8 40 */ fcmpo cr0, f28, f31
+/* 8026FFE4 0026CF24 40 80 00 14 */ bge lbl_8026FFF8
+/* 8026FFE8 0026CF28 38 61 00 40 */ addi r3, r1, 0x40
+/* 8026FFEC 0026CF2C 7C 64 1B 78 */ mr r4, r3
+/* 8026FFF0 0026CF30 EC 3F E0 24 */ fdivs f1, f31, f28
+/* 8026FFF4 0026CF34 48 0D 70 E5 */ bl PSVECScale
+lbl_8026FFF8:
+/* 8026FFF8 0026CF38 C0 3E 00 00 */ lfs f1, 0(r30)
+/* 8026FFFC 0026CF3C C0 01 00 40 */ lfs f0, 0x40(r1)
+/* 80270000 0026CF40 EC 01 00 28 */ fsubs f0, f1, f0
+/* 80270004 0026CF44 D0 1E 00 00 */ stfs f0, 0(r30)
+/* 80270008 0026CF48 C0 3E 00 08 */ lfs f1, 8(r30)
+/* 8027000C 0026CF4C C0 01 00 48 */ lfs f0, 0x48(r1)
+/* 80270010 0026CF50 EC 01 00 28 */ fsubs f0, f1, f0
+/* 80270014 0026CF54 D0 1E 00 08 */ stfs f0, 8(r30)
+/* 80270018 0026CF58 48 00 00 14 */ b lbl_8027002C
+lbl_8027001C:
+/* 8027001C 0026CF5C C0 1F 00 00 */ lfs f0, 0(r31)
+/* 80270020 0026CF60 D0 1E 00 00 */ stfs f0, 0(r30)
+/* 80270024 0026CF64 C0 1F 00 08 */ lfs f0, 8(r31)
+/* 80270028 0026CF68 D0 1E 00 08 */ stfs f0, 8(r30)
+lbl_8027002C:
+/* 8027002C 0026CF6C 38 61 00 28 */ addi r3, r1, 0x28
+/* 80270030 0026CF70 7F C4 F3 78 */ mr r4, r30
+/* 80270034 0026CF74 7F E5 FB 78 */ mr r5, r31
+/* 80270038 0026CF78 4B FF 6A FD */ bl __mi__4cXyzCFRC3Vec
+/* 8027003C 0026CF7C C0 01 00 28 */ lfs f0, 0x28(r1)
+/* 80270040 0026CF80 D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 80270044 0026CF84 C0 02 B7 E0 */ lfs f0, lbl_804551E0-_SDA2_BASE_(r2)
+/* 80270048 0026CF88 D0 01 00 14 */ stfs f0, 0x14(r1)
+/* 8027004C 0026CF8C C0 01 00 30 */ lfs f0, 0x30(r1)
+/* 80270050 0026CF90 D0 01 00 18 */ stfs f0, 0x18(r1)
+/* 80270054 0026CF94 38 61 00 10 */ addi r3, r1, 0x10
+/* 80270058 0026CF98 48 0D 70 E1 */ bl PSVECSquareMag
+/* 8027005C 0026CF9C C0 02 B7 E0 */ lfs f0, lbl_804551E0-_SDA2_BASE_(r2)
+/* 80270060 0026CFA0 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80270064 0026CFA4 40 81 00 58 */ ble lbl_802700BC
+/* 80270068 0026CFA8 FC 00 08 34 */ frsqrte f0, f1
+/* 8027006C 0026CFAC C8 82 B7 E8 */ lfd f4, lbl_804551E8-_SDA2_BASE_(r2)
+/* 80270070 0026CFB0 FC 44 00 32 */ fmul f2, f4, f0
+/* 80270074 0026CFB4 C8 62 B7 F0 */ lfd f3, lbl_804551F0-_SDA2_BASE_(r2)
+/* 80270078 0026CFB8 FC 00 00 32 */ fmul f0, f0, f0
+/* 8027007C 0026CFBC FC 01 00 32 */ fmul f0, f1, f0
+/* 80270080 0026CFC0 FC 03 00 28 */ fsub f0, f3, f0
+/* 80270084 0026CFC4 FC 02 00 32 */ fmul f0, f2, f0
+/* 80270088 0026CFC8 FC 44 00 32 */ fmul f2, f4, f0
+/* 8027008C 0026CFCC FC 00 00 32 */ fmul f0, f0, f0
+/* 80270090 0026CFD0 FC 01 00 32 */ fmul f0, f1, f0
+/* 80270094 0026CFD4 FC 03 00 28 */ fsub f0, f3, f0
+/* 80270098 0026CFD8 FC 02 00 32 */ fmul f0, f2, f0
+/* 8027009C 0026CFDC FC 44 00 32 */ fmul f2, f4, f0
+/* 802700A0 0026CFE0 FC 00 00 32 */ fmul f0, f0, f0
+/* 802700A4 0026CFE4 FC 01 00 32 */ fmul f0, f1, f0
+/* 802700A8 0026CFE8 FC 03 00 28 */ fsub f0, f3, f0
+/* 802700AC 0026CFEC FC 02 00 32 */ fmul f0, f2, f0
+/* 802700B0 0026CFF0 FC 21 00 32 */ fmul f1, f1, f0
+/* 802700B4 0026CFF4 FC 20 08 18 */ frsp f1, f1
+/* 802700B8 0026CFF8 48 00 00 88 */ b lbl_80270140
+lbl_802700BC:
+/* 802700BC 0026CFFC C8 02 B7 F8 */ lfd f0, lbl_804551F8-_SDA2_BASE_(r2)
+/* 802700C0 0026D000 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802700C4 0026D004 40 80 00 10 */ bge lbl_802700D4
+/* 802700C8 0026D008 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 802700CC 0026D00C C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+/* 802700D0 0026D010 48 00 00 70 */ b lbl_80270140
+lbl_802700D4:
+/* 802700D4 0026D014 D0 21 00 08 */ stfs f1, 8(r1)
+/* 802700D8 0026D018 80 81 00 08 */ lwz r4, 8(r1)
+/* 802700DC 0026D01C 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
+/* 802700E0 0026D020 3C 00 7F 80 */ lis r0, 0x7f80
+/* 802700E4 0026D024 7C 03 00 00 */ cmpw r3, r0
+/* 802700E8 0026D028 41 82 00 14 */ beq lbl_802700FC
+/* 802700EC 0026D02C 40 80 00 40 */ bge lbl_8027012C
+/* 802700F0 0026D030 2C 03 00 00 */ cmpwi r3, 0
+/* 802700F4 0026D034 41 82 00 20 */ beq lbl_80270114
+/* 802700F8 0026D038 48 00 00 34 */ b lbl_8027012C
+lbl_802700FC:
+/* 802700FC 0026D03C 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 80270100 0026D040 41 82 00 0C */ beq lbl_8027010C
+/* 80270104 0026D044 38 00 00 01 */ li r0, 1
+/* 80270108 0026D048 48 00 00 28 */ b lbl_80270130
+lbl_8027010C:
+/* 8027010C 0026D04C 38 00 00 02 */ li r0, 2
+/* 80270110 0026D050 48 00 00 20 */ b lbl_80270130
+lbl_80270114:
+/* 80270114 0026D054 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 80270118 0026D058 41 82 00 0C */ beq lbl_80270124
+/* 8027011C 0026D05C 38 00 00 05 */ li r0, 5
+/* 80270120 0026D060 48 00 00 10 */ b lbl_80270130
+lbl_80270124:
+/* 80270124 0026D064 38 00 00 03 */ li r0, 3
+/* 80270128 0026D068 48 00 00 08 */ b lbl_80270130
+lbl_8027012C:
+/* 8027012C 0026D06C 38 00 00 04 */ li r0, 4
+lbl_80270130:
+/* 80270130 0026D070 2C 00 00 01 */ cmpwi r0, 1
+/* 80270134 0026D074 40 82 00 0C */ bne lbl_80270140
+/* 80270138 0026D078 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8027013C 0026D07C C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+lbl_80270140:
+/* 80270140 0026D080 E3 E1 00 98 */ psq_l f31, 152(r1), 0, 0
+/* 80270144 0026D084 CB E1 00 90 */ lfd f31, 0x90(r1)
+/* 80270148 0026D088 E3 C1 00 88 */ psq_l f30, 136(r1), 0, 0
+/* 8027014C 0026D08C CB C1 00 80 */ lfd f30, 0x80(r1)
+/* 80270150 0026D090 E3 A1 00 78 */ psq_l f29, 120(r1), 0, 0
+/* 80270154 0026D094 CB A1 00 70 */ lfd f29, 0x70(r1)
+/* 80270158 0026D098 E3 81 00 68 */ psq_l f28, 104(r1), 0, 0
+/* 8027015C 0026D09C CB 81 00 60 */ lfd f28, 0x60(r1)
+/* 80270160 0026D0A0 83 E1 00 5C */ lwz r31, 0x5c(r1)
+/* 80270164 0026D0A4 83 C1 00 58 */ lwz r30, 0x58(r1)
+/* 80270168 0026D0A8 80 01 00 A4 */ lwz r0, 0xa4(r1)
+/* 8027016C 0026D0AC 7C 08 03 A6 */ mtlr r0
+/* 80270170 0026D0B0 38 21 00 A0 */ addi r1, r1, 0xa0
+/* 80270174 0026D0B4 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_lib/asm/func_80270178.s b/include/SComponent/c_lib/asm/func_80270178.s
new file mode 100644
index 0000000000..9320d4ba85
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_80270178.s
@@ -0,0 +1,129 @@
+/* 80270178 0026D0B8 94 21 FF 90 */ stwu r1, -0x70(r1)
+/* 8027017C 0026D0BC 7C 08 02 A6 */ mflr r0
+/* 80270180 0026D0C0 90 01 00 74 */ stw r0, 0x74(r1)
+/* 80270184 0026D0C4 DB E1 00 60 */ stfd f31, 0x60(r1)
+/* 80270188 0026D0C8 F3 E1 00 68 */ psq_st f31, 104(r1), 0, 0
+/* 8027018C 0026D0CC DB C1 00 50 */ stfd f30, 0x50(r1)
+/* 80270190 0026D0D0 F3 C1 00 58 */ psq_st f30, 88(r1), 0, 0
+/* 80270194 0026D0D4 93 E1 00 4C */ stw r31, 0x4c(r1)
+/* 80270198 0026D0D8 93 C1 00 48 */ stw r30, 0x48(r1)
+/* 8027019C 0026D0DC 7C 7E 1B 78 */ mr r30, r3
+/* 802701A0 0026D0E0 7C 9F 23 78 */ mr r31, r4
+/* 802701A4 0026D0E4 FF C0 08 90 */ fmr f30, f1
+/* 802701A8 0026D0E8 FF E0 10 90 */ fmr f31, f2
+/* 802701AC 0026D0EC 4B FF 6E C1 */ bl __ne__4cXyzCFRC3Vec
+/* 802701B0 0026D0F0 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802701B4 0026D0F4 41 82 01 74 */ beq lbl_80270328
+/* 802701B8 0026D0F8 38 61 00 24 */ addi r3, r1, 0x24
+/* 802701BC 0026D0FC 7F C4 F3 78 */ mr r4, r30
+/* 802701C0 0026D100 7F E5 FB 78 */ mr r5, r31
+/* 802701C4 0026D104 4B FF 69 71 */ bl __mi__4cXyzCFRC3Vec
+/* 802701C8 0026D108 38 61 00 18 */ addi r3, r1, 0x18
+/* 802701CC 0026D10C 38 81 00 24 */ addi r4, r1, 0x24
+/* 802701D0 0026D110 FC 20 F0 90 */ fmr f1, f30
+/* 802701D4 0026D114 4B FF 69 B1 */ bl __ml__4cXyzCFf
+/* 802701D8 0026D118 C0 01 00 18 */ lfs f0, 0x18(r1)
+/* 802701DC 0026D11C D0 01 00 30 */ stfs f0, 0x30(r1)
+/* 802701E0 0026D120 C0 01 00 1C */ lfs f0, 0x1c(r1)
+/* 802701E4 0026D124 D0 01 00 34 */ stfs f0, 0x34(r1)
+/* 802701E8 0026D128 C0 01 00 20 */ lfs f0, 0x20(r1)
+/* 802701EC 0026D12C D0 01 00 38 */ stfs f0, 0x38(r1)
+/* 802701F0 0026D130 38 61 00 30 */ addi r3, r1, 0x30
+/* 802701F4 0026D134 48 0D 6F 45 */ bl PSVECSquareMag
+/* 802701F8 0026D138 C0 02 B7 E0 */ lfs f0, lbl_804551E0-_SDA2_BASE_(r2)
+/* 802701FC 0026D13C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80270200 0026D140 40 81 00 58 */ ble lbl_80270258
+/* 80270204 0026D144 FC 00 08 34 */ frsqrte f0, f1
+/* 80270208 0026D148 C8 82 B7 E8 */ lfd f4, lbl_804551E8-_SDA2_BASE_(r2)
+/* 8027020C 0026D14C FC 44 00 32 */ fmul f2, f4, f0
+/* 80270210 0026D150 C8 62 B7 F0 */ lfd f3, lbl_804551F0-_SDA2_BASE_(r2)
+/* 80270214 0026D154 FC 00 00 32 */ fmul f0, f0, f0
+/* 80270218 0026D158 FC 01 00 32 */ fmul f0, f1, f0
+/* 8027021C 0026D15C FC 03 00 28 */ fsub f0, f3, f0
+/* 80270220 0026D160 FC 02 00 32 */ fmul f0, f2, f0
+/* 80270224 0026D164 FC 44 00 32 */ fmul f2, f4, f0
+/* 80270228 0026D168 FC 00 00 32 */ fmul f0, f0, f0
+/* 8027022C 0026D16C FC 01 00 32 */ fmul f0, f1, f0
+/* 80270230 0026D170 FC 03 00 28 */ fsub f0, f3, f0
+/* 80270234 0026D174 FC 02 00 32 */ fmul f0, f2, f0
+/* 80270238 0026D178 FC 44 00 32 */ fmul f2, f4, f0
+/* 8027023C 0026D17C FC 00 00 32 */ fmul f0, f0, f0
+/* 80270240 0026D180 FC 01 00 32 */ fmul f0, f1, f0
+/* 80270244 0026D184 FC 03 00 28 */ fsub f0, f3, f0
+/* 80270248 0026D188 FC 02 00 32 */ fmul f0, f2, f0
+/* 8027024C 0026D18C FC 21 00 32 */ fmul f1, f1, f0
+/* 80270250 0026D190 FC 20 08 18 */ frsp f1, f1
+/* 80270254 0026D194 48 00 00 88 */ b lbl_802702DC
+lbl_80270258:
+/* 80270258 0026D198 C8 02 B7 F8 */ lfd f0, lbl_804551F8-_SDA2_BASE_(r2)
+/* 8027025C 0026D19C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80270260 0026D1A0 40 80 00 10 */ bge lbl_80270270
+/* 80270264 0026D1A4 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 80270268 0026D1A8 C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+/* 8027026C 0026D1AC 48 00 00 70 */ b lbl_802702DC
+lbl_80270270:
+/* 80270270 0026D1B0 D0 21 00 08 */ stfs f1, 8(r1)
+/* 80270274 0026D1B4 80 81 00 08 */ lwz r4, 8(r1)
+/* 80270278 0026D1B8 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
+/* 8027027C 0026D1BC 3C 00 7F 80 */ lis r0, 0x7f80
+/* 80270280 0026D1C0 7C 03 00 00 */ cmpw r3, r0
+/* 80270284 0026D1C4 41 82 00 14 */ beq lbl_80270298
+/* 80270288 0026D1C8 40 80 00 40 */ bge lbl_802702C8
+/* 8027028C 0026D1CC 2C 03 00 00 */ cmpwi r3, 0
+/* 80270290 0026D1D0 41 82 00 20 */ beq lbl_802702B0
+/* 80270294 0026D1D4 48 00 00 34 */ b lbl_802702C8
+lbl_80270298:
+/* 80270298 0026D1D8 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8027029C 0026D1DC 41 82 00 0C */ beq lbl_802702A8
+/* 802702A0 0026D1E0 38 00 00 01 */ li r0, 1
+/* 802702A4 0026D1E4 48 00 00 28 */ b lbl_802702CC
+lbl_802702A8:
+/* 802702A8 0026D1E8 38 00 00 02 */ li r0, 2
+/* 802702AC 0026D1EC 48 00 00 20 */ b lbl_802702CC
+lbl_802702B0:
+/* 802702B0 0026D1F0 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 802702B4 0026D1F4 41 82 00 0C */ beq lbl_802702C0
+/* 802702B8 0026D1F8 38 00 00 05 */ li r0, 5
+/* 802702BC 0026D1FC 48 00 00 10 */ b lbl_802702CC
+lbl_802702C0:
+/* 802702C0 0026D200 38 00 00 03 */ li r0, 3
+/* 802702C4 0026D204 48 00 00 08 */ b lbl_802702CC
+lbl_802702C8:
+/* 802702C8 0026D208 38 00 00 04 */ li r0, 4
+lbl_802702CC:
+/* 802702CC 0026D20C 2C 00 00 01 */ cmpwi r0, 1
+/* 802702D0 0026D210 40 82 00 0C */ bne lbl_802702DC
+/* 802702D4 0026D214 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 802702D8 0026D218 C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+lbl_802702DC:
+/* 802702DC 0026D21C FC 01 F8 40 */ fcmpo cr0, f1, f31
+/* 802702E0 0026D220 40 81 00 38 */ ble lbl_80270318
+/* 802702E4 0026D224 38 61 00 0C */ addi r3, r1, 0xc
+/* 802702E8 0026D228 38 81 00 30 */ addi r4, r1, 0x30
+/* 802702EC 0026D22C 4B FF 6A 45 */ bl normZP__4cXyzCFv
+/* 802702F0 0026D230 C0 01 00 0C */ lfs f0, 0xc(r1)
+/* 802702F4 0026D234 D0 01 00 30 */ stfs f0, 0x30(r1)
+/* 802702F8 0026D238 C0 01 00 10 */ lfs f0, 0x10(r1)
+/* 802702FC 0026D23C D0 01 00 34 */ stfs f0, 0x34(r1)
+/* 80270300 0026D240 C0 01 00 14 */ lfs f0, 0x14(r1)
+/* 80270304 0026D244 D0 01 00 38 */ stfs f0, 0x38(r1)
+/* 80270308 0026D248 38 61 00 30 */ addi r3, r1, 0x30
+/* 8027030C 0026D24C 7C 64 1B 78 */ mr r4, r3
+/* 80270310 0026D250 FC 20 F8 90 */ fmr f1, f31
+/* 80270314 0026D254 48 0D 6D C5 */ bl PSVECScale
+lbl_80270318:
+/* 80270318 0026D258 7F C3 F3 78 */ mr r3, r30
+/* 8027031C 0026D25C 38 81 00 30 */ addi r4, r1, 0x30
+/* 80270320 0026D260 7F C5 F3 78 */ mr r5, r30
+/* 80270324 0026D264 48 0D 6D 91 */ bl PSVECSubtract
+lbl_80270328:
+/* 80270328 0026D268 E3 E1 00 68 */ psq_l f31, 104(r1), 0, 0
+/* 8027032C 0026D26C CB E1 00 60 */ lfd f31, 0x60(r1)
+/* 80270330 0026D270 E3 C1 00 58 */ psq_l f30, 88(r1), 0, 0
+/* 80270334 0026D274 CB C1 00 50 */ lfd f30, 0x50(r1)
+/* 80270338 0026D278 83 E1 00 4C */ lwz r31, 0x4c(r1)
+/* 8027033C 0026D27C 83 C1 00 48 */ lwz r30, 0x48(r1)
+/* 80270340 0026D280 80 01 00 74 */ lwz r0, 0x74(r1)
+/* 80270344 0026D284 7C 08 03 A6 */ mtlr r0
+/* 80270348 0026D288 38 21 00 70 */ addi r1, r1, 0x70
+/* 8027034C 0026D28C 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_lib/asm/func_80270350.s b/include/SComponent/c_lib/asm/func_80270350.s
new file mode 100644
index 0000000000..074a0360de
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_80270350.s
@@ -0,0 +1,136 @@
+/* 80270350 0026D290 94 21 FF 90 */ stwu r1, -0x70(r1)
+/* 80270354 0026D294 7C 08 02 A6 */ mflr r0
+/* 80270358 0026D298 90 01 00 74 */ stw r0, 0x74(r1)
+/* 8027035C 0026D29C DB E1 00 60 */ stfd f31, 0x60(r1)
+/* 80270360 0026D2A0 F3 E1 00 68 */ psq_st f31, 104(r1), 0, 0
+/* 80270364 0026D2A4 DB C1 00 50 */ stfd f30, 0x50(r1)
+/* 80270368 0026D2A8 F3 C1 00 58 */ psq_st f30, 88(r1), 0, 0
+/* 8027036C 0026D2AC 93 E1 00 4C */ stw r31, 0x4c(r1)
+/* 80270370 0026D2B0 7C 7F 1B 78 */ mr r31, r3
+/* 80270374 0026D2B4 7C 85 23 78 */ mr r5, r4
+/* 80270378 0026D2B8 FF C0 08 90 */ fmr f30, f1
+/* 8027037C 0026D2BC FF E0 10 90 */ fmr f31, f2
+/* 80270380 0026D2C0 C0 23 00 00 */ lfs f1, 0(r3)
+/* 80270384 0026D2C4 C0 04 00 00 */ lfs f0, 0(r4)
+/* 80270388 0026D2C8 FC 01 00 00 */ fcmpu cr0, f1, f0
+/* 8027038C 0026D2CC 40 82 00 14 */ bne lbl_802703A0
+/* 80270390 0026D2D0 C0 3F 00 08 */ lfs f1, 8(r31)
+/* 80270394 0026D2D4 C0 05 00 08 */ lfs f0, 8(r5)
+/* 80270398 0026D2D8 FC 01 00 00 */ fcmpu cr0, f1, f0
+/* 8027039C 0026D2DC 41 82 01 80 */ beq lbl_8027051C
+lbl_802703A0:
+/* 802703A0 0026D2E0 38 61 00 24 */ addi r3, r1, 0x24
+/* 802703A4 0026D2E4 7F E4 FB 78 */ mr r4, r31
+/* 802703A8 0026D2E8 4B FF 67 8D */ bl __mi__4cXyzCFRC3Vec
+/* 802703AC 0026D2EC 38 61 00 18 */ addi r3, r1, 0x18
+/* 802703B0 0026D2F0 38 81 00 24 */ addi r4, r1, 0x24
+/* 802703B4 0026D2F4 FC 20 F0 90 */ fmr f1, f30
+/* 802703B8 0026D2F8 4B FF 67 CD */ bl __ml__4cXyzCFf
+/* 802703BC 0026D2FC C0 41 00 18 */ lfs f2, 0x18(r1)
+/* 802703C0 0026D300 D0 41 00 30 */ stfs f2, 0x30(r1)
+/* 802703C4 0026D304 C0 01 00 1C */ lfs f0, 0x1c(r1)
+/* 802703C8 0026D308 D0 01 00 34 */ stfs f0, 0x34(r1)
+/* 802703CC 0026D30C C0 21 00 20 */ lfs f1, 0x20(r1)
+/* 802703D0 0026D310 D0 21 00 38 */ stfs f1, 0x38(r1)
+/* 802703D4 0026D314 D0 41 00 0C */ stfs f2, 0xc(r1)
+/* 802703D8 0026D318 C0 02 B7 E0 */ lfs f0, lbl_804551E0-_SDA2_BASE_(r2)
+/* 802703DC 0026D31C D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 802703E0 0026D320 D0 21 00 14 */ stfs f1, 0x14(r1)
+/* 802703E4 0026D324 38 61 00 0C */ addi r3, r1, 0xc
+/* 802703E8 0026D328 48 0D 6D 51 */ bl PSVECSquareMag
+/* 802703EC 0026D32C C0 02 B7 E0 */ lfs f0, lbl_804551E0-_SDA2_BASE_(r2)
+/* 802703F0 0026D330 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802703F4 0026D334 40 81 00 58 */ ble lbl_8027044C
+/* 802703F8 0026D338 FC 00 08 34 */ frsqrte f0, f1
+/* 802703FC 0026D33C C8 82 B7 E8 */ lfd f4, lbl_804551E8-_SDA2_BASE_(r2)
+/* 80270400 0026D340 FC 44 00 32 */ fmul f2, f4, f0
+/* 80270404 0026D344 C8 62 B7 F0 */ lfd f3, lbl_804551F0-_SDA2_BASE_(r2)
+/* 80270408 0026D348 FC 00 00 32 */ fmul f0, f0, f0
+/* 8027040C 0026D34C FC 01 00 32 */ fmul f0, f1, f0
+/* 80270410 0026D350 FC 03 00 28 */ fsub f0, f3, f0
+/* 80270414 0026D354 FC 02 00 32 */ fmul f0, f2, f0
+/* 80270418 0026D358 FC 44 00 32 */ fmul f2, f4, f0
+/* 8027041C 0026D35C FC 00 00 32 */ fmul f0, f0, f0
+/* 80270420 0026D360 FC 01 00 32 */ fmul f0, f1, f0
+/* 80270424 0026D364 FC 03 00 28 */ fsub f0, f3, f0
+/* 80270428 0026D368 FC 02 00 32 */ fmul f0, f2, f0
+/* 8027042C 0026D36C FC 44 00 32 */ fmul f2, f4, f0
+/* 80270430 0026D370 FC 00 00 32 */ fmul f0, f0, f0
+/* 80270434 0026D374 FC 01 00 32 */ fmul f0, f1, f0
+/* 80270438 0026D378 FC 03 00 28 */ fsub f0, f3, f0
+/* 8027043C 0026D37C FC 02 00 32 */ fmul f0, f2, f0
+/* 80270440 0026D380 FC 21 00 32 */ fmul f1, f1, f0
+/* 80270444 0026D384 FC 20 08 18 */ frsp f1, f1
+/* 80270448 0026D388 48 00 00 88 */ b lbl_802704D0
+lbl_8027044C:
+/* 8027044C 0026D38C C8 02 B7 F8 */ lfd f0, lbl_804551F8-_SDA2_BASE_(r2)
+/* 80270450 0026D390 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80270454 0026D394 40 80 00 10 */ bge lbl_80270464
+/* 80270458 0026D398 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8027045C 0026D39C C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+/* 80270460 0026D3A0 48 00 00 70 */ b lbl_802704D0
+lbl_80270464:
+/* 80270464 0026D3A4 D0 21 00 08 */ stfs f1, 8(r1)
+/* 80270468 0026D3A8 80 81 00 08 */ lwz r4, 8(r1)
+/* 8027046C 0026D3AC 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
+/* 80270470 0026D3B0 3C 00 7F 80 */ lis r0, 0x7f80
+/* 80270474 0026D3B4 7C 03 00 00 */ cmpw r3, r0
+/* 80270478 0026D3B8 41 82 00 14 */ beq lbl_8027048C
+/* 8027047C 0026D3BC 40 80 00 40 */ bge lbl_802704BC
+/* 80270480 0026D3C0 2C 03 00 00 */ cmpwi r3, 0
+/* 80270484 0026D3C4 41 82 00 20 */ beq lbl_802704A4
+/* 80270488 0026D3C8 48 00 00 34 */ b lbl_802704BC
+lbl_8027048C:
+/* 8027048C 0026D3CC 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 80270490 0026D3D0 41 82 00 0C */ beq lbl_8027049C
+/* 80270494 0026D3D4 38 00 00 01 */ li r0, 1
+/* 80270498 0026D3D8 48 00 00 28 */ b lbl_802704C0
+lbl_8027049C:
+/* 8027049C 0026D3DC 38 00 00 02 */ li r0, 2
+/* 802704A0 0026D3E0 48 00 00 20 */ b lbl_802704C0
+lbl_802704A4:
+/* 802704A4 0026D3E4 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 802704A8 0026D3E8 41 82 00 0C */ beq lbl_802704B4
+/* 802704AC 0026D3EC 38 00 00 05 */ li r0, 5
+/* 802704B0 0026D3F0 48 00 00 10 */ b lbl_802704C0
+lbl_802704B4:
+/* 802704B4 0026D3F4 38 00 00 03 */ li r0, 3
+/* 802704B8 0026D3F8 48 00 00 08 */ b lbl_802704C0
+lbl_802704BC:
+/* 802704BC 0026D3FC 38 00 00 04 */ li r0, 4
+lbl_802704C0:
+/* 802704C0 0026D400 2C 00 00 01 */ cmpwi r0, 1
+/* 802704C4 0026D404 40 82 00 0C */ bne lbl_802704D0
+/* 802704C8 0026D408 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 802704CC 0026D40C C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+lbl_802704D0:
+/* 802704D0 0026D410 FC 00 0A 10 */ fabs f0, f1
+/* 802704D4 0026D414 FC 40 00 18 */ frsp f2, f0
+/* 802704D8 0026D418 C0 02 B8 00 */ lfs f0, lbl_80455200-_SDA2_BASE_(r2)
+/* 802704DC 0026D41C FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 802704E0 0026D420 41 80 00 3C */ blt lbl_8027051C
+/* 802704E4 0026D424 FC 01 F8 40 */ fcmpo cr0, f1, f31
+/* 802704E8 0026D428 40 81 00 14 */ ble lbl_802704FC
+/* 802704EC 0026D42C 38 61 00 30 */ addi r3, r1, 0x30
+/* 802704F0 0026D430 7C 64 1B 78 */ mr r4, r3
+/* 802704F4 0026D434 EC 3F 08 24 */ fdivs f1, f31, f1
+/* 802704F8 0026D438 48 0D 6B E1 */ bl PSVECScale
+lbl_802704FC:
+/* 802704FC 0026D43C C0 3F 00 00 */ lfs f1, 0(r31)
+/* 80270500 0026D440 C0 01 00 30 */ lfs f0, 0x30(r1)
+/* 80270504 0026D444 EC 01 00 28 */ fsubs f0, f1, f0
+/* 80270508 0026D448 D0 1F 00 00 */ stfs f0, 0(r31)
+/* 8027050C 0026D44C C0 3F 00 08 */ lfs f1, 8(r31)
+/* 80270510 0026D450 C0 01 00 38 */ lfs f0, 0x38(r1)
+/* 80270514 0026D454 EC 01 00 28 */ fsubs f0, f1, f0
+/* 80270518 0026D458 D0 1F 00 08 */ stfs f0, 8(r31)
+lbl_8027051C:
+/* 8027051C 0026D45C E3 E1 00 68 */ psq_l f31, 104(r1), 0, 0
+/* 80270520 0026D460 CB E1 00 60 */ lfd f31, 0x60(r1)
+/* 80270524 0026D464 E3 C1 00 58 */ psq_l f30, 88(r1), 0, 0
+/* 80270528 0026D468 CB C1 00 50 */ lfd f30, 0x50(r1)
+/* 8027052C 0026D46C 83 E1 00 4C */ lwz r31, 0x4c(r1)
+/* 80270530 0026D470 80 01 00 74 */ lwz r0, 0x74(r1)
+/* 80270534 0026D474 7C 08 03 A6 */ mtlr r0
+/* 80270538 0026D478 38 21 00 70 */ addi r1, r1, 0x70
+/* 8027053C 0026D47C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_lib/asm/func_80270540.s b/include/SComponent/c_lib/asm/func_80270540.s
new file mode 100644
index 0000000000..cf5fa2a173
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_80270540.s
@@ -0,0 +1,56 @@
+/* 80270540 0026D480 A9 03 00 00 */ lha r8, 0(r3)
+/* 80270544 0026D484 7C 89 07 34 */ extsh r9, r4
+/* 80270548 0026D488 7C 08 48 50 */ subf r0, r8, r9
+/* 8027054C 0026D48C 7C 0A 07 34 */ extsh r10, r0
+/* 80270550 0026D490 7C 08 48 00 */ cmpw r8, r9
+/* 80270554 0026D494 41 82 00 A4 */ beq lbl_802705F8
+/* 80270558 0026D498 7C A0 07 34 */ extsh r0, r5
+/* 8027055C 0026D49C 7C 0A 03 D6 */ divw r0, r10, r0
+/* 80270560 0026D4A0 7C 05 07 34 */ extsh r5, r0
+/* 80270564 0026D4A4 7C E0 07 34 */ extsh r0, r7
+/* 80270568 0026D4A8 7C 05 00 00 */ cmpw r5, r0
+/* 8027056C 0026D4AC 41 81 00 10 */ bgt lbl_8027057C
+/* 80270570 0026D4B0 7C 00 00 D0 */ neg r0, r0
+/* 80270574 0026D4B4 7C 05 00 00 */ cmpw r5, r0
+/* 80270578 0026D4B8 40 80 00 3C */ bge lbl_802705B4
+lbl_8027057C:
+/* 8027057C 0026D4BC 7C C0 07 34 */ extsh r0, r6
+/* 80270580 0026D4C0 7C 05 00 00 */ cmpw r5, r0
+/* 80270584 0026D4C4 40 81 00 08 */ ble lbl_8027058C
+/* 80270588 0026D4C8 7C C5 33 78 */ mr r5, r6
+lbl_8027058C:
+/* 8027058C 0026D4CC 7C A4 07 34 */ extsh r4, r5
+/* 80270590 0026D4D0 7C C0 07 34 */ extsh r0, r6
+/* 80270594 0026D4D4 7C 00 00 D0 */ neg r0, r0
+/* 80270598 0026D4D8 7C 04 00 00 */ cmpw r4, r0
+/* 8027059C 0026D4DC 40 80 00 08 */ bge lbl_802705A4
+/* 802705A0 0026D4E0 7C 05 07 34 */ extsh r5, r0
+lbl_802705A4:
+/* 802705A4 0026D4E4 A8 03 00 00 */ lha r0, 0(r3)
+/* 802705A8 0026D4E8 7C 00 2A 14 */ add r0, r0, r5
+/* 802705AC 0026D4EC B0 03 00 00 */ sth r0, 0(r3)
+/* 802705B0 0026D4F0 48 00 00 48 */ b lbl_802705F8
+lbl_802705B4:
+/* 802705B4 0026D4F4 7D 40 07 35 */ extsh. r0, r10
+/* 802705B8 0026D4F8 41 80 00 24 */ blt lbl_802705DC
+/* 802705BC 0026D4FC 7C 08 3A 14 */ add r0, r8, r7
+/* 802705C0 0026D500 B0 03 00 00 */ sth r0, 0(r3)
+/* 802705C4 0026D504 A8 03 00 00 */ lha r0, 0(r3)
+/* 802705C8 0026D508 7C 00 48 50 */ subf r0, r0, r9
+/* 802705CC 0026D50C 7C 00 07 35 */ extsh. r0, r0
+/* 802705D0 0026D510 41 81 00 28 */ bgt lbl_802705F8
+/* 802705D4 0026D514 B0 83 00 00 */ sth r4, 0(r3)
+/* 802705D8 0026D518 48 00 00 20 */ b lbl_802705F8
+lbl_802705DC:
+/* 802705DC 0026D51C 7C 07 40 50 */ subf r0, r7, r8
+/* 802705E0 0026D520 B0 03 00 00 */ sth r0, 0(r3)
+/* 802705E4 0026D524 A8 03 00 00 */ lha r0, 0(r3)
+/* 802705E8 0026D528 7C 00 48 50 */ subf r0, r0, r9
+/* 802705EC 0026D52C 7C 00 07 35 */ extsh. r0, r0
+/* 802705F0 0026D530 41 80 00 08 */ blt lbl_802705F8
+/* 802705F4 0026D534 B0 83 00 00 */ sth r4, 0(r3)
+lbl_802705F8:
+/* 802705F8 0026D538 A8 03 00 00 */ lha r0, 0(r3)
+/* 802705FC 0026D53C 7C 00 48 50 */ subf r0, r0, r9
+/* 80270600 0026D540 7C 03 07 34 */ extsh r3, r0
+/* 80270604 0026D544 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_lib/asm/func_80270608.s b/include/SComponent/c_lib/asm/func_80270608.s
new file mode 100644
index 0000000000..17a9c5ef5d
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_80270608.s
@@ -0,0 +1,23 @@
+/* 80270608 0026D548 A8 E3 00 00 */ lha r7, 0(r3)
+/* 8027060C 0026D54C 7C 07 20 50 */ subf r0, r7, r4
+/* 80270610 0026D550 7C 04 07 34 */ extsh r4, r0
+/* 80270614 0026D554 7C A0 07 34 */ extsh r0, r5
+/* 80270618 0026D558 7C 04 03 D6 */ divw r0, r4, r0
+/* 8027061C 0026D55C 7C 04 07 34 */ extsh r4, r0
+/* 80270620 0026D560 7C C0 07 34 */ extsh r0, r6
+/* 80270624 0026D564 7C 04 00 00 */ cmpw r4, r0
+/* 80270628 0026D568 40 81 00 10 */ ble lbl_80270638
+/* 8027062C 0026D56C 7C 07 32 14 */ add r0, r7, r6
+/* 80270630 0026D570 B0 03 00 00 */ sth r0, 0(r3)
+/* 80270634 0026D574 4E 80 00 20 */ blr
+lbl_80270638:
+/* 80270638 0026D578 7C 00 00 D0 */ neg r0, r0
+/* 8027063C 0026D57C 7C 04 00 00 */ cmpw r4, r0
+/* 80270640 0026D580 40 80 00 10 */ bge lbl_80270650
+/* 80270644 0026D584 7C 06 38 50 */ subf r0, r6, r7
+/* 80270648 0026D588 B0 03 00 00 */ sth r0, 0(r3)
+/* 8027064C 0026D58C 4E 80 00 20 */ blr
+lbl_80270650:
+/* 80270650 0026D590 7C 07 22 14 */ add r0, r7, r4
+/* 80270654 0026D594 B0 03 00 00 */ sth r0, 0(r3)
+/* 80270658 0026D598 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_lib/asm/func_8027065C.s b/include/SComponent/c_lib/asm/func_8027065C.s
new file mode 100644
index 0000000000..a2c1ac1cc3
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_8027065C.s
@@ -0,0 +1,33 @@
+/* 8027065C 0026D59C 54 A5 06 3F */ clrlwi. r5, r5, 0x18
+/* 80270660 0026D5A0 41 82 00 50 */ beq lbl_802706B0
+/* 80270664 0026D5A4 88 E3 00 00 */ lbz r7, 0(r3)
+/* 80270668 0026D5A8 54 88 06 3E */ clrlwi r8, r4, 0x18
+/* 8027066C 0026D5AC 7C E0 07 34 */ extsh r0, r7
+/* 80270670 0026D5B0 7C 00 40 00 */ cmpw r0, r8
+/* 80270674 0026D5B4 40 81 00 0C */ ble lbl_80270680
+/* 80270678 0026D5B8 7C 05 00 D0 */ neg r0, r5
+/* 8027067C 0026D5BC 7C 05 07 34 */ extsh r5, r0
+lbl_80270680:
+/* 80270680 0026D5C0 7C E7 2A 14 */ add r7, r7, r5
+/* 80270684 0026D5C4 7C A6 07 34 */ extsh r6, r5
+/* 80270688 0026D5C8 7D 05 07 34 */ extsh r5, r8
+/* 8027068C 0026D5CC 7C E0 07 34 */ extsh r0, r7
+/* 80270690 0026D5D0 7C 05 00 50 */ subf r0, r5, r0
+/* 80270694 0026D5D4 7C 06 01 D7 */ mullw. r0, r6, r0
+/* 80270698 0026D5D8 41 80 00 10 */ blt lbl_802706A8
+/* 8027069C 0026D5DC 98 83 00 00 */ stb r4, 0(r3)
+/* 802706A0 0026D5E0 38 60 00 01 */ li r3, 1
+/* 802706A4 0026D5E4 4E 80 00 20 */ blr
+lbl_802706A8:
+/* 802706A8 0026D5E8 98 E3 00 00 */ stb r7, 0(r3)
+/* 802706AC 0026D5EC 48 00 00 1C */ b lbl_802706C8
+lbl_802706B0:
+/* 802706B0 0026D5F0 88 63 00 00 */ lbz r3, 0(r3)
+/* 802706B4 0026D5F4 54 80 06 3E */ clrlwi r0, r4, 0x18
+/* 802706B8 0026D5F8 7C 03 00 40 */ cmplw r3, r0
+/* 802706BC 0026D5FC 40 82 00 0C */ bne lbl_802706C8
+/* 802706C0 0026D600 38 60 00 01 */ li r3, 1
+/* 802706C4 0026D604 4E 80 00 20 */ blr
+lbl_802706C8:
+/* 802706C8 0026D608 38 60 00 00 */ li r3, 0
+/* 802706CC 0026D60C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_lib/asm/func_802706D0.s b/include/SComponent/c_lib/asm/func_802706D0.s
new file mode 100644
index 0000000000..e2e7d7c5ce
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_802706D0.s
@@ -0,0 +1,31 @@
+/* 802706D0 0026D610 7C A0 07 35 */ extsh. r0, r5
+/* 802706D4 0026D614 41 82 00 4C */ beq lbl_80270720
+/* 802706D8 0026D618 A8 C3 00 00 */ lha r6, 0(r3)
+/* 802706DC 0026D61C 7C 80 07 34 */ extsh r0, r4
+/* 802706E0 0026D620 7C 06 00 00 */ cmpw r6, r0
+/* 802706E4 0026D624 40 81 00 0C */ ble lbl_802706F0
+/* 802706E8 0026D628 7C 05 00 D0 */ neg r0, r5
+/* 802706EC 0026D62C 7C 05 07 34 */ extsh r5, r0
+lbl_802706F0:
+/* 802706F0 0026D630 A8 03 00 00 */ lha r0, 0(r3)
+/* 802706F4 0026D634 7C 00 2A 14 */ add r0, r0, r5
+/* 802706F8 0026D638 B0 03 00 00 */ sth r0, 0(r3)
+/* 802706FC 0026D63C 7C A6 07 34 */ extsh r6, r5
+/* 80270700 0026D640 7C 85 07 34 */ extsh r5, r4
+/* 80270704 0026D644 A8 03 00 00 */ lha r0, 0(r3)
+/* 80270708 0026D648 7C 05 00 50 */ subf r0, r5, r0
+/* 8027070C 0026D64C 7C 06 01 D7 */ mullw. r0, r6, r0
+/* 80270710 0026D650 41 80 00 28 */ blt lbl_80270738
+/* 80270714 0026D654 B0 83 00 00 */ sth r4, 0(r3)
+/* 80270718 0026D658 38 60 00 01 */ li r3, 1
+/* 8027071C 0026D65C 4E 80 00 20 */ blr
+lbl_80270720:
+/* 80270720 0026D660 A8 63 00 00 */ lha r3, 0(r3)
+/* 80270724 0026D664 7C 80 07 34 */ extsh r0, r4
+/* 80270728 0026D668 7C 03 00 00 */ cmpw r3, r0
+/* 8027072C 0026D66C 40 82 00 0C */ bne lbl_80270738
+/* 80270730 0026D670 38 60 00 01 */ li r3, 1
+/* 80270734 0026D674 4E 80 00 20 */ blr
+lbl_80270738:
+/* 80270738 0026D678 38 60 00 00 */ li r3, 0
+/* 8027073C 0026D67C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_lib/asm/func_80270740.s b/include/SComponent/c_lib/asm/func_80270740.s
new file mode 100644
index 0000000000..ac58b2f505
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_80270740.s
@@ -0,0 +1,30 @@
+/* 80270740 0026D680 C0 02 B7 E0 */ lfs f0, lbl_804551E0-_SDA2_BASE_(r2)
+/* 80270744 0026D684 FC 02 00 00 */ fcmpu cr0, f2, f0
+/* 80270748 0026D688 41 82 00 48 */ beq lbl_80270790
+/* 8027074C 0026D68C C0 03 00 00 */ lfs f0, 0(r3)
+/* 80270750 0026D690 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 80270754 0026D694 40 81 00 08 */ ble lbl_8027075C
+/* 80270758 0026D698 FC 40 10 50 */ fneg f2, f2
+lbl_8027075C:
+/* 8027075C 0026D69C C0 03 00 00 */ lfs f0, 0(r3)
+/* 80270760 0026D6A0 EC 00 10 2A */ fadds f0, f0, f2
+/* 80270764 0026D6A4 D0 03 00 00 */ stfs f0, 0(r3)
+/* 80270768 0026D6A8 C0 03 00 00 */ lfs f0, 0(r3)
+/* 8027076C 0026D6AC EC 00 08 28 */ fsubs f0, f0, f1
+/* 80270770 0026D6B0 EC 42 00 32 */ fmuls f2, f2, f0
+/* 80270774 0026D6B4 C0 02 B7 E0 */ lfs f0, lbl_804551E0-_SDA2_BASE_(r2)
+/* 80270778 0026D6B8 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 8027077C 0026D6BC 4C 41 13 82 */ cror 2, 1, 2
+/* 80270780 0026D6C0 40 82 00 24 */ bne lbl_802707A4
+/* 80270784 0026D6C4 D0 23 00 00 */ stfs f1, 0(r3)
+/* 80270788 0026D6C8 38 60 00 01 */ li r3, 1
+/* 8027078C 0026D6CC 4E 80 00 20 */ blr
+lbl_80270790:
+/* 80270790 0026D6D0 C0 03 00 00 */ lfs f0, 0(r3)
+/* 80270794 0026D6D4 FC 00 08 00 */ fcmpu cr0, f0, f1
+/* 80270798 0026D6D8 40 82 00 0C */ bne lbl_802707A4
+/* 8027079C 0026D6DC 38 60 00 01 */ li r3, 1
+/* 802707A0 0026D6E0 4E 80 00 20 */ blr
+lbl_802707A4:
+/* 802707A4 0026D6E4 38 60 00 00 */ li r3, 0
+/* 802707A8 0026D6E8 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_lib/asm/func_802707AC.s b/include/SComponent/c_lib/asm/func_802707AC.s
new file mode 100644
index 0000000000..91087a0131
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_802707AC.s
@@ -0,0 +1,135 @@
+/* 802707AC 0026D6EC 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 802707B0 0026D6F0 7C 08 02 A6 */ mflr r0
+/* 802707B4 0026D6F4 90 01 00 54 */ stw r0, 0x54(r1)
+/* 802707B8 0026D6F8 DB E1 00 40 */ stfd f31, 0x40(r1)
+/* 802707BC 0026D6FC F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0
+/* 802707C0 0026D700 93 E1 00 3C */ stw r31, 0x3c(r1)
+/* 802707C4 0026D704 93 C1 00 38 */ stw r30, 0x38(r1)
+/* 802707C8 0026D708 7C 7E 1B 78 */ mr r30, r3
+/* 802707CC 0026D70C 7C 9F 23 78 */ mr r31, r4
+/* 802707D0 0026D710 FF E0 08 90 */ fmr f31, f1
+/* 802707D4 0026D714 C0 02 B7 E0 */ lfs f0, lbl_804551E0-_SDA2_BASE_(r2)
+/* 802707D8 0026D718 FC 1F 00 00 */ fcmpu cr0, f31, f0
+/* 802707DC 0026D71C 41 82 01 7C */ beq lbl_80270958
+/* 802707E0 0026D720 38 61 00 18 */ addi r3, r1, 0x18
+/* 802707E4 0026D724 7F C4 F3 78 */ mr r4, r30
+/* 802707E8 0026D728 7F E5 FB 78 */ mr r5, r31
+/* 802707EC 0026D72C 4B FF 63 49 */ bl __mi__4cXyzCFRC3Vec
+/* 802707F0 0026D730 C0 01 00 18 */ lfs f0, 0x18(r1)
+/* 802707F4 0026D734 D0 01 00 24 */ stfs f0, 0x24(r1)
+/* 802707F8 0026D738 C0 01 00 1C */ lfs f0, 0x1c(r1)
+/* 802707FC 0026D73C D0 01 00 28 */ stfs f0, 0x28(r1)
+/* 80270800 0026D740 C0 01 00 20 */ lfs f0, 0x20(r1)
+/* 80270804 0026D744 D0 01 00 2C */ stfs f0, 0x2c(r1)
+/* 80270808 0026D748 38 61 00 24 */ addi r3, r1, 0x24
+/* 8027080C 0026D74C 48 0D 69 2D */ bl PSVECSquareMag
+/* 80270810 0026D750 C0 02 B7 E0 */ lfs f0, lbl_804551E0-_SDA2_BASE_(r2)
+/* 80270814 0026D754 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80270818 0026D758 40 81 00 58 */ ble lbl_80270870
+/* 8027081C 0026D75C FC 00 08 34 */ frsqrte f0, f1
+/* 80270820 0026D760 C8 82 B7 E8 */ lfd f4, lbl_804551E8-_SDA2_BASE_(r2)
+/* 80270824 0026D764 FC 44 00 32 */ fmul f2, f4, f0
+/* 80270828 0026D768 C8 62 B7 F0 */ lfd f3, lbl_804551F0-_SDA2_BASE_(r2)
+/* 8027082C 0026D76C FC 00 00 32 */ fmul f0, f0, f0
+/* 80270830 0026D770 FC 01 00 32 */ fmul f0, f1, f0
+/* 80270834 0026D774 FC 03 00 28 */ fsub f0, f3, f0
+/* 80270838 0026D778 FC 02 00 32 */ fmul f0, f2, f0
+/* 8027083C 0026D77C FC 44 00 32 */ fmul f2, f4, f0
+/* 80270840 0026D780 FC 00 00 32 */ fmul f0, f0, f0
+/* 80270844 0026D784 FC 01 00 32 */ fmul f0, f1, f0
+/* 80270848 0026D788 FC 03 00 28 */ fsub f0, f3, f0
+/* 8027084C 0026D78C FC 02 00 32 */ fmul f0, f2, f0
+/* 80270850 0026D790 FC 44 00 32 */ fmul f2, f4, f0
+/* 80270854 0026D794 FC 00 00 32 */ fmul f0, f0, f0
+/* 80270858 0026D798 FC 01 00 32 */ fmul f0, f1, f0
+/* 8027085C 0026D79C FC 03 00 28 */ fsub f0, f3, f0
+/* 80270860 0026D7A0 FC 02 00 32 */ fmul f0, f2, f0
+/* 80270864 0026D7A4 FC 21 00 32 */ fmul f1, f1, f0
+/* 80270868 0026D7A8 FC 20 08 18 */ frsp f1, f1
+/* 8027086C 0026D7AC 48 00 00 88 */ b lbl_802708F4
+lbl_80270870:
+/* 80270870 0026D7B0 C8 02 B7 F8 */ lfd f0, lbl_804551F8-_SDA2_BASE_(r2)
+/* 80270874 0026D7B4 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80270878 0026D7B8 40 80 00 10 */ bge lbl_80270888
+/* 8027087C 0026D7BC 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 80270880 0026D7C0 C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+/* 80270884 0026D7C4 48 00 00 70 */ b lbl_802708F4
+lbl_80270888:
+/* 80270888 0026D7C8 D0 21 00 08 */ stfs f1, 8(r1)
+/* 8027088C 0026D7CC 80 81 00 08 */ lwz r4, 8(r1)
+/* 80270890 0026D7D0 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
+/* 80270894 0026D7D4 3C 00 7F 80 */ lis r0, 0x7f80
+/* 80270898 0026D7D8 7C 03 00 00 */ cmpw r3, r0
+/* 8027089C 0026D7DC 41 82 00 14 */ beq lbl_802708B0
+/* 802708A0 0026D7E0 40 80 00 40 */ bge lbl_802708E0
+/* 802708A4 0026D7E4 2C 03 00 00 */ cmpwi r3, 0
+/* 802708A8 0026D7E8 41 82 00 20 */ beq lbl_802708C8
+/* 802708AC 0026D7EC 48 00 00 34 */ b lbl_802708E0
+lbl_802708B0:
+/* 802708B0 0026D7F0 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 802708B4 0026D7F4 41 82 00 0C */ beq lbl_802708C0
+/* 802708B8 0026D7F8 38 00 00 01 */ li r0, 1
+/* 802708BC 0026D7FC 48 00 00 28 */ b lbl_802708E4
+lbl_802708C0:
+/* 802708C0 0026D800 38 00 00 02 */ li r0, 2
+/* 802708C4 0026D804 48 00 00 20 */ b lbl_802708E4
+lbl_802708C8:
+/* 802708C8 0026D808 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 802708CC 0026D80C 41 82 00 0C */ beq lbl_802708D8
+/* 802708D0 0026D810 38 00 00 05 */ li r0, 5
+/* 802708D4 0026D814 48 00 00 10 */ b lbl_802708E4
+lbl_802708D8:
+/* 802708D8 0026D818 38 00 00 03 */ li r0, 3
+/* 802708DC 0026D81C 48 00 00 08 */ b lbl_802708E4
+lbl_802708E0:
+/* 802708E0 0026D820 38 00 00 04 */ li r0, 4
+lbl_802708E4:
+/* 802708E4 0026D824 2C 00 00 01 */ cmpwi r0, 1
+/* 802708E8 0026D828 40 82 00 0C */ bne lbl_802708F4
+/* 802708EC 0026D82C 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 802708F0 0026D830 C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+lbl_802708F4:
+/* 802708F4 0026D834 FC 00 0A 10 */ fabs f0, f1
+/* 802708F8 0026D838 FC 40 00 18 */ frsp f2, f0
+/* 802708FC 0026D83C C0 02 B8 00 */ lfs f0, lbl_80455200-_SDA2_BASE_(r2)
+/* 80270900 0026D840 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 80270904 0026D844 41 80 00 10 */ blt lbl_80270914
+/* 80270908 0026D848 FC 01 F8 40 */ fcmpo cr0, f1, f31
+/* 8027090C 0026D84C 4C 40 13 82 */ cror 2, 0, 2
+/* 80270910 0026D850 40 82 00 24 */ bne lbl_80270934
+lbl_80270914:
+/* 80270914 0026D854 C0 1F 00 00 */ lfs f0, 0(r31)
+/* 80270918 0026D858 D0 1E 00 00 */ stfs f0, 0(r30)
+/* 8027091C 0026D85C C0 1F 00 04 */ lfs f0, 4(r31)
+/* 80270920 0026D860 D0 1E 00 04 */ stfs f0, 4(r30)
+/* 80270924 0026D864 C0 1F 00 08 */ lfs f0, 8(r31)
+/* 80270928 0026D868 D0 1E 00 08 */ stfs f0, 8(r30)
+/* 8027092C 0026D86C 38 60 00 01 */ li r3, 1
+/* 80270930 0026D870 48 00 00 40 */ b lbl_80270970
+lbl_80270934:
+/* 80270934 0026D874 38 61 00 0C */ addi r3, r1, 0xc
+/* 80270938 0026D878 38 81 00 24 */ addi r4, r1, 0x24
+/* 8027093C 0026D87C EC 3F 08 24 */ fdivs f1, f31, f1
+/* 80270940 0026D880 4B FF 62 45 */ bl __ml__4cXyzCFf
+/* 80270944 0026D884 7F C3 F3 78 */ mr r3, r30
+/* 80270948 0026D888 38 81 00 0C */ addi r4, r1, 0xc
+/* 8027094C 0026D88C 7F C5 F3 78 */ mr r5, r30
+/* 80270950 0026D890 48 0D 67 65 */ bl PSVECSubtract
+/* 80270954 0026D894 48 00 00 18 */ b lbl_8027096C
+lbl_80270958:
+/* 80270958 0026D898 4B FF 66 D5 */ bl __eq__4cXyzCFRC3Vec
+/* 8027095C 0026D89C 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80270960 0026D8A0 41 82 00 0C */ beq lbl_8027096C
+/* 80270964 0026D8A4 38 60 00 01 */ li r3, 1
+/* 80270968 0026D8A8 48 00 00 08 */ b lbl_80270970
+lbl_8027096C:
+/* 8027096C 0026D8AC 38 60 00 00 */ li r3, 0
+lbl_80270970:
+/* 80270970 0026D8B0 E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0
+/* 80270974 0026D8B4 CB E1 00 40 */ lfd f31, 0x40(r1)
+/* 80270978 0026D8B8 83 E1 00 3C */ lwz r31, 0x3c(r1)
+/* 8027097C 0026D8BC 83 C1 00 38 */ lwz r30, 0x38(r1)
+/* 80270980 0026D8C0 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 80270984 0026D8C4 7C 08 03 A6 */ mtlr r0
+/* 80270988 0026D8C8 38 21 00 50 */ addi r1, r1, 0x50
+/* 8027098C 0026D8CC 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_lib/asm/func_80270990.s b/include/SComponent/c_lib/asm/func_80270990.s
new file mode 100644
index 0000000000..6a5f311889
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_80270990.s
@@ -0,0 +1,142 @@
+/* 80270990 0026D8D0 94 21 FF A0 */ stwu r1, -0x60(r1)
+/* 80270994 0026D8D4 7C 08 02 A6 */ mflr r0
+/* 80270998 0026D8D8 90 01 00 64 */ stw r0, 0x64(r1)
+/* 8027099C 0026D8DC DB E1 00 50 */ stfd f31, 0x50(r1)
+/* 802709A0 0026D8E0 F3 E1 00 58 */ psq_st f31, 88(r1), 0, 0
+/* 802709A4 0026D8E4 93 E1 00 4C */ stw r31, 0x4c(r1)
+/* 802709A8 0026D8E8 93 C1 00 48 */ stw r30, 0x48(r1)
+/* 802709AC 0026D8EC 7C 7E 1B 78 */ mr r30, r3
+/* 802709B0 0026D8F0 7C 9F 23 78 */ mr r31, r4
+/* 802709B4 0026D8F4 FF E0 08 90 */ fmr f31, f1
+/* 802709B8 0026D8F8 38 61 00 24 */ addi r3, r1, 0x24
+/* 802709BC 0026D8FC 7F C4 F3 78 */ mr r4, r30
+/* 802709C0 0026D900 7F E5 FB 78 */ mr r5, r31
+/* 802709C4 0026D904 4B FF 61 71 */ bl __mi__4cXyzCFRC3Vec
+/* 802709C8 0026D908 C0 41 00 24 */ lfs f2, 0x24(r1)
+/* 802709CC 0026D90C D0 41 00 30 */ stfs f2, 0x30(r1)
+/* 802709D0 0026D910 C0 01 00 28 */ lfs f0, 0x28(r1)
+/* 802709D4 0026D914 D0 01 00 34 */ stfs f0, 0x34(r1)
+/* 802709D8 0026D918 C0 21 00 2C */ lfs f1, 0x2c(r1)
+/* 802709DC 0026D91C D0 21 00 38 */ stfs f1, 0x38(r1)
+/* 802709E0 0026D920 C0 02 B7 E0 */ lfs f0, lbl_804551E0-_SDA2_BASE_(r2)
+/* 802709E4 0026D924 D0 01 00 34 */ stfs f0, 0x34(r1)
+/* 802709E8 0026D928 D0 41 00 0C */ stfs f2, 0xc(r1)
+/* 802709EC 0026D92C D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 802709F0 0026D930 D0 21 00 14 */ stfs f1, 0x14(r1)
+/* 802709F4 0026D934 38 61 00 0C */ addi r3, r1, 0xc
+/* 802709F8 0026D938 48 0D 67 41 */ bl PSVECSquareMag
+/* 802709FC 0026D93C C0 02 B7 E0 */ lfs f0, lbl_804551E0-_SDA2_BASE_(r2)
+/* 80270A00 0026D940 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80270A04 0026D944 40 81 00 58 */ ble lbl_80270A5C
+/* 80270A08 0026D948 FC 00 08 34 */ frsqrte f0, f1
+/* 80270A0C 0026D94C C8 82 B7 E8 */ lfd f4, lbl_804551E8-_SDA2_BASE_(r2)
+/* 80270A10 0026D950 FC 44 00 32 */ fmul f2, f4, f0
+/* 80270A14 0026D954 C8 62 B7 F0 */ lfd f3, lbl_804551F0-_SDA2_BASE_(r2)
+/* 80270A18 0026D958 FC 00 00 32 */ fmul f0, f0, f0
+/* 80270A1C 0026D95C FC 01 00 32 */ fmul f0, f1, f0
+/* 80270A20 0026D960 FC 03 00 28 */ fsub f0, f3, f0
+/* 80270A24 0026D964 FC 02 00 32 */ fmul f0, f2, f0
+/* 80270A28 0026D968 FC 44 00 32 */ fmul f2, f4, f0
+/* 80270A2C 0026D96C FC 00 00 32 */ fmul f0, f0, f0
+/* 80270A30 0026D970 FC 01 00 32 */ fmul f0, f1, f0
+/* 80270A34 0026D974 FC 03 00 28 */ fsub f0, f3, f0
+/* 80270A38 0026D978 FC 02 00 32 */ fmul f0, f2, f0
+/* 80270A3C 0026D97C FC 44 00 32 */ fmul f2, f4, f0
+/* 80270A40 0026D980 FC 00 00 32 */ fmul f0, f0, f0
+/* 80270A44 0026D984 FC 01 00 32 */ fmul f0, f1, f0
+/* 80270A48 0026D988 FC 03 00 28 */ fsub f0, f3, f0
+/* 80270A4C 0026D98C FC 02 00 32 */ fmul f0, f2, f0
+/* 80270A50 0026D990 FC 21 00 32 */ fmul f1, f1, f0
+/* 80270A54 0026D994 FC 20 08 18 */ frsp f1, f1
+/* 80270A58 0026D998 48 00 00 88 */ b lbl_80270AE0
+lbl_80270A5C:
+/* 80270A5C 0026D99C C8 02 B7 F8 */ lfd f0, lbl_804551F8-_SDA2_BASE_(r2)
+/* 80270A60 0026D9A0 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80270A64 0026D9A4 40 80 00 10 */ bge lbl_80270A74
+/* 80270A68 0026D9A8 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 80270A6C 0026D9AC C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+/* 80270A70 0026D9B0 48 00 00 70 */ b lbl_80270AE0
+lbl_80270A74:
+/* 80270A74 0026D9B4 D0 21 00 08 */ stfs f1, 8(r1)
+/* 80270A78 0026D9B8 80 81 00 08 */ lwz r4, 8(r1)
+/* 80270A7C 0026D9BC 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
+/* 80270A80 0026D9C0 3C 00 7F 80 */ lis r0, 0x7f80
+/* 80270A84 0026D9C4 7C 03 00 00 */ cmpw r3, r0
+/* 80270A88 0026D9C8 41 82 00 14 */ beq lbl_80270A9C
+/* 80270A8C 0026D9CC 40 80 00 40 */ bge lbl_80270ACC
+/* 80270A90 0026D9D0 2C 03 00 00 */ cmpwi r3, 0
+/* 80270A94 0026D9D4 41 82 00 20 */ beq lbl_80270AB4
+/* 80270A98 0026D9D8 48 00 00 34 */ b lbl_80270ACC
+lbl_80270A9C:
+/* 80270A9C 0026D9DC 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 80270AA0 0026D9E0 41 82 00 0C */ beq lbl_80270AAC
+/* 80270AA4 0026D9E4 38 00 00 01 */ li r0, 1
+/* 80270AA8 0026D9E8 48 00 00 28 */ b lbl_80270AD0
+lbl_80270AAC:
+/* 80270AAC 0026D9EC 38 00 00 02 */ li r0, 2
+/* 80270AB0 0026D9F0 48 00 00 20 */ b lbl_80270AD0
+lbl_80270AB4:
+/* 80270AB4 0026D9F4 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 80270AB8 0026D9F8 41 82 00 0C */ beq lbl_80270AC4
+/* 80270ABC 0026D9FC 38 00 00 05 */ li r0, 5
+/* 80270AC0 0026DA00 48 00 00 10 */ b lbl_80270AD0
+lbl_80270AC4:
+/* 80270AC4 0026DA04 38 00 00 03 */ li r0, 3
+/* 80270AC8 0026DA08 48 00 00 08 */ b lbl_80270AD0
+lbl_80270ACC:
+/* 80270ACC 0026DA0C 38 00 00 04 */ li r0, 4
+lbl_80270AD0:
+/* 80270AD0 0026DA10 2C 00 00 01 */ cmpwi r0, 1
+/* 80270AD4 0026DA14 40 82 00 0C */ bne lbl_80270AE0
+/* 80270AD8 0026DA18 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 80270ADC 0026DA1C C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+lbl_80270AE0:
+/* 80270AE0 0026DA20 C0 02 B7 E0 */ lfs f0, lbl_804551E0-_SDA2_BASE_(r2)
+/* 80270AE4 0026DA24 FC 1F 00 00 */ fcmpu cr0, f31, f0
+/* 80270AE8 0026DA28 41 82 00 68 */ beq lbl_80270B50
+/* 80270AEC 0026DA2C FC 00 0A 10 */ fabs f0, f1
+/* 80270AF0 0026DA30 FC 40 00 18 */ frsp f2, f0
+/* 80270AF4 0026DA34 C0 02 B8 00 */ lfs f0, lbl_80455200-_SDA2_BASE_(r2)
+/* 80270AF8 0026DA38 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 80270AFC 0026DA3C 41 80 00 10 */ blt lbl_80270B0C
+/* 80270B00 0026DA40 FC 01 F8 40 */ fcmpo cr0, f1, f31
+/* 80270B04 0026DA44 4C 40 13 82 */ cror 2, 0, 2
+/* 80270B08 0026DA48 40 82 00 24 */ bne lbl_80270B2C
+lbl_80270B0C:
+/* 80270B0C 0026DA4C C0 1F 00 00 */ lfs f0, 0(r31)
+/* 80270B10 0026DA50 D0 1E 00 00 */ stfs f0, 0(r30)
+/* 80270B14 0026DA54 C0 1F 00 04 */ lfs f0, 4(r31)
+/* 80270B18 0026DA58 D0 1E 00 04 */ stfs f0, 4(r30)
+/* 80270B1C 0026DA5C C0 1F 00 08 */ lfs f0, 8(r31)
+/* 80270B20 0026DA60 D0 1E 00 08 */ stfs f0, 8(r30)
+/* 80270B24 0026DA64 38 60 00 01 */ li r3, 1
+/* 80270B28 0026DA68 48 00 00 48 */ b lbl_80270B70
+lbl_80270B2C:
+/* 80270B2C 0026DA6C 38 61 00 18 */ addi r3, r1, 0x18
+/* 80270B30 0026DA70 38 81 00 30 */ addi r4, r1, 0x30
+/* 80270B34 0026DA74 EC 3F 08 24 */ fdivs f1, f31, f1
+/* 80270B38 0026DA78 4B FF 60 4D */ bl __ml__4cXyzCFf
+/* 80270B3C 0026DA7C 7F C3 F3 78 */ mr r3, r30
+/* 80270B40 0026DA80 38 81 00 18 */ addi r4, r1, 0x18
+/* 80270B44 0026DA84 7F C5 F3 78 */ mr r5, r30
+/* 80270B48 0026DA88 48 0D 65 6D */ bl PSVECSubtract
+/* 80270B4C 0026DA8C 48 00 00 20 */ b lbl_80270B6C
+lbl_80270B50:
+/* 80270B50 0026DA90 FC 00 0A 10 */ fabs f0, f1
+/* 80270B54 0026DA94 FC 20 00 18 */ frsp f1, f0
+/* 80270B58 0026DA98 C0 02 B8 00 */ lfs f0, lbl_80455200-_SDA2_BASE_(r2)
+/* 80270B5C 0026DA9C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80270B60 0026DAA0 40 80 00 0C */ bge lbl_80270B6C
+/* 80270B64 0026DAA4 38 60 00 01 */ li r3, 1
+/* 80270B68 0026DAA8 48 00 00 08 */ b lbl_80270B70
+lbl_80270B6C:
+/* 80270B6C 0026DAAC 38 60 00 00 */ li r3, 0
+lbl_80270B70:
+/* 80270B70 0026DAB0 E3 E1 00 58 */ psq_l f31, 88(r1), 0, 0
+/* 80270B74 0026DAB4 CB E1 00 50 */ lfd f31, 0x50(r1)
+/* 80270B78 0026DAB8 83 E1 00 4C */ lwz r31, 0x4c(r1)
+/* 80270B7C 0026DABC 83 C1 00 48 */ lwz r30, 0x48(r1)
+/* 80270B80 0026DAC0 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 80270B84 0026DAC4 7C 08 03 A6 */ mtlr r0
+/* 80270B88 0026DAC8 38 21 00 60 */ addi r1, r1, 0x60
+/* 80270B8C 0026DACC 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_lib/asm/func_80270B90.s b/include/SComponent/c_lib/asm/func_80270B90.s
new file mode 100644
index 0000000000..98bca2b370
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_80270B90.s
@@ -0,0 +1,32 @@
+/* 80270B90 0026DAD0 7C A0 07 35 */ extsh. r0, r5
+/* 80270B94 0026DAD4 41 82 00 50 */ beq lbl_80270BE4
+/* 80270B98 0026DAD8 7C 86 07 34 */ extsh r6, r4
+/* 80270B9C 0026DADC A8 03 00 00 */ lha r0, 0(r3)
+/* 80270BA0 0026DAE0 7C 06 00 50 */ subf r0, r6, r0
+/* 80270BA4 0026DAE4 7C 00 07 35 */ extsh. r0, r0
+/* 80270BA8 0026DAE8 40 81 00 0C */ ble lbl_80270BB4
+/* 80270BAC 0026DAEC 7C 05 00 D0 */ neg r0, r5
+/* 80270BB0 0026DAF0 7C 05 07 34 */ extsh r5, r0
+lbl_80270BB4:
+/* 80270BB4 0026DAF4 A8 03 00 00 */ lha r0, 0(r3)
+/* 80270BB8 0026DAF8 7C 00 2A 14 */ add r0, r0, r5
+/* 80270BBC 0026DAFC B0 03 00 00 */ sth r0, 0(r3)
+/* 80270BC0 0026DB00 7C A5 07 34 */ extsh r5, r5
+/* 80270BC4 0026DB04 A8 03 00 00 */ lha r0, 0(r3)
+/* 80270BC8 0026DB08 7C 06 00 50 */ subf r0, r6, r0
+/* 80270BCC 0026DB0C 7C 00 07 34 */ extsh r0, r0
+/* 80270BD0 0026DB10 7C 05 01 D7 */ mullw. r0, r5, r0
+/* 80270BD4 0026DB14 41 80 00 28 */ blt lbl_80270BFC
+/* 80270BD8 0026DB18 B0 83 00 00 */ sth r4, 0(r3)
+/* 80270BDC 0026DB1C 38 60 00 01 */ li r3, 1
+/* 80270BE0 0026DB20 4E 80 00 20 */ blr
+lbl_80270BE4:
+/* 80270BE4 0026DB24 A8 63 00 00 */ lha r3, 0(r3)
+/* 80270BE8 0026DB28 7C 80 07 34 */ extsh r0, r4
+/* 80270BEC 0026DB2C 7C 03 00 00 */ cmpw r3, r0
+/* 80270BF0 0026DB30 40 82 00 0C */ bne lbl_80270BFC
+/* 80270BF4 0026DB34 38 60 00 01 */ li r3, 1
+/* 80270BF8 0026DB38 4E 80 00 20 */ blr
+lbl_80270BFC:
+/* 80270BFC 0026DB3C 38 60 00 00 */ li r3, 0
+/* 80270C00 0026DB40 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_lib/asm/func_80270C04.s b/include/SComponent/c_lib/asm/func_80270C04.s
new file mode 100644
index 0000000000..9c457bf697
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_80270C04.s
@@ -0,0 +1,14 @@
+/* 80270C04 0026DB44 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80270C08 0026DB48 7C 08 02 A6 */ mflr r0
+/* 80270C0C 0026DB4C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80270C10 0026DB50 C0 24 00 00 */ lfs f1, 0(r4)
+/* 80270C14 0026DB54 C0 03 00 00 */ lfs f0, 0(r3)
+/* 80270C18 0026DB58 EC 21 00 28 */ fsubs f1, f1, f0
+/* 80270C1C 0026DB5C C0 44 00 08 */ lfs f2, 8(r4)
+/* 80270C20 0026DB60 C0 03 00 08 */ lfs f0, 8(r3)
+/* 80270C24 0026DB64 EC 42 00 28 */ fsubs f2, f2, f0
+/* 80270C28 0026DB68 4B FF 6A 4D */ bl cM_atan2s__Fff
+/* 80270C2C 0026DB6C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80270C30 0026DB70 7C 08 03 A6 */ mtlr r0
+/* 80270C34 0026DB74 38 21 00 10 */ addi r1, r1, 0x10
+/* 80270C38 0026DB78 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_lib/asm/func_80270C3C.s b/include/SComponent/c_lib/asm/func_80270C3C.s
new file mode 100644
index 0000000000..63be618be3
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_80270C3C.s
@@ -0,0 +1,14 @@
+/* 80270C3C 0026DB7C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80270C40 0026DB80 7C 08 02 A6 */ mflr r0
+/* 80270C44 0026DB84 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80270C48 0026DB88 C0 24 00 00 */ lfs f1, 0(r4)
+/* 80270C4C 0026DB8C C0 03 00 00 */ lfs f0, 0(r3)
+/* 80270C50 0026DB90 EC 21 00 28 */ fsubs f1, f1, f0
+/* 80270C54 0026DB94 C0 44 00 08 */ lfs f2, 8(r4)
+/* 80270C58 0026DB98 C0 03 00 08 */ lfs f0, 8(r3)
+/* 80270C5C 0026DB9C EC 42 00 28 */ fsubs f2, f2, f0
+/* 80270C60 0026DBA0 4B FF 6A 15 */ bl cM_atan2s__Fff
+/* 80270C64 0026DBA4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80270C68 0026DBA8 7C 08 03 A6 */ mtlr r0
+/* 80270C6C 0026DBAC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80270C70 0026DBB0 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_lib/asm/func_80270C74.s b/include/SComponent/c_lib/asm/func_80270C74.s
new file mode 100644
index 0000000000..22534f042b
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_80270C74.s
@@ -0,0 +1,93 @@
+/* 80270C74 0026DBB4 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80270C78 0026DBB8 7C 08 02 A6 */ mflr r0
+/* 80270C7C 0026DBBC 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80270C80 0026DBC0 7C 65 1B 78 */ mr r5, r3
+/* 80270C84 0026DBC4 38 61 00 18 */ addi r3, r1, 0x18
+/* 80270C88 0026DBC8 4B FF 5E AD */ bl __mi__4cXyzCFRC3Vec
+/* 80270C8C 0026DBCC C0 41 00 18 */ lfs f2, 0x18(r1)
+/* 80270C90 0026DBD0 D0 41 00 24 */ stfs f2, 0x24(r1)
+/* 80270C94 0026DBD4 C0 01 00 1C */ lfs f0, 0x1c(r1)
+/* 80270C98 0026DBD8 D0 01 00 28 */ stfs f0, 0x28(r1)
+/* 80270C9C 0026DBDC C0 21 00 20 */ lfs f1, 0x20(r1)
+/* 80270CA0 0026DBE0 D0 21 00 2C */ stfs f1, 0x2c(r1)
+/* 80270CA4 0026DBE4 D0 41 00 0C */ stfs f2, 0xc(r1)
+/* 80270CA8 0026DBE8 C0 02 B7 E0 */ lfs f0, lbl_804551E0-_SDA2_BASE_(r2)
+/* 80270CAC 0026DBEC D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 80270CB0 0026DBF0 D0 21 00 14 */ stfs f1, 0x14(r1)
+/* 80270CB4 0026DBF4 38 61 00 0C */ addi r3, r1, 0xc
+/* 80270CB8 0026DBF8 48 0D 64 81 */ bl PSVECSquareMag
+/* 80270CBC 0026DBFC C0 02 B7 E0 */ lfs f0, lbl_804551E0-_SDA2_BASE_(r2)
+/* 80270CC0 0026DC00 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80270CC4 0026DC04 40 81 00 58 */ ble lbl_80270D1C
+/* 80270CC8 0026DC08 FC 00 08 34 */ frsqrte f0, f1
+/* 80270CCC 0026DC0C C8 82 B7 E8 */ lfd f4, lbl_804551E8-_SDA2_BASE_(r2)
+/* 80270CD0 0026DC10 FC 44 00 32 */ fmul f2, f4, f0
+/* 80270CD4 0026DC14 C8 62 B7 F0 */ lfd f3, lbl_804551F0-_SDA2_BASE_(r2)
+/* 80270CD8 0026DC18 FC 00 00 32 */ fmul f0, f0, f0
+/* 80270CDC 0026DC1C FC 01 00 32 */ fmul f0, f1, f0
+/* 80270CE0 0026DC20 FC 03 00 28 */ fsub f0, f3, f0
+/* 80270CE4 0026DC24 FC 02 00 32 */ fmul f0, f2, f0
+/* 80270CE8 0026DC28 FC 44 00 32 */ fmul f2, f4, f0
+/* 80270CEC 0026DC2C FC 00 00 32 */ fmul f0, f0, f0
+/* 80270CF0 0026DC30 FC 01 00 32 */ fmul f0, f1, f0
+/* 80270CF4 0026DC34 FC 03 00 28 */ fsub f0, f3, f0
+/* 80270CF8 0026DC38 FC 02 00 32 */ fmul f0, f2, f0
+/* 80270CFC 0026DC3C FC 44 00 32 */ fmul f2, f4, f0
+/* 80270D00 0026DC40 FC 00 00 32 */ fmul f0, f0, f0
+/* 80270D04 0026DC44 FC 01 00 32 */ fmul f0, f1, f0
+/* 80270D08 0026DC48 FC 03 00 28 */ fsub f0, f3, f0
+/* 80270D0C 0026DC4C FC 02 00 32 */ fmul f0, f2, f0
+/* 80270D10 0026DC50 FC 41 00 32 */ fmul f2, f1, f0
+/* 80270D14 0026DC54 FC 40 10 18 */ frsp f2, f2
+/* 80270D18 0026DC58 48 00 00 90 */ b lbl_80270DA8
+lbl_80270D1C:
+/* 80270D1C 0026DC5C C8 02 B7 F8 */ lfd f0, lbl_804551F8-_SDA2_BASE_(r2)
+/* 80270D20 0026DC60 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80270D24 0026DC64 40 80 00 10 */ bge lbl_80270D34
+/* 80270D28 0026DC68 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 80270D2C 0026DC6C C0 43 0A E0 */ lfs f2, lbl_80450AE0@l(r3)
+/* 80270D30 0026DC70 48 00 00 78 */ b lbl_80270DA8
+lbl_80270D34:
+/* 80270D34 0026DC74 D0 21 00 08 */ stfs f1, 8(r1)
+/* 80270D38 0026DC78 80 81 00 08 */ lwz r4, 8(r1)
+/* 80270D3C 0026DC7C 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
+/* 80270D40 0026DC80 3C 00 7F 80 */ lis r0, 0x7f80
+/* 80270D44 0026DC84 7C 03 00 00 */ cmpw r3, r0
+/* 80270D48 0026DC88 41 82 00 14 */ beq lbl_80270D5C
+/* 80270D4C 0026DC8C 40 80 00 40 */ bge lbl_80270D8C
+/* 80270D50 0026DC90 2C 03 00 00 */ cmpwi r3, 0
+/* 80270D54 0026DC94 41 82 00 20 */ beq lbl_80270D74
+/* 80270D58 0026DC98 48 00 00 34 */ b lbl_80270D8C
+lbl_80270D5C:
+/* 80270D5C 0026DC9C 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 80270D60 0026DCA0 41 82 00 0C */ beq lbl_80270D6C
+/* 80270D64 0026DCA4 38 00 00 01 */ li r0, 1
+/* 80270D68 0026DCA8 48 00 00 28 */ b lbl_80270D90
+lbl_80270D6C:
+/* 80270D6C 0026DCAC 38 00 00 02 */ li r0, 2
+/* 80270D70 0026DCB0 48 00 00 20 */ b lbl_80270D90
+lbl_80270D74:
+/* 80270D74 0026DCB4 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 80270D78 0026DCB8 41 82 00 0C */ beq lbl_80270D84
+/* 80270D7C 0026DCBC 38 00 00 05 */ li r0, 5
+/* 80270D80 0026DCC0 48 00 00 10 */ b lbl_80270D90
+lbl_80270D84:
+/* 80270D84 0026DCC4 38 00 00 03 */ li r0, 3
+/* 80270D88 0026DCC8 48 00 00 08 */ b lbl_80270D90
+lbl_80270D8C:
+/* 80270D8C 0026DCCC 38 00 00 04 */ li r0, 4
+lbl_80270D90:
+/* 80270D90 0026DCD0 2C 00 00 01 */ cmpwi r0, 1
+/* 80270D94 0026DCD4 40 82 00 10 */ bne lbl_80270DA4
+/* 80270D98 0026DCD8 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 80270D9C 0026DCDC C0 43 0A E0 */ lfs f2, lbl_80450AE0@l(r3)
+/* 80270DA0 0026DCE0 48 00 00 08 */ b lbl_80270DA8
+lbl_80270DA4:
+/* 80270DA4 0026DCE4 FC 40 08 90 */ fmr f2, f1
+lbl_80270DA8:
+/* 80270DA8 0026DCE8 C0 21 00 28 */ lfs f1, 0x28(r1)
+/* 80270DAC 0026DCEC 4B FF 68 C9 */ bl cM_atan2s__Fff
+/* 80270DB0 0026DCF0 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80270DB4 0026DCF4 7C 08 03 A6 */ mtlr r0
+/* 80270DB8 0026DCF8 38 21 00 30 */ addi r1, r1, 0x30
+/* 80270DBC 0026DCFC 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_lib/asm/func_80270DC0.s b/include/SComponent/c_lib/asm/func_80270DC0.s
new file mode 100644
index 0000000000..bf0dbc5e23
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_80270DC0.s
@@ -0,0 +1,25 @@
+/* 80270DC0 0026DD00 3C E0 80 44 */ lis r7, lbl_80439A20@ha
+/* 80270DC4 0026DD04 38 E7 9A 20 */ addi r7, r7, lbl_80439A20@l
+/* 80270DC8 0026DD08 54 A0 04 38 */ rlwinm r0, r5, 0, 0x10, 0x1c
+/* 80270DCC 0026DD0C 7C A7 02 14 */ add r5, r7, r0
+/* 80270DD0 0026DD10 C0 A5 00 04 */ lfs f5, 4(r5)
+/* 80270DD4 0026DD14 7C C7 04 2E */ lfsx f6, r7, r0
+/* 80270DD8 0026DD18 C0 44 00 00 */ lfs f2, 0(r4)
+/* 80270DDC 0026DD1C C0 86 00 00 */ lfs f4, 0(r6)
+/* 80270DE0 0026DD20 EC 24 01 72 */ fmuls f1, f4, f5
+/* 80270DE4 0026DD24 C0 66 00 08 */ lfs f3, 8(r6)
+/* 80270DE8 0026DD28 EC 03 01 B2 */ fmuls f0, f3, f6
+/* 80270DEC 0026DD2C EC 01 00 2A */ fadds f0, f1, f0
+/* 80270DF0 0026DD30 EC 02 00 2A */ fadds f0, f2, f0
+/* 80270DF4 0026DD34 D0 03 00 00 */ stfs f0, 0(r3)
+/* 80270DF8 0026DD38 C0 24 00 04 */ lfs f1, 4(r4)
+/* 80270DFC 0026DD3C C0 06 00 04 */ lfs f0, 4(r6)
+/* 80270E00 0026DD40 EC 01 00 2A */ fadds f0, f1, f0
+/* 80270E04 0026DD44 D0 03 00 04 */ stfs f0, 4(r3)
+/* 80270E08 0026DD48 C0 44 00 08 */ lfs f2, 8(r4)
+/* 80270E0C 0026DD4C EC 23 01 72 */ fmuls f1, f3, f5
+/* 80270E10 0026DD50 EC 04 01 B2 */ fmuls f0, f4, f6
+/* 80270E14 0026DD54 EC 01 00 28 */ fsubs f0, f1, f0
+/* 80270E18 0026DD58 EC 02 00 2A */ fadds f0, f2, f0
+/* 80270E1C 0026DD5C D0 03 00 08 */ stfs f0, 8(r3)
+/* 80270E20 0026DD60 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_lib/asm/func_80270E24.s b/include/SComponent/c_lib/asm/func_80270E24.s
new file mode 100644
index 0000000000..9937d1fe9f
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_80270E24.s
@@ -0,0 +1,10 @@
+/* 80270E24 0026DD64 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80270E28 0026DD68 7C 08 02 A6 */ mflr r0
+/* 80270E2C 0026DD6C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80270E30 0026DD70 7C 04 18 50 */ subf r0, r4, r3
+/* 80270E34 0026DD74 7C 03 07 34 */ extsh r3, r0
+/* 80270E38 0026DD78 48 0F 42 99 */ bl func_803650D0
+/* 80270E3C 0026DD7C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80270E40 0026DD80 7C 08 03 A6 */ mtlr r0
+/* 80270E44 0026DD84 38 21 00 10 */ addi r1, r1, 0x10
+/* 80270E48 0026DD88 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_lib/asm/func_80270E4C.s b/include/SComponent/c_lib/asm/func_80270E4C.s
new file mode 100644
index 0000000000..52f4ce3876
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_80270E4C.s
@@ -0,0 +1,4 @@
+/* 80270E4C 0026DD8C 3C 60 80 43 */ lis r3, lbl_80430DB8@ha
+/* 80270E50 0026DD90 38 03 0D B8 */ addi r0, r3, lbl_80430DB8@l
+/* 80270E54 0026DD94 90 0D 81 E8 */ stw r0, lbl_80450768-_SDA_BASE_(r13)
+/* 80270E58 0026DD98 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_lib/asm/func_80270E5C.s b/include/SComponent/c_lib/asm/func_80270E5C.s
new file mode 100644
index 0000000000..f2c58faff2
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_80270E5C.s
@@ -0,0 +1,20 @@
+/* 80270E5C 0026DD9C 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80270E60 0026DDA0 7C 08 02 A6 */ mflr r0
+/* 80270E64 0026DDA4 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80270E68 0026DDA8 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80270E6C 0026DDAC 40 82 00 10 */ bne lbl_80270E7C
+/* 80270E70 0026DDB0 80 6D 81 E8 */ lwz r3, lbl_80450768-_SDA_BASE_(r13)
+/* 80270E74 0026DDB4 48 0D 5A 75 */ bl PSMTXTrans
+/* 80270E78 0026DDB8 48 00 00 1C */ b lbl_80270E94
+lbl_80270E7C:
+/* 80270E7C 0026DDBC 38 61 00 08 */ addi r3, r1, 8
+/* 80270E80 0026DDC0 48 0D 5A 69 */ bl PSMTXTrans
+/* 80270E84 0026DDC4 80 6D 81 E8 */ lwz r3, lbl_80450768-_SDA_BASE_(r13)
+/* 80270E88 0026DDC8 38 81 00 08 */ addi r4, r1, 8
+/* 80270E8C 0026DDCC 7C 65 1B 78 */ mr r5, r3
+/* 80270E90 0026DDD0 48 0D 56 55 */ bl PSMTXConcat
+lbl_80270E94:
+/* 80270E94 0026DDD4 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80270E98 0026DDD8 7C 08 03 A6 */ mtlr r0
+/* 80270E9C 0026DDDC 38 21 00 40 */ addi r1, r1, 0x40
+/* 80270EA0 0026DDE0 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_lib/asm/func_80270EA4.s b/include/SComponent/c_lib/asm/func_80270EA4.s
new file mode 100644
index 0000000000..d749213bef
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_80270EA4.s
@@ -0,0 +1,20 @@
+/* 80270EA4 0026DDE4 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80270EA8 0026DDE8 7C 08 02 A6 */ mflr r0
+/* 80270EAC 0026DDEC 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80270EB0 0026DDF0 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80270EB4 0026DDF4 40 82 00 10 */ bne lbl_80270EC4
+/* 80270EB8 0026DDF8 80 6D 81 E8 */ lwz r3, lbl_80450768-_SDA_BASE_(r13)
+/* 80270EBC 0026DDFC 48 0D 5A AD */ bl PSMTXScale
+/* 80270EC0 0026DE00 48 00 00 1C */ b lbl_80270EDC
+lbl_80270EC4:
+/* 80270EC4 0026DE04 38 61 00 08 */ addi r3, r1, 8
+/* 80270EC8 0026DE08 48 0D 5A A1 */ bl PSMTXScale
+/* 80270ECC 0026DE0C 80 6D 81 E8 */ lwz r3, lbl_80450768-_SDA_BASE_(r13)
+/* 80270ED0 0026DE10 38 81 00 08 */ addi r4, r1, 8
+/* 80270ED4 0026DE14 7C 65 1B 78 */ mr r5, r3
+/* 80270ED8 0026DE18 48 0D 56 0D */ bl PSMTXConcat
+lbl_80270EDC:
+/* 80270EDC 0026DE1C 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80270EE0 0026DE20 7C 08 03 A6 */ mtlr r0
+/* 80270EE4 0026DE24 38 21 00 40 */ addi r1, r1, 0x40
+/* 80270EE8 0026DE28 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_lib/asm/func_80270EEC.s b/include/SComponent/c_lib/asm/func_80270EEC.s
new file mode 100644
index 0000000000..03dcd859d2
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_80270EEC.s
@@ -0,0 +1,12 @@
+/* 80270EEC 0026DE2C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80270EF0 0026DE30 7C 08 02 A6 */ mflr r0
+/* 80270EF4 0026DE34 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80270EF8 0026DE38 7C 60 1B 78 */ mr r0, r3
+/* 80270EFC 0026DE3C 7C 85 23 78 */ mr r5, r4
+/* 80270F00 0026DE40 80 6D 81 E8 */ lwz r3, lbl_80450768-_SDA_BASE_(r13)
+/* 80270F04 0026DE44 7C 04 03 78 */ mr r4, r0
+/* 80270F08 0026DE48 48 0D 5E 65 */ bl PSMTXMultVec
+/* 80270F0C 0026DE4C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80270F10 0026DE50 7C 08 03 A6 */ mtlr r0
+/* 80270F14 0026DE54 38 21 00 10 */ addi r1, r1, 0x10
+/* 80270F18 0026DE58 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_lib/asm/func_80270F1C.s b/include/SComponent/c_lib/asm/func_80270F1C.s
new file mode 100644
index 0000000000..0af320cb5e
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_80270F1C.s
@@ -0,0 +1,15 @@
+/* 80270F1C 0026DE5C 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80270F20 0026DE60 7C 08 02 A6 */ mflr r0
+/* 80270F24 0026DE64 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80270F28 0026DE68 80 6D 81 E8 */ lwz r3, lbl_80450768-_SDA_BASE_(r13)
+/* 80270F2C 0026DE6C 38 81 00 08 */ addi r4, r1, 8
+/* 80270F30 0026DE70 48 0D 55 81 */ bl PSMTXCopy
+/* 80270F34 0026DE74 80 6D 81 E8 */ lwz r3, lbl_80450768-_SDA_BASE_(r13)
+/* 80270F38 0026DE78 38 83 00 30 */ addi r4, r3, 0x30
+/* 80270F3C 0026DE7C 90 8D 81 E8 */ stw r4, lbl_80450768-_SDA_BASE_(r13)
+/* 80270F40 0026DE80 38 61 00 08 */ addi r3, r1, 8
+/* 80270F44 0026DE84 48 0D 55 6D */ bl PSMTXCopy
+/* 80270F48 0026DE88 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80270F4C 0026DE8C 7C 08 03 A6 */ mtlr r0
+/* 80270F50 0026DE90 38 21 00 40 */ addi r1, r1, 0x40
+/* 80270F54 0026DE94 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_lib/asm/func_80270F58.s b/include/SComponent/c_lib/asm/func_80270F58.s
new file mode 100644
index 0000000000..13edeae85d
--- /dev/null
+++ b/include/SComponent/c_lib/asm/func_80270F58.s
@@ -0,0 +1,4 @@
+/* 80270F58 0026DE98 80 6D 81 E8 */ lwz r3, lbl_80450768-_SDA_BASE_(r13)
+/* 80270F5C 0026DE9C 38 03 FF D0 */ addi r0, r3, -48
+/* 80270F60 0026DEA0 90 0D 81 E8 */ stw r0, lbl_80450768-_SDA_BASE_(r13)
+/* 80270F64 0026DEA4 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_m2d.h b/include/SComponent/c_m2d.h
new file mode 100644
index 0000000000..5023a29d7b
--- /dev/null
+++ b/include/SComponent/c_m2d.h
@@ -0,0 +1,10 @@
+#ifndef __C_M2D_H_
+#define __C_M2D_H_
+
+#include "global.h"
+
+struct cM2dGCir;
+
+void cM2d_CrossCirLin(cM2dGCir&, float, float, float, float, float*, float*);
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_m2d/asm/func_80268260.s b/include/SComponent/c_m2d/asm/func_80268260.s
new file mode 100644
index 0000000000..e13d0daa89
--- /dev/null
+++ b/include/SComponent/c_m2d/asm/func_80268260.s
@@ -0,0 +1,218 @@
+/* 80268260 002651A0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80268264 002651A4 C0 03 00 00 */ lfs f0, 0(r3)
+/* 80268268 002651A8 EC E1 00 28 */ fsubs f7, f1, f0
+/* 8026826C 002651AC C0 03 00 04 */ lfs f0, 4(r3)
+/* 80268270 002651B0 ED 02 00 28 */ fsubs f8, f2, f0
+/* 80268274 002651B4 EC C3 00 F2 */ fmuls f6, f3, f3
+/* 80268278 002651B8 EC 04 01 32 */ fmuls f0, f4, f4
+/* 8026827C 002651BC ED 46 00 2A */ fadds f10, f6, f0
+/* 80268280 002651C0 C1 22 B6 F0 */ lfs f9, lbl_804550F0-_SDA2_BASE_(r2)
+/* 80268284 002651C4 EC C3 01 F2 */ fmuls f6, f3, f7
+/* 80268288 002651C8 EC 04 02 32 */ fmuls f0, f4, f8
+/* 8026828C 002651CC EC 06 00 2A */ fadds f0, f6, f0
+/* 80268290 002651D0 EC 09 00 32 */ fmuls f0, f9, f0
+/* 80268294 002651D4 EC E7 01 F2 */ fmuls f7, f7, f7
+/* 80268298 002651D8 EC C8 02 32 */ fmuls f6, f8, f8
+/* 8026829C 002651DC EC E7 30 2A */ fadds f7, f7, f6
+/* 802682A0 002651E0 C0 C3 00 08 */ lfs f6, 8(r3)
+/* 802682A4 002651E4 EC C6 01 B2 */ fmuls f6, f6, f6
+/* 802682A8 002651E8 ED 67 30 28 */ fsubs f11, f7, f6
+/* 802682AC 002651EC FC C0 52 10 */ fabs f6, f10
+/* 802682B0 002651F0 FC C0 30 18 */ frsp f6, f6
+/* 802682B4 002651F4 C1 0D 8C 00 */ lfs f8, lbl_80451180-_SDA_BASE_(r13)
+/* 802682B8 002651F8 FC 06 40 40 */ fcmpo cr0, f6, f8
+/* 802682BC 002651FC 40 80 00 20 */ bge lbl_802682DC
+/* 802682C0 00265200 FC C0 02 10 */ fabs f6, f0
+/* 802682C4 00265204 FC C0 30 18 */ frsp f6, f6
+/* 802682C8 00265208 FC 06 40 40 */ fcmpo cr0, f6, f8
+/* 802682CC 0026520C 41 80 02 54 */ blt lbl_80268520
+/* 802682D0 00265210 FC A0 58 50 */ fneg f5, f11
+/* 802682D4 00265214 EC A5 00 24 */ fdivs f5, f5, f0
+/* 802682D8 00265218 48 00 02 48 */ b lbl_80268520
+lbl_802682DC:
+/* 802682DC 0026521C EC E0 00 32 */ fmuls f7, f0, f0
+/* 802682E0 00265220 C0 C2 B6 F4 */ lfs f6, lbl_804550F4-_SDA2_BASE_(r2)
+/* 802682E4 00265224 EC C6 02 B2 */ fmuls f6, f6, f10
+/* 802682E8 00265228 EC C6 02 F2 */ fmuls f6, f6, f11
+/* 802682EC 0026522C EC C7 30 28 */ fsubs f6, f7, f6
+/* 802682F0 00265230 FC E0 32 10 */ fabs f7, f6
+/* 802682F4 00265234 FC E0 38 18 */ frsp f7, f7
+/* 802682F8 00265238 FC 07 40 40 */ fcmpo cr0, f7, f8
+/* 802682FC 0026523C 40 80 00 14 */ bge lbl_80268310
+/* 80268300 00265240 FC A0 00 50 */ fneg f5, f0
+/* 80268304 00265244 EC 09 02 B2 */ fmuls f0, f9, f10
+/* 80268308 00265248 EC A5 00 24 */ fdivs f5, f5, f0
+/* 8026830C 0026524C 48 00 02 14 */ b lbl_80268520
+lbl_80268310:
+/* 80268310 00265250 C0 E2 B6 F8 */ lfs f7, lbl_804550F8-_SDA2_BASE_(r2)
+/* 80268314 00265254 FC 06 38 40 */ fcmpo cr0, f6, f7
+/* 80268318 00265258 41 80 02 08 */ blt lbl_80268520
+/* 8026831C 0026525C C0 E2 B6 FC */ lfs f7, lbl_804550FC-_SDA2_BASE_(r2)
+/* 80268320 00265260 EC A9 02 B2 */ fmuls f5, f9, f10
+/* 80268324 00265264 EC A7 28 24 */ fdivs f5, f7, f5
+/* 80268328 00265268 40 81 00 58 */ ble lbl_80268380
+/* 8026832C 0026526C FC E0 30 34 */ frsqrte f7, f6
+/* 80268330 00265270 C9 42 B7 00 */ lfd f10, lbl_80455100-_SDA2_BASE_(r2)
+/* 80268334 00265274 FD 0A 01 F2 */ fmul f8, f10, f7
+/* 80268338 00265278 C9 22 B7 08 */ lfd f9, lbl_80455108-_SDA2_BASE_(r2)
+/* 8026833C 0026527C FC E7 01 F2 */ fmul f7, f7, f7
+/* 80268340 00265280 FC E6 01 F2 */ fmul f7, f6, f7
+/* 80268344 00265284 FC E9 38 28 */ fsub f7, f9, f7
+/* 80268348 00265288 FC E8 01 F2 */ fmul f7, f8, f7
+/* 8026834C 0026528C FD 0A 01 F2 */ fmul f8, f10, f7
+/* 80268350 00265290 FC E7 01 F2 */ fmul f7, f7, f7
+/* 80268354 00265294 FC E6 01 F2 */ fmul f7, f6, f7
+/* 80268358 00265298 FC E9 38 28 */ fsub f7, f9, f7
+/* 8026835C 0026529C FC E8 01 F2 */ fmul f7, f8, f7
+/* 80268360 002652A0 FD 0A 01 F2 */ fmul f8, f10, f7
+/* 80268364 002652A4 FC E7 01 F2 */ fmul f7, f7, f7
+/* 80268368 002652A8 FC E6 01 F2 */ fmul f7, f6, f7
+/* 8026836C 002652AC FC E9 38 28 */ fsub f7, f9, f7
+/* 80268370 002652B0 FC E8 01 F2 */ fmul f7, f8, f7
+/* 80268374 002652B4 FC E6 01 F2 */ fmul f7, f6, f7
+/* 80268378 002652B8 FC E0 38 18 */ frsp f7, f7
+/* 8026837C 002652BC 48 00 00 90 */ b lbl_8026840C
+lbl_80268380:
+/* 80268380 002652C0 C8 E2 B7 10 */ lfd f7, lbl_80455110-_SDA2_BASE_(r2)
+/* 80268384 002652C4 FC 06 38 40 */ fcmpo cr0, f6, f7
+/* 80268388 002652C8 40 80 00 10 */ bge lbl_80268398
+/* 8026838C 002652CC 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 80268390 002652D0 C0 E3 0A E0 */ lfs f7, lbl_80450AE0@l(r3)
+/* 80268394 002652D4 48 00 00 78 */ b lbl_8026840C
+lbl_80268398:
+/* 80268398 002652D8 D0 C1 00 0C */ stfs f6, 0xc(r1)
+/* 8026839C 002652DC 80 C1 00 0C */ lwz r6, 0xc(r1)
+/* 802683A0 002652E0 54 C3 00 50 */ rlwinm r3, r6, 0, 1, 8
+/* 802683A4 002652E4 3C 00 7F 80 */ lis r0, 0x7f80
+/* 802683A8 002652E8 7C 03 00 00 */ cmpw r3, r0
+/* 802683AC 002652EC 41 82 00 14 */ beq lbl_802683C0
+/* 802683B0 002652F0 40 80 00 40 */ bge lbl_802683F0
+/* 802683B4 002652F4 2C 03 00 00 */ cmpwi r3, 0
+/* 802683B8 002652F8 41 82 00 20 */ beq lbl_802683D8
+/* 802683BC 002652FC 48 00 00 34 */ b lbl_802683F0
+lbl_802683C0:
+/* 802683C0 00265300 54 C0 02 7F */ clrlwi. r0, r6, 9
+/* 802683C4 00265304 41 82 00 0C */ beq lbl_802683D0
+/* 802683C8 00265308 38 00 00 01 */ li r0, 1
+/* 802683CC 0026530C 48 00 00 28 */ b lbl_802683F4
+lbl_802683D0:
+/* 802683D0 00265310 38 00 00 02 */ li r0, 2
+/* 802683D4 00265314 48 00 00 20 */ b lbl_802683F4
+lbl_802683D8:
+/* 802683D8 00265318 54 C0 02 7F */ clrlwi. r0, r6, 9
+/* 802683DC 0026531C 41 82 00 0C */ beq lbl_802683E8
+/* 802683E0 00265320 38 00 00 05 */ li r0, 5
+/* 802683E4 00265324 48 00 00 10 */ b lbl_802683F4
+lbl_802683E8:
+/* 802683E8 00265328 38 00 00 03 */ li r0, 3
+/* 802683EC 0026532C 48 00 00 08 */ b lbl_802683F4
+lbl_802683F0:
+/* 802683F0 00265330 38 00 00 04 */ li r0, 4
+lbl_802683F4:
+/* 802683F4 00265334 2C 00 00 01 */ cmpwi r0, 1
+/* 802683F8 00265338 40 82 00 10 */ bne lbl_80268408
+/* 802683FC 0026533C 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 80268400 00265340 C0 E3 0A E0 */ lfs f7, lbl_80450AE0@l(r3)
+/* 80268404 00265344 48 00 00 08 */ b lbl_8026840C
+lbl_80268408:
+/* 80268408 00265348 FC E0 30 90 */ fmr f7, f6
+lbl_8026840C:
+/* 8026840C 0026534C FD 40 00 50 */ fneg f10, f0
+/* 80268410 00265350 EC 0A 38 2A */ fadds f0, f10, f7
+/* 80268414 00265354 ED 65 00 32 */ fmuls f11, f5, f0
+/* 80268418 00265358 C0 02 B6 F8 */ lfs f0, lbl_804550F8-_SDA2_BASE_(r2)
+/* 8026841C 0026535C FC 06 00 40 */ fcmpo cr0, f6, f0
+/* 80268420 00265360 40 81 00 58 */ ble lbl_80268478
+/* 80268424 00265364 FC 00 30 34 */ frsqrte f0, f6
+/* 80268428 00265368 C9 22 B7 00 */ lfd f9, lbl_80455100-_SDA2_BASE_(r2)
+/* 8026842C 0026536C FC E9 00 32 */ fmul f7, f9, f0
+/* 80268430 00265370 C9 02 B7 08 */ lfd f8, lbl_80455108-_SDA2_BASE_(r2)
+/* 80268434 00265374 FC 00 00 32 */ fmul f0, f0, f0
+/* 80268438 00265378 FC 06 00 32 */ fmul f0, f6, f0
+/* 8026843C 0026537C FC 08 00 28 */ fsub f0, f8, f0
+/* 80268440 00265380 FC 07 00 32 */ fmul f0, f7, f0
+/* 80268444 00265384 FC E9 00 32 */ fmul f7, f9, f0
+/* 80268448 00265388 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026844C 0026538C FC 06 00 32 */ fmul f0, f6, f0
+/* 80268450 00265390 FC 08 00 28 */ fsub f0, f8, f0
+/* 80268454 00265394 FC 07 00 32 */ fmul f0, f7, f0
+/* 80268458 00265398 FC E9 00 32 */ fmul f7, f9, f0
+/* 8026845C 0026539C FC 00 00 32 */ fmul f0, f0, f0
+/* 80268460 002653A0 FC 06 00 32 */ fmul f0, f6, f0
+/* 80268464 002653A4 FC 08 00 28 */ fsub f0, f8, f0
+/* 80268468 002653A8 FC 07 00 32 */ fmul f0, f7, f0
+/* 8026846C 002653AC FC 06 00 32 */ fmul f0, f6, f0
+/* 80268470 002653B0 FC 00 00 18 */ frsp f0, f0
+/* 80268474 002653B4 48 00 00 90 */ b lbl_80268504
+lbl_80268478:
+/* 80268478 002653B8 C8 02 B7 10 */ lfd f0, lbl_80455110-_SDA2_BASE_(r2)
+/* 8026847C 002653BC FC 06 00 40 */ fcmpo cr0, f6, f0
+/* 80268480 002653C0 40 80 00 10 */ bge lbl_80268490
+/* 80268484 002653C4 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 80268488 002653C8 C0 03 0A E0 */ lfs f0, lbl_80450AE0@l(r3)
+/* 8026848C 002653CC 48 00 00 78 */ b lbl_80268504
+lbl_80268490:
+/* 80268490 002653D0 D0 C1 00 08 */ stfs f6, 8(r1)
+/* 80268494 002653D4 80 C1 00 08 */ lwz r6, 8(r1)
+/* 80268498 002653D8 54 C3 00 50 */ rlwinm r3, r6, 0, 1, 8
+/* 8026849C 002653DC 3C 00 7F 80 */ lis r0, 0x7f80
+/* 802684A0 002653E0 7C 03 00 00 */ cmpw r3, r0
+/* 802684A4 002653E4 41 82 00 14 */ beq lbl_802684B8
+/* 802684A8 002653E8 40 80 00 40 */ bge lbl_802684E8
+/* 802684AC 002653EC 2C 03 00 00 */ cmpwi r3, 0
+/* 802684B0 002653F0 41 82 00 20 */ beq lbl_802684D0
+/* 802684B4 002653F4 48 00 00 34 */ b lbl_802684E8
+lbl_802684B8:
+/* 802684B8 002653F8 54 C0 02 7F */ clrlwi. r0, r6, 9
+/* 802684BC 002653FC 41 82 00 0C */ beq lbl_802684C8
+/* 802684C0 00265400 38 00 00 01 */ li r0, 1
+/* 802684C4 00265404 48 00 00 28 */ b lbl_802684EC
+lbl_802684C8:
+/* 802684C8 00265408 38 00 00 02 */ li r0, 2
+/* 802684CC 0026540C 48 00 00 20 */ b lbl_802684EC
+lbl_802684D0:
+/* 802684D0 00265410 54 C0 02 7F */ clrlwi. r0, r6, 9
+/* 802684D4 00265414 41 82 00 0C */ beq lbl_802684E0
+/* 802684D8 00265418 38 00 00 05 */ li r0, 5
+/* 802684DC 0026541C 48 00 00 10 */ b lbl_802684EC
+lbl_802684E0:
+/* 802684E0 00265420 38 00 00 03 */ li r0, 3
+/* 802684E4 00265424 48 00 00 08 */ b lbl_802684EC
+lbl_802684E8:
+/* 802684E8 00265428 38 00 00 04 */ li r0, 4
+lbl_802684EC:
+/* 802684EC 0026542C 2C 00 00 01 */ cmpwi r0, 1
+/* 802684F0 00265430 40 82 00 10 */ bne lbl_80268500
+/* 802684F4 00265434 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 802684F8 00265438 C0 03 0A E0 */ lfs f0, lbl_80450AE0@l(r3)
+/* 802684FC 0026543C 48 00 00 08 */ b lbl_80268504
+lbl_80268500:
+/* 80268500 00265440 FC 00 30 90 */ fmr f0, f6
+lbl_80268504:
+/* 80268504 00265444 EC 0A 00 28 */ fsubs f0, f10, f0
+/* 80268508 00265448 EC 05 00 32 */ fmuls f0, f5, f0
+/* 8026850C 0026544C FC 0B 00 40 */ fcmpo cr0, f11, f0
+/* 80268510 00265450 40 81 00 0C */ ble lbl_8026851C
+/* 80268514 00265454 FC A0 58 90 */ fmr f5, f11
+/* 80268518 00265458 48 00 00 08 */ b lbl_80268520
+lbl_8026851C:
+/* 8026851C 0026545C FC A0 00 90 */ fmr f5, f0
+lbl_80268520:
+/* 80268520 00265460 FC 00 2A 10 */ fabs f0, f5
+/* 80268524 00265464 FC C0 00 18 */ frsp f6, f0
+/* 80268528 00265468 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026852C 0026546C FC 06 00 40 */ fcmpo cr0, f6, f0
+/* 80268530 00265470 40 80 00 10 */ bge lbl_80268540
+/* 80268534 00265474 D0 24 00 00 */ stfs f1, 0(r4)
+/* 80268538 00265478 D0 45 00 00 */ stfs f2, 0(r5)
+/* 8026853C 0026547C 48 00 00 1C */ b lbl_80268558
+lbl_80268540:
+/* 80268540 00265480 EC 05 00 F2 */ fmuls f0, f5, f3
+/* 80268544 00265484 EC 01 00 2A */ fadds f0, f1, f0
+/* 80268548 00265488 D0 04 00 00 */ stfs f0, 0(r4)
+/* 8026854C 0026548C EC 05 01 32 */ fmuls f0, f5, f4
+/* 80268550 00265490 EC 02 00 2A */ fadds f0, f2, f0
+/* 80268554 00265494 D0 05 00 00 */ stfs f0, 0(r5)
+lbl_80268558:
+/* 80268558 00265498 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026855C 0026549C 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_m3d.h b/include/SComponent/c_m3d.h
new file mode 100644
index 0000000000..a9ab86909a
--- /dev/null
+++ b/include/SComponent/c_m3d.h
@@ -0,0 +1,82 @@
+#ifndef __C_M3D_H_
+#define __C_M3D_H_
+
+#include "SComponent/c_m3d_g_aab.h"
+#include "SComponent/c_m3d_g_cps.h"
+#include "SComponent/c_m3d_g_cyl.h"
+#include "SComponent/c_m3d_g_lin.h"
+#include "SComponent/c_m3d_g_pla.h"
+#include "SComponent/c_m3d_g_tri.h"
+#include "SComponent/c_sxyz.h"
+#include "SComponent/c_xyz.h"
+#include "global.h"
+
+struct cM3d_Range;
+
+void cM3d_InDivPos1(const Vec*, const Vec*, float, Vec*);
+void cM3d_InDivPos2(const Vec*, const Vec*, float, Vec*);
+float cM3d_Len2dSq(float, float, float, float);
+bool cM3d_Len2dSqPntAndSegLine(float, float, float, float, float, float, float*, float*, float*);
+bool cM3d_Len3dSqPntAndSegLine(const cM3dGLin*, const Vec*, Vec*, float*);
+float cM3d_SignedLenPlaAndPos(const cM3dGPla*, const Vec*);
+float cM3d_VectorProduct2d(float, float, float, float, float, float);
+void cM3d_VectorProduct(const cXyz*, const cXyz*, const cXyz*, cXyz*);
+void cM3d_CalcPla(const Vec*, const Vec*, const Vec*, Vec*, float*);
+bool cM3d_Cross_AabAab(const cM3dGAab*, const cM3dGAab*);
+bool cM3d_Cross_AabCyl(const cM3dGAab*, const cM3dGCyl*);
+bool cM3d_Cross_AabSph(const cM3dGAab*, const cM3dGSph*);
+int cM3d_Check_LinLin(const cM3dGLin*, const cM3dGLin*, float*, float*);
+bool cM3d_CrossInfLineVsInfPlane_proc(float, float, const Vec*, const Vec*, Vec*);
+bool cM3d_Cross_LinPla(const cM3dGLin*, const cM3dGPla*, Vec*, bool, bool);
+bool cM3d_Cross_MinMaxBoxLine(const Vec*, const Vec*, const Vec*, const Vec*);
+bool cM3d_InclusionCheckPosIn3PosBox3d(const Vec*, const Vec*, const Vec*, const Vec*, float);
+bool cM3d_InclusionCheckPosIn3PosBox2d(float, float, float, float, float, float, float, float,
+ float);
+bool cM3d_CrossX_Tri(const cM3dGTri*, const Vec*, float);
+bool cM3d_CrossX_Tri(const cM3dGTri*, const Vec*);
+bool cM3d_CrossX_LinTri_proc(const cM3dGTri*, const Vec*);
+bool cM3d_CrossY_Tri(const cM3dGTri*, const Vec*);
+bool cM3d_CrossY_LinTri_proc(const cM3dGTri*, const Vec*);
+bool cM3d_CrossY_Tri(const Vec&, const Vec&, const Vec&, const cM3dGPla&, const Vec*);
+bool cM3d_CrossY_Tri_Front(const Vec&, const Vec&, const Vec&, const Vec*);
+bool cM3d_CrossY_Tri(const cM3dGTri*, const Vec*, float*);
+bool cM3d_CrossY_Tri(const cM3dGTri*, const Vec*, float);
+bool cM3d_CrossY_Tri(const cM3dGTri*, const Vec*, const cM3d_Range*, float*);
+bool cM3d_CrossZ_Tri(const cM3dGTri*, const Vec*, float);
+bool cM3d_CrossZ_Tri(const cM3dGTri*, const Vec*);
+bool cM3d_CrossZ_LinTri_proc(const cM3dGTri*, const Vec*);
+bool cM3d_Cross_LinTri(const cM3dGLin*, const cM3dGTri*, Vec*, bool, bool);
+bool cM3d_Cross_LinTri_Easy(const cM3dGTri*, const Vec*);
+bool cM3d_Cross_SphPnt(const cM3dGSph*, const Vec*);
+bool cM3d_Cross_LinSph(const cM3dGLin*, const cM3dGSph*, Vec*);
+int cM3d_Cross_LinSph_CrossPos(const cM3dGSph&, const cM3dGLin&, Vec*, Vec*);
+bool cM3d_Cross_CylSph(const cM3dGCyl*, const cM3dGSph*, float*);
+bool cM3d_Cross_CylSph(const cM3dGCyl*, const cM3dGSph*, Vec*, float*);
+bool cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, float*);
+bool cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, float*, float*);
+void cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, Vec*);
+void cM3d_CalcSphVsTriCrossPoint(const cM3dGSph*, const cM3dGTri*, Vec*);
+bool cM3d_Cross_SphTri(const cM3dGSph*, const cM3dGTri*, Vec*);
+bool cM3d_Cross_CylCyl(const cM3dGCyl*, const cM3dGCyl*, float*);
+bool cM3d_Cross_CylCyl(const cM3dGCyl*, const cM3dGCyl*, Vec*);
+bool cM3d_Cross_CylTri(const cM3dGCyl*, const cM3dGTri*, Vec*);
+int cM3d_Cross_CylLin(const cM3dGCyl*, const cM3dGLin*, Vec*, Vec*);
+int cM3d_Cross_CylPntPnt(const cM3dGCyl*, const Vec*, const Vec*, Vec*, Vec*);
+bool cM3d_Cross_CylPnt(const cM3dGCyl*, const Vec*);
+bool cM3d_Cross_CpsCps(const cM3dGCps&, const cM3dGCps&, Vec*);
+bool cM3d_Cross_CpsCyl(const cM3dGCps&, const cM3dGCyl&, Vec*);
+bool cM3d_Cross_CpsSph_CrossPos(const cM3dGCps&, const cM3dGSph&, const Vec&, Vec*);
+bool cM3d_Cross_CpsSph(const cM3dGCps&, const cM3dGSph&, Vec*);
+bool cM3d_Cross_TriTri(const cM3dGTri&, const cM3dGTri&, Vec*);
+bool cM3d_Cross_CpsTri(const cM3dGCps&, cM3dGTri, Vec*);
+void cM3d_CalcVecAngle(const Vec&, short*, short*);
+void cM3d_CalcVecZAngle(const Vec&, csXyz*);
+void cM3d_PlaneCrossLineProcWork(float, float, float, float, float, float, float, float*, float*);
+int cM3d_2PlaneCrossLine(const cM3dGPla&, const cM3dGPla&, cM3dGLin*);
+bool cM3d_3PlaneCrossPos(const cM3dGPla&, const cM3dGPla&, const cM3dGPla&, Vec*);
+float cM3d_lineVsPosSuisenCross(const cM3dGLin*, const Vec*, Vec*);
+float cM3d_lineVsPosSuisenCross(const Vec&, const Vec&, const Vec&, Vec*);
+int cM3d_2PlaneLinePosNearPos(const cM3dGPla&, const cM3dGPla&, const Vec*, Vec*);
+void cM3d_CrawVec(const Vec&, const Vec&, Vec*);
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_m3d/asm/func_80268560.s b/include/SComponent/c_m3d/asm/func_80268560.s
new file mode 100644
index 0000000000..3704d6ea87
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_80268560.s
@@ -0,0 +1,20 @@
+/* 80268560 002654A0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80268564 002654A4 7C 08 02 A6 */ mflr r0
+/* 80268568 002654A8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026856C 002654AC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80268570 002654B0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80268574 002654B4 7C 7E 1B 78 */ mr r30, r3
+/* 80268578 002654B8 7C BF 2B 78 */ mr r31, r5
+/* 8026857C 002654BC 7C 83 23 78 */ mr r3, r4
+/* 80268580 002654C0 38 81 00 08 */ addi r4, r1, 8
+/* 80268584 002654C4 48 0D EB 55 */ bl PSVECScale
+/* 80268588 002654C8 38 61 00 08 */ addi r3, r1, 8
+/* 8026858C 002654CC 7F C4 F3 78 */ mr r4, r30
+/* 80268590 002654D0 7F E5 FB 78 */ mr r5, r31
+/* 80268594 002654D4 48 0D EA FD */ bl PSVECAdd
+/* 80268598 002654D8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026859C 002654DC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802685A0 002654E0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802685A4 002654E4 7C 08 03 A6 */ mtlr r0
+/* 802685A8 002654E8 38 21 00 20 */ addi r1, r1, 0x20
+/* 802685AC 002654EC 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_802685B0.s b/include/SComponent/c_m3d/asm/func_802685B0.s
new file mode 100644
index 0000000000..da2081ce8a
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_802685B0.s
@@ -0,0 +1,25 @@
+/* 802685B0 002654F0 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802685B4 002654F4 7C 08 02 A6 */ mflr r0
+/* 802685B8 002654F8 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802685BC 002654FC DB E1 00 28 */ stfd f31, 0x28(r1)
+/* 802685C0 00265500 93 E1 00 24 */ stw r31, 0x24(r1)
+/* 802685C4 00265504 93 C1 00 20 */ stw r30, 0x20(r1)
+/* 802685C8 00265508 7C 7E 1B 78 */ mr r30, r3
+/* 802685CC 0026550C FF E0 08 90 */ fmr f31, f1
+/* 802685D0 00265510 7C BF 2B 78 */ mr r31, r5
+/* 802685D4 00265514 7C 83 23 78 */ mr r3, r4
+/* 802685D8 00265518 7F C4 F3 78 */ mr r4, r30
+/* 802685DC 0026551C 38 A1 00 08 */ addi r5, r1, 8
+/* 802685E0 00265520 48 0D EA D5 */ bl PSVECSubtract
+/* 802685E4 00265524 7F C3 F3 78 */ mr r3, r30
+/* 802685E8 00265528 38 81 00 08 */ addi r4, r1, 8
+/* 802685EC 0026552C FC 20 F8 90 */ fmr f1, f31
+/* 802685F0 00265530 7F E5 FB 78 */ mr r5, r31
+/* 802685F4 00265534 4B FF FF 6D */ bl cM3d_InDivPos1__FPC3VecPC3VecfP3Vec
+/* 802685F8 00265538 CB E1 00 28 */ lfd f31, 0x28(r1)
+/* 802685FC 0026553C 83 E1 00 24 */ lwz r31, 0x24(r1)
+/* 80268600 00265540 83 C1 00 20 */ lwz r30, 0x20(r1)
+/* 80268604 00265544 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80268608 00265548 7C 08 03 A6 */ mtlr r0
+/* 8026860C 0026554C 38 21 00 30 */ addi r1, r1, 0x30
+/* 80268610 00265550 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_80268614.s b/include/SComponent/c_m3d/asm/func_80268614.s
new file mode 100644
index 0000000000..bfa914c4f8
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_80268614.s
@@ -0,0 +1,6 @@
+/* 80268614 00265554 EC 01 18 28 */ fsubs f0, f1, f3
+/* 80268618 00265558 EC 42 20 28 */ fsubs f2, f2, f4
+/* 8026861C 0026555C EC 20 00 32 */ fmuls f1, f0, f0
+/* 80268620 00265560 EC 02 00 B2 */ fmuls f0, f2, f2
+/* 80268624 00265564 EC 21 00 2A */ fadds f1, f1, f0
+/* 80268628 00265568 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026862C.s b/include/SComponent/c_m3d/asm/func_8026862C.s
new file mode 100644
index 0000000000..b6281b66d3
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026862C.s
@@ -0,0 +1,60 @@
+/* 8026862C 0026556C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80268630 00265570 7C 08 02 A6 */ mflr r0
+/* 80268634 00265574 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80268638 00265578 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8026863C 0026557C 93 C1 00 08 */ stw r30, 8(r1)
+/* 80268640 00265580 FD 00 08 90 */ fmr f8, f1
+/* 80268644 00265584 FC E0 10 90 */ fmr f7, f2
+/* 80268648 00265588 7C BE 2B 78 */ mr r30, r5
+/* 8026864C 0026558C 3B E0 00 00 */ li r31, 0
+/* 80268650 00265590 EC 45 18 28 */ fsubs f2, f5, f3
+/* 80268654 00265594 EC A6 20 28 */ fsubs f5, f6, f4
+/* 80268658 00265598 EC 22 00 B2 */ fmuls f1, f2, f2
+/* 8026865C 0026559C EC 05 01 72 */ fmuls f0, f5, f5
+/* 80268660 002655A0 EC C1 00 2A */ fadds f6, f1, f0
+/* 80268664 002655A4 FC 00 32 10 */ fabs f0, f6
+/* 80268668 002655A8 FC 20 00 18 */ frsp f1, f0
+/* 8026866C 002655AC C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 80268670 002655B0 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80268674 002655B4 40 80 00 14 */ bge lbl_80268688
+/* 80268678 002655B8 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026867C 002655BC D0 1E 00 00 */ stfs f0, 0(r30)
+/* 80268680 002655C0 38 60 00 00 */ li r3, 0
+/* 80268684 002655C4 48 00 00 74 */ b lbl_802686F8
+lbl_80268688:
+/* 80268688 002655C8 EC 08 18 28 */ fsubs f0, f8, f3
+/* 8026868C 002655CC EC 22 00 32 */ fmuls f1, f2, f0
+/* 80268690 002655D0 EC 07 20 28 */ fsubs f0, f7, f4
+/* 80268694 002655D4 EC 05 00 32 */ fmuls f0, f5, f0
+/* 80268698 002655D8 EC 01 00 2A */ fadds f0, f1, f0
+/* 8026869C 002655DC EC 20 30 24 */ fdivs f1, f0, f6
+/* 802686A0 002655E0 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 802686A4 002655E4 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802686A8 002655E8 4C 41 13 82 */ cror 2, 1, 2
+/* 802686AC 002655EC 40 82 00 18 */ bne lbl_802686C4
+/* 802686B0 002655F0 C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 802686B4 002655F4 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802686B8 002655F8 4C 40 13 82 */ cror 2, 0, 2
+/* 802686BC 002655FC 40 82 00 08 */ bne lbl_802686C4
+/* 802686C0 00265600 3B E0 00 01 */ li r31, 1
+lbl_802686C4:
+/* 802686C4 00265604 EC 02 00 72 */ fmuls f0, f2, f1
+/* 802686C8 00265608 EC 03 00 2A */ fadds f0, f3, f0
+/* 802686CC 0026560C D0 03 00 00 */ stfs f0, 0(r3)
+/* 802686D0 00265610 EC 05 00 72 */ fmuls f0, f5, f1
+/* 802686D4 00265614 EC 04 00 2A */ fadds f0, f4, f0
+/* 802686D8 00265618 D0 04 00 00 */ stfs f0, 0(r4)
+/* 802686DC 0026561C C0 23 00 00 */ lfs f1, 0(r3)
+/* 802686E0 00265620 C0 44 00 00 */ lfs f2, 0(r4)
+/* 802686E4 00265624 FC 60 40 90 */ fmr f3, f8
+/* 802686E8 00265628 FC 80 38 90 */ fmr f4, f7
+/* 802686EC 0026562C 4B FF FF 29 */ bl cM3d_Len2dSq__Fffff
+/* 802686F0 00265630 D0 3E 00 00 */ stfs f1, 0(r30)
+/* 802686F4 00265634 7F E3 FB 78 */ mr r3, r31
+lbl_802686F8:
+/* 802686F8 00265638 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802686FC 0026563C 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80268700 00265640 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80268704 00265644 7C 08 03 A6 */ mtlr r0
+/* 80268708 00265648 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026870C 0026564C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_80268710.s b/include/SComponent/c_m3d/asm/func_80268710.s
new file mode 100644
index 0000000000..61cc804c41
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_80268710.s
@@ -0,0 +1,70 @@
+/* 80268710 00265650 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 80268714 00265654 7C 08 02 A6 */ mflr r0
+/* 80268718 00265658 90 01 00 54 */ stw r0, 0x54(r1)
+/* 8026871C 0026565C DB E1 00 40 */ stfd f31, 0x40(r1)
+/* 80268720 00265660 F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0
+/* 80268724 00265664 39 61 00 40 */ addi r11, r1, 0x40
+/* 80268728 00265668 48 0F 9A AD */ bl _savegpr_27
+/* 8026872C 0026566C 7C 7B 1B 78 */ mr r27, r3
+/* 80268730 00265670 7C 9C 23 78 */ mr r28, r4
+/* 80268734 00265674 7C BD 2B 78 */ mr r29, r5
+/* 80268738 00265678 7C DE 33 78 */ mr r30, r6
+/* 8026873C 0026567C 38 7B 00 0C */ addi r3, r27, 0xc
+/* 80268740 00265680 7F 64 DB 78 */ mr r4, r27
+/* 80268744 00265684 38 A1 00 14 */ addi r5, r1, 0x14
+/* 80268748 00265688 48 0D E9 6D */ bl PSVECSubtract
+/* 8026874C 0026568C 38 61 00 14 */ addi r3, r1, 0x14
+/* 80268750 00265690 7C 64 1B 78 */ mr r4, r3
+/* 80268754 00265694 48 0D EA 41 */ bl PSVECDotProduct
+/* 80268758 00265698 FF E0 08 90 */ fmr f31, f1
+/* 8026875C 0026569C FC 00 FA 10 */ fabs f0, f31
+/* 80268760 002656A0 FC 20 00 18 */ frsp f1, f0
+/* 80268764 002656A4 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 80268768 002656A8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026876C 002656AC 40 80 00 14 */ bge lbl_80268780
+/* 80268770 002656B0 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 80268774 002656B4 D0 1E 00 00 */ stfs f0, 0(r30)
+/* 80268778 002656B8 38 60 00 00 */ li r3, 0
+/* 8026877C 002656BC 48 00 00 78 */ b lbl_802687F4
+lbl_80268780:
+/* 80268780 002656C0 7F 83 E3 78 */ mr r3, r28
+/* 80268784 002656C4 7F 64 DB 78 */ mr r4, r27
+/* 80268788 002656C8 38 A1 00 08 */ addi r5, r1, 8
+/* 8026878C 002656CC 48 0D E9 29 */ bl PSVECSubtract
+/* 80268790 002656D0 38 61 00 08 */ addi r3, r1, 8
+/* 80268794 002656D4 38 81 00 14 */ addi r4, r1, 0x14
+/* 80268798 002656D8 48 0D E9 FD */ bl PSVECDotProduct
+/* 8026879C 002656DC EC 21 F8 24 */ fdivs f1, f1, f31
+/* 802687A0 002656E0 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 802687A4 002656E4 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802687A8 002656E8 41 80 00 10 */ blt lbl_802687B8
+/* 802687AC 002656EC C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 802687B0 002656F0 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802687B4 002656F4 40 81 00 0C */ ble lbl_802687C0
+lbl_802687B8:
+/* 802687B8 002656F8 3B E0 00 00 */ li r31, 0
+/* 802687BC 002656FC 48 00 00 08 */ b lbl_802687C4
+lbl_802687C0:
+/* 802687C0 00265700 3B E0 00 01 */ li r31, 1
+lbl_802687C4:
+/* 802687C4 00265704 38 61 00 14 */ addi r3, r1, 0x14
+/* 802687C8 00265708 7C 64 1B 78 */ mr r4, r3
+/* 802687CC 0026570C 48 0D E9 0D */ bl PSVECScale
+/* 802687D0 00265710 38 61 00 14 */ addi r3, r1, 0x14
+/* 802687D4 00265714 7F 64 DB 78 */ mr r4, r27
+/* 802687D8 00265718 7F A5 EB 78 */ mr r5, r29
+/* 802687DC 0026571C 48 0D E8 B5 */ bl PSVECAdd
+/* 802687E0 00265720 7F A3 EB 78 */ mr r3, r29
+/* 802687E4 00265724 7F 84 E3 78 */ mr r4, r28
+/* 802687E8 00265728 48 0D EB B5 */ bl PSVECSquareDistance
+/* 802687EC 0026572C D0 3E 00 00 */ stfs f1, 0(r30)
+/* 802687F0 00265730 7F E3 FB 78 */ mr r3, r31
+lbl_802687F4:
+/* 802687F4 00265734 E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0
+/* 802687F8 00265738 CB E1 00 40 */ lfd f31, 0x40(r1)
+/* 802687FC 0026573C 39 61 00 40 */ addi r11, r1, 0x40
+/* 80268800 00265740 48 0F 9A 21 */ bl _restgpr_27
+/* 80268804 00265744 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 80268808 00265748 7C 08 03 A6 */ mtlr r0
+/* 8026880C 0026574C 38 21 00 50 */ addi r1, r1, 0x50
+/* 80268810 00265750 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_80268814.s b/include/SComponent/c_m3d/asm/func_80268814.s
new file mode 100644
index 0000000000..143baa8b8a
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_80268814.s
@@ -0,0 +1,34 @@
+/* 80268814 00265754 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80268818 00265758 7C 08 02 A6 */ mflr r0
+/* 8026881C 0026575C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80268820 00265760 DB E1 00 10 */ stfd f31, 0x10(r1)
+/* 80268824 00265764 F3 E1 00 18 */ psq_st f31, 24(r1), 0, 0
+/* 80268828 00265768 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8026882C 0026576C 93 C1 00 08 */ stw r30, 8(r1)
+/* 80268830 00265770 7C 7E 1B 78 */ mr r30, r3
+/* 80268834 00265774 7C 9F 23 78 */ mr r31, r4
+/* 80268838 00265778 48 0D E9 19 */ bl PSVECMag
+/* 8026883C 0026577C FF E0 08 90 */ fmr f31, f1
+/* 80268840 00265780 FC 00 FA 10 */ fabs f0, f31
+/* 80268844 00265784 FC 20 00 18 */ frsp f1, f0
+/* 80268848 00265788 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026884C 0026578C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80268850 00265790 40 80 00 0C */ bge lbl_8026885C
+/* 80268854 00265794 C0 22 B7 18 */ lfs f1, lbl_80455118-_SDA2_BASE_(r2)
+/* 80268858 00265798 48 00 00 1C */ b lbl_80268874
+lbl_8026885C:
+/* 8026885C 0026579C 7F C3 F3 78 */ mr r3, r30
+/* 80268860 002657A0 7F E4 FB 78 */ mr r4, r31
+/* 80268864 002657A4 48 0D E9 31 */ bl PSVECDotProduct
+/* 80268868 002657A8 C0 1E 00 0C */ lfs f0, 0xc(r30)
+/* 8026886C 002657AC EC 00 08 2A */ fadds f0, f0, f1
+/* 80268870 002657B0 EC 20 F8 24 */ fdivs f1, f0, f31
+lbl_80268874:
+/* 80268874 002657B4 E3 E1 00 18 */ psq_l f31, 24(r1), 0, 0
+/* 80268878 002657B8 CB E1 00 10 */ lfd f31, 0x10(r1)
+/* 8026887C 002657BC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80268880 002657C0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80268884 002657C4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80268888 002657C8 7C 08 03 A6 */ mtlr r0
+/* 8026888C 002657CC 38 21 00 20 */ addi r1, r1, 0x20
+/* 80268890 002657D0 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_80268894.s b/include/SComponent/c_m3d/asm/func_80268894.s
new file mode 100644
index 0000000000..571a81b3d9
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_80268894.s
@@ -0,0 +1,8 @@
+/* 80268894 002657D4 EC 63 08 28 */ fsubs f3, f3, f1
+/* 80268898 002657D8 EC 06 10 28 */ fsubs f0, f6, f2
+/* 8026889C 002657DC EC 63 00 32 */ fmuls f3, f3, f0
+/* 802688A0 002657E0 EC 44 10 28 */ fsubs f2, f4, f2
+/* 802688A4 002657E4 EC 05 08 28 */ fsubs f0, f5, f1
+/* 802688A8 002657E8 EC 02 00 32 */ fmuls f0, f2, f0
+/* 802688AC 002657EC EC 23 00 28 */ fsubs f1, f3, f0
+/* 802688B0 002657F0 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_m3d/asm/func_802688B4.s b/include/SComponent/c_m3d/asm/func_802688B4.s
new file mode 100644
index 0000000000..8d619ef553
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_802688B4.s
@@ -0,0 +1,26 @@
+/* 802688B4 002657F4 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802688B8 002657F8 7C 08 02 A6 */ mflr r0
+/* 802688BC 002657FC 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802688C0 00265800 39 61 00 30 */ addi r11, r1, 0x30
+/* 802688C4 00265804 48 0F 99 19 */ bl _savegpr_29
+/* 802688C8 00265808 7C 7D 1B 78 */ mr r29, r3
+/* 802688CC 0026580C 7C BE 2B 78 */ mr r30, r5
+/* 802688D0 00265810 7C DF 33 78 */ mr r31, r6
+/* 802688D4 00265814 7C 83 23 78 */ mr r3, r4
+/* 802688D8 00265818 7F A4 EB 78 */ mr r4, r29
+/* 802688DC 0026581C 38 A1 00 14 */ addi r5, r1, 0x14
+/* 802688E0 00265820 48 0D E7 D5 */ bl PSVECSubtract
+/* 802688E4 00265824 7F C3 F3 78 */ mr r3, r30
+/* 802688E8 00265828 7F A4 EB 78 */ mr r4, r29
+/* 802688EC 0026582C 38 A1 00 08 */ addi r5, r1, 8
+/* 802688F0 00265830 48 0D E7 C5 */ bl PSVECSubtract
+/* 802688F4 00265834 38 61 00 14 */ addi r3, r1, 0x14
+/* 802688F8 00265838 38 81 00 08 */ addi r4, r1, 8
+/* 802688FC 0026583C 7F E5 FB 78 */ mr r5, r31
+/* 80268900 00265840 48 0D E8 B5 */ bl PSVECCrossProduct
+/* 80268904 00265844 39 61 00 30 */ addi r11, r1, 0x30
+/* 80268908 00265848 48 0F 99 21 */ bl _restgpr_29
+/* 8026890C 0026584C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80268910 00265850 7C 08 03 A6 */ mtlr r0
+/* 80268914 00265854 38 21 00 30 */ addi r1, r1, 0x30
+/* 80268918 00265858 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026891C.s b/include/SComponent/c_m3d/asm/func_8026891C.s
new file mode 100644
index 0000000000..701a05376d
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026891C.s
@@ -0,0 +1,53 @@
+/* 8026891C 0026585C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80268920 00265860 7C 08 02 A6 */ mflr r0
+/* 80268924 00265864 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80268928 00265868 39 61 00 30 */ addi r11, r1, 0x30
+/* 8026892C 0026586C 48 0F 98 AD */ bl _savegpr_28
+/* 80268930 00265870 7C 7C 1B 78 */ mr r28, r3
+/* 80268934 00265874 7C BD 2B 78 */ mr r29, r5
+/* 80268938 00265878 7C DE 33 78 */ mr r30, r6
+/* 8026893C 0026587C 7C FF 3B 78 */ mr r31, r7
+/* 80268940 00265880 7C 83 23 78 */ mr r3, r4
+/* 80268944 00265884 7F 84 E3 78 */ mr r4, r28
+/* 80268948 00265888 38 A1 00 08 */ addi r5, r1, 8
+/* 8026894C 0026588C 48 0D E7 69 */ bl PSVECSubtract
+/* 80268950 00265890 7F A3 EB 78 */ mr r3, r29
+/* 80268954 00265894 7F 84 E3 78 */ mr r4, r28
+/* 80268958 00265898 38 A1 00 14 */ addi r5, r1, 0x14
+/* 8026895C 0026589C 48 0D E7 59 */ bl PSVECSubtract
+/* 80268960 002658A0 38 61 00 08 */ addi r3, r1, 8
+/* 80268964 002658A4 38 81 00 14 */ addi r4, r1, 0x14
+/* 80268968 002658A8 7F C5 F3 78 */ mr r5, r30
+/* 8026896C 002658AC 48 0D E8 49 */ bl PSVECCrossProduct
+/* 80268970 002658B0 7F C3 F3 78 */ mr r3, r30
+/* 80268974 002658B4 48 0D E7 DD */ bl PSVECMag
+/* 80268978 002658B8 FC 00 0A 10 */ fabs f0, f1
+/* 8026897C 002658BC FC 40 00 18 */ frsp f2, f0
+/* 80268980 002658C0 C0 02 B7 3C */ lfs f0, lbl_8045513C-_SDA2_BASE_(r2)
+/* 80268984 002658C4 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 80268988 002658C8 4C 41 13 82 */ cror 2, 1, 2
+/* 8026898C 002658CC 40 82 00 30 */ bne lbl_802689BC
+/* 80268990 002658D0 7F C3 F3 78 */ mr r3, r30
+/* 80268994 002658D4 7F C4 F3 78 */ mr r4, r30
+/* 80268998 002658D8 C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 8026899C 002658DC EC 20 08 24 */ fdivs f1, f0, f1
+/* 802689A0 002658E0 48 0D E7 39 */ bl PSVECScale
+/* 802689A4 002658E4 7F C3 F3 78 */ mr r3, r30
+/* 802689A8 002658E8 7F 84 E3 78 */ mr r4, r28
+/* 802689AC 002658EC 48 0D E7 E9 */ bl PSVECDotProduct
+/* 802689B0 002658F0 FC 00 08 50 */ fneg f0, f1
+/* 802689B4 002658F4 D0 1F 00 00 */ stfs f0, 0(r31)
+/* 802689B8 002658F8 48 00 00 18 */ b lbl_802689D0
+lbl_802689BC:
+/* 802689BC 002658FC C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 802689C0 00265900 D0 1E 00 04 */ stfs f0, 4(r30)
+/* 802689C4 00265904 D0 1F 00 00 */ stfs f0, 0(r31)
+/* 802689C8 00265908 D0 1E 00 08 */ stfs f0, 8(r30)
+/* 802689CC 0026590C D0 1E 00 00 */ stfs f0, 0(r30)
+lbl_802689D0:
+/* 802689D0 00265910 39 61 00 30 */ addi r11, r1, 0x30
+/* 802689D4 00265914 48 0F 98 51 */ bl _restgpr_28
+/* 802689D8 00265918 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802689DC 0026591C 7C 08 03 A6 */ mtlr r0
+/* 802689E0 00265920 38 21 00 30 */ addi r1, r1, 0x30
+/* 802689E4 00265924 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_802689E8.s b/include/SComponent/c_m3d/asm/func_802689E8.s
new file mode 100644
index 0000000000..c0dea96fc3
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_802689E8.s
@@ -0,0 +1,89 @@
+/* 802689E8 00265928 C0 64 00 0C */ lfs f3, 0xc(r4)
+/* 802689EC 0026592C C0 44 00 00 */ lfs f2, 0(r4)
+/* 802689F0 00265930 C0 23 00 0C */ lfs f1, 0xc(r3)
+/* 802689F4 00265934 C0 03 00 00 */ lfs f0, 0(r3)
+/* 802689F8 00265938 FC 00 18 40 */ fcmpo cr0, f0, f3
+/* 802689FC 0026593C 40 81 00 0C */ ble lbl_80268A08
+/* 80268A00 00265940 38 00 00 00 */ li r0, 0
+/* 80268A04 00265944 48 00 00 38 */ b lbl_80268A3C
+lbl_80268A08:
+/* 80268A08 00265948 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 80268A0C 0026594C 40 80 00 0C */ bge lbl_80268A18
+/* 80268A10 00265950 38 00 00 00 */ li r0, 0
+/* 80268A14 00265954 48 00 00 28 */ b lbl_80268A3C
+lbl_80268A18:
+/* 80268A18 00265958 FC 02 08 40 */ fcmpo cr0, f2, f1
+/* 80268A1C 0026595C 40 81 00 0C */ ble lbl_80268A28
+/* 80268A20 00265960 38 00 00 00 */ li r0, 0
+/* 80268A24 00265964 48 00 00 18 */ b lbl_80268A3C
+lbl_80268A28:
+/* 80268A28 00265968 FC 03 00 40 */ fcmpo cr0, f3, f0
+/* 80268A2C 0026596C 40 80 00 0C */ bge lbl_80268A38
+/* 80268A30 00265970 38 00 00 00 */ li r0, 0
+/* 80268A34 00265974 48 00 00 08 */ b lbl_80268A3C
+lbl_80268A38:
+/* 80268A38 00265978 38 00 00 01 */ li r0, 1
+lbl_80268A3C:
+/* 80268A3C 0026597C 54 00 06 3F */ clrlwi. r0, r0, 0x18
+/* 80268A40 00265980 41 82 00 C4 */ beq lbl_80268B04
+/* 80268A44 00265984 C0 64 00 10 */ lfs f3, 0x10(r4)
+/* 80268A48 00265988 C0 44 00 04 */ lfs f2, 4(r4)
+/* 80268A4C 0026598C C0 23 00 10 */ lfs f1, 0x10(r3)
+/* 80268A50 00265990 C0 03 00 04 */ lfs f0, 4(r3)
+/* 80268A54 00265994 FC 00 18 40 */ fcmpo cr0, f0, f3
+/* 80268A58 00265998 40 81 00 0C */ ble lbl_80268A64
+/* 80268A5C 0026599C 38 00 00 00 */ li r0, 0
+/* 80268A60 002659A0 48 00 00 38 */ b lbl_80268A98
+lbl_80268A64:
+/* 80268A64 002659A4 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 80268A68 002659A8 40 80 00 0C */ bge lbl_80268A74
+/* 80268A6C 002659AC 38 00 00 00 */ li r0, 0
+/* 80268A70 002659B0 48 00 00 28 */ b lbl_80268A98
+lbl_80268A74:
+/* 80268A74 002659B4 FC 02 08 40 */ fcmpo cr0, f2, f1
+/* 80268A78 002659B8 40 81 00 0C */ ble lbl_80268A84
+/* 80268A7C 002659BC 38 00 00 00 */ li r0, 0
+/* 80268A80 002659C0 48 00 00 18 */ b lbl_80268A98
+lbl_80268A84:
+/* 80268A84 002659C4 FC 03 00 40 */ fcmpo cr0, f3, f0
+/* 80268A88 002659C8 40 80 00 0C */ bge lbl_80268A94
+/* 80268A8C 002659CC 38 00 00 00 */ li r0, 0
+/* 80268A90 002659D0 48 00 00 08 */ b lbl_80268A98
+lbl_80268A94:
+/* 80268A94 002659D4 38 00 00 01 */ li r0, 1
+lbl_80268A98:
+/* 80268A98 002659D8 54 00 06 3F */ clrlwi. r0, r0, 0x18
+/* 80268A9C 002659DC 41 82 00 68 */ beq lbl_80268B04
+/* 80268AA0 002659E0 C0 64 00 14 */ lfs f3, 0x14(r4)
+/* 80268AA4 002659E4 C0 44 00 08 */ lfs f2, 8(r4)
+/* 80268AA8 002659E8 C0 23 00 14 */ lfs f1, 0x14(r3)
+/* 80268AAC 002659EC C0 03 00 08 */ lfs f0, 8(r3)
+/* 80268AB0 002659F0 FC 00 18 40 */ fcmpo cr0, f0, f3
+/* 80268AB4 002659F4 40 81 00 0C */ ble lbl_80268AC0
+/* 80268AB8 002659F8 38 00 00 00 */ li r0, 0
+/* 80268ABC 002659FC 48 00 00 38 */ b lbl_80268AF4
+lbl_80268AC0:
+/* 80268AC0 00265A00 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 80268AC4 00265A04 40 80 00 0C */ bge lbl_80268AD0
+/* 80268AC8 00265A08 38 00 00 00 */ li r0, 0
+/* 80268ACC 00265A0C 48 00 00 28 */ b lbl_80268AF4
+lbl_80268AD0:
+/* 80268AD0 00265A10 FC 02 08 40 */ fcmpo cr0, f2, f1
+/* 80268AD4 00265A14 40 81 00 0C */ ble lbl_80268AE0
+/* 80268AD8 00265A18 38 00 00 00 */ li r0, 0
+/* 80268ADC 00265A1C 48 00 00 18 */ b lbl_80268AF4
+lbl_80268AE0:
+/* 80268AE0 00265A20 FC 03 00 40 */ fcmpo cr0, f3, f0
+/* 80268AE4 00265A24 40 80 00 0C */ bge lbl_80268AF0
+/* 80268AE8 00265A28 38 00 00 00 */ li r0, 0
+/* 80268AEC 00265A2C 48 00 00 08 */ b lbl_80268AF4
+lbl_80268AF0:
+/* 80268AF0 00265A30 38 00 00 01 */ li r0, 1
+lbl_80268AF4:
+/* 80268AF4 00265A34 54 00 06 3F */ clrlwi. r0, r0, 0x18
+/* 80268AF8 00265A38 41 82 00 0C */ beq lbl_80268B04
+/* 80268AFC 00265A3C 38 60 00 01 */ li r3, 1
+/* 80268B00 00265A40 4E 80 00 20 */ blr
+lbl_80268B04:
+/* 80268B04 00265A44 38 60 00 00 */ li r3, 0
+/* 80268B08 00265A48 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_80268B0C.s b/include/SComponent/c_m3d/asm/func_80268B0C.s
new file mode 100644
index 0000000000..8905a3eea6
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_80268B0C.s
@@ -0,0 +1,47 @@
+/* 80268B0C 00265A4C C0 23 00 00 */ lfs f1, 0(r3)
+/* 80268B10 00265A50 C0 44 00 00 */ lfs f2, 0(r4)
+/* 80268B14 00265A54 C0 64 00 0C */ lfs f3, 0xc(r4)
+/* 80268B18 00265A58 EC 02 18 2A */ fadds f0, f2, f3
+/* 80268B1C 00265A5C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80268B20 00265A60 40 81 00 0C */ ble lbl_80268B2C
+/* 80268B24 00265A64 38 60 00 00 */ li r3, 0
+/* 80268B28 00265A68 4E 80 00 20 */ blr
+lbl_80268B2C:
+/* 80268B2C 00265A6C C0 23 00 0C */ lfs f1, 0xc(r3)
+/* 80268B30 00265A70 EC 02 18 28 */ fsubs f0, f2, f3
+/* 80268B34 00265A74 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80268B38 00265A78 40 80 00 0C */ bge lbl_80268B44
+/* 80268B3C 00265A7C 38 60 00 00 */ li r3, 0
+/* 80268B40 00265A80 4E 80 00 20 */ blr
+lbl_80268B44:
+/* 80268B44 00265A84 C0 23 00 08 */ lfs f1, 8(r3)
+/* 80268B48 00265A88 C0 44 00 08 */ lfs f2, 8(r4)
+/* 80268B4C 00265A8C EC 02 18 2A */ fadds f0, f2, f3
+/* 80268B50 00265A90 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80268B54 00265A94 40 81 00 0C */ ble lbl_80268B60
+/* 80268B58 00265A98 38 60 00 00 */ li r3, 0
+/* 80268B5C 00265A9C 4E 80 00 20 */ blr
+lbl_80268B60:
+/* 80268B60 00265AA0 C0 23 00 14 */ lfs f1, 0x14(r3)
+/* 80268B64 00265AA4 EC 02 18 28 */ fsubs f0, f2, f3
+/* 80268B68 00265AA8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80268B6C 00265AAC 40 80 00 0C */ bge lbl_80268B78
+/* 80268B70 00265AB0 38 60 00 00 */ li r3, 0
+/* 80268B74 00265AB4 4E 80 00 20 */ blr
+lbl_80268B78:
+/* 80268B78 00265AB8 C0 23 00 04 */ lfs f1, 4(r3)
+/* 80268B7C 00265ABC C0 44 00 04 */ lfs f2, 4(r4)
+/* 80268B80 00265AC0 C0 04 00 10 */ lfs f0, 0x10(r4)
+/* 80268B84 00265AC4 EC 02 00 2A */ fadds f0, f2, f0
+/* 80268B88 00265AC8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80268B8C 00265ACC 40 81 00 0C */ ble lbl_80268B98
+/* 80268B90 00265AD0 38 60 00 00 */ li r3, 0
+/* 80268B94 00265AD4 4E 80 00 20 */ blr
+lbl_80268B98:
+/* 80268B98 00265AD8 C0 03 00 10 */ lfs f0, 0x10(r3)
+/* 80268B9C 00265ADC FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 80268BA0 00265AE0 7C 00 00 26 */ mfcr r0
+/* 80268BA4 00265AE4 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 80268BA8 00265AE8 7C 00 00 34 */ cntlzw r0, r0
+/* 80268BAC 00265AEC 54 03 D9 7E */ srwi r3, r0, 5
+/* 80268BB0 00265AF0 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_80268BB4.s b/include/SComponent/c_m3d/asm/func_80268BB4.s
new file mode 100644
index 0000000000..eae7e5abf6
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_80268BB4.s
@@ -0,0 +1,47 @@
+/* 80268BB4 00265AF4 C0 44 00 0C */ lfs f2, 0xc(r4)
+/* 80268BB8 00265AF8 C0 64 00 00 */ lfs f3, 0(r4)
+/* 80268BBC 00265AFC C0 23 00 00 */ lfs f1, 0(r3)
+/* 80268BC0 00265B00 EC 03 10 2A */ fadds f0, f3, f2
+/* 80268BC4 00265B04 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80268BC8 00265B08 40 81 00 0C */ ble lbl_80268BD4
+/* 80268BCC 00265B0C 38 60 00 00 */ li r3, 0
+/* 80268BD0 00265B10 4E 80 00 20 */ blr
+lbl_80268BD4:
+/* 80268BD4 00265B14 C0 23 00 0C */ lfs f1, 0xc(r3)
+/* 80268BD8 00265B18 EC 03 10 28 */ fsubs f0, f3, f2
+/* 80268BDC 00265B1C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80268BE0 00265B20 40 80 00 0C */ bge lbl_80268BEC
+/* 80268BE4 00265B24 38 60 00 00 */ li r3, 0
+/* 80268BE8 00265B28 4E 80 00 20 */ blr
+lbl_80268BEC:
+/* 80268BEC 00265B2C C0 64 00 08 */ lfs f3, 8(r4)
+/* 80268BF0 00265B30 C0 23 00 08 */ lfs f1, 8(r3)
+/* 80268BF4 00265B34 EC 03 10 2A */ fadds f0, f3, f2
+/* 80268BF8 00265B38 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80268BFC 00265B3C 40 81 00 0C */ ble lbl_80268C08
+/* 80268C00 00265B40 38 60 00 00 */ li r3, 0
+/* 80268C04 00265B44 4E 80 00 20 */ blr
+lbl_80268C08:
+/* 80268C08 00265B48 C0 23 00 14 */ lfs f1, 0x14(r3)
+/* 80268C0C 00265B4C EC 03 10 28 */ fsubs f0, f3, f2
+/* 80268C10 00265B50 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80268C14 00265B54 40 80 00 0C */ bge lbl_80268C20
+/* 80268C18 00265B58 38 60 00 00 */ li r3, 0
+/* 80268C1C 00265B5C 4E 80 00 20 */ blr
+lbl_80268C20:
+/* 80268C20 00265B60 C0 64 00 04 */ lfs f3, 4(r4)
+/* 80268C24 00265B64 C0 23 00 04 */ lfs f1, 4(r3)
+/* 80268C28 00265B68 EC 03 10 2A */ fadds f0, f3, f2
+/* 80268C2C 00265B6C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80268C30 00265B70 40 81 00 0C */ ble lbl_80268C3C
+/* 80268C34 00265B74 38 60 00 00 */ li r3, 0
+/* 80268C38 00265B78 4E 80 00 20 */ blr
+lbl_80268C3C:
+/* 80268C3C 00265B7C C0 23 00 10 */ lfs f1, 0x10(r3)
+/* 80268C40 00265B80 EC 03 10 28 */ fsubs f0, f3, f2
+/* 80268C44 00265B84 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80268C48 00265B88 7C 00 00 26 */ mfcr r0
+/* 80268C4C 00265B8C 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 80268C50 00265B90 7C 00 00 34 */ cntlzw r0, r0
+/* 80268C54 00265B94 54 03 D9 7E */ srwi r3, r0, 5
+/* 80268C58 00265B98 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_80268C5C.s b/include/SComponent/c_m3d/asm/func_80268C5C.s
new file mode 100644
index 0000000000..6092f28ef6
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_80268C5C.s
@@ -0,0 +1,168 @@
+/* 80268C5C 00265B9C 94 21 FF 40 */ stwu r1, -0xc0(r1)
+/* 80268C60 00265BA0 7C 08 02 A6 */ mflr r0
+/* 80268C64 00265BA4 90 01 00 C4 */ stw r0, 0xc4(r1)
+/* 80268C68 00265BA8 DB E1 00 B0 */ stfd f31, 0xb0(r1)
+/* 80268C6C 00265BAC F3 E1 00 B8 */ psq_st f31, 184(r1), 0, 0
+/* 80268C70 00265BB0 DB C1 00 A0 */ stfd f30, 0xa0(r1)
+/* 80268C74 00265BB4 F3 C1 00 A8 */ psq_st f30, 168(r1), 0, 0
+/* 80268C78 00265BB8 DB A1 00 90 */ stfd f29, 0x90(r1)
+/* 80268C7C 00265BBC F3 A1 00 98 */ psq_st f29, 152(r1), 0, 0
+/* 80268C80 00265BC0 DB 81 00 80 */ stfd f28, 0x80(r1)
+/* 80268C84 00265BC4 F3 81 00 88 */ psq_st f28, 136(r1), 0, 0
+/* 80268C88 00265BC8 DB 61 00 70 */ stfd f27, 0x70(r1)
+/* 80268C8C 00265BCC F3 61 00 78 */ psq_st f27, 120(r1), 0, 0
+/* 80268C90 00265BD0 DB 41 00 60 */ stfd f26, 0x60(r1)
+/* 80268C94 00265BD4 F3 41 00 68 */ psq_st f26, 104(r1), 0, 0
+/* 80268C98 00265BD8 DB 21 00 50 */ stfd f25, 0x50(r1)
+/* 80268C9C 00265BDC F3 21 00 58 */ psq_st f25, 88(r1), 0, 0
+/* 80268CA0 00265BE0 DB 01 00 40 */ stfd f24, 0x40(r1)
+/* 80268CA4 00265BE4 F3 01 00 48 */ psq_st f24, 72(r1), 0, 0
+/* 80268CA8 00265BE8 39 61 00 40 */ addi r11, r1, 0x40
+/* 80268CAC 00265BEC 48 0F 95 2D */ bl _savegpr_28
+/* 80268CB0 00265BF0 7C 7C 1B 78 */ mr r28, r3
+/* 80268CB4 00265BF4 7C 9D 23 78 */ mr r29, r4
+/* 80268CB8 00265BF8 7C BE 2B 78 */ mr r30, r5
+/* 80268CBC 00265BFC 7C DF 33 78 */ mr r31, r6
+/* 80268CC0 00265C00 38 7C 00 0C */ addi r3, r28, 0xc
+/* 80268CC4 00265C04 7F 84 E3 78 */ mr r4, r28
+/* 80268CC8 00265C08 38 A1 00 20 */ addi r5, r1, 0x20
+/* 80268CCC 00265C0C 48 0D E3 E9 */ bl PSVECSubtract
+/* 80268CD0 00265C10 38 7D 00 0C */ addi r3, r29, 0xc
+/* 80268CD4 00265C14 7F A4 EB 78 */ mr r4, r29
+/* 80268CD8 00265C18 38 A1 00 14 */ addi r5, r1, 0x14
+/* 80268CDC 00265C1C 48 0D E3 D9 */ bl PSVECSubtract
+/* 80268CE0 00265C20 38 61 00 20 */ addi r3, r1, 0x20
+/* 80268CE4 00265C24 48 0D E4 6D */ bl PSVECMag
+/* 80268CE8 00265C28 FF E0 08 90 */ fmr f31, f1
+/* 80268CEC 00265C2C 38 61 00 14 */ addi r3, r1, 0x14
+/* 80268CF0 00265C30 48 0D E4 61 */ bl PSVECMag
+/* 80268CF4 00265C34 FF C0 08 90 */ fmr f30, f1
+/* 80268CF8 00265C38 FC 00 FA 10 */ fabs f0, f31
+/* 80268CFC 00265C3C FC 00 00 18 */ frsp f0, f0
+/* 80268D00 00265C40 C0 2D 8C 00 */ lfs f1, lbl_80451180-_SDA_BASE_(r13)
+/* 80268D04 00265C44 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 80268D08 00265C48 41 80 00 14 */ blt lbl_80268D1C
+/* 80268D0C 00265C4C FC 00 F2 10 */ fabs f0, f30
+/* 80268D10 00265C50 FC 00 00 18 */ frsp f0, f0
+/* 80268D14 00265C54 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 80268D18 00265C58 40 80 00 0C */ bge lbl_80268D24
+lbl_80268D1C:
+/* 80268D1C 00265C5C 38 60 00 01 */ li r3, 1
+/* 80268D20 00265C60 48 00 01 5C */ b lbl_80268E7C
+lbl_80268D24:
+/* 80268D24 00265C64 C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 80268D28 00265C68 EF A0 F8 24 */ fdivs f29, f0, f31
+/* 80268D2C 00265C6C EF 80 F0 24 */ fdivs f28, f0, f30
+/* 80268D30 00265C70 38 61 00 20 */ addi r3, r1, 0x20
+/* 80268D34 00265C74 7C 64 1B 78 */ mr r4, r3
+/* 80268D38 00265C78 FC 20 E8 90 */ fmr f1, f29
+/* 80268D3C 00265C7C 48 0D E3 9D */ bl PSVECScale
+/* 80268D40 00265C80 38 61 00 14 */ addi r3, r1, 0x14
+/* 80268D44 00265C84 7C 64 1B 78 */ mr r4, r3
+/* 80268D48 00265C88 FC 20 E0 90 */ fmr f1, f28
+/* 80268D4C 00265C8C 48 0D E3 8D */ bl PSVECScale
+/* 80268D50 00265C90 7F 83 E3 78 */ mr r3, r28
+/* 80268D54 00265C94 7F A4 EB 78 */ mr r4, r29
+/* 80268D58 00265C98 38 A1 00 08 */ addi r5, r1, 8
+/* 80268D5C 00265C9C 48 0D E3 59 */ bl PSVECSubtract
+/* 80268D60 00265CA0 38 61 00 20 */ addi r3, r1, 0x20
+/* 80268D64 00265CA4 38 81 00 14 */ addi r4, r1, 0x14
+/* 80268D68 00265CA8 48 0D E4 2D */ bl PSVECDotProduct
+/* 80268D6C 00265CAC FF 60 08 50 */ fneg f27, f1
+/* 80268D70 00265CB0 38 61 00 08 */ addi r3, r1, 8
+/* 80268D74 00265CB4 38 81 00 20 */ addi r4, r1, 0x20
+/* 80268D78 00265CB8 48 0D E4 1D */ bl PSVECDotProduct
+/* 80268D7C 00265CBC FF 40 08 90 */ fmr f26, f1
+/* 80268D80 00265CC0 38 61 00 08 */ addi r3, r1, 8
+/* 80268D84 00265CC4 48 0D E3 B5 */ bl PSVECSquareMag
+/* 80268D88 00265CC8 C0 22 B7 38 */ lfs f1, lbl_80455138-_SDA2_BASE_(r2)
+/* 80268D8C 00265CCC EC 1B 06 F2 */ fmuls f0, f27, f27
+/* 80268D90 00265CD0 EC 01 00 28 */ fsubs f0, f1, f0
+/* 80268D94 00265CD4 FC 00 02 10 */ fabs f0, f0
+/* 80268D98 00265CD8 FF 20 00 18 */ frsp f25, f0
+/* 80268D9C 00265CDC FC 00 CA 10 */ fabs f0, f25
+/* 80268DA0 00265CE0 FC 20 00 18 */ frsp f1, f0
+/* 80268DA4 00265CE4 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 80268DA8 00265CE8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80268DAC 00265CEC 41 80 00 4C */ blt lbl_80268DF8
+/* 80268DB0 00265CF0 38 61 00 08 */ addi r3, r1, 8
+/* 80268DB4 00265CF4 38 81 00 14 */ addi r4, r1, 0x14
+/* 80268DB8 00265CF8 48 0D E3 DD */ bl PSVECDotProduct
+/* 80268DBC 00265CFC FC 20 08 50 */ fneg f1, f1
+/* 80268DC0 00265D00 C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 80268DC4 00265D04 EC 40 C8 24 */ fdivs f2, f0, f25
+/* 80268DC8 00265D08 EC 1B 00 72 */ fmuls f0, f27, f1
+/* 80268DCC 00265D0C EC 00 D0 28 */ fsubs f0, f0, f26
+/* 80268DD0 00265D10 EC 02 00 32 */ fmuls f0, f2, f0
+/* 80268DD4 00265D14 EC 00 07 72 */ fmuls f0, f0, f29
+/* 80268DD8 00265D18 D0 1E 00 00 */ stfs f0, 0(r30)
+/* 80268DDC 00265D1C EC 1B 06 B2 */ fmuls f0, f27, f26
+/* 80268DE0 00265D20 EC 00 08 28 */ fsubs f0, f0, f1
+/* 80268DE4 00265D24 EC 02 00 32 */ fmuls f0, f2, f0
+/* 80268DE8 00265D28 EC 00 07 32 */ fmuls f0, f0, f28
+/* 80268DEC 00265D2C D0 1F 00 00 */ stfs f0, 0(r31)
+/* 80268DF0 00265D30 38 60 00 03 */ li r3, 3
+/* 80268DF4 00265D34 48 00 00 88 */ b lbl_80268E7C
+lbl_80268DF8:
+/* 80268DF8 00265D38 FF 20 D0 50 */ fneg f25, f26
+/* 80268DFC 00265D3C C3 02 B7 18 */ lfs f24, lbl_80455118-_SDA2_BASE_(r2)
+/* 80268E00 00265D40 FC 19 C0 40 */ fcmpo cr0, f25, f24
+/* 80268E04 00265D44 41 80 00 0C */ blt lbl_80268E10
+/* 80268E08 00265D48 FC 19 F8 40 */ fcmpo cr0, f25, f31
+/* 80268E0C 00265D4C 40 81 00 10 */ ble lbl_80268E1C
+lbl_80268E10:
+/* 80268E10 00265D50 FF 00 F0 90 */ fmr f24, f30
+/* 80268E14 00265D54 EC 1E 06 F2 */ fmuls f0, f30, f27
+/* 80268E18 00265D58 EF 20 D0 28 */ fsubs f25, f0, f26
+lbl_80268E1C:
+/* 80268E1C 00265D5C 38 61 00 08 */ addi r3, r1, 8
+/* 80268E20 00265D60 38 81 00 14 */ addi r4, r1, 0x14
+/* 80268E24 00265D64 48 0D E3 71 */ bl PSVECDotProduct
+/* 80268E28 00265D68 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 80268E2C 00265D6C FC 19 00 40 */ fcmpo cr0, f25, f0
+/* 80268E30 00265D70 41 80 00 0C */ blt lbl_80268E3C
+/* 80268E34 00265D74 FC 19 F8 40 */ fcmpo cr0, f25, f31
+/* 80268E38 00265D78 40 81 00 0C */ ble lbl_80268E44
+lbl_80268E3C:
+/* 80268E3C 00265D7C C3 22 B7 18 */ lfs f25, lbl_80455118-_SDA2_BASE_(r2)
+/* 80268E40 00265D80 FF 00 08 90 */ fmr f24, f1
+lbl_80268E44:
+/* 80268E44 00265D84 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 80268E48 00265D88 FC 18 00 40 */ fcmpo cr0, f24, f0
+/* 80268E4C 00265D8C 41 80 00 0C */ blt lbl_80268E58
+/* 80268E50 00265D90 FC 18 F0 40 */ fcmpo cr0, f24, f30
+/* 80268E54 00265D94 40 81 00 14 */ ble lbl_80268E68
+lbl_80268E58:
+/* 80268E58 00265D98 FF 20 F8 90 */ fmr f25, f31
+/* 80268E5C 00265D9C FC 00 F8 50 */ fneg f0, f31
+/* 80268E60 00265DA0 EC 00 06 F2 */ fmuls f0, f0, f27
+/* 80268E64 00265DA4 EF 01 00 2A */ fadds f24, f1, f0
+lbl_80268E68:
+/* 80268E68 00265DA8 EC 19 07 72 */ fmuls f0, f25, f29
+/* 80268E6C 00265DAC D0 1E 00 00 */ stfs f0, 0(r30)
+/* 80268E70 00265DB0 EC 18 07 32 */ fmuls f0, f24, f28
+/* 80268E74 00265DB4 D0 1F 00 00 */ stfs f0, 0(r31)
+/* 80268E78 00265DB8 38 60 00 02 */ li r3, 2
+lbl_80268E7C:
+/* 80268E7C 00265DBC E3 E1 00 B8 */ psq_l f31, 184(r1), 0, 0
+/* 80268E80 00265DC0 CB E1 00 B0 */ lfd f31, 0xb0(r1)
+/* 80268E84 00265DC4 E3 C1 00 A8 */ psq_l f30, 168(r1), 0, 0
+/* 80268E88 00265DC8 CB C1 00 A0 */ lfd f30, 0xa0(r1)
+/* 80268E8C 00265DCC E3 A1 00 98 */ psq_l f29, 152(r1), 0, 0
+/* 80268E90 00265DD0 CB A1 00 90 */ lfd f29, 0x90(r1)
+/* 80268E94 00265DD4 E3 81 00 88 */ psq_l f28, 136(r1), 0, 0
+/* 80268E98 00265DD8 CB 81 00 80 */ lfd f28, 0x80(r1)
+/* 80268E9C 00265DDC E3 61 00 78 */ psq_l f27, 120(r1), 0, 0
+/* 80268EA0 00265DE0 CB 61 00 70 */ lfd f27, 0x70(r1)
+/* 80268EA4 00265DE4 E3 41 00 68 */ psq_l f26, 104(r1), 0, 0
+/* 80268EA8 00265DE8 CB 41 00 60 */ lfd f26, 0x60(r1)
+/* 80268EAC 00265DEC E3 21 00 58 */ psq_l f25, 88(r1), 0, 0
+/* 80268EB0 00265DF0 CB 21 00 50 */ lfd f25, 0x50(r1)
+/* 80268EB4 00265DF4 E3 01 00 48 */ psq_l f24, 72(r1), 0, 0
+/* 80268EB8 00265DF8 CB 01 00 40 */ lfd f24, 0x40(r1)
+/* 80268EBC 00265DFC 39 61 00 40 */ addi r11, r1, 0x40
+/* 80268EC0 00265E00 48 0F 93 65 */ bl _restgpr_28
+/* 80268EC4 00265E04 80 01 00 C4 */ lwz r0, 0xc4(r1)
+/* 80268EC8 00265E08 7C 08 03 A6 */ mtlr r0
+/* 80268ECC 00265E0C 38 21 00 C0 */ addi r1, r1, 0xc0
+/* 80268ED0 00265E10 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_80268ED4.s b/include/SComponent/c_m3d/asm/func_80268ED4.s
new file mode 100644
index 0000000000..b4f2be8c60
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_80268ED4.s
@@ -0,0 +1,26 @@
+/* 80268ED4 00265E14 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80268ED8 00265E18 7C 08 02 A6 */ mflr r0
+/* 80268EDC 00265E1C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80268EE0 00265E20 EC 61 10 28 */ fsubs f3, f1, f2
+/* 80268EE4 00265E24 FC 00 1A 10 */ fabs f0, f3
+/* 80268EE8 00265E28 FC 40 00 18 */ frsp f2, f0
+/* 80268EEC 00265E2C C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 80268EF0 00265E30 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 80268EF4 00265E34 40 80 00 24 */ bge lbl_80268F18
+/* 80268EF8 00265E38 C0 04 00 00 */ lfs f0, 0(r4)
+/* 80268EFC 00265E3C D0 05 00 00 */ stfs f0, 0(r5)
+/* 80268F00 00265E40 C0 04 00 04 */ lfs f0, 4(r4)
+/* 80268F04 00265E44 D0 05 00 04 */ stfs f0, 4(r5)
+/* 80268F08 00265E48 C0 04 00 08 */ lfs f0, 8(r4)
+/* 80268F0C 00265E4C D0 05 00 08 */ stfs f0, 8(r5)
+/* 80268F10 00265E50 38 60 00 00 */ li r3, 0
+/* 80268F14 00265E54 48 00 00 10 */ b lbl_80268F24
+lbl_80268F18:
+/* 80268F18 00265E58 EC 21 18 24 */ fdivs f1, f1, f3
+/* 80268F1C 00265E5C 4B FF F6 95 */ bl cM3d_InDivPos2__FPC3VecPC3VecfP3Vec
+/* 80268F20 00265E60 38 60 00 01 */ li r3, 1
+lbl_80268F24:
+/* 80268F24 00265E64 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80268F28 00265E68 7C 08 03 A6 */ mtlr r0
+/* 80268F2C 00265E6C 38 21 00 10 */ addi r1, r1, 0x10
+/* 80268F30 00265E70 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_80268F34.s b/include/SComponent/c_m3d/asm/func_80268F34.s
new file mode 100644
index 0000000000..d81fa3f3e0
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_80268F34.s
@@ -0,0 +1,75 @@
+/* 80268F34 00265E74 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80268F38 00265E78 7C 08 02 A6 */ mflr r0
+/* 80268F3C 00265E7C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80268F40 00265E80 DB E1 00 20 */ stfd f31, 0x20(r1)
+/* 80268F44 00265E84 F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0
+/* 80268F48 00265E88 39 61 00 20 */ addi r11, r1, 0x20
+/* 80268F4C 00265E8C 48 0F 92 89 */ bl _savegpr_27
+/* 80268F50 00265E90 7C 7B 1B 78 */ mr r27, r3
+/* 80268F54 00265E94 7C 9C 23 78 */ mr r28, r4
+/* 80268F58 00265E98 7C BD 2B 78 */ mr r29, r5
+/* 80268F5C 00265E9C 7C DE 33 78 */ mr r30, r6
+/* 80268F60 00265EA0 7C FF 3B 78 */ mr r31, r7
+/* 80268F64 00265EA4 7F 83 E3 78 */ mr r3, r28
+/* 80268F68 00265EA8 7F 64 DB 78 */ mr r4, r27
+/* 80268F6C 00265EAC 48 0D E2 29 */ bl PSVECDotProduct
+/* 80268F70 00265EB0 C0 1C 00 0C */ lfs f0, 0xc(r28)
+/* 80268F74 00265EB4 EF E0 08 2A */ fadds f31, f0, f1
+/* 80268F78 00265EB8 7F 83 E3 78 */ mr r3, r28
+/* 80268F7C 00265EBC 38 9B 00 0C */ addi r4, r27, 0xc
+/* 80268F80 00265EC0 48 0D E2 15 */ bl PSVECDotProduct
+/* 80268F84 00265EC4 C0 1C 00 0C */ lfs f0, 0xc(r28)
+/* 80268F88 00265EC8 EC 40 08 2A */ fadds f2, f0, f1
+/* 80268F8C 00265ECC EC 3F 00 B2 */ fmuls f1, f31, f2
+/* 80268F90 00265ED0 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 80268F94 00265ED4 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80268F98 00265ED8 40 81 00 24 */ ble lbl_80268FBC
+/* 80268F9C 00265EDC C0 1B 00 0C */ lfs f0, 0xc(r27)
+/* 80268FA0 00265EE0 D0 1D 00 00 */ stfs f0, 0(r29)
+/* 80268FA4 00265EE4 C0 1B 00 10 */ lfs f0, 0x10(r27)
+/* 80268FA8 00265EE8 D0 1D 00 04 */ stfs f0, 4(r29)
+/* 80268FAC 00265EEC C0 1B 00 14 */ lfs f0, 0x14(r27)
+/* 80268FB0 00265EF0 D0 1D 00 08 */ stfs f0, 8(r29)
+/* 80268FB4 00265EF4 38 60 00 00 */ li r3, 0
+/* 80268FB8 00265EF8 48 00 00 78 */ b lbl_80269030
+lbl_80268FBC:
+/* 80268FBC 00265EFC FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 80268FC0 00265F00 4C 41 13 82 */ cror 2, 1, 2
+/* 80268FC4 00265F04 40 82 00 30 */ bne lbl_80268FF4
+/* 80268FC8 00265F08 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 80268FCC 00265F0C 4C 40 13 82 */ cror 2, 0, 2
+/* 80268FD0 00265F10 40 82 00 24 */ bne lbl_80268FF4
+/* 80268FD4 00265F14 57 C0 06 3F */ clrlwi. r0, r30, 0x18
+/* 80268FD8 00265F18 41 82 00 3C */ beq lbl_80269014
+/* 80268FDC 00265F1C FC 20 F8 90 */ fmr f1, f31
+/* 80268FE0 00265F20 7F 63 DB 78 */ mr r3, r27
+/* 80268FE4 00265F24 38 9B 00 0C */ addi r4, r27, 0xc
+/* 80268FE8 00265F28 7F A5 EB 78 */ mr r5, r29
+/* 80268FEC 00265F2C 4B FF FE E9 */ bl cM3d_CrossInfLineVsInfPlane_proc__FffPC3VecPC3VecP3Vec
+/* 80268FF0 00265F30 48 00 00 40 */ b lbl_80269030
+lbl_80268FF4:
+/* 80268FF4 00265F34 57 E0 06 3F */ clrlwi. r0, r31, 0x18
+/* 80268FF8 00265F38 41 82 00 1C */ beq lbl_80269014
+/* 80268FFC 00265F3C FC 20 F8 90 */ fmr f1, f31
+/* 80269000 00265F40 7F 63 DB 78 */ mr r3, r27
+/* 80269004 00265F44 38 9B 00 0C */ addi r4, r27, 0xc
+/* 80269008 00265F48 7F A5 EB 78 */ mr r5, r29
+/* 8026900C 00265F4C 4B FF FE C9 */ bl cM3d_CrossInfLineVsInfPlane_proc__FffPC3VecPC3VecP3Vec
+/* 80269010 00265F50 48 00 00 20 */ b lbl_80269030
+lbl_80269014:
+/* 80269014 00265F54 C0 1B 00 0C */ lfs f0, 0xc(r27)
+/* 80269018 00265F58 D0 1D 00 00 */ stfs f0, 0(r29)
+/* 8026901C 00265F5C C0 1B 00 10 */ lfs f0, 0x10(r27)
+/* 80269020 00265F60 D0 1D 00 04 */ stfs f0, 4(r29)
+/* 80269024 00265F64 C0 1B 00 14 */ lfs f0, 0x14(r27)
+/* 80269028 00265F68 D0 1D 00 08 */ stfs f0, 8(r29)
+/* 8026902C 00265F6C 38 60 00 00 */ li r3, 0
+lbl_80269030:
+/* 80269030 00265F70 E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0
+/* 80269034 00265F74 CB E1 00 20 */ lfd f31, 0x20(r1)
+/* 80269038 00265F78 39 61 00 20 */ addi r11, r1, 0x20
+/* 8026903C 00265F7C 48 0F 91 E5 */ bl _restgpr_27
+/* 80269040 00265F80 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80269044 00265F84 7C 08 03 A6 */ mtlr r0
+/* 80269048 00265F88 38 21 00 30 */ addi r1, r1, 0x30
+/* 8026904C 00265F8C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_80269050.s b/include/SComponent/c_m3d/asm/func_80269050.s
new file mode 100644
index 0000000000..9997cbb8dd
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_80269050.s
@@ -0,0 +1,834 @@
+/* 80269050 00265F90 94 21 FE 00 */ stwu r1, -0x200(r1)
+/* 80269054 00265F94 7C 08 02 A6 */ mflr r0
+/* 80269058 00265F98 90 01 02 04 */ stw r0, 0x204(r1)
+/* 8026905C 00265F9C DB E1 01 F0 */ stfd f31, 0x1f0(r1)
+/* 80269060 00265FA0 F3 E1 01 F8 */ psq_st f31, 504(r1), 0, 0
+/* 80269064 00265FA4 DB C1 01 E0 */ stfd f30, 0x1e0(r1)
+/* 80269068 00265FA8 F3 C1 01 E8 */ psq_st f30, 488(r1), 0, 0
+/* 8026906C 00265FAC DB A1 01 D0 */ stfd f29, 0x1d0(r1)
+/* 80269070 00265FB0 F3 A1 01 D8 */ psq_st f29, 472(r1), 0, 0
+/* 80269074 00265FB4 DB 81 01 C0 */ stfd f28, 0x1c0(r1)
+/* 80269078 00265FB8 F3 81 01 C8 */ psq_st f28, 456(r1), 0, 0
+/* 8026907C 00265FBC DB 61 01 B0 */ stfd f27, 0x1b0(r1)
+/* 80269080 00265FC0 F3 61 01 B8 */ psq_st f27, 440(r1), 0, 0
+/* 80269084 00265FC4 DB 41 01 A0 */ stfd f26, 0x1a0(r1)
+/* 80269088 00265FC8 F3 41 01 A8 */ psq_st f26, 424(r1), 0, 0
+/* 8026908C 00265FCC DB 21 01 90 */ stfd f25, 0x190(r1)
+/* 80269090 00265FD0 F3 21 01 98 */ psq_st f25, 408(r1), 0, 0
+/* 80269094 00265FD4 DB 01 01 80 */ stfd f24, 0x180(r1)
+/* 80269098 00265FD8 F3 01 01 88 */ psq_st f24, 392(r1), 0, 0
+/* 8026909C 00265FDC DA E1 01 70 */ stfd f23, 0x170(r1)
+/* 802690A0 00265FE0 F2 E1 01 78 */ psq_st f23, 376(r1), 0, 0
+/* 802690A4 00265FE4 DA C1 01 60 */ stfd f22, 0x160(r1)
+/* 802690A8 00265FE8 F2 C1 01 68 */ psq_st f22, 360(r1), 0, 0
+/* 802690AC 00265FEC DA A1 01 50 */ stfd f21, 0x150(r1)
+/* 802690B0 00265FF0 F2 A1 01 58 */ psq_st f21, 344(r1), 0, 0
+/* 802690B4 00265FF4 DA 81 01 40 */ stfd f20, 0x140(r1)
+/* 802690B8 00265FF8 F2 81 01 48 */ psq_st f20, 328(r1), 0, 0
+/* 802690BC 00265FFC DA 61 01 30 */ stfd f19, 0x130(r1)
+/* 802690C0 00266000 F2 61 01 38 */ psq_st f19, 312(r1), 0, 0
+/* 802690C4 00266004 DA 41 01 20 */ stfd f18, 0x120(r1)
+/* 802690C8 00266008 F2 41 01 28 */ psq_st f18, 296(r1), 0, 0
+/* 802690CC 0026600C DA 21 01 10 */ stfd f17, 0x110(r1)
+/* 802690D0 00266010 F2 21 01 18 */ psq_st f17, 280(r1), 0, 0
+/* 802690D4 00266014 39 61 01 10 */ addi r11, r1, 0x110
+/* 802690D8 00266018 48 0F 91 01 */ bl _savegpr_28
+/* 802690DC 0026601C 7C 7C 1B 78 */ mr r28, r3
+/* 802690E0 00266020 7C 9D 23 78 */ mr r29, r4
+/* 802690E4 00266024 3B E0 00 00 */ li r31, 0
+/* 802690E8 00266028 3B C0 00 00 */ li r30, 0
+/* 802690EC 0026602C C0 25 00 00 */ lfs f1, 0(r5)
+/* 802690F0 00266030 C0 04 00 00 */ lfs f0, 0(r4)
+/* 802690F4 00266034 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802690F8 00266038 40 81 00 20 */ ble lbl_80269118
+/* 802690FC 0026603C C0 46 00 00 */ lfs f2, 0(r6)
+/* 80269100 00266040 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 80269104 00266044 40 81 00 0C */ ble lbl_80269110
+/* 80269108 00266048 38 60 00 00 */ li r3, 0
+/* 8026910C 0026604C 48 00 0A 90 */ b lbl_80269B9C
+lbl_80269110:
+/* 80269110 00266050 83 E2 B7 40 */ lwz r31, lbl_80455140-_SDA2_BASE_(r2)
+/* 80269114 00266054 48 00 00 14 */ b lbl_80269128
+lbl_80269118:
+/* 80269118 00266058 C0 46 00 00 */ lfs f2, 0(r6)
+/* 8026911C 0026605C FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 80269120 00266060 40 81 00 08 */ ble lbl_80269128
+/* 80269124 00266064 83 C2 B7 40 */ lwz r30, lbl_80455140-_SDA2_BASE_(r2)
+lbl_80269128:
+/* 80269128 00266068 57 E0 07 FF */ clrlwi. r0, r31, 0x1f
+/* 8026912C 0026606C 40 82 00 38 */ bne lbl_80269164
+/* 80269130 00266070 C0 7C 00 00 */ lfs f3, 0(r28)
+/* 80269134 00266074 FC 01 18 40 */ fcmpo cr0, f1, f3
+/* 80269138 00266078 40 80 00 2C */ bge lbl_80269164
+/* 8026913C 0026607C 57 C0 07 FF */ clrlwi. r0, r30, 0x1f
+/* 80269140 00266080 40 82 00 18 */ bne lbl_80269158
+/* 80269144 00266084 C0 46 00 00 */ lfs f2, 0(r6)
+/* 80269148 00266088 FC 02 18 40 */ fcmpo cr0, f2, f3
+/* 8026914C 0026608C 40 80 00 0C */ bge lbl_80269158
+/* 80269150 00266090 38 60 00 00 */ li r3, 0
+/* 80269154 00266094 48 00 0A 48 */ b lbl_80269B9C
+lbl_80269158:
+/* 80269158 00266098 80 02 B7 44 */ lwz r0, lbl_80455144-_SDA2_BASE_(r2)
+/* 8026915C 0026609C 7F FF 03 78 */ or r31, r31, r0
+/* 80269160 002660A0 48 00 00 24 */ b lbl_80269184
+lbl_80269164:
+/* 80269164 002660A4 57 C0 07 FF */ clrlwi. r0, r30, 0x1f
+/* 80269168 002660A8 40 82 00 1C */ bne lbl_80269184
+/* 8026916C 002660AC C0 66 00 00 */ lfs f3, 0(r6)
+/* 80269170 002660B0 C0 5C 00 00 */ lfs f2, 0(r28)
+/* 80269174 002660B4 FC 03 10 40 */ fcmpo cr0, f3, f2
+/* 80269178 002660B8 40 80 00 0C */ bge lbl_80269184
+/* 8026917C 002660BC 80 02 B7 44 */ lwz r0, lbl_80455144-_SDA2_BASE_(r2)
+/* 80269180 002660C0 7F DE 03 78 */ or r30, r30, r0
+lbl_80269184:
+/* 80269184 002660C4 C0 65 00 08 */ lfs f3, 8(r5)
+/* 80269188 002660C8 C0 5D 00 08 */ lfs f2, 8(r29)
+/* 8026918C 002660CC FC 03 10 40 */ fcmpo cr0, f3, f2
+/* 80269190 002660D0 40 81 00 24 */ ble lbl_802691B4
+/* 80269194 002660D4 C0 86 00 08 */ lfs f4, 8(r6)
+/* 80269198 002660D8 FC 04 10 40 */ fcmpo cr0, f4, f2
+/* 8026919C 002660DC 40 81 00 0C */ ble lbl_802691A8
+/* 802691A0 002660E0 38 60 00 00 */ li r3, 0
+/* 802691A4 002660E4 48 00 09 F8 */ b lbl_80269B9C
+lbl_802691A8:
+/* 802691A8 002660E8 80 02 B7 48 */ lwz r0, lbl_80455148-_SDA2_BASE_(r2)
+/* 802691AC 002660EC 7F FF 03 78 */ or r31, r31, r0
+/* 802691B0 002660F0 48 00 00 18 */ b lbl_802691C8
+lbl_802691B4:
+/* 802691B4 002660F4 C0 86 00 08 */ lfs f4, 8(r6)
+/* 802691B8 002660F8 FC 04 10 40 */ fcmpo cr0, f4, f2
+/* 802691BC 002660FC 40 81 00 0C */ ble lbl_802691C8
+/* 802691C0 00266100 80 02 B7 48 */ lwz r0, lbl_80455148-_SDA2_BASE_(r2)
+/* 802691C4 00266104 7F DE 03 78 */ or r30, r30, r0
+lbl_802691C8:
+/* 802691C8 00266108 57 E0 06 F7 */ rlwinm. r0, r31, 0, 0x1b, 0x1b
+/* 802691CC 0026610C 40 82 00 38 */ bne lbl_80269204
+/* 802691D0 00266110 C0 BC 00 08 */ lfs f5, 8(r28)
+/* 802691D4 00266114 FC 03 28 40 */ fcmpo cr0, f3, f5
+/* 802691D8 00266118 40 80 00 2C */ bge lbl_80269204
+/* 802691DC 0026611C 57 C0 06 F7 */ rlwinm. r0, r30, 0, 0x1b, 0x1b
+/* 802691E0 00266120 40 82 00 18 */ bne lbl_802691F8
+/* 802691E4 00266124 C0 86 00 08 */ lfs f4, 8(r6)
+/* 802691E8 00266128 FC 04 28 40 */ fcmpo cr0, f4, f5
+/* 802691EC 0026612C 40 80 00 0C */ bge lbl_802691F8
+/* 802691F0 00266130 38 60 00 00 */ li r3, 0
+/* 802691F4 00266134 48 00 09 A8 */ b lbl_80269B9C
+lbl_802691F8:
+/* 802691F8 00266138 80 02 B7 4C */ lwz r0, lbl_8045514C-_SDA2_BASE_(r2)
+/* 802691FC 0026613C 7F FF 03 78 */ or r31, r31, r0
+/* 80269200 00266140 48 00 00 24 */ b lbl_80269224
+lbl_80269204:
+/* 80269204 00266144 57 C0 06 F7 */ rlwinm. r0, r30, 0, 0x1b, 0x1b
+/* 80269208 00266148 40 82 00 1C */ bne lbl_80269224
+/* 8026920C 0026614C C0 A6 00 08 */ lfs f5, 8(r6)
+/* 80269210 00266150 C0 9C 00 08 */ lfs f4, 8(r28)
+/* 80269214 00266154 FC 05 20 40 */ fcmpo cr0, f5, f4
+/* 80269218 00266158 40 80 00 0C */ bge lbl_80269224
+/* 8026921C 0026615C 80 02 B7 4C */ lwz r0, lbl_8045514C-_SDA2_BASE_(r2)
+/* 80269220 00266160 7F DE 03 78 */ or r30, r30, r0
+lbl_80269224:
+/* 80269224 00266164 C0 85 00 04 */ lfs f4, 4(r5)
+/* 80269228 00266168 C1 7D 00 04 */ lfs f11, 4(r29)
+/* 8026922C 0026616C FC 04 58 40 */ fcmpo cr0, f4, f11
+/* 80269230 00266170 40 81 00 24 */ ble lbl_80269254
+/* 80269234 00266174 C0 A6 00 04 */ lfs f5, 4(r6)
+/* 80269238 00266178 FC 05 58 40 */ fcmpo cr0, f5, f11
+/* 8026923C 0026617C 40 81 00 0C */ ble lbl_80269248
+/* 80269240 00266180 38 60 00 00 */ li r3, 0
+/* 80269244 00266184 48 00 09 58 */ b lbl_80269B9C
+lbl_80269248:
+/* 80269248 00266188 80 02 B7 50 */ lwz r0, lbl_80455150-_SDA2_BASE_(r2)
+/* 8026924C 0026618C 7F FF 03 78 */ or r31, r31, r0
+/* 80269250 00266190 48 00 00 18 */ b lbl_80269268
+lbl_80269254:
+/* 80269254 00266194 C0 A6 00 04 */ lfs f5, 4(r6)
+/* 80269258 00266198 FC 05 58 40 */ fcmpo cr0, f5, f11
+/* 8026925C 0026619C 40 81 00 0C */ ble lbl_80269268
+/* 80269260 002661A0 80 02 B7 50 */ lwz r0, lbl_80455150-_SDA2_BASE_(r2)
+/* 80269264 002661A4 7F DE 03 78 */ or r30, r30, r0
+lbl_80269268:
+/* 80269268 002661A8 57 E0 07 7B */ rlwinm. r0, r31, 0, 0x1d, 0x1d
+/* 8026926C 002661AC 40 82 00 38 */ bne lbl_802692A4
+/* 80269270 002661B0 C0 DC 00 04 */ lfs f6, 4(r28)
+/* 80269274 002661B4 FC 04 30 40 */ fcmpo cr0, f4, f6
+/* 80269278 002661B8 40 80 00 2C */ bge lbl_802692A4
+/* 8026927C 002661BC 57 C0 07 7B */ rlwinm. r0, r30, 0, 0x1d, 0x1d
+/* 80269280 002661C0 40 82 00 18 */ bne lbl_80269298
+/* 80269284 002661C4 C0 A6 00 04 */ lfs f5, 4(r6)
+/* 80269288 002661C8 FC 05 30 40 */ fcmpo cr0, f5, f6
+/* 8026928C 002661CC 40 80 00 0C */ bge lbl_80269298
+/* 80269290 002661D0 38 60 00 00 */ li r3, 0
+/* 80269294 002661D4 48 00 09 08 */ b lbl_80269B9C
+lbl_80269298:
+/* 80269298 002661D8 80 02 B7 54 */ lwz r0, lbl_80455154-_SDA2_BASE_(r2)
+/* 8026929C 002661DC 7F FF 03 78 */ or r31, r31, r0
+/* 802692A0 002661E0 48 00 00 24 */ b lbl_802692C4
+lbl_802692A4:
+/* 802692A4 002661E4 57 C0 07 7B */ rlwinm. r0, r30, 0, 0x1d, 0x1d
+/* 802692A8 002661E8 40 82 00 1C */ bne lbl_802692C4
+/* 802692AC 002661EC C0 C6 00 04 */ lfs f6, 4(r6)
+/* 802692B0 002661F0 C0 BC 00 04 */ lfs f5, 4(r28)
+/* 802692B4 002661F4 FC 06 28 40 */ fcmpo cr0, f6, f5
+/* 802692B8 002661F8 40 80 00 0C */ bge lbl_802692C4
+/* 802692BC 002661FC 80 02 B7 54 */ lwz r0, lbl_80455154-_SDA2_BASE_(r2)
+/* 802692C0 00266200 7F DE 03 78 */ or r30, r30, r0
+lbl_802692C4:
+/* 802692C4 00266204 28 1F 00 00 */ cmplwi r31, 0
+/* 802692C8 00266208 40 82 00 0C */ bne lbl_802692D4
+/* 802692CC 0026620C 38 60 00 01 */ li r3, 1
+/* 802692D0 00266210 48 00 08 CC */ b lbl_80269B9C
+lbl_802692D4:
+/* 802692D4 00266214 28 1E 00 00 */ cmplwi r30, 0
+/* 802692D8 00266218 40 82 00 0C */ bne lbl_802692E4
+/* 802692DC 0026621C 38 60 00 01 */ li r3, 1
+/* 802692E0 00266220 48 00 08 BC */ b lbl_80269B9C
+lbl_802692E4:
+/* 802692E4 00266224 38 60 00 00 */ li r3, 0
+/* 802692E8 00266228 FE 80 08 50 */ fneg f20, f1
+/* 802692EC 0026622C EC B4 20 2A */ fadds f5, f20, f4
+/* 802692F0 00266230 C1 BC 00 00 */ lfs f13, 0(r28)
+/* 802692F4 00266234 FE A0 68 50 */ fneg f21, f13
+/* 802692F8 00266238 ED 35 58 2A */ fadds f9, f21, f11
+/* 802692FC 0026623C FC 05 48 40 */ fcmpo cr0, f5, f9
+/* 80269300 00266240 40 81 00 08 */ ble lbl_80269308
+/* 80269304 00266244 80 62 B7 58 */ lwz r3, lbl_80455158-_SDA2_BASE_(r2)
+lbl_80269308:
+/* 80269308 00266248 FC E0 00 50 */ fneg f7, f0
+/* 8026930C 0026624C C0 DC 00 04 */ lfs f6, 4(r28)
+/* 80269310 00266250 ED 47 30 2A */ fadds f10, f7, f6
+/* 80269314 00266254 FC 05 50 40 */ fcmpo cr0, f5, f10
+/* 80269318 00266258 40 80 00 0C */ bge lbl_80269324
+/* 8026931C 0026625C 80 02 B7 5C */ lwz r0, lbl_8045515C-_SDA2_BASE_(r2)
+/* 80269320 00266260 7C 63 03 78 */ or r3, r3, r0
+lbl_80269324:
+/* 80269324 00266264 EC E1 20 2A */ fadds f7, f1, f4
+/* 80269328 00266268 ED 80 58 2A */ fadds f12, f0, f11
+/* 8026932C 0026626C FC 07 60 40 */ fcmpo cr0, f7, f12
+/* 80269330 00266270 40 81 00 0C */ ble lbl_8026933C
+/* 80269334 00266274 80 02 B7 60 */ lwz r0, lbl_80455160-_SDA2_BASE_(r2)
+/* 80269338 00266278 7C 63 03 78 */ or r3, r3, r0
+lbl_8026933C:
+/* 8026933C 0026627C EF CD 30 2A */ fadds f30, f13, f6
+/* 80269340 00266280 FC 07 F0 40 */ fcmpo cr0, f7, f30
+/* 80269344 00266284 40 80 00 0C */ bge lbl_80269350
+/* 80269348 00266288 80 02 B7 64 */ lwz r0, lbl_80455164-_SDA2_BASE_(r2)
+/* 8026934C 0026628C 7C 63 03 78 */ or r3, r3, r0
+lbl_80269350:
+/* 80269350 00266290 FE E0 18 50 */ fneg f23, f3
+/* 80269354 00266294 EE 77 20 2A */ fadds f19, f23, f4
+/* 80269358 00266298 C1 1C 00 08 */ lfs f8, 8(r28)
+/* 8026935C 0026629C FE C0 40 50 */ fneg f22, f8
+/* 80269360 002662A0 EF B6 58 2A */ fadds f29, f22, f11
+/* 80269364 002662A4 FC 13 E8 40 */ fcmpo cr0, f19, f29
+/* 80269368 002662A8 40 81 00 0C */ ble lbl_80269374
+/* 8026936C 002662AC 80 02 B7 68 */ lwz r0, lbl_80455168-_SDA2_BASE_(r2)
+/* 80269370 002662B0 7C 63 03 78 */ or r3, r3, r0
+lbl_80269374:
+/* 80269374 002662B4 FF 00 10 50 */ fneg f24, f2
+/* 80269378 002662B8 EF 98 30 2A */ fadds f28, f24, f6
+/* 8026937C 002662BC FC 13 E0 40 */ fcmpo cr0, f19, f28
+/* 80269380 002662C0 40 80 00 0C */ bge lbl_8026938C
+/* 80269384 002662C4 80 02 B7 6C */ lwz r0, lbl_8045516C-_SDA2_BASE_(r2)
+/* 80269388 002662C8 7C 63 03 78 */ or r3, r3, r0
+lbl_8026938C:
+/* 8026938C 002662CC EE 63 20 2A */ fadds f19, f3, f4
+/* 80269390 002662D0 EF 62 58 2A */ fadds f27, f2, f11
+/* 80269394 002662D4 FC 13 D8 40 */ fcmpo cr0, f19, f27
+/* 80269398 002662D8 40 81 00 0C */ ble lbl_802693A4
+/* 8026939C 002662DC 80 02 B7 70 */ lwz r0, lbl_80455170-_SDA2_BASE_(r2)
+/* 802693A0 002662E0 7C 63 03 78 */ or r3, r3, r0
+lbl_802693A4:
+/* 802693A4 002662E4 EF 48 30 2A */ fadds f26, f8, f6
+/* 802693A8 002662E8 FC 13 D0 40 */ fcmpo cr0, f19, f26
+/* 802693AC 002662EC 40 80 00 0C */ bge lbl_802693B8
+/* 802693B0 002662F0 80 02 B7 74 */ lwz r0, lbl_80455174-_SDA2_BASE_(r2)
+/* 802693B4 002662F4 7C 63 03 78 */ or r3, r3, r0
+lbl_802693B8:
+/* 802693B8 002662F8 ED 77 08 2A */ fadds f11, f23, f1
+/* 802693BC 002662FC EF 36 00 2A */ fadds f25, f22, f0
+/* 802693C0 00266300 FC 0B C8 40 */ fcmpo cr0, f11, f25
+/* 802693C4 00266304 40 81 00 0C */ ble lbl_802693D0
+/* 802693C8 00266308 80 02 B7 78 */ lwz r0, lbl_80455178-_SDA2_BASE_(r2)
+/* 802693CC 0026630C 7C 63 03 78 */ or r3, r3, r0
+lbl_802693D0:
+/* 802693D0 00266310 EF 18 68 2A */ fadds f24, f24, f13
+/* 802693D4 00266314 FC 0B C0 40 */ fcmpo cr0, f11, f24
+/* 802693D8 00266318 40 80 00 0C */ bge lbl_802693E4
+/* 802693DC 0026631C 80 02 B7 7C */ lwz r0, lbl_8045517C-_SDA2_BASE_(r2)
+/* 802693E0 00266320 7C 63 03 78 */ or r3, r3, r0
+lbl_802693E4:
+/* 802693E4 00266324 ED 63 08 2A */ fadds f11, f3, f1
+/* 802693E8 00266328 EE E2 00 2A */ fadds f23, f2, f0
+/* 802693EC 0026632C FC 0B B8 40 */ fcmpo cr0, f11, f23
+/* 802693F0 00266330 40 81 00 0C */ ble lbl_802693FC
+/* 802693F4 00266334 80 02 B7 80 */ lwz r0, lbl_80455180-_SDA2_BASE_(r2)
+/* 802693F8 00266338 7C 63 03 78 */ or r3, r3, r0
+lbl_802693FC:
+/* 802693FC 0026633C EE C8 68 2A */ fadds f22, f8, f13
+/* 80269400 00266340 FC 0B B0 40 */ fcmpo cr0, f11, f22
+/* 80269404 00266344 40 80 00 0C */ bge lbl_80269410
+/* 80269408 00266348 80 02 B7 84 */ lwz r0, lbl_80455184-_SDA2_BASE_(r2)
+/* 8026940C 0026634C 7C 63 03 78 */ or r3, r3, r0
+lbl_80269410:
+/* 80269410 00266350 54 60 40 2E */ slwi r0, r3, 8
+/* 80269414 00266354 7F FF 03 78 */ or r31, r31, r0
+/* 80269418 00266358 38 60 00 00 */ li r3, 0
+/* 8026941C 0026635C C3 E6 00 00 */ lfs f31, 0(r6)
+/* 80269420 00266360 FE 60 F8 50 */ fneg f19, f31
+/* 80269424 00266364 C1 A6 00 04 */ lfs f13, 4(r6)
+/* 80269428 00266368 ED 73 68 2A */ fadds f11, f19, f13
+/* 8026942C 0026636C FC 0B 48 40 */ fcmpo cr0, f11, f9
+/* 80269430 00266370 40 81 00 08 */ ble lbl_80269438
+/* 80269434 00266374 80 62 B7 58 */ lwz r3, lbl_80455158-_SDA2_BASE_(r2)
+lbl_80269438:
+/* 80269438 00266378 FC 0B 50 40 */ fcmpo cr0, f11, f10
+/* 8026943C 0026637C 40 80 00 0C */ bge lbl_80269448
+/* 80269440 00266380 80 02 B7 5C */ lwz r0, lbl_8045515C-_SDA2_BASE_(r2)
+/* 80269444 00266384 7C 63 03 78 */ or r3, r3, r0
+lbl_80269448:
+/* 80269448 00266388 ED 5F 68 2A */ fadds f10, f31, f13
+/* 8026944C 0026638C FC 0A 60 40 */ fcmpo cr0, f10, f12
+/* 80269450 00266390 40 81 00 0C */ ble lbl_8026945C
+/* 80269454 00266394 80 02 B7 60 */ lwz r0, lbl_80455160-_SDA2_BASE_(r2)
+/* 80269458 00266398 7C 63 03 78 */ or r3, r3, r0
+lbl_8026945C:
+/* 8026945C 0026639C FC 0A F0 40 */ fcmpo cr0, f10, f30
+/* 80269460 002663A0 40 80 00 0C */ bge lbl_8026946C
+/* 80269464 002663A4 80 02 B7 64 */ lwz r0, lbl_80455164-_SDA2_BASE_(r2)
+/* 80269468 002663A8 7C 63 03 78 */ or r3, r3, r0
+lbl_8026946C:
+/* 8026946C 002663AC C3 C6 00 08 */ lfs f30, 8(r6)
+/* 80269470 002663B0 FE 20 F0 50 */ fneg f17, f30
+/* 80269474 002663B4 EE 51 68 2A */ fadds f18, f17, f13
+/* 80269478 002663B8 FC 12 E8 40 */ fcmpo cr0, f18, f29
+/* 8026947C 002663BC 40 81 00 0C */ ble lbl_80269488
+/* 80269480 002663C0 80 02 B7 68 */ lwz r0, lbl_80455168-_SDA2_BASE_(r2)
+/* 80269484 002663C4 7C 63 03 78 */ or r3, r3, r0
+lbl_80269488:
+/* 80269488 002663C8 FC 12 E0 40 */ fcmpo cr0, f18, f28
+/* 8026948C 002663CC 40 80 00 0C */ bge lbl_80269498
+/* 80269490 002663D0 80 02 B7 6C */ lwz r0, lbl_8045516C-_SDA2_BASE_(r2)
+/* 80269494 002663D4 7C 63 03 78 */ or r3, r3, r0
+lbl_80269498:
+/* 80269498 002663D8 EE 5E 68 2A */ fadds f18, f30, f13
+/* 8026949C 002663DC FC 12 D8 40 */ fcmpo cr0, f18, f27
+/* 802694A0 002663E0 40 81 00 0C */ ble lbl_802694AC
+/* 802694A4 002663E4 80 02 B7 70 */ lwz r0, lbl_80455170-_SDA2_BASE_(r2)
+/* 802694A8 002663E8 7C 63 03 78 */ or r3, r3, r0
+lbl_802694AC:
+/* 802694AC 002663EC FC 12 D0 40 */ fcmpo cr0, f18, f26
+/* 802694B0 002663F0 40 80 00 0C */ bge lbl_802694BC
+/* 802694B4 002663F4 80 02 B7 74 */ lwz r0, lbl_80455174-_SDA2_BASE_(r2)
+/* 802694B8 002663F8 7C 63 03 78 */ or r3, r3, r0
+lbl_802694BC:
+/* 802694BC 002663FC EE 31 F8 2A */ fadds f17, f17, f31
+/* 802694C0 00266400 FC 11 C8 40 */ fcmpo cr0, f17, f25
+/* 802694C4 00266404 40 81 00 0C */ ble lbl_802694D0
+/* 802694C8 00266408 80 02 B7 78 */ lwz r0, lbl_80455178-_SDA2_BASE_(r2)
+/* 802694CC 0026640C 7C 63 03 78 */ or r3, r3, r0
+lbl_802694D0:
+/* 802694D0 00266410 FC 11 C0 40 */ fcmpo cr0, f17, f24
+/* 802694D4 00266414 40 80 00 0C */ bge lbl_802694E0
+/* 802694D8 00266418 80 02 B7 7C */ lwz r0, lbl_8045517C-_SDA2_BASE_(r2)
+/* 802694DC 0026641C 7C 63 03 78 */ or r3, r3, r0
+lbl_802694E0:
+/* 802694E0 00266420 EE 3E F8 2A */ fadds f17, f30, f31
+/* 802694E4 00266424 FC 11 B8 40 */ fcmpo cr0, f17, f23
+/* 802694E8 00266428 40 81 00 0C */ ble lbl_802694F4
+/* 802694EC 0026642C 80 02 B7 80 */ lwz r0, lbl_80455180-_SDA2_BASE_(r2)
+/* 802694F0 00266430 7C 63 03 78 */ or r3, r3, r0
+lbl_802694F4:
+/* 802694F4 00266434 FC 11 B0 40 */ fcmpo cr0, f17, f22
+/* 802694F8 00266438 40 80 00 0C */ bge lbl_80269504
+/* 802694FC 0026643C 80 02 B7 84 */ lwz r0, lbl_80455184-_SDA2_BASE_(r2)
+/* 80269500 00266440 7C 63 03 78 */ or r3, r3, r0
+lbl_80269504:
+/* 80269504 00266444 54 60 40 2E */ slwi r0, r3, 8
+/* 80269508 00266448 7F DE 03 78 */ or r30, r30, r0
+/* 8026950C 0026644C 7F E0 F0 39 */ and. r0, r31, r30
+/* 80269510 00266450 41 82 00 0C */ beq lbl_8026951C
+/* 80269514 00266454 38 60 00 00 */ li r3, 0
+/* 80269518 00266458 48 00 06 84 */ b lbl_80269B9C
+lbl_8026951C:
+/* 8026951C 0026645C 38 60 00 00 */ li r3, 0
+/* 80269520 00266460 EE E3 38 2A */ fadds f23, f3, f7
+/* 80269524 00266464 EE C2 60 2A */ fadds f22, f2, f12
+/* 80269528 00266468 FC 17 B0 40 */ fcmpo cr0, f23, f22
+/* 8026952C 0026646C 40 81 00 08 */ ble lbl_80269534
+/* 80269530 00266470 80 62 B7 88 */ lwz r3, lbl_80455188-_SDA2_BASE_(r2)
+lbl_80269534:
+/* 80269534 00266474 EF 03 28 2A */ fadds f24, f3, f5
+/* 80269538 00266478 EE E2 48 2A */ fadds f23, f2, f9
+/* 8026953C 0026647C FC 18 B8 40 */ fcmpo cr0, f24, f23
+/* 80269540 00266480 40 81 00 0C */ ble lbl_8026954C
+/* 80269544 00266484 80 02 B7 8C */ lwz r0, lbl_8045518C-_SDA2_BASE_(r2)
+/* 80269548 00266488 7C 63 03 78 */ or r3, r3, r0
+lbl_8026954C:
+/* 8026954C 0026648C EF 05 18 28 */ fsubs f24, f5, f3
+/* 80269550 00266490 EC A9 40 28 */ fsubs f5, f9, f8
+/* 80269554 00266494 FC 18 28 40 */ fcmpo cr0, f24, f5
+/* 80269558 00266498 40 81 00 0C */ ble lbl_80269564
+/* 8026955C 0026649C 80 02 B7 90 */ lwz r0, lbl_80455190-_SDA2_BASE_(r2)
+/* 80269560 002664A0 7C 63 03 78 */ or r3, r3, r0
+lbl_80269564:
+/* 80269564 002664A4 EC E7 18 28 */ fsubs f7, f7, f3
+/* 80269568 002664A8 ED 2C 40 28 */ fsubs f9, f12, f8
+/* 8026956C 002664AC FC 07 48 40 */ fcmpo cr0, f7, f9
+/* 80269570 002664B0 40 81 00 0C */ ble lbl_8026957C
+/* 80269574 002664B4 80 02 B7 94 */ lwz r0, lbl_80455194-_SDA2_BASE_(r2)
+/* 80269578 002664B8 7C 63 03 78 */ or r3, r3, r0
+lbl_8026957C:
+/* 8026957C 002664BC EC E1 20 28 */ fsubs f7, f1, f4
+/* 80269580 002664C0 EC E3 38 2A */ fadds f7, f3, f7
+/* 80269584 002664C4 EC 00 30 28 */ fsubs f0, f0, f6
+/* 80269588 002664C8 ED 82 00 2A */ fadds f12, f2, f0
+/* 8026958C 002664CC FC 07 60 40 */ fcmpo cr0, f7, f12
+/* 80269590 002664D0 40 81 00 0C */ ble lbl_8026959C
+/* 80269594 002664D4 80 02 B7 98 */ lwz r0, lbl_80455198-_SDA2_BASE_(r2)
+/* 80269598 002664D8 7C 63 03 78 */ or r3, r3, r0
+lbl_8026959C:
+/* 8026959C 002664DC EC F4 20 28 */ fsubs f7, f20, f4
+/* 802695A0 002664E0 EC 03 38 2A */ fadds f0, f3, f7
+/* 802695A4 002664E4 EC 95 30 28 */ fsubs f4, f21, f6
+/* 802695A8 002664E8 EC 42 20 2A */ fadds f2, f2, f4
+/* 802695AC 002664EC FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 802695B0 002664F0 40 81 00 0C */ ble lbl_802695BC
+/* 802695B4 002664F4 80 02 B7 9C */ lwz r0, lbl_8045519C-_SDA2_BASE_(r2)
+/* 802695B8 002664F8 7C 63 03 78 */ or r3, r3, r0
+lbl_802695BC:
+/* 802695BC 002664FC FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 802695C0 00266500 40 81 00 0C */ ble lbl_802695CC
+/* 802695C4 00266504 80 02 B7 A0 */ lwz r0, lbl_804551A0-_SDA2_BASE_(r2)
+/* 802695C8 00266508 7C 63 03 78 */ or r3, r3, r0
+lbl_802695CC:
+/* 802695CC 0026650C EC 07 18 28 */ fsubs f0, f7, f3
+/* 802695D0 00266510 EC 64 40 28 */ fsubs f3, f4, f8
+/* 802695D4 00266514 FC 00 18 40 */ fcmpo cr0, f0, f3
+/* 802695D8 00266518 40 81 00 0C */ ble lbl_802695E4
+/* 802695DC 0026651C 80 02 B7 A4 */ lwz r0, lbl_804551A4-_SDA2_BASE_(r2)
+/* 802695E0 00266520 7C 63 03 78 */ or r3, r3, r0
+lbl_802695E4:
+/* 802695E4 00266524 54 60 C0 0E */ slwi r0, r3, 0x18
+/* 802695E8 00266528 7F FF 03 78 */ or r31, r31, r0
+/* 802695EC 0026652C 38 60 00 00 */ li r3, 0
+/* 802695F0 00266530 EC 1E 50 2A */ fadds f0, f30, f10
+/* 802695F4 00266534 FC 00 B0 40 */ fcmpo cr0, f0, f22
+/* 802695F8 00266538 40 81 00 08 */ ble lbl_80269600
+/* 802695FC 0026653C 80 62 B7 88 */ lwz r3, lbl_80455188-_SDA2_BASE_(r2)
+lbl_80269600:
+/* 80269600 00266540 EC 1E 58 2A */ fadds f0, f30, f11
+/* 80269604 00266544 FC 00 B8 40 */ fcmpo cr0, f0, f23
+/* 80269608 00266548 40 81 00 0C */ ble lbl_80269614
+/* 8026960C 0026654C 80 02 B7 8C */ lwz r0, lbl_8045518C-_SDA2_BASE_(r2)
+/* 80269610 00266550 7C 63 03 78 */ or r3, r3, r0
+lbl_80269614:
+/* 80269614 00266554 EC 0B F0 28 */ fsubs f0, f11, f30
+/* 80269618 00266558 FC 00 28 40 */ fcmpo cr0, f0, f5
+/* 8026961C 0026655C 40 81 00 0C */ ble lbl_80269628
+/* 80269620 00266560 80 02 B7 90 */ lwz r0, lbl_80455190-_SDA2_BASE_(r2)
+/* 80269624 00266564 7C 63 03 78 */ or r3, r3, r0
+lbl_80269628:
+/* 80269628 00266568 EC 0A F0 28 */ fsubs f0, f10, f30
+/* 8026962C 0026656C FC 00 48 40 */ fcmpo cr0, f0, f9
+/* 80269630 00266570 40 81 00 0C */ ble lbl_8026963C
+/* 80269634 00266574 80 02 B7 94 */ lwz r0, lbl_80455194-_SDA2_BASE_(r2)
+/* 80269638 00266578 7C 63 03 78 */ or r3, r3, r0
+lbl_8026963C:
+/* 8026963C 0026657C EC 1F 68 28 */ fsubs f0, f31, f13
+/* 80269640 00266580 EC 1E 00 2A */ fadds f0, f30, f0
+/* 80269644 00266584 FC 00 60 40 */ fcmpo cr0, f0, f12
+/* 80269648 00266588 40 81 00 0C */ ble lbl_80269654
+/* 8026964C 0026658C 80 02 B7 98 */ lwz r0, lbl_80455198-_SDA2_BASE_(r2)
+/* 80269650 00266590 7C 63 03 78 */ or r3, r3, r0
+lbl_80269654:
+/* 80269654 00266594 EC 93 68 28 */ fsubs f4, f19, f13
+/* 80269658 00266598 EC 1E 20 2A */ fadds f0, f30, f4
+/* 8026965C 0026659C FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 80269660 002665A0 40 81 00 0C */ ble lbl_8026966C
+/* 80269664 002665A4 80 02 B7 9C */ lwz r0, lbl_8045519C-_SDA2_BASE_(r2)
+/* 80269668 002665A8 7C 63 03 78 */ or r3, r3, r0
+lbl_8026966C:
+/* 8026966C 002665AC FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 80269670 002665B0 40 81 00 0C */ ble lbl_8026967C
+/* 80269674 002665B4 80 02 B7 A0 */ lwz r0, lbl_804551A0-_SDA2_BASE_(r2)
+/* 80269678 002665B8 7C 63 03 78 */ or r3, r3, r0
+lbl_8026967C:
+/* 8026967C 002665BC EC 04 F0 28 */ fsubs f0, f4, f30
+/* 80269680 002665C0 FC 00 18 40 */ fcmpo cr0, f0, f3
+/* 80269684 002665C4 40 81 00 0C */ ble lbl_80269690
+/* 80269688 002665C8 80 02 B7 A4 */ lwz r0, lbl_804551A4-_SDA2_BASE_(r2)
+/* 8026968C 002665CC 7C 63 03 78 */ or r3, r3, r0
+lbl_80269690:
+/* 80269690 002665D0 54 60 C0 0E */ slwi r0, r3, 0x18
+/* 80269694 002665D4 7F DE 03 78 */ or r30, r30, r0
+/* 80269698 002665D8 7F E0 F0 39 */ and. r0, r31, r30
+/* 8026969C 002665DC 41 82 00 0C */ beq lbl_802696A8
+/* 802696A0 002665E0 38 60 00 00 */ li r3, 0
+/* 802696A4 002665E4 48 00 04 F8 */ b lbl_80269B9C
+lbl_802696A8:
+/* 802696A8 002665E8 D0 21 00 14 */ stfs f1, 0x14(r1)
+/* 802696AC 002665EC C0 05 00 04 */ lfs f0, 4(r5)
+/* 802696B0 002665F0 D0 01 00 18 */ stfs f0, 0x18(r1)
+/* 802696B4 002665F4 C0 05 00 08 */ lfs f0, 8(r5)
+/* 802696B8 002665F8 D0 01 00 1C */ stfs f0, 0x1c(r1)
+/* 802696BC 002665FC C0 06 00 00 */ lfs f0, 0(r6)
+/* 802696C0 00266600 D0 01 00 08 */ stfs f0, 8(r1)
+/* 802696C4 00266604 C0 06 00 04 */ lfs f0, 4(r6)
+/* 802696C8 00266608 D0 01 00 0C */ stfs f0, 0xc(r1)
+/* 802696CC 0026660C C0 06 00 08 */ lfs f0, 8(r6)
+/* 802696D0 00266610 D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 802696D4 00266614 38 61 00 E0 */ addi r3, r1, 0xe0
+/* 802696D8 00266618 38 81 00 14 */ addi r4, r1, 0x14
+/* 802696DC 0026661C 38 A1 00 08 */ addi r5, r1, 8
+/* 802696E0 00266620 48 00 5B C9 */ bl __ct__8cM3dGLinFRC4cXyzRC4cXyz
+/* 802696E4 00266624 7F FF F2 78 */ xor r31, r31, r30
+/* 802696E8 00266628 57 E0 07 FF */ clrlwi. r0, r31, 0x1f
+/* 802696EC 0026662C 41 82 00 C4 */ beq lbl_802697B0
+/* 802696F0 00266630 3C 60 80 3A */ lis r3, lbl_803A37C0@ha
+/* 802696F4 00266634 38 03 37 C0 */ addi r0, r3, lbl_803A37C0@l
+/* 802696F8 00266638 90 01 00 DC */ stw r0, 0xdc(r1)
+/* 802696FC 0026663C C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 80269700 00266640 D0 01 00 CC */ stfs f0, 0xcc(r1)
+/* 80269704 00266644 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 80269708 00266648 D0 01 00 D0 */ stfs f0, 0xd0(r1)
+/* 8026970C 0026664C D0 01 00 D4 */ stfs f0, 0xd4(r1)
+/* 80269710 00266650 C0 1D 00 00 */ lfs f0, 0(r29)
+/* 80269714 00266654 FC 00 00 50 */ fneg f0, f0
+/* 80269718 00266658 D0 01 00 D8 */ stfs f0, 0xd8(r1)
+/* 8026971C 0026665C 38 61 00 E0 */ addi r3, r1, 0xe0
+/* 80269720 00266660 38 81 00 CC */ addi r4, r1, 0xcc
+/* 80269724 00266664 38 A1 00 5C */ addi r5, r1, 0x5c
+/* 80269728 00266668 38 C0 00 01 */ li r6, 1
+/* 8026972C 0026666C 38 E0 00 01 */ li r7, 1
+/* 80269730 00266670 4B FF F8 05 */ bl cM3d_Cross_LinPla__FPC8cM3dGLinPC8cM3dGPlaP3Vecbb
+/* 80269734 00266674 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80269738 00266678 41 82 00 6C */ beq lbl_802697A4
+/* 8026973C 0026667C C0 1C 00 04 */ lfs f0, 4(r28)
+/* 80269740 00266680 C0 21 00 60 */ lfs f1, 0x60(r1)
+/* 80269744 00266684 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 80269748 00266688 4C 40 13 82 */ cror 2, 0, 2
+/* 8026974C 0026668C 40 82 00 58 */ bne lbl_802697A4
+/* 80269750 00266690 C0 1D 00 04 */ lfs f0, 4(r29)
+/* 80269754 00266694 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80269758 00266698 4C 40 13 82 */ cror 2, 0, 2
+/* 8026975C 0026669C 40 82 00 48 */ bne lbl_802697A4
+/* 80269760 002666A0 C0 1C 00 08 */ lfs f0, 8(r28)
+/* 80269764 002666A4 C0 21 00 64 */ lfs f1, 0x64(r1)
+/* 80269768 002666A8 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026976C 002666AC 4C 40 13 82 */ cror 2, 0, 2
+/* 80269770 002666B0 40 82 00 34 */ bne lbl_802697A4
+/* 80269774 002666B4 C0 1D 00 08 */ lfs f0, 8(r29)
+/* 80269778 002666B8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026977C 002666BC 4C 40 13 82 */ cror 2, 0, 2
+/* 80269780 002666C0 40 82 00 24 */ bne lbl_802697A4
+/* 80269784 002666C4 3C 60 80 3A */ lis r3, lbl_803A37C0@ha
+/* 80269788 002666C8 38 03 37 C0 */ addi r0, r3, lbl_803A37C0@l
+/* 8026978C 002666CC 90 01 00 DC */ stw r0, 0xdc(r1)
+/* 80269790 002666D0 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 80269794 002666D4 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 80269798 002666D8 90 01 00 F8 */ stw r0, 0xf8(r1)
+/* 8026979C 002666DC 38 60 00 01 */ li r3, 1
+/* 802697A0 002666E0 48 00 03 FC */ b lbl_80269B9C
+lbl_802697A4:
+/* 802697A4 002666E4 3C 60 80 3A */ lis r3, lbl_803A37C0@ha
+/* 802697A8 002666E8 38 03 37 C0 */ addi r0, r3, lbl_803A37C0@l
+/* 802697AC 002666EC 90 01 00 DC */ stw r0, 0xdc(r1)
+lbl_802697B0:
+/* 802697B0 002666F0 57 E0 07 BD */ rlwinm. r0, r31, 0, 0x1e, 0x1e
+/* 802697B4 002666F4 41 82 00 C0 */ beq lbl_80269874
+/* 802697B8 002666F8 3C 60 80 3A */ lis r3, lbl_803A37C0@ha
+/* 802697BC 002666FC 38 03 37 C0 */ addi r0, r3, lbl_803A37C0@l
+/* 802697C0 00266700 90 01 00 C8 */ stw r0, 0xc8(r1)
+/* 802697C4 00266704 C0 02 B7 A8 */ lfs f0, lbl_804551A8-_SDA2_BASE_(r2)
+/* 802697C8 00266708 D0 01 00 B8 */ stfs f0, 0xb8(r1)
+/* 802697CC 0026670C C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 802697D0 00266710 D0 01 00 BC */ stfs f0, 0xbc(r1)
+/* 802697D4 00266714 D0 01 00 C0 */ stfs f0, 0xc0(r1)
+/* 802697D8 00266718 C0 1C 00 00 */ lfs f0, 0(r28)
+/* 802697DC 0026671C D0 01 00 C4 */ stfs f0, 0xc4(r1)
+/* 802697E0 00266720 38 61 00 E0 */ addi r3, r1, 0xe0
+/* 802697E4 00266724 38 81 00 B8 */ addi r4, r1, 0xb8
+/* 802697E8 00266728 38 A1 00 50 */ addi r5, r1, 0x50
+/* 802697EC 0026672C 38 C0 00 01 */ li r6, 1
+/* 802697F0 00266730 38 E0 00 01 */ li r7, 1
+/* 802697F4 00266734 4B FF F7 41 */ bl cM3d_Cross_LinPla__FPC8cM3dGLinPC8cM3dGPlaP3Vecbb
+/* 802697F8 00266738 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802697FC 0026673C 41 82 00 6C */ beq lbl_80269868
+/* 80269800 00266740 C0 1C 00 04 */ lfs f0, 4(r28)
+/* 80269804 00266744 C0 21 00 54 */ lfs f1, 0x54(r1)
+/* 80269808 00266748 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026980C 0026674C 4C 40 13 82 */ cror 2, 0, 2
+/* 80269810 00266750 40 82 00 58 */ bne lbl_80269868
+/* 80269814 00266754 C0 1D 00 04 */ lfs f0, 4(r29)
+/* 80269818 00266758 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026981C 0026675C 4C 40 13 82 */ cror 2, 0, 2
+/* 80269820 00266760 40 82 00 48 */ bne lbl_80269868
+/* 80269824 00266764 C0 1C 00 08 */ lfs f0, 8(r28)
+/* 80269828 00266768 C0 21 00 58 */ lfs f1, 0x58(r1)
+/* 8026982C 0026676C FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 80269830 00266770 4C 40 13 82 */ cror 2, 0, 2
+/* 80269834 00266774 40 82 00 34 */ bne lbl_80269868
+/* 80269838 00266778 C0 1D 00 08 */ lfs f0, 8(r29)
+/* 8026983C 0026677C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80269840 00266780 4C 40 13 82 */ cror 2, 0, 2
+/* 80269844 00266784 40 82 00 24 */ bne lbl_80269868
+/* 80269848 00266788 3C 60 80 3A */ lis r3, lbl_803A37C0@ha
+/* 8026984C 0026678C 38 03 37 C0 */ addi r0, r3, lbl_803A37C0@l
+/* 80269850 00266790 90 01 00 C8 */ stw r0, 0xc8(r1)
+/* 80269854 00266794 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 80269858 00266798 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026985C 0026679C 90 01 00 F8 */ stw r0, 0xf8(r1)
+/* 80269860 002667A0 38 60 00 01 */ li r3, 1
+/* 80269864 002667A4 48 00 03 38 */ b lbl_80269B9C
+lbl_80269868:
+/* 80269868 002667A8 3C 60 80 3A */ lis r3, lbl_803A37C0@ha
+/* 8026986C 002667AC 38 03 37 C0 */ addi r0, r3, lbl_803A37C0@l
+/* 80269870 002667B0 90 01 00 C8 */ stw r0, 0xc8(r1)
+lbl_80269874:
+/* 80269874 002667B4 57 E0 07 7B */ rlwinm. r0, r31, 0, 0x1d, 0x1d
+/* 80269878 002667B8 41 82 00 C4 */ beq lbl_8026993C
+/* 8026987C 002667BC 3C 60 80 3A */ lis r3, lbl_803A37C0@ha
+/* 80269880 002667C0 38 03 37 C0 */ addi r0, r3, lbl_803A37C0@l
+/* 80269884 002667C4 90 01 00 B4 */ stw r0, 0xb4(r1)
+/* 80269888 002667C8 C0 22 B7 18 */ lfs f1, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026988C 002667CC D0 21 00 A4 */ stfs f1, 0xa4(r1)
+/* 80269890 002667D0 C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 80269894 002667D4 D0 01 00 A8 */ stfs f0, 0xa8(r1)
+/* 80269898 002667D8 D0 21 00 AC */ stfs f1, 0xac(r1)
+/* 8026989C 002667DC C0 1D 00 04 */ lfs f0, 4(r29)
+/* 802698A0 002667E0 FC 00 00 50 */ fneg f0, f0
+/* 802698A4 002667E4 D0 01 00 B0 */ stfs f0, 0xb0(r1)
+/* 802698A8 002667E8 38 61 00 E0 */ addi r3, r1, 0xe0
+/* 802698AC 002667EC 38 81 00 A4 */ addi r4, r1, 0xa4
+/* 802698B0 002667F0 38 A1 00 44 */ addi r5, r1, 0x44
+/* 802698B4 002667F4 38 C0 00 01 */ li r6, 1
+/* 802698B8 002667F8 38 E0 00 01 */ li r7, 1
+/* 802698BC 002667FC 4B FF F6 79 */ bl cM3d_Cross_LinPla__FPC8cM3dGLinPC8cM3dGPlaP3Vecbb
+/* 802698C0 00266800 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802698C4 00266804 41 82 00 6C */ beq lbl_80269930
+/* 802698C8 00266808 C0 1C 00 00 */ lfs f0, 0(r28)
+/* 802698CC 0026680C C0 21 00 44 */ lfs f1, 0x44(r1)
+/* 802698D0 00266810 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 802698D4 00266814 4C 40 13 82 */ cror 2, 0, 2
+/* 802698D8 00266818 40 82 00 58 */ bne lbl_80269930
+/* 802698DC 0026681C C0 1D 00 00 */ lfs f0, 0(r29)
+/* 802698E0 00266820 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802698E4 00266824 4C 40 13 82 */ cror 2, 0, 2
+/* 802698E8 00266828 40 82 00 48 */ bne lbl_80269930
+/* 802698EC 0026682C C0 1C 00 08 */ lfs f0, 8(r28)
+/* 802698F0 00266830 C0 21 00 4C */ lfs f1, 0x4c(r1)
+/* 802698F4 00266834 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 802698F8 00266838 4C 40 13 82 */ cror 2, 0, 2
+/* 802698FC 0026683C 40 82 00 34 */ bne lbl_80269930
+/* 80269900 00266840 C0 1D 00 08 */ lfs f0, 8(r29)
+/* 80269904 00266844 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80269908 00266848 4C 40 13 82 */ cror 2, 0, 2
+/* 8026990C 0026684C 40 82 00 24 */ bne lbl_80269930
+/* 80269910 00266850 3C 60 80 3A */ lis r3, lbl_803A37C0@ha
+/* 80269914 00266854 38 03 37 C0 */ addi r0, r3, lbl_803A37C0@l
+/* 80269918 00266858 90 01 00 B4 */ stw r0, 0xb4(r1)
+/* 8026991C 0026685C 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 80269920 00266860 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 80269924 00266864 90 01 00 F8 */ stw r0, 0xf8(r1)
+/* 80269928 00266868 38 60 00 01 */ li r3, 1
+/* 8026992C 0026686C 48 00 02 70 */ b lbl_80269B9C
+lbl_80269930:
+/* 80269930 00266870 3C 60 80 3A */ lis r3, lbl_803A37C0@ha
+/* 80269934 00266874 38 03 37 C0 */ addi r0, r3, lbl_803A37C0@l
+/* 80269938 00266878 90 01 00 B4 */ stw r0, 0xb4(r1)
+lbl_8026993C:
+/* 8026993C 0026687C 57 E0 07 39 */ rlwinm. r0, r31, 0, 0x1c, 0x1c
+/* 80269940 00266880 41 82 00 C0 */ beq lbl_80269A00
+/* 80269944 00266884 3C 60 80 3A */ lis r3, lbl_803A37C0@ha
+/* 80269948 00266888 38 03 37 C0 */ addi r0, r3, lbl_803A37C0@l
+/* 8026994C 0026688C 90 01 00 A0 */ stw r0, 0xa0(r1)
+/* 80269950 00266890 C0 22 B7 18 */ lfs f1, lbl_80455118-_SDA2_BASE_(r2)
+/* 80269954 00266894 D0 21 00 90 */ stfs f1, 0x90(r1)
+/* 80269958 00266898 C0 02 B7 A8 */ lfs f0, lbl_804551A8-_SDA2_BASE_(r2)
+/* 8026995C 0026689C D0 01 00 94 */ stfs f0, 0x94(r1)
+/* 80269960 002668A0 D0 21 00 98 */ stfs f1, 0x98(r1)
+/* 80269964 002668A4 C0 1C 00 04 */ lfs f0, 4(r28)
+/* 80269968 002668A8 D0 01 00 9C */ stfs f0, 0x9c(r1)
+/* 8026996C 002668AC 38 61 00 E0 */ addi r3, r1, 0xe0
+/* 80269970 002668B0 38 81 00 90 */ addi r4, r1, 0x90
+/* 80269974 002668B4 38 A1 00 38 */ addi r5, r1, 0x38
+/* 80269978 002668B8 38 C0 00 01 */ li r6, 1
+/* 8026997C 002668BC 38 E0 00 01 */ li r7, 1
+/* 80269980 002668C0 4B FF F5 B5 */ bl cM3d_Cross_LinPla__FPC8cM3dGLinPC8cM3dGPlaP3Vecbb
+/* 80269984 002668C4 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80269988 002668C8 41 82 00 6C */ beq lbl_802699F4
+/* 8026998C 002668CC C0 1C 00 00 */ lfs f0, 0(r28)
+/* 80269990 002668D0 C0 21 00 38 */ lfs f1, 0x38(r1)
+/* 80269994 002668D4 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 80269998 002668D8 4C 40 13 82 */ cror 2, 0, 2
+/* 8026999C 002668DC 40 82 00 58 */ bne lbl_802699F4
+/* 802699A0 002668E0 C0 1D 00 00 */ lfs f0, 0(r29)
+/* 802699A4 002668E4 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802699A8 002668E8 4C 40 13 82 */ cror 2, 0, 2
+/* 802699AC 002668EC 40 82 00 48 */ bne lbl_802699F4
+/* 802699B0 002668F0 C0 1C 00 08 */ lfs f0, 8(r28)
+/* 802699B4 002668F4 C0 21 00 40 */ lfs f1, 0x40(r1)
+/* 802699B8 002668F8 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 802699BC 002668FC 4C 40 13 82 */ cror 2, 0, 2
+/* 802699C0 00266900 40 82 00 34 */ bne lbl_802699F4
+/* 802699C4 00266904 C0 1D 00 08 */ lfs f0, 8(r29)
+/* 802699C8 00266908 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802699CC 0026690C 4C 40 13 82 */ cror 2, 0, 2
+/* 802699D0 00266910 40 82 00 24 */ bne lbl_802699F4
+/* 802699D4 00266914 3C 60 80 3A */ lis r3, lbl_803A37C0@ha
+/* 802699D8 00266918 38 03 37 C0 */ addi r0, r3, lbl_803A37C0@l
+/* 802699DC 0026691C 90 01 00 A0 */ stw r0, 0xa0(r1)
+/* 802699E0 00266920 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 802699E4 00266924 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 802699E8 00266928 90 01 00 F8 */ stw r0, 0xf8(r1)
+/* 802699EC 0026692C 38 60 00 01 */ li r3, 1
+/* 802699F0 00266930 48 00 01 AC */ b lbl_80269B9C
+lbl_802699F4:
+/* 802699F4 00266934 3C 60 80 3A */ lis r3, lbl_803A37C0@ha
+/* 802699F8 00266938 38 03 37 C0 */ addi r0, r3, lbl_803A37C0@l
+/* 802699FC 0026693C 90 01 00 A0 */ stw r0, 0xa0(r1)
+lbl_80269A00:
+/* 80269A00 00266940 57 E0 06 F7 */ rlwinm. r0, r31, 0, 0x1b, 0x1b
+/* 80269A04 00266944 41 82 00 C4 */ beq lbl_80269AC8
+/* 80269A08 00266948 3C 60 80 3A */ lis r3, lbl_803A37C0@ha
+/* 80269A0C 0026694C 38 03 37 C0 */ addi r0, r3, lbl_803A37C0@l
+/* 80269A10 00266950 90 01 00 8C */ stw r0, 0x8c(r1)
+/* 80269A14 00266954 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 80269A18 00266958 D0 01 00 7C */ stfs f0, 0x7c(r1)
+/* 80269A1C 0026695C D0 01 00 80 */ stfs f0, 0x80(r1)
+/* 80269A20 00266960 C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 80269A24 00266964 D0 01 00 84 */ stfs f0, 0x84(r1)
+/* 80269A28 00266968 C0 1D 00 08 */ lfs f0, 8(r29)
+/* 80269A2C 0026696C FC 00 00 50 */ fneg f0, f0
+/* 80269A30 00266970 D0 01 00 88 */ stfs f0, 0x88(r1)
+/* 80269A34 00266974 38 61 00 E0 */ addi r3, r1, 0xe0
+/* 80269A38 00266978 38 81 00 7C */ addi r4, r1, 0x7c
+/* 80269A3C 0026697C 38 A1 00 2C */ addi r5, r1, 0x2c
+/* 80269A40 00266980 38 C0 00 01 */ li r6, 1
+/* 80269A44 00266984 38 E0 00 01 */ li r7, 1
+/* 80269A48 00266988 4B FF F4 ED */ bl cM3d_Cross_LinPla__FPC8cM3dGLinPC8cM3dGPlaP3Vecbb
+/* 80269A4C 0026698C 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80269A50 00266990 41 82 00 6C */ beq lbl_80269ABC
+/* 80269A54 00266994 C0 1C 00 00 */ lfs f0, 0(r28)
+/* 80269A58 00266998 C0 21 00 2C */ lfs f1, 0x2c(r1)
+/* 80269A5C 0026699C FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 80269A60 002669A0 4C 40 13 82 */ cror 2, 0, 2
+/* 80269A64 002669A4 40 82 00 58 */ bne lbl_80269ABC
+/* 80269A68 002669A8 C0 1D 00 00 */ lfs f0, 0(r29)
+/* 80269A6C 002669AC FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80269A70 002669B0 4C 40 13 82 */ cror 2, 0, 2
+/* 80269A74 002669B4 40 82 00 48 */ bne lbl_80269ABC
+/* 80269A78 002669B8 C0 1C 00 04 */ lfs f0, 4(r28)
+/* 80269A7C 002669BC C0 21 00 30 */ lfs f1, 0x30(r1)
+/* 80269A80 002669C0 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 80269A84 002669C4 4C 40 13 82 */ cror 2, 0, 2
+/* 80269A88 002669C8 40 82 00 34 */ bne lbl_80269ABC
+/* 80269A8C 002669CC C0 1D 00 04 */ lfs f0, 4(r29)
+/* 80269A90 002669D0 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80269A94 002669D4 4C 40 13 82 */ cror 2, 0, 2
+/* 80269A98 002669D8 40 82 00 24 */ bne lbl_80269ABC
+/* 80269A9C 002669DC 3C 60 80 3A */ lis r3, lbl_803A37C0@ha
+/* 80269AA0 002669E0 38 03 37 C0 */ addi r0, r3, lbl_803A37C0@l
+/* 80269AA4 002669E4 90 01 00 8C */ stw r0, 0x8c(r1)
+/* 80269AA8 002669E8 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 80269AAC 002669EC 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 80269AB0 002669F0 90 01 00 F8 */ stw r0, 0xf8(r1)
+/* 80269AB4 002669F4 38 60 00 01 */ li r3, 1
+/* 80269AB8 002669F8 48 00 00 E4 */ b lbl_80269B9C
+lbl_80269ABC:
+/* 80269ABC 002669FC 3C 60 80 3A */ lis r3, lbl_803A37C0@ha
+/* 80269AC0 00266A00 38 03 37 C0 */ addi r0, r3, lbl_803A37C0@l
+/* 80269AC4 00266A04 90 01 00 8C */ stw r0, 0x8c(r1)
+lbl_80269AC8:
+/* 80269AC8 00266A08 57 E0 06 B5 */ rlwinm. r0, r31, 0, 0x1a, 0x1a
+/* 80269ACC 00266A0C 41 82 00 C0 */ beq lbl_80269B8C
+/* 80269AD0 00266A10 3C 60 80 3A */ lis r3, lbl_803A37C0@ha
+/* 80269AD4 00266A14 38 03 37 C0 */ addi r0, r3, lbl_803A37C0@l
+/* 80269AD8 00266A18 90 01 00 78 */ stw r0, 0x78(r1)
+/* 80269ADC 00266A1C C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 80269AE0 00266A20 D0 01 00 68 */ stfs f0, 0x68(r1)
+/* 80269AE4 00266A24 D0 01 00 6C */ stfs f0, 0x6c(r1)
+/* 80269AE8 00266A28 C0 02 B7 A8 */ lfs f0, lbl_804551A8-_SDA2_BASE_(r2)
+/* 80269AEC 00266A2C D0 01 00 70 */ stfs f0, 0x70(r1)
+/* 80269AF0 00266A30 C0 1C 00 08 */ lfs f0, 8(r28)
+/* 80269AF4 00266A34 D0 01 00 74 */ stfs f0, 0x74(r1)
+/* 80269AF8 00266A38 38 61 00 E0 */ addi r3, r1, 0xe0
+/* 80269AFC 00266A3C 38 81 00 68 */ addi r4, r1, 0x68
+/* 80269B00 00266A40 38 A1 00 20 */ addi r5, r1, 0x20
+/* 80269B04 00266A44 38 C0 00 01 */ li r6, 1
+/* 80269B08 00266A48 38 E0 00 01 */ li r7, 1
+/* 80269B0C 00266A4C 4B FF F4 29 */ bl cM3d_Cross_LinPla__FPC8cM3dGLinPC8cM3dGPlaP3Vecbb
+/* 80269B10 00266A50 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80269B14 00266A54 41 82 00 6C */ beq lbl_80269B80
+/* 80269B18 00266A58 C0 1C 00 00 */ lfs f0, 0(r28)
+/* 80269B1C 00266A5C C0 21 00 20 */ lfs f1, 0x20(r1)
+/* 80269B20 00266A60 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 80269B24 00266A64 4C 40 13 82 */ cror 2, 0, 2
+/* 80269B28 00266A68 40 82 00 58 */ bne lbl_80269B80
+/* 80269B2C 00266A6C C0 1D 00 00 */ lfs f0, 0(r29)
+/* 80269B30 00266A70 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80269B34 00266A74 4C 40 13 82 */ cror 2, 0, 2
+/* 80269B38 00266A78 40 82 00 48 */ bne lbl_80269B80
+/* 80269B3C 00266A7C C0 1C 00 04 */ lfs f0, 4(r28)
+/* 80269B40 00266A80 C0 21 00 24 */ lfs f1, 0x24(r1)
+/* 80269B44 00266A84 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 80269B48 00266A88 4C 40 13 82 */ cror 2, 0, 2
+/* 80269B4C 00266A8C 40 82 00 34 */ bne lbl_80269B80
+/* 80269B50 00266A90 C0 1D 00 04 */ lfs f0, 4(r29)
+/* 80269B54 00266A94 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80269B58 00266A98 4C 40 13 82 */ cror 2, 0, 2
+/* 80269B5C 00266A9C 40 82 00 24 */ bne lbl_80269B80
+/* 80269B60 00266AA0 3C 60 80 3A */ lis r3, lbl_803A37C0@ha
+/* 80269B64 00266AA4 38 03 37 C0 */ addi r0, r3, lbl_803A37C0@l
+/* 80269B68 00266AA8 90 01 00 78 */ stw r0, 0x78(r1)
+/* 80269B6C 00266AAC 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 80269B70 00266AB0 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 80269B74 00266AB4 90 01 00 F8 */ stw r0, 0xf8(r1)
+/* 80269B78 00266AB8 38 60 00 01 */ li r3, 1
+/* 80269B7C 00266ABC 48 00 00 20 */ b lbl_80269B9C
+lbl_80269B80:
+/* 80269B80 00266AC0 3C 60 80 3A */ lis r3, lbl_803A37C0@ha
+/* 80269B84 00266AC4 38 03 37 C0 */ addi r0, r3, lbl_803A37C0@l
+/* 80269B88 00266AC8 90 01 00 78 */ stw r0, 0x78(r1)
+lbl_80269B8C:
+/* 80269B8C 00266ACC 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 80269B90 00266AD0 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 80269B94 00266AD4 90 01 00 F8 */ stw r0, 0xf8(r1)
+/* 80269B98 00266AD8 38 60 00 00 */ li r3, 0
+lbl_80269B9C:
+/* 80269B9C 00266ADC E3 E1 01 F8 */ psq_l f31, 504(r1), 0, 0
+/* 80269BA0 00266AE0 CB E1 01 F0 */ lfd f31, 0x1f0(r1)
+/* 80269BA4 00266AE4 E3 C1 01 E8 */ psq_l f30, 488(r1), 0, 0
+/* 80269BA8 00266AE8 CB C1 01 E0 */ lfd f30, 0x1e0(r1)
+/* 80269BAC 00266AEC E3 A1 01 D8 */ psq_l f29, 472(r1), 0, 0
+/* 80269BB0 00266AF0 CB A1 01 D0 */ lfd f29, 0x1d0(r1)
+/* 80269BB4 00266AF4 E3 81 01 C8 */ psq_l f28, 456(r1), 0, 0
+/* 80269BB8 00266AF8 CB 81 01 C0 */ lfd f28, 0x1c0(r1)
+/* 80269BBC 00266AFC E3 61 01 B8 */ psq_l f27, 440(r1), 0, 0
+/* 80269BC0 00266B00 CB 61 01 B0 */ lfd f27, 0x1b0(r1)
+/* 80269BC4 00266B04 E3 41 01 A8 */ psq_l f26, 424(r1), 0, 0
+/* 80269BC8 00266B08 CB 41 01 A0 */ lfd f26, 0x1a0(r1)
+/* 80269BCC 00266B0C E3 21 01 98 */ psq_l f25, 408(r1), 0, 0
+/* 80269BD0 00266B10 CB 21 01 90 */ lfd f25, 0x190(r1)
+/* 80269BD4 00266B14 E3 01 01 88 */ psq_l f24, 392(r1), 0, 0
+/* 80269BD8 00266B18 CB 01 01 80 */ lfd f24, 0x180(r1)
+/* 80269BDC 00266B1C E2 E1 01 78 */ psq_l f23, 376(r1), 0, 0
+/* 80269BE0 00266B20 CA E1 01 70 */ lfd f23, 0x170(r1)
+/* 80269BE4 00266B24 E2 C1 01 68 */ psq_l f22, 360(r1), 0, 0
+/* 80269BE8 00266B28 CA C1 01 60 */ lfd f22, 0x160(r1)
+/* 80269BEC 00266B2C E2 A1 01 58 */ psq_l f21, 344(r1), 0, 0
+/* 80269BF0 00266B30 CA A1 01 50 */ lfd f21, 0x150(r1)
+/* 80269BF4 00266B34 E2 81 01 48 */ psq_l f20, 328(r1), 0, 0
+/* 80269BF8 00266B38 CA 81 01 40 */ lfd f20, 0x140(r1)
+/* 80269BFC 00266B3C E2 61 01 38 */ psq_l f19, 312(r1), 0, 0
+/* 80269C00 00266B40 CA 61 01 30 */ lfd f19, 0x130(r1)
+/* 80269C04 00266B44 E2 41 01 28 */ psq_l f18, 296(r1), 0, 0
+/* 80269C08 00266B48 CA 41 01 20 */ lfd f18, 0x120(r1)
+/* 80269C0C 00266B4C E2 21 01 18 */ psq_l f17, 280(r1), 0, 0
+/* 80269C10 00266B50 CA 21 01 10 */ lfd f17, 0x110(r1)
+/* 80269C14 00266B54 39 61 01 10 */ addi r11, r1, 0x110
+/* 80269C18 00266B58 48 0F 86 0D */ bl _restgpr_28
+/* 80269C1C 00266B5C 80 01 02 04 */ lwz r0, 0x204(r1)
+/* 80269C20 00266B60 7C 08 03 A6 */ mtlr r0
+/* 80269C24 00266B64 38 21 02 00 */ addi r1, r1, 0x200
+/* 80269C28 00266B68 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_80269C2C.s b/include/SComponent/c_m3d/asm/func_80269C2C.s
new file mode 100644
index 0000000000..181bc35608
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_80269C2C.s
@@ -0,0 +1,96 @@
+/* 80269C2C 00266B6C C0 03 00 00 */ lfs f0, 0(r3)
+/* 80269C30 00266B70 C0 44 00 00 */ lfs f2, 0(r4)
+/* 80269C34 00266B74 FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 80269C38 00266B78 40 80 00 10 */ bge lbl_80269C48
+/* 80269C3C 00266B7C FC 60 00 90 */ fmr f3, f0
+/* 80269C40 00266B80 FC 80 10 90 */ fmr f4, f2
+/* 80269C44 00266B84 48 00 00 0C */ b lbl_80269C50
+lbl_80269C48:
+/* 80269C48 00266B88 FC 60 10 90 */ fmr f3, f2
+/* 80269C4C 00266B8C FC 80 00 90 */ fmr f4, f0
+lbl_80269C50:
+/* 80269C50 00266B90 C0 05 00 00 */ lfs f0, 0(r5)
+/* 80269C54 00266B94 FC 03 00 40 */ fcmpo cr0, f3, f0
+/* 80269C58 00266B98 40 81 00 0C */ ble lbl_80269C64
+/* 80269C5C 00266B9C FC 60 00 90 */ fmr f3, f0
+/* 80269C60 00266BA0 48 00 00 10 */ b lbl_80269C70
+lbl_80269C64:
+/* 80269C64 00266BA4 FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 80269C68 00266BA8 40 80 00 08 */ bge lbl_80269C70
+/* 80269C6C 00266BAC FC 80 00 90 */ fmr f4, f0
+lbl_80269C70:
+/* 80269C70 00266BB0 EC 03 08 28 */ fsubs f0, f3, f1
+/* 80269C74 00266BB4 C0 46 00 00 */ lfs f2, 0(r6)
+/* 80269C78 00266BB8 FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 80269C7C 00266BBC 41 81 00 10 */ bgt lbl_80269C8C
+/* 80269C80 00266BC0 EC 04 08 2A */ fadds f0, f4, f1
+/* 80269C84 00266BC4 FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 80269C88 00266BC8 40 80 00 0C */ bge lbl_80269C94
+lbl_80269C8C:
+/* 80269C8C 00266BCC 38 60 00 00 */ li r3, 0
+/* 80269C90 00266BD0 4E 80 00 20 */ blr
+lbl_80269C94:
+/* 80269C94 00266BD4 C0 03 00 08 */ lfs f0, 8(r3)
+/* 80269C98 00266BD8 C0 64 00 08 */ lfs f3, 8(r4)
+/* 80269C9C 00266BDC FC 00 18 40 */ fcmpo cr0, f0, f3
+/* 80269CA0 00266BE0 40 80 00 0C */ bge lbl_80269CAC
+/* 80269CA4 00266BE4 FC 40 00 90 */ fmr f2, f0
+/* 80269CA8 00266BE8 48 00 00 0C */ b lbl_80269CB4
+lbl_80269CAC:
+/* 80269CAC 00266BEC FC 40 18 90 */ fmr f2, f3
+/* 80269CB0 00266BF0 FC 60 00 90 */ fmr f3, f0
+lbl_80269CB4:
+/* 80269CB4 00266BF4 C0 05 00 08 */ lfs f0, 8(r5)
+/* 80269CB8 00266BF8 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 80269CBC 00266BFC 40 81 00 0C */ ble lbl_80269CC8
+/* 80269CC0 00266C00 FC 40 00 90 */ fmr f2, f0
+/* 80269CC4 00266C04 48 00 00 10 */ b lbl_80269CD4
+lbl_80269CC8:
+/* 80269CC8 00266C08 FC 03 00 40 */ fcmpo cr0, f3, f0
+/* 80269CCC 00266C0C 40 80 00 08 */ bge lbl_80269CD4
+/* 80269CD0 00266C10 FC 60 00 90 */ fmr f3, f0
+lbl_80269CD4:
+/* 80269CD4 00266C14 EC 02 08 28 */ fsubs f0, f2, f1
+/* 80269CD8 00266C18 C0 46 00 08 */ lfs f2, 8(r6)
+/* 80269CDC 00266C1C FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 80269CE0 00266C20 41 81 00 10 */ bgt lbl_80269CF0
+/* 80269CE4 00266C24 EC 03 08 2A */ fadds f0, f3, f1
+/* 80269CE8 00266C28 FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 80269CEC 00266C2C 40 80 00 0C */ bge lbl_80269CF8
+lbl_80269CF0:
+/* 80269CF0 00266C30 38 60 00 00 */ li r3, 0
+/* 80269CF4 00266C34 4E 80 00 20 */ blr
+lbl_80269CF8:
+/* 80269CF8 00266C38 C0 03 00 04 */ lfs f0, 4(r3)
+/* 80269CFC 00266C3C C0 64 00 04 */ lfs f3, 4(r4)
+/* 80269D00 00266C40 FC 00 18 40 */ fcmpo cr0, f0, f3
+/* 80269D04 00266C44 40 80 00 0C */ bge lbl_80269D10
+/* 80269D08 00266C48 FC 40 00 90 */ fmr f2, f0
+/* 80269D0C 00266C4C 48 00 00 0C */ b lbl_80269D18
+lbl_80269D10:
+/* 80269D10 00266C50 FC 40 18 90 */ fmr f2, f3
+/* 80269D14 00266C54 FC 60 00 90 */ fmr f3, f0
+lbl_80269D18:
+/* 80269D18 00266C58 C0 05 00 04 */ lfs f0, 4(r5)
+/* 80269D1C 00266C5C FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 80269D20 00266C60 40 81 00 0C */ ble lbl_80269D2C
+/* 80269D24 00266C64 FC 40 00 90 */ fmr f2, f0
+/* 80269D28 00266C68 48 00 00 10 */ b lbl_80269D38
+lbl_80269D2C:
+/* 80269D2C 00266C6C FC 03 00 40 */ fcmpo cr0, f3, f0
+/* 80269D30 00266C70 40 80 00 08 */ bge lbl_80269D38
+/* 80269D34 00266C74 FC 60 00 90 */ fmr f3, f0
+lbl_80269D38:
+/* 80269D38 00266C78 EC 02 08 28 */ fsubs f0, f2, f1
+/* 80269D3C 00266C7C C0 46 00 04 */ lfs f2, 4(r6)
+/* 80269D40 00266C80 FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 80269D44 00266C84 41 81 00 10 */ bgt lbl_80269D54
+/* 80269D48 00266C88 EC 03 08 2A */ fadds f0, f3, f1
+/* 80269D4C 00266C8C FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 80269D50 00266C90 40 80 00 0C */ bge lbl_80269D5C
+lbl_80269D54:
+/* 80269D54 00266C94 38 60 00 00 */ li r3, 0
+/* 80269D58 00266C98 4E 80 00 20 */ blr
+lbl_80269D5C:
+/* 80269D5C 00266C9C 38 60 00 01 */ li r3, 1
+/* 80269D60 00266CA0 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_80269D64.s b/include/SComponent/c_m3d/asm/func_80269D64.s
new file mode 100644
index 0000000000..c0745cc8e9
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_80269D64.s
@@ -0,0 +1,57 @@
+/* 80269D64 00266CA4 C1 21 00 08 */ lfs f9, 8(r1)
+/* 80269D68 00266CA8 FC 01 18 40 */ fcmpo cr0, f1, f3
+/* 80269D6C 00266CAC 40 80 00 0C */ bge lbl_80269D78
+/* 80269D70 00266CB0 FC 00 08 90 */ fmr f0, f1
+/* 80269D74 00266CB4 48 00 00 0C */ b lbl_80269D80
+lbl_80269D78:
+/* 80269D78 00266CB8 FC 00 18 90 */ fmr f0, f3
+/* 80269D7C 00266CBC FC 60 08 90 */ fmr f3, f1
+lbl_80269D80:
+/* 80269D80 00266CC0 FC 00 28 40 */ fcmpo cr0, f0, f5
+/* 80269D84 00266CC4 40 81 00 0C */ ble lbl_80269D90
+/* 80269D88 00266CC8 FC 00 28 90 */ fmr f0, f5
+/* 80269D8C 00266CCC 48 00 00 10 */ b lbl_80269D9C
+lbl_80269D90:
+/* 80269D90 00266CD0 FC 03 28 40 */ fcmpo cr0, f3, f5
+/* 80269D94 00266CD4 40 80 00 08 */ bge lbl_80269D9C
+/* 80269D98 00266CD8 FC 60 28 90 */ fmr f3, f5
+lbl_80269D9C:
+/* 80269D9C 00266CDC EC 00 48 28 */ fsubs f0, f0, f9
+/* 80269DA0 00266CE0 FC 00 38 40 */ fcmpo cr0, f0, f7
+/* 80269DA4 00266CE4 41 81 00 10 */ bgt lbl_80269DB4
+/* 80269DA8 00266CE8 EC 03 48 2A */ fadds f0, f3, f9
+/* 80269DAC 00266CEC FC 00 38 40 */ fcmpo cr0, f0, f7
+/* 80269DB0 00266CF0 40 80 00 0C */ bge lbl_80269DBC
+lbl_80269DB4:
+/* 80269DB4 00266CF4 38 60 00 00 */ li r3, 0
+/* 80269DB8 00266CF8 4E 80 00 20 */ blr
+lbl_80269DBC:
+/* 80269DBC 00266CFC FC 02 20 40 */ fcmpo cr0, f2, f4
+/* 80269DC0 00266D00 40 80 00 0C */ bge lbl_80269DCC
+/* 80269DC4 00266D04 FC 00 10 90 */ fmr f0, f2
+/* 80269DC8 00266D08 48 00 00 0C */ b lbl_80269DD4
+lbl_80269DCC:
+/* 80269DCC 00266D0C FC 00 20 90 */ fmr f0, f4
+/* 80269DD0 00266D10 FC 80 10 90 */ fmr f4, f2
+lbl_80269DD4:
+/* 80269DD4 00266D14 FC 00 30 40 */ fcmpo cr0, f0, f6
+/* 80269DD8 00266D18 40 81 00 0C */ ble lbl_80269DE4
+/* 80269DDC 00266D1C FC 00 30 90 */ fmr f0, f6
+/* 80269DE0 00266D20 48 00 00 10 */ b lbl_80269DF0
+lbl_80269DE4:
+/* 80269DE4 00266D24 FC 04 30 40 */ fcmpo cr0, f4, f6
+/* 80269DE8 00266D28 40 80 00 08 */ bge lbl_80269DF0
+/* 80269DEC 00266D2C FC 80 30 90 */ fmr f4, f6
+lbl_80269DF0:
+/* 80269DF0 00266D30 EC 00 48 28 */ fsubs f0, f0, f9
+/* 80269DF4 00266D34 FC 00 40 40 */ fcmpo cr0, f0, f8
+/* 80269DF8 00266D38 41 81 00 10 */ bgt lbl_80269E08
+/* 80269DFC 00266D3C EC 04 48 2A */ fadds f0, f4, f9
+/* 80269E00 00266D40 FC 00 40 40 */ fcmpo cr0, f0, f8
+/* 80269E04 00266D44 40 80 00 0C */ bge lbl_80269E10
+lbl_80269E08:
+/* 80269E08 00266D48 38 60 00 00 */ li r3, 0
+/* 80269E0C 00266D4C 4E 80 00 20 */ blr
+lbl_80269E10:
+/* 80269E10 00266D50 38 60 00 01 */ li r3, 1
+/* 80269E14 00266D54 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_80269E18.s b/include/SComponent/c_m3d/asm/func_80269E18.s
new file mode 100644
index 0000000000..92be243e5c
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_80269E18.s
@@ -0,0 +1,110 @@
+/* 80269E18 00266D58 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80269E1C 00266D5C 7C 08 02 A6 */ mflr r0
+/* 80269E20 00266D60 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80269E24 00266D64 DB E1 00 30 */ stfd f31, 0x30(r1)
+/* 80269E28 00266D68 F3 E1 00 38 */ psq_st f31, 56(r1), 0, 0
+/* 80269E2C 00266D6C DB C1 00 20 */ stfd f30, 0x20(r1)
+/* 80269E30 00266D70 F3 C1 00 28 */ psq_st f30, 40(r1), 0, 0
+/* 80269E34 00266D74 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80269E38 00266D78 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80269E3C 00266D7C 7C 7E 1B 78 */ mr r30, r3
+/* 80269E40 00266D80 7C 9F 23 78 */ mr r31, r4
+/* 80269E44 00266D84 FF C0 08 90 */ fmr f30, f1
+/* 80269E48 00266D88 C0 03 00 00 */ lfs f0, 0(r3)
+/* 80269E4C 00266D8C FC 00 02 10 */ fabs f0, f0
+/* 80269E50 00266D90 FC 20 00 18 */ frsp f1, f0
+/* 80269E54 00266D94 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 80269E58 00266D98 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80269E5C 00266D9C 40 80 00 0C */ bge lbl_80269E68
+/* 80269E60 00266DA0 38 60 00 00 */ li r3, 0
+/* 80269E64 00266DA4 48 00 01 30 */ b lbl_80269F94
+lbl_80269E68:
+/* 80269E68 00266DA8 C0 02 B7 AC */ lfs f0, lbl_804551AC-_SDA2_BASE_(r2)
+/* 80269E6C 00266DAC D0 01 00 08 */ stfs f0, 8(r1)
+/* 80269E70 00266DB0 C0 3E 00 18 */ lfs f1, 0x18(r30)
+/* 80269E74 00266DB4 C0 5E 00 1C */ lfs f2, 0x1c(r30)
+/* 80269E78 00266DB8 C0 7E 00 24 */ lfs f3, 0x24(r30)
+/* 80269E7C 00266DBC C0 9E 00 28 */ lfs f4, 0x28(r30)
+/* 80269E80 00266DC0 C0 BE 00 30 */ lfs f5, 0x30(r30)
+/* 80269E84 00266DC4 C0 DE 00 34 */ lfs f6, 0x34(r30)
+/* 80269E88 00266DC8 C0 FF 00 04 */ lfs f7, 4(r31)
+/* 80269E8C 00266DCC C1 1F 00 08 */ lfs f8, 8(r31)
+/* 80269E90 00266DD0 4B FF FE D5 */ bl cM3d_InclusionCheckPosIn3PosBox2d__Ffffffffff
+/* 80269E94 00266DD4 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80269E98 00266DD8 40 82 00 0C */ bne lbl_80269EA4
+/* 80269E9C 00266DDC 38 60 00 00 */ li r3, 0
+/* 80269EA0 00266DE0 48 00 00 F4 */ b lbl_80269F94
+lbl_80269EA4:
+/* 80269EA4 00266DE4 C0 3E 00 18 */ lfs f1, 0x18(r30)
+/* 80269EA8 00266DE8 C0 5E 00 1C */ lfs f2, 0x1c(r30)
+/* 80269EAC 00266DEC C0 7E 00 24 */ lfs f3, 0x24(r30)
+/* 80269EB0 00266DF0 C0 9E 00 28 */ lfs f4, 0x28(r30)
+/* 80269EB4 00266DF4 C0 BF 00 04 */ lfs f5, 4(r31)
+/* 80269EB8 00266DF8 C0 DF 00 08 */ lfs f6, 8(r31)
+/* 80269EBC 00266DFC 4B FF E9 D9 */ bl cM3d_VectorProduct2d__Fffffff
+/* 80269EC0 00266E00 FF E0 08 90 */ fmr f31, f1
+/* 80269EC4 00266E04 FC 1F F0 40 */ fcmpo cr0, f31, f30
+/* 80269EC8 00266E08 4C 40 13 82 */ cror 2, 0, 2
+/* 80269ECC 00266E0C 40 82 00 5C */ bne lbl_80269F28
+/* 80269ED0 00266E10 C0 3E 00 24 */ lfs f1, 0x24(r30)
+/* 80269ED4 00266E14 C0 5E 00 28 */ lfs f2, 0x28(r30)
+/* 80269ED8 00266E18 C0 7E 00 30 */ lfs f3, 0x30(r30)
+/* 80269EDC 00266E1C C0 9E 00 34 */ lfs f4, 0x34(r30)
+/* 80269EE0 00266E20 C0 BF 00 04 */ lfs f5, 4(r31)
+/* 80269EE4 00266E24 C0 DF 00 08 */ lfs f6, 8(r31)
+/* 80269EE8 00266E28 4B FF E9 AD */ bl cM3d_VectorProduct2d__Fffffff
+/* 80269EEC 00266E2C FC 01 F0 40 */ fcmpo cr0, f1, f30
+/* 80269EF0 00266E30 4C 40 13 82 */ cror 2, 0, 2
+/* 80269EF4 00266E34 40 82 00 34 */ bne lbl_80269F28
+/* 80269EF8 00266E38 C0 3E 00 30 */ lfs f1, 0x30(r30)
+/* 80269EFC 00266E3C C0 5E 00 34 */ lfs f2, 0x34(r30)
+/* 80269F00 00266E40 C0 7E 00 18 */ lfs f3, 0x18(r30)
+/* 80269F04 00266E44 C0 9E 00 1C */ lfs f4, 0x1c(r30)
+/* 80269F08 00266E48 C0 BF 00 04 */ lfs f5, 4(r31)
+/* 80269F0C 00266E4C C0 DF 00 08 */ lfs f6, 8(r31)
+/* 80269F10 00266E50 4B FF E9 85 */ bl cM3d_VectorProduct2d__Fffffff
+/* 80269F14 00266E54 FC 01 F0 40 */ fcmpo cr0, f1, f30
+/* 80269F18 00266E58 4C 40 13 82 */ cror 2, 0, 2
+/* 80269F1C 00266E5C 40 82 00 0C */ bne lbl_80269F28
+/* 80269F20 00266E60 38 60 00 01 */ li r3, 1
+/* 80269F24 00266E64 48 00 00 70 */ b lbl_80269F94
+lbl_80269F28:
+/* 80269F28 00266E68 FF C0 F0 50 */ fneg f30, f30
+/* 80269F2C 00266E6C FC 1F F0 40 */ fcmpo cr0, f31, f30
+/* 80269F30 00266E70 4C 41 13 82 */ cror 2, 1, 2
+/* 80269F34 00266E74 40 82 00 5C */ bne lbl_80269F90
+/* 80269F38 00266E78 C0 3E 00 24 */ lfs f1, 0x24(r30)
+/* 80269F3C 00266E7C C0 5E 00 28 */ lfs f2, 0x28(r30)
+/* 80269F40 00266E80 C0 7E 00 30 */ lfs f3, 0x30(r30)
+/* 80269F44 00266E84 C0 9E 00 34 */ lfs f4, 0x34(r30)
+/* 80269F48 00266E88 C0 BF 00 04 */ lfs f5, 4(r31)
+/* 80269F4C 00266E8C C0 DF 00 08 */ lfs f6, 8(r31)
+/* 80269F50 00266E90 4B FF E9 45 */ bl cM3d_VectorProduct2d__Fffffff
+/* 80269F54 00266E94 FC 01 F0 40 */ fcmpo cr0, f1, f30
+/* 80269F58 00266E98 4C 41 13 82 */ cror 2, 1, 2
+/* 80269F5C 00266E9C 40 82 00 34 */ bne lbl_80269F90
+/* 80269F60 00266EA0 C0 3E 00 30 */ lfs f1, 0x30(r30)
+/* 80269F64 00266EA4 C0 5E 00 34 */ lfs f2, 0x34(r30)
+/* 80269F68 00266EA8 C0 7E 00 18 */ lfs f3, 0x18(r30)
+/* 80269F6C 00266EAC C0 9E 00 1C */ lfs f4, 0x1c(r30)
+/* 80269F70 00266EB0 C0 BF 00 04 */ lfs f5, 4(r31)
+/* 80269F74 00266EB4 C0 DF 00 08 */ lfs f6, 8(r31)
+/* 80269F78 00266EB8 4B FF E9 1D */ bl cM3d_VectorProduct2d__Fffffff
+/* 80269F7C 00266EBC FC 01 F0 40 */ fcmpo cr0, f1, f30
+/* 80269F80 00266EC0 4C 41 13 82 */ cror 2, 1, 2
+/* 80269F84 00266EC4 40 82 00 0C */ bne lbl_80269F90
+/* 80269F88 00266EC8 38 60 00 01 */ li r3, 1
+/* 80269F8C 00266ECC 48 00 00 08 */ b lbl_80269F94
+lbl_80269F90:
+/* 80269F90 00266ED0 38 60 00 00 */ li r3, 0
+lbl_80269F94:
+/* 80269F94 00266ED4 E3 E1 00 38 */ psq_l f31, 56(r1), 0, 0
+/* 80269F98 00266ED8 CB E1 00 30 */ lfd f31, 0x30(r1)
+/* 80269F9C 00266EDC E3 C1 00 28 */ psq_l f30, 40(r1), 0, 0
+/* 80269FA0 00266EE0 CB C1 00 20 */ lfd f30, 0x20(r1)
+/* 80269FA4 00266EE4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80269FA8 00266EE8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80269FAC 00266EEC 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80269FB0 00266EF0 7C 08 03 A6 */ mtlr r0
+/* 80269FB4 00266EF4 38 21 00 40 */ addi r1, r1, 0x40
+/* 80269FB8 00266EF8 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_80269FBC.s b/include/SComponent/c_m3d/asm/func_80269FBC.s
new file mode 100644
index 0000000000..620e501908
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_80269FBC.s
@@ -0,0 +1,110 @@
+/* 80269FBC 00266EFC 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80269FC0 00266F00 7C 08 02 A6 */ mflr r0
+/* 80269FC4 00266F04 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80269FC8 00266F08 DB E1 00 20 */ stfd f31, 0x20(r1)
+/* 80269FCC 00266F0C F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0
+/* 80269FD0 00266F10 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80269FD4 00266F14 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80269FD8 00266F18 7C 7E 1B 78 */ mr r30, r3
+/* 80269FDC 00266F1C 7C 9F 23 78 */ mr r31, r4
+/* 80269FE0 00266F20 C0 03 00 00 */ lfs f0, 0(r3)
+/* 80269FE4 00266F24 FC 00 02 10 */ fabs f0, f0
+/* 80269FE8 00266F28 FC 20 00 18 */ frsp f1, f0
+/* 80269FEC 00266F2C C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 80269FF0 00266F30 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80269FF4 00266F34 40 80 00 0C */ bge lbl_8026A000
+/* 80269FF8 00266F38 38 60 00 00 */ li r3, 0
+/* 80269FFC 00266F3C 48 00 01 44 */ b lbl_8026A140
+lbl_8026A000:
+/* 8026A000 00266F40 C0 02 B7 AC */ lfs f0, lbl_804551AC-_SDA2_BASE_(r2)
+/* 8026A004 00266F44 D0 01 00 08 */ stfs f0, 8(r1)
+/* 8026A008 00266F48 C0 3E 00 18 */ lfs f1, 0x18(r30)
+/* 8026A00C 00266F4C C0 5E 00 1C */ lfs f2, 0x1c(r30)
+/* 8026A010 00266F50 C0 7E 00 24 */ lfs f3, 0x24(r30)
+/* 8026A014 00266F54 C0 9E 00 28 */ lfs f4, 0x28(r30)
+/* 8026A018 00266F58 C0 BE 00 30 */ lfs f5, 0x30(r30)
+/* 8026A01C 00266F5C C0 DE 00 34 */ lfs f6, 0x34(r30)
+/* 8026A020 00266F60 C0 FF 00 04 */ lfs f7, 4(r31)
+/* 8026A024 00266F64 C1 1F 00 08 */ lfs f8, 8(r31)
+/* 8026A028 00266F68 4B FF FD 3D */ bl cM3d_InclusionCheckPosIn3PosBox2d__Ffffffffff
+/* 8026A02C 00266F6C 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026A030 00266F70 40 82 00 0C */ bne lbl_8026A03C
+/* 8026A034 00266F74 38 60 00 00 */ li r3, 0
+/* 8026A038 00266F78 48 00 01 08 */ b lbl_8026A140
+lbl_8026A03C:
+/* 8026A03C 00266F7C C0 3E 00 18 */ lfs f1, 0x18(r30)
+/* 8026A040 00266F80 C0 5E 00 1C */ lfs f2, 0x1c(r30)
+/* 8026A044 00266F84 C0 7E 00 24 */ lfs f3, 0x24(r30)
+/* 8026A048 00266F88 C0 9E 00 28 */ lfs f4, 0x28(r30)
+/* 8026A04C 00266F8C C0 BF 00 04 */ lfs f5, 4(r31)
+/* 8026A050 00266F90 C0 DF 00 08 */ lfs f6, 8(r31)
+/* 8026A054 00266F94 4B FF E8 41 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A058 00266F98 FF E0 08 90 */ fmr f31, f1
+/* 8026A05C 00266F9C C0 02 B7 B0 */ lfs f0, lbl_804551B0-_SDA2_BASE_(r2)
+/* 8026A060 00266FA0 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026A064 00266FA4 4C 40 13 82 */ cror 2, 0, 2
+/* 8026A068 00266FA8 40 82 00 64 */ bne lbl_8026A0CC
+/* 8026A06C 00266FAC C0 3E 00 24 */ lfs f1, 0x24(r30)
+/* 8026A070 00266FB0 C0 5E 00 28 */ lfs f2, 0x28(r30)
+/* 8026A074 00266FB4 C0 7E 00 30 */ lfs f3, 0x30(r30)
+/* 8026A078 00266FB8 C0 9E 00 34 */ lfs f4, 0x34(r30)
+/* 8026A07C 00266FBC C0 BF 00 04 */ lfs f5, 4(r31)
+/* 8026A080 00266FC0 C0 DF 00 08 */ lfs f6, 8(r31)
+/* 8026A084 00266FC4 4B FF E8 11 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A088 00266FC8 C0 02 B7 B0 */ lfs f0, lbl_804551B0-_SDA2_BASE_(r2)
+/* 8026A08C 00266FCC FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A090 00266FD0 4C 40 13 82 */ cror 2, 0, 2
+/* 8026A094 00266FD4 40 82 00 38 */ bne lbl_8026A0CC
+/* 8026A098 00266FD8 C0 3E 00 30 */ lfs f1, 0x30(r30)
+/* 8026A09C 00266FDC C0 5E 00 34 */ lfs f2, 0x34(r30)
+/* 8026A0A0 00266FE0 C0 7E 00 18 */ lfs f3, 0x18(r30)
+/* 8026A0A4 00266FE4 C0 9E 00 1C */ lfs f4, 0x1c(r30)
+/* 8026A0A8 00266FE8 C0 BF 00 04 */ lfs f5, 4(r31)
+/* 8026A0AC 00266FEC C0 DF 00 08 */ lfs f6, 8(r31)
+/* 8026A0B0 00266FF0 4B FF E7 E5 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A0B4 00266FF4 C0 02 B7 B0 */ lfs f0, lbl_804551B0-_SDA2_BASE_(r2)
+/* 8026A0B8 00266FF8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A0BC 00266FFC 4C 40 13 82 */ cror 2, 0, 2
+/* 8026A0C0 00267000 40 82 00 0C */ bne lbl_8026A0CC
+/* 8026A0C4 00267004 38 60 00 01 */ li r3, 1
+/* 8026A0C8 00267008 48 00 00 78 */ b lbl_8026A140
+lbl_8026A0CC:
+/* 8026A0CC 0026700C C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026A0D0 00267010 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026A0D4 00267014 4C 41 13 82 */ cror 2, 1, 2
+/* 8026A0D8 00267018 40 82 00 64 */ bne lbl_8026A13C
+/* 8026A0DC 0026701C C0 3E 00 24 */ lfs f1, 0x24(r30)
+/* 8026A0E0 00267020 C0 5E 00 28 */ lfs f2, 0x28(r30)
+/* 8026A0E4 00267024 C0 7E 00 30 */ lfs f3, 0x30(r30)
+/* 8026A0E8 00267028 C0 9E 00 34 */ lfs f4, 0x34(r30)
+/* 8026A0EC 0026702C C0 BF 00 04 */ lfs f5, 4(r31)
+/* 8026A0F0 00267030 C0 DF 00 08 */ lfs f6, 8(r31)
+/* 8026A0F4 00267034 4B FF E7 A1 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A0F8 00267038 C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026A0FC 0026703C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A100 00267040 4C 41 13 82 */ cror 2, 1, 2
+/* 8026A104 00267044 40 82 00 38 */ bne lbl_8026A13C
+/* 8026A108 00267048 C0 3E 00 30 */ lfs f1, 0x30(r30)
+/* 8026A10C 0026704C C0 5E 00 34 */ lfs f2, 0x34(r30)
+/* 8026A110 00267050 C0 7E 00 18 */ lfs f3, 0x18(r30)
+/* 8026A114 00267054 C0 9E 00 1C */ lfs f4, 0x1c(r30)
+/* 8026A118 00267058 C0 BF 00 04 */ lfs f5, 4(r31)
+/* 8026A11C 0026705C C0 DF 00 08 */ lfs f6, 8(r31)
+/* 8026A120 00267060 4B FF E7 75 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A124 00267064 C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026A128 00267068 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A12C 0026706C 4C 41 13 82 */ cror 2, 1, 2
+/* 8026A130 00267070 40 82 00 0C */ bne lbl_8026A13C
+/* 8026A134 00267074 38 60 00 01 */ li r3, 1
+/* 8026A138 00267078 48 00 00 08 */ b lbl_8026A140
+lbl_8026A13C:
+/* 8026A13C 0026707C 38 60 00 00 */ li r3, 0
+lbl_8026A140:
+/* 8026A140 00267080 E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0
+/* 8026A144 00267084 CB E1 00 20 */ lfd f31, 0x20(r1)
+/* 8026A148 00267088 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026A14C 0026708C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026A150 00267090 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8026A154 00267094 7C 08 03 A6 */ mtlr r0
+/* 8026A158 00267098 38 21 00 30 */ addi r1, r1, 0x30
+/* 8026A15C 0026709C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026A160.s b/include/SComponent/c_m3d/asm/func_8026A160.s
new file mode 100644
index 0000000000..2e9926229f
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026A160.s
@@ -0,0 +1,101 @@
+/* 8026A160 002670A0 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8026A164 002670A4 7C 08 02 A6 */ mflr r0
+/* 8026A168 002670A8 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8026A16C 002670AC DB E1 00 20 */ stfd f31, 0x20(r1)
+/* 8026A170 002670B0 F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0
+/* 8026A174 002670B4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026A178 002670B8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026A17C 002670BC 7C 7E 1B 78 */ mr r30, r3
+/* 8026A180 002670C0 7C 9F 23 78 */ mr r31, r4
+/* 8026A184 002670C4 C0 02 B7 AC */ lfs f0, lbl_804551AC-_SDA2_BASE_(r2)
+/* 8026A188 002670C8 D0 01 00 08 */ stfs f0, 8(r1)
+/* 8026A18C 002670CC C0 23 00 18 */ lfs f1, 0x18(r3)
+/* 8026A190 002670D0 C0 43 00 1C */ lfs f2, 0x1c(r3)
+/* 8026A194 002670D4 C0 63 00 24 */ lfs f3, 0x24(r3)
+/* 8026A198 002670D8 C0 83 00 28 */ lfs f4, 0x28(r3)
+/* 8026A19C 002670DC C0 A3 00 30 */ lfs f5, 0x30(r3)
+/* 8026A1A0 002670E0 C0 C3 00 34 */ lfs f6, 0x34(r3)
+/* 8026A1A4 002670E4 C0 E4 00 04 */ lfs f7, 4(r4)
+/* 8026A1A8 002670E8 C1 04 00 08 */ lfs f8, 8(r4)
+/* 8026A1AC 002670EC 4B FF FB B9 */ bl cM3d_InclusionCheckPosIn3PosBox2d__Ffffffffff
+/* 8026A1B0 002670F0 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026A1B4 002670F4 40 82 00 0C */ bne lbl_8026A1C0
+/* 8026A1B8 002670F8 38 60 00 00 */ li r3, 0
+/* 8026A1BC 002670FC 48 00 01 08 */ b lbl_8026A2C4
+lbl_8026A1C0:
+/* 8026A1C0 00267100 C0 3E 00 18 */ lfs f1, 0x18(r30)
+/* 8026A1C4 00267104 C0 5E 00 1C */ lfs f2, 0x1c(r30)
+/* 8026A1C8 00267108 C0 7E 00 24 */ lfs f3, 0x24(r30)
+/* 8026A1CC 0026710C C0 9E 00 28 */ lfs f4, 0x28(r30)
+/* 8026A1D0 00267110 C0 BF 00 04 */ lfs f5, 4(r31)
+/* 8026A1D4 00267114 C0 DF 00 08 */ lfs f6, 8(r31)
+/* 8026A1D8 00267118 4B FF E6 BD */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A1DC 0026711C FF E0 08 90 */ fmr f31, f1
+/* 8026A1E0 00267120 C0 02 B7 B0 */ lfs f0, lbl_804551B0-_SDA2_BASE_(r2)
+/* 8026A1E4 00267124 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026A1E8 00267128 4C 40 13 82 */ cror 2, 0, 2
+/* 8026A1EC 0026712C 40 82 00 64 */ bne lbl_8026A250
+/* 8026A1F0 00267130 C0 3E 00 24 */ lfs f1, 0x24(r30)
+/* 8026A1F4 00267134 C0 5E 00 28 */ lfs f2, 0x28(r30)
+/* 8026A1F8 00267138 C0 7E 00 30 */ lfs f3, 0x30(r30)
+/* 8026A1FC 0026713C C0 9E 00 34 */ lfs f4, 0x34(r30)
+/* 8026A200 00267140 C0 BF 00 04 */ lfs f5, 4(r31)
+/* 8026A204 00267144 C0 DF 00 08 */ lfs f6, 8(r31)
+/* 8026A208 00267148 4B FF E6 8D */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A20C 0026714C C0 02 B7 B0 */ lfs f0, lbl_804551B0-_SDA2_BASE_(r2)
+/* 8026A210 00267150 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A214 00267154 4C 40 13 82 */ cror 2, 0, 2
+/* 8026A218 00267158 40 82 00 38 */ bne lbl_8026A250
+/* 8026A21C 0026715C C0 3E 00 30 */ lfs f1, 0x30(r30)
+/* 8026A220 00267160 C0 5E 00 34 */ lfs f2, 0x34(r30)
+/* 8026A224 00267164 C0 7E 00 18 */ lfs f3, 0x18(r30)
+/* 8026A228 00267168 C0 9E 00 1C */ lfs f4, 0x1c(r30)
+/* 8026A22C 0026716C C0 BF 00 04 */ lfs f5, 4(r31)
+/* 8026A230 00267170 C0 DF 00 08 */ lfs f6, 8(r31)
+/* 8026A234 00267174 4B FF E6 61 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A238 00267178 C0 02 B7 B0 */ lfs f0, lbl_804551B0-_SDA2_BASE_(r2)
+/* 8026A23C 0026717C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A240 00267180 4C 40 13 82 */ cror 2, 0, 2
+/* 8026A244 00267184 40 82 00 0C */ bne lbl_8026A250
+/* 8026A248 00267188 38 60 00 01 */ li r3, 1
+/* 8026A24C 0026718C 48 00 00 78 */ b lbl_8026A2C4
+lbl_8026A250:
+/* 8026A250 00267190 C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026A254 00267194 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026A258 00267198 4C 41 13 82 */ cror 2, 1, 2
+/* 8026A25C 0026719C 40 82 00 64 */ bne lbl_8026A2C0
+/* 8026A260 002671A0 C0 3E 00 24 */ lfs f1, 0x24(r30)
+/* 8026A264 002671A4 C0 5E 00 28 */ lfs f2, 0x28(r30)
+/* 8026A268 002671A8 C0 7E 00 30 */ lfs f3, 0x30(r30)
+/* 8026A26C 002671AC C0 9E 00 34 */ lfs f4, 0x34(r30)
+/* 8026A270 002671B0 C0 BF 00 04 */ lfs f5, 4(r31)
+/* 8026A274 002671B4 C0 DF 00 08 */ lfs f6, 8(r31)
+/* 8026A278 002671B8 4B FF E6 1D */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A27C 002671BC C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026A280 002671C0 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A284 002671C4 4C 41 13 82 */ cror 2, 1, 2
+/* 8026A288 002671C8 40 82 00 38 */ bne lbl_8026A2C0
+/* 8026A28C 002671CC C0 3E 00 30 */ lfs f1, 0x30(r30)
+/* 8026A290 002671D0 C0 5E 00 34 */ lfs f2, 0x34(r30)
+/* 8026A294 002671D4 C0 7E 00 18 */ lfs f3, 0x18(r30)
+/* 8026A298 002671D8 C0 9E 00 1C */ lfs f4, 0x1c(r30)
+/* 8026A29C 002671DC C0 BF 00 04 */ lfs f5, 4(r31)
+/* 8026A2A0 002671E0 C0 DF 00 08 */ lfs f6, 8(r31)
+/* 8026A2A4 002671E4 4B FF E5 F1 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A2A8 002671E8 C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026A2AC 002671EC FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A2B0 002671F0 4C 41 13 82 */ cror 2, 1, 2
+/* 8026A2B4 002671F4 40 82 00 0C */ bne lbl_8026A2C0
+/* 8026A2B8 002671F8 38 60 00 01 */ li r3, 1
+/* 8026A2BC 002671FC 48 00 00 08 */ b lbl_8026A2C4
+lbl_8026A2C0:
+/* 8026A2C0 00267200 38 60 00 00 */ li r3, 0
+lbl_8026A2C4:
+/* 8026A2C4 00267204 E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0
+/* 8026A2C8 00267208 CB E1 00 20 */ lfd f31, 0x20(r1)
+/* 8026A2CC 0026720C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026A2D0 00267210 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026A2D4 00267214 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8026A2D8 00267218 7C 08 03 A6 */ mtlr r0
+/* 8026A2DC 0026721C 38 21 00 30 */ addi r1, r1, 0x30
+/* 8026A2E0 00267220 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026A2E4.s b/include/SComponent/c_m3d/asm/func_8026A2E4.s
new file mode 100644
index 0000000000..9652a991bd
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026A2E4.s
@@ -0,0 +1,110 @@
+/* 8026A2E4 00267224 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8026A2E8 00267228 7C 08 02 A6 */ mflr r0
+/* 8026A2EC 0026722C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8026A2F0 00267230 DB E1 00 20 */ stfd f31, 0x20(r1)
+/* 8026A2F4 00267234 F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0
+/* 8026A2F8 00267238 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026A2FC 0026723C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026A300 00267240 7C 7E 1B 78 */ mr r30, r3
+/* 8026A304 00267244 7C 9F 23 78 */ mr r31, r4
+/* 8026A308 00267248 C0 03 00 04 */ lfs f0, 4(r3)
+/* 8026A30C 0026724C FC 00 02 10 */ fabs f0, f0
+/* 8026A310 00267250 FC 20 00 18 */ frsp f1, f0
+/* 8026A314 00267254 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026A318 00267258 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A31C 0026725C 40 80 00 0C */ bge lbl_8026A328
+/* 8026A320 00267260 38 60 00 00 */ li r3, 0
+/* 8026A324 00267264 48 00 01 44 */ b lbl_8026A468
+lbl_8026A328:
+/* 8026A328 00267268 C0 02 B7 AC */ lfs f0, lbl_804551AC-_SDA2_BASE_(r2)
+/* 8026A32C 0026726C D0 01 00 08 */ stfs f0, 8(r1)
+/* 8026A330 00267270 C0 3E 00 1C */ lfs f1, 0x1c(r30)
+/* 8026A334 00267274 C0 5E 00 14 */ lfs f2, 0x14(r30)
+/* 8026A338 00267278 C0 7E 00 28 */ lfs f3, 0x28(r30)
+/* 8026A33C 0026727C C0 9E 00 20 */ lfs f4, 0x20(r30)
+/* 8026A340 00267280 C0 BE 00 34 */ lfs f5, 0x34(r30)
+/* 8026A344 00267284 C0 DE 00 2C */ lfs f6, 0x2c(r30)
+/* 8026A348 00267288 C0 FF 00 08 */ lfs f7, 8(r31)
+/* 8026A34C 0026728C C1 1F 00 00 */ lfs f8, 0(r31)
+/* 8026A350 00267290 4B FF FA 15 */ bl cM3d_InclusionCheckPosIn3PosBox2d__Ffffffffff
+/* 8026A354 00267294 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026A358 00267298 40 82 00 0C */ bne lbl_8026A364
+/* 8026A35C 0026729C 38 60 00 00 */ li r3, 0
+/* 8026A360 002672A0 48 00 01 08 */ b lbl_8026A468
+lbl_8026A364:
+/* 8026A364 002672A4 C0 3E 00 1C */ lfs f1, 0x1c(r30)
+/* 8026A368 002672A8 C0 5E 00 14 */ lfs f2, 0x14(r30)
+/* 8026A36C 002672AC C0 7E 00 28 */ lfs f3, 0x28(r30)
+/* 8026A370 002672B0 C0 9E 00 20 */ lfs f4, 0x20(r30)
+/* 8026A374 002672B4 C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026A378 002672B8 C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026A37C 002672BC 4B FF E5 19 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A380 002672C0 FF E0 08 90 */ fmr f31, f1
+/* 8026A384 002672C4 C0 02 B7 B0 */ lfs f0, lbl_804551B0-_SDA2_BASE_(r2)
+/* 8026A388 002672C8 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026A38C 002672CC 4C 40 13 82 */ cror 2, 0, 2
+/* 8026A390 002672D0 40 82 00 64 */ bne lbl_8026A3F4
+/* 8026A394 002672D4 C0 3E 00 28 */ lfs f1, 0x28(r30)
+/* 8026A398 002672D8 C0 5E 00 20 */ lfs f2, 0x20(r30)
+/* 8026A39C 002672DC C0 7E 00 34 */ lfs f3, 0x34(r30)
+/* 8026A3A0 002672E0 C0 9E 00 2C */ lfs f4, 0x2c(r30)
+/* 8026A3A4 002672E4 C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026A3A8 002672E8 C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026A3AC 002672EC 4B FF E4 E9 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A3B0 002672F0 C0 02 B7 B0 */ lfs f0, lbl_804551B0-_SDA2_BASE_(r2)
+/* 8026A3B4 002672F4 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A3B8 002672F8 4C 40 13 82 */ cror 2, 0, 2
+/* 8026A3BC 002672FC 40 82 00 38 */ bne lbl_8026A3F4
+/* 8026A3C0 00267300 C0 3E 00 34 */ lfs f1, 0x34(r30)
+/* 8026A3C4 00267304 C0 5E 00 2C */ lfs f2, 0x2c(r30)
+/* 8026A3C8 00267308 C0 7E 00 1C */ lfs f3, 0x1c(r30)
+/* 8026A3CC 0026730C C0 9E 00 14 */ lfs f4, 0x14(r30)
+/* 8026A3D0 00267310 C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026A3D4 00267314 C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026A3D8 00267318 4B FF E4 BD */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A3DC 0026731C C0 02 B7 B0 */ lfs f0, lbl_804551B0-_SDA2_BASE_(r2)
+/* 8026A3E0 00267320 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A3E4 00267324 4C 40 13 82 */ cror 2, 0, 2
+/* 8026A3E8 00267328 40 82 00 0C */ bne lbl_8026A3F4
+/* 8026A3EC 0026732C 38 60 00 01 */ li r3, 1
+/* 8026A3F0 00267330 48 00 00 78 */ b lbl_8026A468
+lbl_8026A3F4:
+/* 8026A3F4 00267334 C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026A3F8 00267338 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026A3FC 0026733C 4C 41 13 82 */ cror 2, 1, 2
+/* 8026A400 00267340 40 82 00 64 */ bne lbl_8026A464
+/* 8026A404 00267344 C0 3E 00 28 */ lfs f1, 0x28(r30)
+/* 8026A408 00267348 C0 5E 00 20 */ lfs f2, 0x20(r30)
+/* 8026A40C 0026734C C0 7E 00 34 */ lfs f3, 0x34(r30)
+/* 8026A410 00267350 C0 9E 00 2C */ lfs f4, 0x2c(r30)
+/* 8026A414 00267354 C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026A418 00267358 C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026A41C 0026735C 4B FF E4 79 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A420 00267360 C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026A424 00267364 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A428 00267368 4C 41 13 82 */ cror 2, 1, 2
+/* 8026A42C 0026736C 40 82 00 38 */ bne lbl_8026A464
+/* 8026A430 00267370 C0 3E 00 34 */ lfs f1, 0x34(r30)
+/* 8026A434 00267374 C0 5E 00 2C */ lfs f2, 0x2c(r30)
+/* 8026A438 00267378 C0 7E 00 1C */ lfs f3, 0x1c(r30)
+/* 8026A43C 0026737C C0 9E 00 14 */ lfs f4, 0x14(r30)
+/* 8026A440 00267380 C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026A444 00267384 C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026A448 00267388 4B FF E4 4D */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A44C 0026738C C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026A450 00267390 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A454 00267394 4C 41 13 82 */ cror 2, 1, 2
+/* 8026A458 00267398 40 82 00 0C */ bne lbl_8026A464
+/* 8026A45C 0026739C 38 60 00 01 */ li r3, 1
+/* 8026A460 002673A0 48 00 00 08 */ b lbl_8026A468
+lbl_8026A464:
+/* 8026A464 002673A4 38 60 00 00 */ li r3, 0
+lbl_8026A468:
+/* 8026A468 002673A8 E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0
+/* 8026A46C 002673AC CB E1 00 20 */ lfd f31, 0x20(r1)
+/* 8026A470 002673B0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026A474 002673B4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026A478 002673B8 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8026A47C 002673BC 7C 08 03 A6 */ mtlr r0
+/* 8026A480 002673C0 38 21 00 30 */ addi r1, r1, 0x30
+/* 8026A484 002673C4 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026A488.s b/include/SComponent/c_m3d/asm/func_8026A488.s
new file mode 100644
index 0000000000..71c16a4065
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026A488.s
@@ -0,0 +1,101 @@
+/* 8026A488 002673C8 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8026A48C 002673CC 7C 08 02 A6 */ mflr r0
+/* 8026A490 002673D0 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8026A494 002673D4 DB E1 00 20 */ stfd f31, 0x20(r1)
+/* 8026A498 002673D8 F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0
+/* 8026A49C 002673DC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026A4A0 002673E0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026A4A4 002673E4 7C 7E 1B 78 */ mr r30, r3
+/* 8026A4A8 002673E8 7C 9F 23 78 */ mr r31, r4
+/* 8026A4AC 002673EC C0 02 B7 AC */ lfs f0, lbl_804551AC-_SDA2_BASE_(r2)
+/* 8026A4B0 002673F0 D0 01 00 08 */ stfs f0, 8(r1)
+/* 8026A4B4 002673F4 C0 23 00 1C */ lfs f1, 0x1c(r3)
+/* 8026A4B8 002673F8 C0 43 00 14 */ lfs f2, 0x14(r3)
+/* 8026A4BC 002673FC C0 63 00 28 */ lfs f3, 0x28(r3)
+/* 8026A4C0 00267400 C0 83 00 20 */ lfs f4, 0x20(r3)
+/* 8026A4C4 00267404 C0 A3 00 34 */ lfs f5, 0x34(r3)
+/* 8026A4C8 00267408 C0 C3 00 2C */ lfs f6, 0x2c(r3)
+/* 8026A4CC 0026740C C0 E4 00 08 */ lfs f7, 8(r4)
+/* 8026A4D0 00267410 C1 04 00 00 */ lfs f8, 0(r4)
+/* 8026A4D4 00267414 4B FF F8 91 */ bl cM3d_InclusionCheckPosIn3PosBox2d__Ffffffffff
+/* 8026A4D8 00267418 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026A4DC 0026741C 40 82 00 0C */ bne lbl_8026A4E8
+/* 8026A4E0 00267420 38 60 00 00 */ li r3, 0
+/* 8026A4E4 00267424 48 00 01 08 */ b lbl_8026A5EC
+lbl_8026A4E8:
+/* 8026A4E8 00267428 C0 3E 00 1C */ lfs f1, 0x1c(r30)
+/* 8026A4EC 0026742C C0 5E 00 14 */ lfs f2, 0x14(r30)
+/* 8026A4F0 00267430 C0 7E 00 28 */ lfs f3, 0x28(r30)
+/* 8026A4F4 00267434 C0 9E 00 20 */ lfs f4, 0x20(r30)
+/* 8026A4F8 00267438 C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026A4FC 0026743C C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026A500 00267440 4B FF E3 95 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A504 00267444 FF E0 08 90 */ fmr f31, f1
+/* 8026A508 00267448 C0 02 B7 B0 */ lfs f0, lbl_804551B0-_SDA2_BASE_(r2)
+/* 8026A50C 0026744C FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026A510 00267450 4C 40 13 82 */ cror 2, 0, 2
+/* 8026A514 00267454 40 82 00 64 */ bne lbl_8026A578
+/* 8026A518 00267458 C0 3E 00 28 */ lfs f1, 0x28(r30)
+/* 8026A51C 0026745C C0 5E 00 20 */ lfs f2, 0x20(r30)
+/* 8026A520 00267460 C0 7E 00 34 */ lfs f3, 0x34(r30)
+/* 8026A524 00267464 C0 9E 00 2C */ lfs f4, 0x2c(r30)
+/* 8026A528 00267468 C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026A52C 0026746C C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026A530 00267470 4B FF E3 65 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A534 00267474 C0 02 B7 B0 */ lfs f0, lbl_804551B0-_SDA2_BASE_(r2)
+/* 8026A538 00267478 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A53C 0026747C 4C 40 13 82 */ cror 2, 0, 2
+/* 8026A540 00267480 40 82 00 38 */ bne lbl_8026A578
+/* 8026A544 00267484 C0 3E 00 34 */ lfs f1, 0x34(r30)
+/* 8026A548 00267488 C0 5E 00 2C */ lfs f2, 0x2c(r30)
+/* 8026A54C 0026748C C0 7E 00 1C */ lfs f3, 0x1c(r30)
+/* 8026A550 00267490 C0 9E 00 14 */ lfs f4, 0x14(r30)
+/* 8026A554 00267494 C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026A558 00267498 C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026A55C 0026749C 4B FF E3 39 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A560 002674A0 C0 02 B7 B0 */ lfs f0, lbl_804551B0-_SDA2_BASE_(r2)
+/* 8026A564 002674A4 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A568 002674A8 4C 40 13 82 */ cror 2, 0, 2
+/* 8026A56C 002674AC 40 82 00 0C */ bne lbl_8026A578
+/* 8026A570 002674B0 38 60 00 01 */ li r3, 1
+/* 8026A574 002674B4 48 00 00 78 */ b lbl_8026A5EC
+lbl_8026A578:
+/* 8026A578 002674B8 C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026A57C 002674BC FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026A580 002674C0 4C 41 13 82 */ cror 2, 1, 2
+/* 8026A584 002674C4 40 82 00 64 */ bne lbl_8026A5E8
+/* 8026A588 002674C8 C0 3E 00 28 */ lfs f1, 0x28(r30)
+/* 8026A58C 002674CC C0 5E 00 20 */ lfs f2, 0x20(r30)
+/* 8026A590 002674D0 C0 7E 00 34 */ lfs f3, 0x34(r30)
+/* 8026A594 002674D4 C0 9E 00 2C */ lfs f4, 0x2c(r30)
+/* 8026A598 002674D8 C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026A59C 002674DC C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026A5A0 002674E0 4B FF E2 F5 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A5A4 002674E4 C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026A5A8 002674E8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A5AC 002674EC 4C 41 13 82 */ cror 2, 1, 2
+/* 8026A5B0 002674F0 40 82 00 38 */ bne lbl_8026A5E8
+/* 8026A5B4 002674F4 C0 3E 00 34 */ lfs f1, 0x34(r30)
+/* 8026A5B8 002674F8 C0 5E 00 2C */ lfs f2, 0x2c(r30)
+/* 8026A5BC 002674FC C0 7E 00 1C */ lfs f3, 0x1c(r30)
+/* 8026A5C0 00267500 C0 9E 00 14 */ lfs f4, 0x14(r30)
+/* 8026A5C4 00267504 C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026A5C8 00267508 C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026A5CC 0026750C 4B FF E2 C9 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A5D0 00267510 C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026A5D4 00267514 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A5D8 00267518 4C 41 13 82 */ cror 2, 1, 2
+/* 8026A5DC 0026751C 40 82 00 0C */ bne lbl_8026A5E8
+/* 8026A5E0 00267520 38 60 00 01 */ li r3, 1
+/* 8026A5E4 00267524 48 00 00 08 */ b lbl_8026A5EC
+lbl_8026A5E8:
+/* 8026A5E8 00267528 38 60 00 00 */ li r3, 0
+lbl_8026A5EC:
+/* 8026A5EC 0026752C E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0
+/* 8026A5F0 00267530 CB E1 00 20 */ lfd f31, 0x20(r1)
+/* 8026A5F4 00267534 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026A5F8 00267538 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026A5FC 0026753C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8026A600 00267540 7C 08 03 A6 */ mtlr r0
+/* 8026A604 00267544 38 21 00 30 */ addi r1, r1, 0x30
+/* 8026A608 00267548 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026A60C.s b/include/SComponent/c_m3d/asm/func_8026A60C.s
new file mode 100644
index 0000000000..954def42a6
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026A60C.s
@@ -0,0 +1,112 @@
+/* 8026A60C 0026754C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8026A610 00267550 7C 08 02 A6 */ mflr r0
+/* 8026A614 00267554 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8026A618 00267558 DB E1 00 20 */ stfd f31, 0x20(r1)
+/* 8026A61C 0026755C F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0
+/* 8026A620 00267560 39 61 00 20 */ addi r11, r1, 0x20
+/* 8026A624 00267564 48 0F 7B B5 */ bl _savegpr_28
+/* 8026A628 00267568 7C 7C 1B 78 */ mr r28, r3
+/* 8026A62C 0026756C 7C 9D 23 78 */ mr r29, r4
+/* 8026A630 00267570 7C BE 2B 78 */ mr r30, r5
+/* 8026A634 00267574 7C FF 3B 78 */ mr r31, r7
+/* 8026A638 00267578 C0 06 00 04 */ lfs f0, 4(r6)
+/* 8026A63C 0026757C FC 00 02 10 */ fabs f0, f0
+/* 8026A640 00267580 FC 20 00 18 */ frsp f1, f0
+/* 8026A644 00267584 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026A648 00267588 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A64C 0026758C 40 80 00 0C */ bge lbl_8026A658
+/* 8026A650 00267590 38 60 00 00 */ li r3, 0
+/* 8026A654 00267594 48 00 01 44 */ b lbl_8026A798
+lbl_8026A658:
+/* 8026A658 00267598 C0 02 B7 AC */ lfs f0, lbl_804551AC-_SDA2_BASE_(r2)
+/* 8026A65C 0026759C D0 01 00 08 */ stfs f0, 8(r1)
+/* 8026A660 002675A0 C0 3C 00 08 */ lfs f1, 8(r28)
+/* 8026A664 002675A4 C0 5C 00 00 */ lfs f2, 0(r28)
+/* 8026A668 002675A8 C0 7D 00 08 */ lfs f3, 8(r29)
+/* 8026A66C 002675AC C0 9D 00 00 */ lfs f4, 0(r29)
+/* 8026A670 002675B0 C0 BE 00 08 */ lfs f5, 8(r30)
+/* 8026A674 002675B4 C0 DE 00 00 */ lfs f6, 0(r30)
+/* 8026A678 002675B8 C0 FF 00 08 */ lfs f7, 8(r31)
+/* 8026A67C 002675BC C1 1F 00 00 */ lfs f8, 0(r31)
+/* 8026A680 002675C0 4B FF F6 E5 */ bl cM3d_InclusionCheckPosIn3PosBox2d__Ffffffffff
+/* 8026A684 002675C4 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026A688 002675C8 40 82 00 0C */ bne lbl_8026A694
+/* 8026A68C 002675CC 38 60 00 00 */ li r3, 0
+/* 8026A690 002675D0 48 00 01 08 */ b lbl_8026A798
+lbl_8026A694:
+/* 8026A694 002675D4 C0 3C 00 08 */ lfs f1, 8(r28)
+/* 8026A698 002675D8 C0 5C 00 00 */ lfs f2, 0(r28)
+/* 8026A69C 002675DC C0 7D 00 08 */ lfs f3, 8(r29)
+/* 8026A6A0 002675E0 C0 9D 00 00 */ lfs f4, 0(r29)
+/* 8026A6A4 002675E4 C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026A6A8 002675E8 C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026A6AC 002675EC 4B FF E1 E9 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A6B0 002675F0 FF E0 08 90 */ fmr f31, f1
+/* 8026A6B4 002675F4 C0 02 B7 B0 */ lfs f0, lbl_804551B0-_SDA2_BASE_(r2)
+/* 8026A6B8 002675F8 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026A6BC 002675FC 4C 40 13 82 */ cror 2, 0, 2
+/* 8026A6C0 00267600 40 82 00 64 */ bne lbl_8026A724
+/* 8026A6C4 00267604 C0 3D 00 08 */ lfs f1, 8(r29)
+/* 8026A6C8 00267608 C0 5D 00 00 */ lfs f2, 0(r29)
+/* 8026A6CC 0026760C C0 7E 00 08 */ lfs f3, 8(r30)
+/* 8026A6D0 00267610 C0 9E 00 00 */ lfs f4, 0(r30)
+/* 8026A6D4 00267614 C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026A6D8 00267618 C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026A6DC 0026761C 4B FF E1 B9 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A6E0 00267620 C0 02 B7 B0 */ lfs f0, lbl_804551B0-_SDA2_BASE_(r2)
+/* 8026A6E4 00267624 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A6E8 00267628 4C 40 13 82 */ cror 2, 0, 2
+/* 8026A6EC 0026762C 40 82 00 38 */ bne lbl_8026A724
+/* 8026A6F0 00267630 C0 3E 00 08 */ lfs f1, 8(r30)
+/* 8026A6F4 00267634 C0 5E 00 00 */ lfs f2, 0(r30)
+/* 8026A6F8 00267638 C0 7C 00 08 */ lfs f3, 8(r28)
+/* 8026A6FC 0026763C C0 9C 00 00 */ lfs f4, 0(r28)
+/* 8026A700 00267640 C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026A704 00267644 C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026A708 00267648 4B FF E1 8D */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A70C 0026764C C0 02 B7 B0 */ lfs f0, lbl_804551B0-_SDA2_BASE_(r2)
+/* 8026A710 00267650 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A714 00267654 4C 40 13 82 */ cror 2, 0, 2
+/* 8026A718 00267658 40 82 00 0C */ bne lbl_8026A724
+/* 8026A71C 0026765C 38 60 00 01 */ li r3, 1
+/* 8026A720 00267660 48 00 00 78 */ b lbl_8026A798
+lbl_8026A724:
+/* 8026A724 00267664 C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026A728 00267668 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026A72C 0026766C 4C 41 13 82 */ cror 2, 1, 2
+/* 8026A730 00267670 40 82 00 64 */ bne lbl_8026A794
+/* 8026A734 00267674 C0 3D 00 08 */ lfs f1, 8(r29)
+/* 8026A738 00267678 C0 5D 00 00 */ lfs f2, 0(r29)
+/* 8026A73C 0026767C C0 7E 00 08 */ lfs f3, 8(r30)
+/* 8026A740 00267680 C0 9E 00 00 */ lfs f4, 0(r30)
+/* 8026A744 00267684 C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026A748 00267688 C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026A74C 0026768C 4B FF E1 49 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A750 00267690 C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026A754 00267694 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A758 00267698 4C 41 13 82 */ cror 2, 1, 2
+/* 8026A75C 0026769C 40 82 00 38 */ bne lbl_8026A794
+/* 8026A760 002676A0 C0 3E 00 08 */ lfs f1, 8(r30)
+/* 8026A764 002676A4 C0 5E 00 00 */ lfs f2, 0(r30)
+/* 8026A768 002676A8 C0 7C 00 08 */ lfs f3, 8(r28)
+/* 8026A76C 002676AC C0 9C 00 00 */ lfs f4, 0(r28)
+/* 8026A770 002676B0 C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026A774 002676B4 C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026A778 002676B8 4B FF E1 1D */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A77C 002676BC C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026A780 002676C0 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A784 002676C4 4C 41 13 82 */ cror 2, 1, 2
+/* 8026A788 002676C8 40 82 00 0C */ bne lbl_8026A794
+/* 8026A78C 002676CC 38 60 00 01 */ li r3, 1
+/* 8026A790 002676D0 48 00 00 08 */ b lbl_8026A798
+lbl_8026A794:
+/* 8026A794 002676D4 38 60 00 00 */ li r3, 0
+lbl_8026A798:
+/* 8026A798 002676D8 E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0
+/* 8026A79C 002676DC CB E1 00 20 */ lfd f31, 0x20(r1)
+/* 8026A7A0 002676E0 39 61 00 20 */ addi r11, r1, 0x20
+/* 8026A7A4 002676E4 48 0F 7A 81 */ bl _restgpr_28
+/* 8026A7A8 002676E8 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8026A7AC 002676EC 7C 08 03 A6 */ mtlr r0
+/* 8026A7B0 002676F0 38 21 00 30 */ addi r1, r1, 0x30
+/* 8026A7B4 002676F4 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026A7B8.s b/include/SComponent/c_m3d/asm/func_8026A7B8.s
new file mode 100644
index 0000000000..ee9e416916
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026A7B8.s
@@ -0,0 +1,69 @@
+/* 8026A7B8 002676F8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026A7BC 002676FC 7C 08 02 A6 */ mflr r0
+/* 8026A7C0 00267700 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026A7C4 00267704 39 61 00 20 */ addi r11, r1, 0x20
+/* 8026A7C8 00267708 48 0F 7A 11 */ bl _savegpr_28
+/* 8026A7CC 0026770C 7C 7C 1B 78 */ mr r28, r3
+/* 8026A7D0 00267710 7C 9D 23 78 */ mr r29, r4
+/* 8026A7D4 00267714 7C BE 2B 78 */ mr r30, r5
+/* 8026A7D8 00267718 7C DF 33 78 */ mr r31, r6
+/* 8026A7DC 0026771C C0 02 B7 AC */ lfs f0, lbl_804551AC-_SDA2_BASE_(r2)
+/* 8026A7E0 00267720 D0 01 00 08 */ stfs f0, 8(r1)
+/* 8026A7E4 00267724 C0 23 00 08 */ lfs f1, 8(r3)
+/* 8026A7E8 00267728 C0 43 00 00 */ lfs f2, 0(r3)
+/* 8026A7EC 0026772C C0 64 00 08 */ lfs f3, 8(r4)
+/* 8026A7F0 00267730 C0 84 00 00 */ lfs f4, 0(r4)
+/* 8026A7F4 00267734 C0 A5 00 08 */ lfs f5, 8(r5)
+/* 8026A7F8 00267738 C0 C5 00 00 */ lfs f6, 0(r5)
+/* 8026A7FC 0026773C C0 E6 00 08 */ lfs f7, 8(r6)
+/* 8026A800 00267740 C1 06 00 00 */ lfs f8, 0(r6)
+/* 8026A804 00267744 4B FF F5 61 */ bl cM3d_InclusionCheckPosIn3PosBox2d__Ffffffffff
+/* 8026A808 00267748 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026A80C 0026774C 40 82 00 0C */ bne lbl_8026A818
+/* 8026A810 00267750 38 60 00 00 */ li r3, 0
+/* 8026A814 00267754 48 00 00 94 */ b lbl_8026A8A8
+lbl_8026A818:
+/* 8026A818 00267758 C0 3C 00 08 */ lfs f1, 8(r28)
+/* 8026A81C 0026775C C0 5C 00 00 */ lfs f2, 0(r28)
+/* 8026A820 00267760 C0 7D 00 08 */ lfs f3, 8(r29)
+/* 8026A824 00267764 C0 9D 00 00 */ lfs f4, 0(r29)
+/* 8026A828 00267768 C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026A82C 0026776C C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026A830 00267770 4B FF E0 65 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A834 00267774 C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026A838 00267778 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A83C 0026777C 4C 41 13 82 */ cror 2, 1, 2
+/* 8026A840 00267780 40 82 00 64 */ bne lbl_8026A8A4
+/* 8026A844 00267784 C0 3D 00 08 */ lfs f1, 8(r29)
+/* 8026A848 00267788 C0 5D 00 00 */ lfs f2, 0(r29)
+/* 8026A84C 0026778C C0 7E 00 08 */ lfs f3, 8(r30)
+/* 8026A850 00267790 C0 9E 00 00 */ lfs f4, 0(r30)
+/* 8026A854 00267794 C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026A858 00267798 C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026A85C 0026779C 4B FF E0 39 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A860 002677A0 C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026A864 002677A4 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A868 002677A8 4C 41 13 82 */ cror 2, 1, 2
+/* 8026A86C 002677AC 40 82 00 38 */ bne lbl_8026A8A4
+/* 8026A870 002677B0 C0 3E 00 08 */ lfs f1, 8(r30)
+/* 8026A874 002677B4 C0 5E 00 00 */ lfs f2, 0(r30)
+/* 8026A878 002677B8 C0 7C 00 08 */ lfs f3, 8(r28)
+/* 8026A87C 002677BC C0 9C 00 00 */ lfs f4, 0(r28)
+/* 8026A880 002677C0 C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026A884 002677C4 C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026A888 002677C8 4B FF E0 0D */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A88C 002677CC C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026A890 002677D0 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A894 002677D4 4C 41 13 82 */ cror 2, 1, 2
+/* 8026A898 002677D8 40 82 00 0C */ bne lbl_8026A8A4
+/* 8026A89C 002677DC 38 60 00 01 */ li r3, 1
+/* 8026A8A0 002677E0 48 00 00 08 */ b lbl_8026A8A8
+lbl_8026A8A4:
+/* 8026A8A4 002677E4 38 60 00 00 */ li r3, 0
+lbl_8026A8A8:
+/* 8026A8A8 002677E8 39 61 00 20 */ addi r11, r1, 0x20
+/* 8026A8AC 002677EC 48 0F 79 79 */ bl _restgpr_28
+/* 8026A8B0 002677F0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026A8B4 002677F4 7C 08 03 A6 */ mtlr r0
+/* 8026A8B8 002677F8 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026A8BC 002677FC 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026A8C0.s b/include/SComponent/c_m3d/asm/func_8026A8C0.s
new file mode 100644
index 0000000000..b0a82ac8c9
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026A8C0.s
@@ -0,0 +1,35 @@
+/* 8026A8C0 00267800 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026A8C4 00267804 7C 08 02 A6 */ mflr r0
+/* 8026A8C8 00267808 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026A8CC 0026780C 39 61 00 20 */ addi r11, r1, 0x20
+/* 8026A8D0 00267810 48 0F 79 0D */ bl _savegpr_29
+/* 8026A8D4 00267814 7C 7D 1B 78 */ mr r29, r3
+/* 8026A8D8 00267818 7C 9E 23 78 */ mr r30, r4
+/* 8026A8DC 0026781C 7C BF 2B 78 */ mr r31, r5
+/* 8026A8E0 00267820 4B FF FA 05 */ bl cM3d_CrossY_Tri__FPC8cM3dGTriPC3Vec
+/* 8026A8E4 00267824 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026A8E8 00267828 41 82 00 40 */ beq lbl_8026A928
+/* 8026A8EC 0026782C C0 3E 00 00 */ lfs f1, 0(r30)
+/* 8026A8F0 00267830 C0 1D 00 00 */ lfs f0, 0(r29)
+/* 8026A8F4 00267834 FC 00 00 50 */ fneg f0, f0
+/* 8026A8F8 00267838 EC 41 00 32 */ fmuls f2, f1, f0
+/* 8026A8FC 0026783C C0 3E 00 08 */ lfs f1, 8(r30)
+/* 8026A900 00267840 C0 1D 00 08 */ lfs f0, 8(r29)
+/* 8026A904 00267844 EC 01 00 32 */ fmuls f0, f1, f0
+/* 8026A908 00267848 EC 22 00 28 */ fsubs f1, f2, f0
+/* 8026A90C 0026784C C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 8026A910 00267850 EC 21 00 28 */ fsubs f1, f1, f0
+/* 8026A914 00267854 C0 1D 00 04 */ lfs f0, 4(r29)
+/* 8026A918 00267858 EC 01 00 24 */ fdivs f0, f1, f0
+/* 8026A91C 0026785C D0 1F 00 00 */ stfs f0, 0(r31)
+/* 8026A920 00267860 38 60 00 01 */ li r3, 1
+/* 8026A924 00267864 48 00 00 08 */ b lbl_8026A92C
+lbl_8026A928:
+/* 8026A928 00267868 38 60 00 00 */ li r3, 0
+lbl_8026A92C:
+/* 8026A92C 0026786C 39 61 00 20 */ addi r11, r1, 0x20
+/* 8026A930 00267870 48 0F 78 F9 */ bl _restgpr_29
+/* 8026A934 00267874 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026A938 00267878 7C 08 03 A6 */ mtlr r0
+/* 8026A93C 0026787C 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026A940 00267880 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026A944.s b/include/SComponent/c_m3d/asm/func_8026A944.s
new file mode 100644
index 0000000000..64bf532e1d
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026A944.s
@@ -0,0 +1,110 @@
+/* 8026A944 00267884 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 8026A948 00267888 7C 08 02 A6 */ mflr r0
+/* 8026A94C 0026788C 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8026A950 00267890 DB E1 00 30 */ stfd f31, 0x30(r1)
+/* 8026A954 00267894 F3 E1 00 38 */ psq_st f31, 56(r1), 0, 0
+/* 8026A958 00267898 DB C1 00 20 */ stfd f30, 0x20(r1)
+/* 8026A95C 0026789C F3 C1 00 28 */ psq_st f30, 40(r1), 0, 0
+/* 8026A960 002678A0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026A964 002678A4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026A968 002678A8 7C 7E 1B 78 */ mr r30, r3
+/* 8026A96C 002678AC 7C 9F 23 78 */ mr r31, r4
+/* 8026A970 002678B0 FF C0 08 90 */ fmr f30, f1
+/* 8026A974 002678B4 C0 03 00 04 */ lfs f0, 4(r3)
+/* 8026A978 002678B8 FC 00 02 10 */ fabs f0, f0
+/* 8026A97C 002678BC FC 20 00 18 */ frsp f1, f0
+/* 8026A980 002678C0 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026A984 002678C4 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026A988 002678C8 40 80 00 0C */ bge lbl_8026A994
+/* 8026A98C 002678CC 38 60 00 00 */ li r3, 0
+/* 8026A990 002678D0 48 00 01 30 */ b lbl_8026AAC0
+lbl_8026A994:
+/* 8026A994 002678D4 C0 02 B7 AC */ lfs f0, lbl_804551AC-_SDA2_BASE_(r2)
+/* 8026A998 002678D8 D0 01 00 08 */ stfs f0, 8(r1)
+/* 8026A99C 002678DC C0 3E 00 1C */ lfs f1, 0x1c(r30)
+/* 8026A9A0 002678E0 C0 5E 00 14 */ lfs f2, 0x14(r30)
+/* 8026A9A4 002678E4 C0 7E 00 28 */ lfs f3, 0x28(r30)
+/* 8026A9A8 002678E8 C0 9E 00 20 */ lfs f4, 0x20(r30)
+/* 8026A9AC 002678EC C0 BE 00 34 */ lfs f5, 0x34(r30)
+/* 8026A9B0 002678F0 C0 DE 00 2C */ lfs f6, 0x2c(r30)
+/* 8026A9B4 002678F4 C0 FF 00 08 */ lfs f7, 8(r31)
+/* 8026A9B8 002678F8 C1 1F 00 00 */ lfs f8, 0(r31)
+/* 8026A9BC 002678FC 4B FF F3 A9 */ bl cM3d_InclusionCheckPosIn3PosBox2d__Ffffffffff
+/* 8026A9C0 00267900 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026A9C4 00267904 40 82 00 0C */ bne lbl_8026A9D0
+/* 8026A9C8 00267908 38 60 00 00 */ li r3, 0
+/* 8026A9CC 0026790C 48 00 00 F4 */ b lbl_8026AAC0
+lbl_8026A9D0:
+/* 8026A9D0 00267910 C0 3E 00 1C */ lfs f1, 0x1c(r30)
+/* 8026A9D4 00267914 C0 5E 00 14 */ lfs f2, 0x14(r30)
+/* 8026A9D8 00267918 C0 7E 00 28 */ lfs f3, 0x28(r30)
+/* 8026A9DC 0026791C C0 9E 00 20 */ lfs f4, 0x20(r30)
+/* 8026A9E0 00267920 C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026A9E4 00267924 C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026A9E8 00267928 4B FF DE AD */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026A9EC 0026792C FF E0 08 90 */ fmr f31, f1
+/* 8026A9F0 00267930 FC 1F F0 40 */ fcmpo cr0, f31, f30
+/* 8026A9F4 00267934 4C 40 13 82 */ cror 2, 0, 2
+/* 8026A9F8 00267938 40 82 00 5C */ bne lbl_8026AA54
+/* 8026A9FC 0026793C C0 3E 00 28 */ lfs f1, 0x28(r30)
+/* 8026AA00 00267940 C0 5E 00 20 */ lfs f2, 0x20(r30)
+/* 8026AA04 00267944 C0 7E 00 34 */ lfs f3, 0x34(r30)
+/* 8026AA08 00267948 C0 9E 00 2C */ lfs f4, 0x2c(r30)
+/* 8026AA0C 0026794C C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026AA10 00267950 C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026AA14 00267954 4B FF DE 81 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026AA18 00267958 FC 01 F0 40 */ fcmpo cr0, f1, f30
+/* 8026AA1C 0026795C 4C 40 13 82 */ cror 2, 0, 2
+/* 8026AA20 00267960 40 82 00 34 */ bne lbl_8026AA54
+/* 8026AA24 00267964 C0 3E 00 34 */ lfs f1, 0x34(r30)
+/* 8026AA28 00267968 C0 5E 00 2C */ lfs f2, 0x2c(r30)
+/* 8026AA2C 0026796C C0 7E 00 1C */ lfs f3, 0x1c(r30)
+/* 8026AA30 00267970 C0 9E 00 14 */ lfs f4, 0x14(r30)
+/* 8026AA34 00267974 C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026AA38 00267978 C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026AA3C 0026797C 4B FF DE 59 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026AA40 00267980 FC 01 F0 40 */ fcmpo cr0, f1, f30
+/* 8026AA44 00267984 4C 40 13 82 */ cror 2, 0, 2
+/* 8026AA48 00267988 40 82 00 0C */ bne lbl_8026AA54
+/* 8026AA4C 0026798C 38 60 00 01 */ li r3, 1
+/* 8026AA50 00267990 48 00 00 70 */ b lbl_8026AAC0
+lbl_8026AA54:
+/* 8026AA54 00267994 FF C0 F0 50 */ fneg f30, f30
+/* 8026AA58 00267998 FC 1F F0 40 */ fcmpo cr0, f31, f30
+/* 8026AA5C 0026799C 4C 41 13 82 */ cror 2, 1, 2
+/* 8026AA60 002679A0 40 82 00 5C */ bne lbl_8026AABC
+/* 8026AA64 002679A4 C0 3E 00 28 */ lfs f1, 0x28(r30)
+/* 8026AA68 002679A8 C0 5E 00 20 */ lfs f2, 0x20(r30)
+/* 8026AA6C 002679AC C0 7E 00 34 */ lfs f3, 0x34(r30)
+/* 8026AA70 002679B0 C0 9E 00 2C */ lfs f4, 0x2c(r30)
+/* 8026AA74 002679B4 C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026AA78 002679B8 C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026AA7C 002679BC 4B FF DE 19 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026AA80 002679C0 FC 01 F0 40 */ fcmpo cr0, f1, f30
+/* 8026AA84 002679C4 4C 41 13 82 */ cror 2, 1, 2
+/* 8026AA88 002679C8 40 82 00 34 */ bne lbl_8026AABC
+/* 8026AA8C 002679CC C0 3E 00 34 */ lfs f1, 0x34(r30)
+/* 8026AA90 002679D0 C0 5E 00 2C */ lfs f2, 0x2c(r30)
+/* 8026AA94 002679D4 C0 7E 00 1C */ lfs f3, 0x1c(r30)
+/* 8026AA98 002679D8 C0 9E 00 14 */ lfs f4, 0x14(r30)
+/* 8026AA9C 002679DC C0 BF 00 08 */ lfs f5, 8(r31)
+/* 8026AAA0 002679E0 C0 DF 00 00 */ lfs f6, 0(r31)
+/* 8026AAA4 002679E4 4B FF DD F1 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026AAA8 002679E8 FC 01 F0 40 */ fcmpo cr0, f1, f30
+/* 8026AAAC 002679EC 4C 41 13 82 */ cror 2, 1, 2
+/* 8026AAB0 002679F0 40 82 00 0C */ bne lbl_8026AABC
+/* 8026AAB4 002679F4 38 60 00 01 */ li r3, 1
+/* 8026AAB8 002679F8 48 00 00 08 */ b lbl_8026AAC0
+lbl_8026AABC:
+/* 8026AABC 002679FC 38 60 00 00 */ li r3, 0
+lbl_8026AAC0:
+/* 8026AAC0 00267A00 E3 E1 00 38 */ psq_l f31, 56(r1), 0, 0
+/* 8026AAC4 00267A04 CB E1 00 30 */ lfd f31, 0x30(r1)
+/* 8026AAC8 00267A08 E3 C1 00 28 */ psq_l f30, 40(r1), 0, 0
+/* 8026AACC 00267A0C CB C1 00 20 */ lfd f30, 0x20(r1)
+/* 8026AAD0 00267A10 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026AAD4 00267A14 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026AAD8 00267A18 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8026AADC 00267A1C 7C 08 03 A6 */ mtlr r0
+/* 8026AAE0 00267A20 38 21 00 40 */ addi r1, r1, 0x40
+/* 8026AAE4 00267A24 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026AAE8.s b/include/SComponent/c_m3d/asm/func_8026AAE8.s
new file mode 100644
index 0000000000..28ff44e6f2
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026AAE8.s
@@ -0,0 +1,65 @@
+/* 8026AAE8 00267A28 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 8026AAEC 00267A2C 7C 08 02 A6 */ mflr r0
+/* 8026AAF0 00267A30 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8026AAF4 00267A34 DB E1 00 30 */ stfd f31, 0x30(r1)
+/* 8026AAF8 00267A38 F3 E1 00 38 */ psq_st f31, 56(r1), 0, 0
+/* 8026AAFC 00267A3C 39 61 00 30 */ addi r11, r1, 0x30
+/* 8026AB00 00267A40 48 0F 76 D9 */ bl _savegpr_28
+/* 8026AB04 00267A44 7C 7C 1B 78 */ mr r28, r3
+/* 8026AB08 00267A48 7C 9D 23 78 */ mr r29, r4
+/* 8026AB0C 00267A4C 7C BE 2B 78 */ mr r30, r5
+/* 8026AB10 00267A50 7C DF 33 78 */ mr r31, r6
+/* 8026AB14 00267A54 C0 03 00 04 */ lfs f0, 4(r3)
+/* 8026AB18 00267A58 FC 00 02 10 */ fabs f0, f0
+/* 8026AB1C 00267A5C FC 20 00 18 */ frsp f1, f0
+/* 8026AB20 00267A60 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026AB24 00267A64 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026AB28 00267A68 40 80 00 0C */ bge lbl_8026AB34
+/* 8026AB2C 00267A6C 38 60 00 00 */ li r3, 0
+/* 8026AB30 00267A70 48 00 00 88 */ b lbl_8026ABB8
+lbl_8026AB34:
+/* 8026AB34 00267A74 C0 1D 00 00 */ lfs f0, 0(r29)
+/* 8026AB38 00267A78 D0 01 00 08 */ stfs f0, 8(r1)
+/* 8026AB3C 00267A7C C0 1E 00 00 */ lfs f0, 0(r30)
+/* 8026AB40 00267A80 D0 01 00 0C */ stfs f0, 0xc(r1)
+/* 8026AB44 00267A84 C0 1D 00 08 */ lfs f0, 8(r29)
+/* 8026AB48 00267A88 D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 8026AB4C 00267A8C 38 81 00 08 */ addi r4, r1, 8
+/* 8026AB50 00267A90 48 0D C6 45 */ bl PSVECDotProduct
+/* 8026AB54 00267A94 C0 1C 00 0C */ lfs f0, 0xc(r28)
+/* 8026AB58 00267A98 EF E0 08 2A */ fadds f31, f0, f1
+/* 8026AB5C 00267A9C C0 1E 00 04 */ lfs f0, 4(r30)
+/* 8026AB60 00267AA0 D0 01 00 0C */ stfs f0, 0xc(r1)
+/* 8026AB64 00267AA4 7F 83 E3 78 */ mr r3, r28
+/* 8026AB68 00267AA8 38 81 00 08 */ addi r4, r1, 8
+/* 8026AB6C 00267AAC 48 0D C6 29 */ bl PSVECDotProduct
+/* 8026AB70 00267AB0 C0 1C 00 0C */ lfs f0, 0xc(r28)
+/* 8026AB74 00267AB4 EC 20 08 2A */ fadds f1, f0, f1
+/* 8026AB78 00267AB8 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026AB7C 00267ABC FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026AB80 00267AC0 40 81 00 0C */ ble lbl_8026AB8C
+/* 8026AB84 00267AC4 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026AB88 00267AC8 41 81 00 18 */ bgt lbl_8026ABA0
+lbl_8026AB8C:
+/* 8026AB8C 00267ACC C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026AB90 00267AD0 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026AB94 00267AD4 40 80 00 14 */ bge lbl_8026ABA8
+/* 8026AB98 00267AD8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026AB9C 00267ADC 40 80 00 0C */ bge lbl_8026ABA8
+lbl_8026ABA0:
+/* 8026ABA0 00267AE0 38 60 00 00 */ li r3, 0
+/* 8026ABA4 00267AE4 48 00 00 14 */ b lbl_8026ABB8
+lbl_8026ABA8:
+/* 8026ABA8 00267AE8 7F 83 E3 78 */ mr r3, r28
+/* 8026ABAC 00267AEC 7F A4 EB 78 */ mr r4, r29
+/* 8026ABB0 00267AF0 7F E5 FB 78 */ mr r5, r31
+/* 8026ABB4 00267AF4 4B FF FD 0D */ bl cM3d_CrossY_Tri__FPC8cM3dGTriPC3VecPf
+lbl_8026ABB8:
+/* 8026ABB8 00267AF8 E3 E1 00 38 */ psq_l f31, 56(r1), 0, 0
+/* 8026ABBC 00267AFC CB E1 00 30 */ lfd f31, 0x30(r1)
+/* 8026ABC0 00267B00 39 61 00 30 */ addi r11, r1, 0x30
+/* 8026ABC4 00267B04 48 0F 76 61 */ bl _restgpr_28
+/* 8026ABC8 00267B08 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8026ABCC 00267B0C 7C 08 03 A6 */ mtlr r0
+/* 8026ABD0 00267B10 38 21 00 40 */ addi r1, r1, 0x40
+/* 8026ABD4 00267B14 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026ABD8.s b/include/SComponent/c_m3d/asm/func_8026ABD8.s
new file mode 100644
index 0000000000..441d9085b5
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026ABD8.s
@@ -0,0 +1,110 @@
+/* 8026ABD8 00267B18 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 8026ABDC 00267B1C 7C 08 02 A6 */ mflr r0
+/* 8026ABE0 00267B20 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8026ABE4 00267B24 DB E1 00 30 */ stfd f31, 0x30(r1)
+/* 8026ABE8 00267B28 F3 E1 00 38 */ psq_st f31, 56(r1), 0, 0
+/* 8026ABEC 00267B2C DB C1 00 20 */ stfd f30, 0x20(r1)
+/* 8026ABF0 00267B30 F3 C1 00 28 */ psq_st f30, 40(r1), 0, 0
+/* 8026ABF4 00267B34 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026ABF8 00267B38 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026ABFC 00267B3C 7C 7E 1B 78 */ mr r30, r3
+/* 8026AC00 00267B40 7C 9F 23 78 */ mr r31, r4
+/* 8026AC04 00267B44 FF C0 08 90 */ fmr f30, f1
+/* 8026AC08 00267B48 C0 03 00 08 */ lfs f0, 8(r3)
+/* 8026AC0C 00267B4C FC 00 02 10 */ fabs f0, f0
+/* 8026AC10 00267B50 FC 20 00 18 */ frsp f1, f0
+/* 8026AC14 00267B54 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026AC18 00267B58 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026AC1C 00267B5C 40 80 00 0C */ bge lbl_8026AC28
+/* 8026AC20 00267B60 38 60 00 00 */ li r3, 0
+/* 8026AC24 00267B64 48 00 01 30 */ b lbl_8026AD54
+lbl_8026AC28:
+/* 8026AC28 00267B68 C0 02 B7 AC */ lfs f0, lbl_804551AC-_SDA2_BASE_(r2)
+/* 8026AC2C 00267B6C D0 01 00 08 */ stfs f0, 8(r1)
+/* 8026AC30 00267B70 C0 3E 00 14 */ lfs f1, 0x14(r30)
+/* 8026AC34 00267B74 C0 5E 00 18 */ lfs f2, 0x18(r30)
+/* 8026AC38 00267B78 C0 7E 00 20 */ lfs f3, 0x20(r30)
+/* 8026AC3C 00267B7C C0 9E 00 24 */ lfs f4, 0x24(r30)
+/* 8026AC40 00267B80 C0 BE 00 2C */ lfs f5, 0x2c(r30)
+/* 8026AC44 00267B84 C0 DE 00 30 */ lfs f6, 0x30(r30)
+/* 8026AC48 00267B88 C0 FF 00 00 */ lfs f7, 0(r31)
+/* 8026AC4C 00267B8C C1 1F 00 04 */ lfs f8, 4(r31)
+/* 8026AC50 00267B90 4B FF F1 15 */ bl cM3d_InclusionCheckPosIn3PosBox2d__Ffffffffff
+/* 8026AC54 00267B94 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026AC58 00267B98 40 82 00 0C */ bne lbl_8026AC64
+/* 8026AC5C 00267B9C 38 60 00 00 */ li r3, 0
+/* 8026AC60 00267BA0 48 00 00 F4 */ b lbl_8026AD54
+lbl_8026AC64:
+/* 8026AC64 00267BA4 C0 3E 00 14 */ lfs f1, 0x14(r30)
+/* 8026AC68 00267BA8 C0 5E 00 18 */ lfs f2, 0x18(r30)
+/* 8026AC6C 00267BAC C0 7E 00 20 */ lfs f3, 0x20(r30)
+/* 8026AC70 00267BB0 C0 9E 00 24 */ lfs f4, 0x24(r30)
+/* 8026AC74 00267BB4 C0 BF 00 00 */ lfs f5, 0(r31)
+/* 8026AC78 00267BB8 C0 DF 00 04 */ lfs f6, 4(r31)
+/* 8026AC7C 00267BBC 4B FF DC 19 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026AC80 00267BC0 FF E0 08 90 */ fmr f31, f1
+/* 8026AC84 00267BC4 FC 1F F0 40 */ fcmpo cr0, f31, f30
+/* 8026AC88 00267BC8 4C 40 13 82 */ cror 2, 0, 2
+/* 8026AC8C 00267BCC 40 82 00 5C */ bne lbl_8026ACE8
+/* 8026AC90 00267BD0 C0 3E 00 20 */ lfs f1, 0x20(r30)
+/* 8026AC94 00267BD4 C0 5E 00 24 */ lfs f2, 0x24(r30)
+/* 8026AC98 00267BD8 C0 7E 00 2C */ lfs f3, 0x2c(r30)
+/* 8026AC9C 00267BDC C0 9E 00 30 */ lfs f4, 0x30(r30)
+/* 8026ACA0 00267BE0 C0 BF 00 00 */ lfs f5, 0(r31)
+/* 8026ACA4 00267BE4 C0 DF 00 04 */ lfs f6, 4(r31)
+/* 8026ACA8 00267BE8 4B FF DB ED */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026ACAC 00267BEC FC 01 F0 40 */ fcmpo cr0, f1, f30
+/* 8026ACB0 00267BF0 4C 40 13 82 */ cror 2, 0, 2
+/* 8026ACB4 00267BF4 40 82 00 34 */ bne lbl_8026ACE8
+/* 8026ACB8 00267BF8 C0 3E 00 2C */ lfs f1, 0x2c(r30)
+/* 8026ACBC 00267BFC C0 5E 00 30 */ lfs f2, 0x30(r30)
+/* 8026ACC0 00267C00 C0 7E 00 14 */ lfs f3, 0x14(r30)
+/* 8026ACC4 00267C04 C0 9E 00 18 */ lfs f4, 0x18(r30)
+/* 8026ACC8 00267C08 C0 BF 00 00 */ lfs f5, 0(r31)
+/* 8026ACCC 00267C0C C0 DF 00 04 */ lfs f6, 4(r31)
+/* 8026ACD0 00267C10 4B FF DB C5 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026ACD4 00267C14 FC 01 F0 40 */ fcmpo cr0, f1, f30
+/* 8026ACD8 00267C18 4C 40 13 82 */ cror 2, 0, 2
+/* 8026ACDC 00267C1C 40 82 00 0C */ bne lbl_8026ACE8
+/* 8026ACE0 00267C20 38 60 00 01 */ li r3, 1
+/* 8026ACE4 00267C24 48 00 00 70 */ b lbl_8026AD54
+lbl_8026ACE8:
+/* 8026ACE8 00267C28 FF C0 F0 50 */ fneg f30, f30
+/* 8026ACEC 00267C2C FC 1F F0 40 */ fcmpo cr0, f31, f30
+/* 8026ACF0 00267C30 4C 41 13 82 */ cror 2, 1, 2
+/* 8026ACF4 00267C34 40 82 00 5C */ bne lbl_8026AD50
+/* 8026ACF8 00267C38 C0 3E 00 20 */ lfs f1, 0x20(r30)
+/* 8026ACFC 00267C3C C0 5E 00 24 */ lfs f2, 0x24(r30)
+/* 8026AD00 00267C40 C0 7E 00 2C */ lfs f3, 0x2c(r30)
+/* 8026AD04 00267C44 C0 9E 00 30 */ lfs f4, 0x30(r30)
+/* 8026AD08 00267C48 C0 BF 00 00 */ lfs f5, 0(r31)
+/* 8026AD0C 00267C4C C0 DF 00 04 */ lfs f6, 4(r31)
+/* 8026AD10 00267C50 4B FF DB 85 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026AD14 00267C54 FC 01 F0 40 */ fcmpo cr0, f1, f30
+/* 8026AD18 00267C58 4C 41 13 82 */ cror 2, 1, 2
+/* 8026AD1C 00267C5C 40 82 00 34 */ bne lbl_8026AD50
+/* 8026AD20 00267C60 C0 3E 00 2C */ lfs f1, 0x2c(r30)
+/* 8026AD24 00267C64 C0 5E 00 30 */ lfs f2, 0x30(r30)
+/* 8026AD28 00267C68 C0 7E 00 14 */ lfs f3, 0x14(r30)
+/* 8026AD2C 00267C6C C0 9E 00 18 */ lfs f4, 0x18(r30)
+/* 8026AD30 00267C70 C0 BF 00 00 */ lfs f5, 0(r31)
+/* 8026AD34 00267C74 C0 DF 00 04 */ lfs f6, 4(r31)
+/* 8026AD38 00267C78 4B FF DB 5D */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026AD3C 00267C7C FC 01 F0 40 */ fcmpo cr0, f1, f30
+/* 8026AD40 00267C80 4C 41 13 82 */ cror 2, 1, 2
+/* 8026AD44 00267C84 40 82 00 0C */ bne lbl_8026AD50
+/* 8026AD48 00267C88 38 60 00 01 */ li r3, 1
+/* 8026AD4C 00267C8C 48 00 00 08 */ b lbl_8026AD54
+lbl_8026AD50:
+/* 8026AD50 00267C90 38 60 00 00 */ li r3, 0
+lbl_8026AD54:
+/* 8026AD54 00267C94 E3 E1 00 38 */ psq_l f31, 56(r1), 0, 0
+/* 8026AD58 00267C98 CB E1 00 30 */ lfd f31, 0x30(r1)
+/* 8026AD5C 00267C9C E3 C1 00 28 */ psq_l f30, 40(r1), 0, 0
+/* 8026AD60 00267CA0 CB C1 00 20 */ lfd f30, 0x20(r1)
+/* 8026AD64 00267CA4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026AD68 00267CA8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026AD6C 00267CAC 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8026AD70 00267CB0 7C 08 03 A6 */ mtlr r0
+/* 8026AD74 00267CB4 38 21 00 40 */ addi r1, r1, 0x40
+/* 8026AD78 00267CB8 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026AD7C.s b/include/SComponent/c_m3d/asm/func_8026AD7C.s
new file mode 100644
index 0000000000..7513d7727d
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026AD7C.s
@@ -0,0 +1,110 @@
+/* 8026AD7C 00267CBC 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8026AD80 00267CC0 7C 08 02 A6 */ mflr r0
+/* 8026AD84 00267CC4 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8026AD88 00267CC8 DB E1 00 20 */ stfd f31, 0x20(r1)
+/* 8026AD8C 00267CCC F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0
+/* 8026AD90 00267CD0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026AD94 00267CD4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026AD98 00267CD8 7C 7E 1B 78 */ mr r30, r3
+/* 8026AD9C 00267CDC 7C 9F 23 78 */ mr r31, r4
+/* 8026ADA0 00267CE0 C0 03 00 08 */ lfs f0, 8(r3)
+/* 8026ADA4 00267CE4 FC 00 02 10 */ fabs f0, f0
+/* 8026ADA8 00267CE8 FC 20 00 18 */ frsp f1, f0
+/* 8026ADAC 00267CEC C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026ADB0 00267CF0 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026ADB4 00267CF4 40 80 00 0C */ bge lbl_8026ADC0
+/* 8026ADB8 00267CF8 38 60 00 00 */ li r3, 0
+/* 8026ADBC 00267CFC 48 00 01 44 */ b lbl_8026AF00
+lbl_8026ADC0:
+/* 8026ADC0 00267D00 C0 02 B7 AC */ lfs f0, lbl_804551AC-_SDA2_BASE_(r2)
+/* 8026ADC4 00267D04 D0 01 00 08 */ stfs f0, 8(r1)
+/* 8026ADC8 00267D08 C0 3E 00 14 */ lfs f1, 0x14(r30)
+/* 8026ADCC 00267D0C C0 5E 00 18 */ lfs f2, 0x18(r30)
+/* 8026ADD0 00267D10 C0 7E 00 20 */ lfs f3, 0x20(r30)
+/* 8026ADD4 00267D14 C0 9E 00 24 */ lfs f4, 0x24(r30)
+/* 8026ADD8 00267D18 C0 BE 00 2C */ lfs f5, 0x2c(r30)
+/* 8026ADDC 00267D1C C0 DE 00 30 */ lfs f6, 0x30(r30)
+/* 8026ADE0 00267D20 C0 FF 00 00 */ lfs f7, 0(r31)
+/* 8026ADE4 00267D24 C1 1F 00 04 */ lfs f8, 4(r31)
+/* 8026ADE8 00267D28 4B FF EF 7D */ bl cM3d_InclusionCheckPosIn3PosBox2d__Ffffffffff
+/* 8026ADEC 00267D2C 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026ADF0 00267D30 40 82 00 0C */ bne lbl_8026ADFC
+/* 8026ADF4 00267D34 38 60 00 00 */ li r3, 0
+/* 8026ADF8 00267D38 48 00 01 08 */ b lbl_8026AF00
+lbl_8026ADFC:
+/* 8026ADFC 00267D3C C0 3E 00 14 */ lfs f1, 0x14(r30)
+/* 8026AE00 00267D40 C0 5E 00 18 */ lfs f2, 0x18(r30)
+/* 8026AE04 00267D44 C0 7E 00 20 */ lfs f3, 0x20(r30)
+/* 8026AE08 00267D48 C0 9E 00 24 */ lfs f4, 0x24(r30)
+/* 8026AE0C 00267D4C C0 BF 00 00 */ lfs f5, 0(r31)
+/* 8026AE10 00267D50 C0 DF 00 04 */ lfs f6, 4(r31)
+/* 8026AE14 00267D54 4B FF DA 81 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026AE18 00267D58 FF E0 08 90 */ fmr f31, f1
+/* 8026AE1C 00267D5C C0 02 B7 B0 */ lfs f0, lbl_804551B0-_SDA2_BASE_(r2)
+/* 8026AE20 00267D60 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026AE24 00267D64 4C 40 13 82 */ cror 2, 0, 2
+/* 8026AE28 00267D68 40 82 00 64 */ bne lbl_8026AE8C
+/* 8026AE2C 00267D6C C0 3E 00 20 */ lfs f1, 0x20(r30)
+/* 8026AE30 00267D70 C0 5E 00 24 */ lfs f2, 0x24(r30)
+/* 8026AE34 00267D74 C0 7E 00 2C */ lfs f3, 0x2c(r30)
+/* 8026AE38 00267D78 C0 9E 00 30 */ lfs f4, 0x30(r30)
+/* 8026AE3C 00267D7C C0 BF 00 00 */ lfs f5, 0(r31)
+/* 8026AE40 00267D80 C0 DF 00 04 */ lfs f6, 4(r31)
+/* 8026AE44 00267D84 4B FF DA 51 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026AE48 00267D88 C0 02 B7 B0 */ lfs f0, lbl_804551B0-_SDA2_BASE_(r2)
+/* 8026AE4C 00267D8C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026AE50 00267D90 4C 40 13 82 */ cror 2, 0, 2
+/* 8026AE54 00267D94 40 82 00 38 */ bne lbl_8026AE8C
+/* 8026AE58 00267D98 C0 3E 00 2C */ lfs f1, 0x2c(r30)
+/* 8026AE5C 00267D9C C0 5E 00 30 */ lfs f2, 0x30(r30)
+/* 8026AE60 00267DA0 C0 7E 00 14 */ lfs f3, 0x14(r30)
+/* 8026AE64 00267DA4 C0 9E 00 18 */ lfs f4, 0x18(r30)
+/* 8026AE68 00267DA8 C0 BF 00 00 */ lfs f5, 0(r31)
+/* 8026AE6C 00267DAC C0 DF 00 04 */ lfs f6, 4(r31)
+/* 8026AE70 00267DB0 4B FF DA 25 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026AE74 00267DB4 C0 02 B7 B0 */ lfs f0, lbl_804551B0-_SDA2_BASE_(r2)
+/* 8026AE78 00267DB8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026AE7C 00267DBC 4C 40 13 82 */ cror 2, 0, 2
+/* 8026AE80 00267DC0 40 82 00 0C */ bne lbl_8026AE8C
+/* 8026AE84 00267DC4 38 60 00 01 */ li r3, 1
+/* 8026AE88 00267DC8 48 00 00 78 */ b lbl_8026AF00
+lbl_8026AE8C:
+/* 8026AE8C 00267DCC C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026AE90 00267DD0 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026AE94 00267DD4 4C 41 13 82 */ cror 2, 1, 2
+/* 8026AE98 00267DD8 40 82 00 64 */ bne lbl_8026AEFC
+/* 8026AE9C 00267DDC C0 3E 00 20 */ lfs f1, 0x20(r30)
+/* 8026AEA0 00267DE0 C0 5E 00 24 */ lfs f2, 0x24(r30)
+/* 8026AEA4 00267DE4 C0 7E 00 2C */ lfs f3, 0x2c(r30)
+/* 8026AEA8 00267DE8 C0 9E 00 30 */ lfs f4, 0x30(r30)
+/* 8026AEAC 00267DEC C0 BF 00 00 */ lfs f5, 0(r31)
+/* 8026AEB0 00267DF0 C0 DF 00 04 */ lfs f6, 4(r31)
+/* 8026AEB4 00267DF4 4B FF D9 E1 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026AEB8 00267DF8 C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026AEBC 00267DFC FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026AEC0 00267E00 4C 41 13 82 */ cror 2, 1, 2
+/* 8026AEC4 00267E04 40 82 00 38 */ bne lbl_8026AEFC
+/* 8026AEC8 00267E08 C0 3E 00 2C */ lfs f1, 0x2c(r30)
+/* 8026AECC 00267E0C C0 5E 00 30 */ lfs f2, 0x30(r30)
+/* 8026AED0 00267E10 C0 7E 00 14 */ lfs f3, 0x14(r30)
+/* 8026AED4 00267E14 C0 9E 00 18 */ lfs f4, 0x18(r30)
+/* 8026AED8 00267E18 C0 BF 00 00 */ lfs f5, 0(r31)
+/* 8026AEDC 00267E1C C0 DF 00 04 */ lfs f6, 4(r31)
+/* 8026AEE0 00267E20 4B FF D9 B5 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026AEE4 00267E24 C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026AEE8 00267E28 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026AEEC 00267E2C 4C 41 13 82 */ cror 2, 1, 2
+/* 8026AEF0 00267E30 40 82 00 0C */ bne lbl_8026AEFC
+/* 8026AEF4 00267E34 38 60 00 01 */ li r3, 1
+/* 8026AEF8 00267E38 48 00 00 08 */ b lbl_8026AF00
+lbl_8026AEFC:
+/* 8026AEFC 00267E3C 38 60 00 00 */ li r3, 0
+lbl_8026AF00:
+/* 8026AF00 00267E40 E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0
+/* 8026AF04 00267E44 CB E1 00 20 */ lfd f31, 0x20(r1)
+/* 8026AF08 00267E48 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026AF0C 00267E4C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026AF10 00267E50 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8026AF14 00267E54 7C 08 03 A6 */ mtlr r0
+/* 8026AF18 00267E58 38 21 00 30 */ addi r1, r1, 0x30
+/* 8026AF1C 00267E5C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026AF20.s b/include/SComponent/c_m3d/asm/func_8026AF20.s
new file mode 100644
index 0000000000..a3eed6d81e
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026AF20.s
@@ -0,0 +1,101 @@
+/* 8026AF20 00267E60 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8026AF24 00267E64 7C 08 02 A6 */ mflr r0
+/* 8026AF28 00267E68 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8026AF2C 00267E6C DB E1 00 20 */ stfd f31, 0x20(r1)
+/* 8026AF30 00267E70 F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0
+/* 8026AF34 00267E74 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026AF38 00267E78 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026AF3C 00267E7C 7C 7E 1B 78 */ mr r30, r3
+/* 8026AF40 00267E80 7C 9F 23 78 */ mr r31, r4
+/* 8026AF44 00267E84 C0 02 B7 AC */ lfs f0, lbl_804551AC-_SDA2_BASE_(r2)
+/* 8026AF48 00267E88 D0 01 00 08 */ stfs f0, 8(r1)
+/* 8026AF4C 00267E8C C0 23 00 14 */ lfs f1, 0x14(r3)
+/* 8026AF50 00267E90 C0 43 00 18 */ lfs f2, 0x18(r3)
+/* 8026AF54 00267E94 C0 63 00 20 */ lfs f3, 0x20(r3)
+/* 8026AF58 00267E98 C0 83 00 24 */ lfs f4, 0x24(r3)
+/* 8026AF5C 00267E9C C0 A3 00 2C */ lfs f5, 0x2c(r3)
+/* 8026AF60 00267EA0 C0 C3 00 30 */ lfs f6, 0x30(r3)
+/* 8026AF64 00267EA4 C0 E4 00 00 */ lfs f7, 0(r4)
+/* 8026AF68 00267EA8 C1 04 00 04 */ lfs f8, 4(r4)
+/* 8026AF6C 00267EAC 4B FF ED F9 */ bl cM3d_InclusionCheckPosIn3PosBox2d__Ffffffffff
+/* 8026AF70 00267EB0 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026AF74 00267EB4 40 82 00 0C */ bne lbl_8026AF80
+/* 8026AF78 00267EB8 38 60 00 00 */ li r3, 0
+/* 8026AF7C 00267EBC 48 00 01 08 */ b lbl_8026B084
+lbl_8026AF80:
+/* 8026AF80 00267EC0 C0 3E 00 14 */ lfs f1, 0x14(r30)
+/* 8026AF84 00267EC4 C0 5E 00 18 */ lfs f2, 0x18(r30)
+/* 8026AF88 00267EC8 C0 7E 00 20 */ lfs f3, 0x20(r30)
+/* 8026AF8C 00267ECC C0 9E 00 24 */ lfs f4, 0x24(r30)
+/* 8026AF90 00267ED0 C0 BF 00 00 */ lfs f5, 0(r31)
+/* 8026AF94 00267ED4 C0 DF 00 04 */ lfs f6, 4(r31)
+/* 8026AF98 00267ED8 4B FF D8 FD */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026AF9C 00267EDC FF E0 08 90 */ fmr f31, f1
+/* 8026AFA0 00267EE0 C0 02 B7 B0 */ lfs f0, lbl_804551B0-_SDA2_BASE_(r2)
+/* 8026AFA4 00267EE4 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026AFA8 00267EE8 4C 40 13 82 */ cror 2, 0, 2
+/* 8026AFAC 00267EEC 40 82 00 64 */ bne lbl_8026B010
+/* 8026AFB0 00267EF0 C0 3E 00 20 */ lfs f1, 0x20(r30)
+/* 8026AFB4 00267EF4 C0 5E 00 24 */ lfs f2, 0x24(r30)
+/* 8026AFB8 00267EF8 C0 7E 00 2C */ lfs f3, 0x2c(r30)
+/* 8026AFBC 00267EFC C0 9E 00 30 */ lfs f4, 0x30(r30)
+/* 8026AFC0 00267F00 C0 BF 00 00 */ lfs f5, 0(r31)
+/* 8026AFC4 00267F04 C0 DF 00 04 */ lfs f6, 4(r31)
+/* 8026AFC8 00267F08 4B FF D8 CD */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026AFCC 00267F0C C0 02 B7 B0 */ lfs f0, lbl_804551B0-_SDA2_BASE_(r2)
+/* 8026AFD0 00267F10 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026AFD4 00267F14 4C 40 13 82 */ cror 2, 0, 2
+/* 8026AFD8 00267F18 40 82 00 38 */ bne lbl_8026B010
+/* 8026AFDC 00267F1C C0 3E 00 2C */ lfs f1, 0x2c(r30)
+/* 8026AFE0 00267F20 C0 5E 00 30 */ lfs f2, 0x30(r30)
+/* 8026AFE4 00267F24 C0 7E 00 14 */ lfs f3, 0x14(r30)
+/* 8026AFE8 00267F28 C0 9E 00 18 */ lfs f4, 0x18(r30)
+/* 8026AFEC 00267F2C C0 BF 00 00 */ lfs f5, 0(r31)
+/* 8026AFF0 00267F30 C0 DF 00 04 */ lfs f6, 4(r31)
+/* 8026AFF4 00267F34 4B FF D8 A1 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026AFF8 00267F38 C0 02 B7 B0 */ lfs f0, lbl_804551B0-_SDA2_BASE_(r2)
+/* 8026AFFC 00267F3C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026B000 00267F40 4C 40 13 82 */ cror 2, 0, 2
+/* 8026B004 00267F44 40 82 00 0C */ bne lbl_8026B010
+/* 8026B008 00267F48 38 60 00 01 */ li r3, 1
+/* 8026B00C 00267F4C 48 00 00 78 */ b lbl_8026B084
+lbl_8026B010:
+/* 8026B010 00267F50 C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026B014 00267F54 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026B018 00267F58 4C 41 13 82 */ cror 2, 1, 2
+/* 8026B01C 00267F5C 40 82 00 64 */ bne lbl_8026B080
+/* 8026B020 00267F60 C0 3E 00 20 */ lfs f1, 0x20(r30)
+/* 8026B024 00267F64 C0 5E 00 24 */ lfs f2, 0x24(r30)
+/* 8026B028 00267F68 C0 7E 00 2C */ lfs f3, 0x2c(r30)
+/* 8026B02C 00267F6C C0 9E 00 30 */ lfs f4, 0x30(r30)
+/* 8026B030 00267F70 C0 BF 00 00 */ lfs f5, 0(r31)
+/* 8026B034 00267F74 C0 DF 00 04 */ lfs f6, 4(r31)
+/* 8026B038 00267F78 4B FF D8 5D */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026B03C 00267F7C C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026B040 00267F80 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026B044 00267F84 4C 41 13 82 */ cror 2, 1, 2
+/* 8026B048 00267F88 40 82 00 38 */ bne lbl_8026B080
+/* 8026B04C 00267F8C C0 3E 00 2C */ lfs f1, 0x2c(r30)
+/* 8026B050 00267F90 C0 5E 00 30 */ lfs f2, 0x30(r30)
+/* 8026B054 00267F94 C0 7E 00 14 */ lfs f3, 0x14(r30)
+/* 8026B058 00267F98 C0 9E 00 18 */ lfs f4, 0x18(r30)
+/* 8026B05C 00267F9C C0 BF 00 00 */ lfs f5, 0(r31)
+/* 8026B060 00267FA0 C0 DF 00 04 */ lfs f6, 4(r31)
+/* 8026B064 00267FA4 4B FF D8 31 */ bl cM3d_VectorProduct2d__Fffffff
+/* 8026B068 00267FA8 C0 02 B7 B4 */ lfs f0, lbl_804551B4-_SDA2_BASE_(r2)
+/* 8026B06C 00267FAC FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026B070 00267FB0 4C 41 13 82 */ cror 2, 1, 2
+/* 8026B074 00267FB4 40 82 00 0C */ bne lbl_8026B080
+/* 8026B078 00267FB8 38 60 00 01 */ li r3, 1
+/* 8026B07C 00267FBC 48 00 00 08 */ b lbl_8026B084
+lbl_8026B080:
+/* 8026B080 00267FC0 38 60 00 00 */ li r3, 0
+lbl_8026B084:
+/* 8026B084 00267FC4 E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0
+/* 8026B088 00267FC8 CB E1 00 20 */ lfd f31, 0x20(r1)
+/* 8026B08C 00267FCC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026B090 00267FD0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026B094 00267FD4 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8026B098 00267FD8 7C 08 03 A6 */ mtlr r0
+/* 8026B09C 00267FDC 38 21 00 30 */ addi r1, r1, 0x30
+/* 8026B0A0 00267FE0 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026B0A4.s b/include/SComponent/c_m3d/asm/func_8026B0A4.s
new file mode 100644
index 0000000000..c162134182
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026B0A4.s
@@ -0,0 +1,60 @@
+/* 8026B0A4 00267FE4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026B0A8 00267FE8 7C 08 02 A6 */ mflr r0
+/* 8026B0AC 00267FEC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026B0B0 00267FF0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8026B0B4 00267FF4 93 C1 00 08 */ stw r30, 8(r1)
+/* 8026B0B8 00267FF8 7C 9E 23 78 */ mr r30, r4
+/* 8026B0BC 00267FFC 7C BF 2B 78 */ mr r31, r5
+/* 8026B0C0 00268000 4B FF DE 75 */ bl cM3d_Cross_LinPla__FPC8cM3dGLinPC8cM3dGPlaP3Vecbb
+/* 8026B0C4 00268004 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026B0C8 00268008 40 82 00 0C */ bne lbl_8026B0D4
+/* 8026B0CC 0026800C 38 60 00 00 */ li r3, 0
+/* 8026B0D0 00268010 48 00 00 94 */ b lbl_8026B164
+lbl_8026B0D4:
+/* 8026B0D4 00268014 C0 1E 00 00 */ lfs f0, 0(r30)
+/* 8026B0D8 00268018 FC 00 02 10 */ fabs f0, f0
+/* 8026B0DC 0026801C FC 20 00 18 */ frsp f1, f0
+/* 8026B0E0 00268020 C0 02 B7 B8 */ lfs f0, lbl_804551B8-_SDA2_BASE_(r2)
+/* 8026B0E4 00268024 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026B0E8 00268028 41 80 00 18 */ blt lbl_8026B100
+/* 8026B0EC 0026802C 7F C3 F3 78 */ mr r3, r30
+/* 8026B0F0 00268030 7F E4 FB 78 */ mr r4, r31
+/* 8026B0F4 00268034 4B FF F0 6D */ bl cM3d_CrossX_LinTri_proc__FPC8cM3dGTriPC3Vec
+/* 8026B0F8 00268038 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026B0FC 0026803C 41 82 00 64 */ beq lbl_8026B160
+lbl_8026B100:
+/* 8026B100 00268040 C0 1E 00 04 */ lfs f0, 4(r30)
+/* 8026B104 00268044 FC 00 02 10 */ fabs f0, f0
+/* 8026B108 00268048 FC 20 00 18 */ frsp f1, f0
+/* 8026B10C 0026804C C0 02 B7 B8 */ lfs f0, lbl_804551B8-_SDA2_BASE_(r2)
+/* 8026B110 00268050 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026B114 00268054 41 80 00 18 */ blt lbl_8026B12C
+/* 8026B118 00268058 7F C3 F3 78 */ mr r3, r30
+/* 8026B11C 0026805C 7F E4 FB 78 */ mr r4, r31
+/* 8026B120 00268060 4B FF F3 69 */ bl cM3d_CrossY_LinTri_proc__FPC8cM3dGTriPC3Vec
+/* 8026B124 00268064 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026B128 00268068 41 82 00 38 */ beq lbl_8026B160
+lbl_8026B12C:
+/* 8026B12C 0026806C C0 1E 00 08 */ lfs f0, 8(r30)
+/* 8026B130 00268070 FC 00 02 10 */ fabs f0, f0
+/* 8026B134 00268074 FC 20 00 18 */ frsp f1, f0
+/* 8026B138 00268078 C0 02 B7 B8 */ lfs f0, lbl_804551B8-_SDA2_BASE_(r2)
+/* 8026B13C 0026807C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026B140 00268080 41 80 00 18 */ blt lbl_8026B158
+/* 8026B144 00268084 7F C3 F3 78 */ mr r3, r30
+/* 8026B148 00268088 7F E4 FB 78 */ mr r4, r31
+/* 8026B14C 0026808C 4B FF FD D5 */ bl cM3d_CrossZ_LinTri_proc__FPC8cM3dGTriPC3Vec
+/* 8026B150 00268090 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026B154 00268094 41 82 00 0C */ beq lbl_8026B160
+lbl_8026B158:
+/* 8026B158 00268098 38 60 00 01 */ li r3, 1
+/* 8026B15C 0026809C 48 00 00 08 */ b lbl_8026B164
+lbl_8026B160:
+/* 8026B160 002680A0 38 60 00 00 */ li r3, 0
+lbl_8026B164:
+/* 8026B164 002680A4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8026B168 002680A8 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8026B16C 002680AC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026B170 002680B0 7C 08 03 A6 */ mtlr r0
+/* 8026B174 002680B4 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026B178 002680B8 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026B17C.s b/include/SComponent/c_m3d/asm/func_8026B17C.s
new file mode 100644
index 0000000000..789957aa8d
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026B17C.s
@@ -0,0 +1,52 @@
+/* 8026B17C 002680BC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026B180 002680C0 7C 08 02 A6 */ mflr r0
+/* 8026B184 002680C4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026B188 002680C8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8026B18C 002680CC 93 C1 00 08 */ stw r30, 8(r1)
+/* 8026B190 002680D0 7C 7E 1B 78 */ mr r30, r3
+/* 8026B194 002680D4 7C 9F 23 78 */ mr r31, r4
+/* 8026B198 002680D8 C0 03 00 00 */ lfs f0, 0(r3)
+/* 8026B19C 002680DC FC 00 02 10 */ fabs f0, f0
+/* 8026B1A0 002680E0 FC 20 00 18 */ frsp f1, f0
+/* 8026B1A4 002680E4 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026B1A8 002680E8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026B1AC 002680EC 41 80 00 10 */ blt lbl_8026B1BC
+/* 8026B1B0 002680F0 4B FF EE 0D */ bl cM3d_CrossX_Tri__FPC8cM3dGTriPC3Vec
+/* 8026B1B4 002680F4 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026B1B8 002680F8 41 82 00 64 */ beq lbl_8026B21C
+lbl_8026B1BC:
+/* 8026B1BC 002680FC C0 1E 00 04 */ lfs f0, 4(r30)
+/* 8026B1C0 00268100 FC 00 02 10 */ fabs f0, f0
+/* 8026B1C4 00268104 FC 20 00 18 */ frsp f1, f0
+/* 8026B1C8 00268108 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026B1CC 0026810C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026B1D0 00268110 41 80 00 18 */ blt lbl_8026B1E8
+/* 8026B1D4 00268114 7F C3 F3 78 */ mr r3, r30
+/* 8026B1D8 00268118 7F E4 FB 78 */ mr r4, r31
+/* 8026B1DC 0026811C 4B FF F1 09 */ bl cM3d_CrossY_Tri__FPC8cM3dGTriPC3Vec
+/* 8026B1E0 00268120 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026B1E4 00268124 41 82 00 38 */ beq lbl_8026B21C
+lbl_8026B1E8:
+/* 8026B1E8 00268128 C0 1E 00 08 */ lfs f0, 8(r30)
+/* 8026B1EC 0026812C FC 00 02 10 */ fabs f0, f0
+/* 8026B1F0 00268130 FC 20 00 18 */ frsp f1, f0
+/* 8026B1F4 00268134 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026B1F8 00268138 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026B1FC 0026813C 41 80 00 18 */ blt lbl_8026B214
+/* 8026B200 00268140 7F C3 F3 78 */ mr r3, r30
+/* 8026B204 00268144 7F E4 FB 78 */ mr r4, r31
+/* 8026B208 00268148 4B FF FB 75 */ bl cM3d_CrossZ_Tri__FPC8cM3dGTriPC3Vec
+/* 8026B20C 0026814C 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026B210 00268150 41 82 00 0C */ beq lbl_8026B21C
+lbl_8026B214:
+/* 8026B214 00268154 38 60 00 01 */ li r3, 1
+/* 8026B218 00268158 48 00 00 08 */ b lbl_8026B220
+lbl_8026B21C:
+/* 8026B21C 0026815C 38 60 00 00 */ li r3, 0
+lbl_8026B220:
+/* 8026B220 00268160 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8026B224 00268164 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8026B228 00268168 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026B22C 0026816C 7C 08 03 A6 */ mtlr r0
+/* 8026B230 00268170 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026B234 00268174 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026B238.s b/include/SComponent/c_m3d/asm/func_8026B238.s
new file mode 100644
index 0000000000..ea21dd1046
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026B238.s
@@ -0,0 +1,18 @@
+/* 8026B238 00268178 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026B23C 0026817C 7C 08 02 A6 */ mflr r0
+/* 8026B240 00268180 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026B244 00268184 DB E1 00 10 */ stfd f31, 0x10(r1)
+/* 8026B248 00268188 F3 E1 00 18 */ psq_st f31, 24(r1), 0, 0
+/* 8026B24C 0026818C C3 E3 00 0C */ lfs f31, 0xc(r3)
+/* 8026B250 00268190 48 0D C1 4D */ bl PSVECSquareDistance
+/* 8026B254 00268194 EC 1F 07 F2 */ fmuls f0, f31, f31
+/* 8026B258 00268198 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026B25C 0026819C 4C 40 13 82 */ cror 2, 0, 2
+/* 8026B260 002681A0 7C 00 00 26 */ mfcr r0
+/* 8026B264 002681A4 54 03 1F FE */ rlwinm r3, r0, 3, 0x1f, 0x1f
+/* 8026B268 002681A8 E3 E1 00 18 */ psq_l f31, 24(r1), 0, 0
+/* 8026B26C 002681AC CB E1 00 10 */ lfd f31, 0x10(r1)
+/* 8026B270 002681B0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026B274 002681B4 7C 08 03 A6 */ mtlr r0
+/* 8026B278 002681B8 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026B27C 002681BC 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026B280.s b/include/SComponent/c_m3d/asm/func_8026B280.s
new file mode 100644
index 0000000000..afd7d76531
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026B280.s
@@ -0,0 +1,166 @@
+/* 8026B280 002681C0 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 8026B284 002681C4 7C 08 02 A6 */ mflr r0
+/* 8026B288 002681C8 90 01 00 54 */ stw r0, 0x54(r1)
+/* 8026B28C 002681CC DB E1 00 40 */ stfd f31, 0x40(r1)
+/* 8026B290 002681D0 F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0
+/* 8026B294 002681D4 39 61 00 40 */ addi r11, r1, 0x40
+/* 8026B298 002681D8 48 0F 6F 45 */ bl _savegpr_29
+/* 8026B29C 002681DC 7C 7D 1B 78 */ mr r29, r3
+/* 8026B2A0 002681E0 7C 9F 23 78 */ mr r31, r4
+/* 8026B2A4 002681E4 7C BE 2B 78 */ mr r30, r5
+/* 8026B2A8 002681E8 C0 44 00 00 */ lfs f2, 0(r4)
+/* 8026B2AC 002681EC C0 24 00 0C */ lfs f1, 0xc(r4)
+/* 8026B2B0 002681F0 EC 82 08 2A */ fadds f4, f2, f1
+/* 8026B2B4 002681F4 C0 63 00 00 */ lfs f3, 0(r3)
+/* 8026B2B8 002681F8 FC 04 18 40 */ fcmpo cr0, f4, f3
+/* 8026B2BC 002681FC 40 80 00 18 */ bge lbl_8026B2D4
+/* 8026B2C0 00268200 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 8026B2C4 00268204 FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 8026B2C8 00268208 40 80 00 0C */ bge lbl_8026B2D4
+/* 8026B2CC 0026820C 38 60 00 00 */ li r3, 0
+/* 8026B2D0 00268210 48 00 01 F8 */ b lbl_8026B4C8
+lbl_8026B2D4:
+/* 8026B2D4 00268214 EC 42 08 28 */ fsubs f2, f2, f1
+/* 8026B2D8 00268218 FC 02 18 40 */ fcmpo cr0, f2, f3
+/* 8026B2DC 0026821C 40 81 00 18 */ ble lbl_8026B2F4
+/* 8026B2E0 00268220 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 8026B2E4 00268224 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 8026B2E8 00268228 40 81 00 0C */ ble lbl_8026B2F4
+/* 8026B2EC 0026822C 38 60 00 00 */ li r3, 0
+/* 8026B2F0 00268230 48 00 01 D8 */ b lbl_8026B4C8
+lbl_8026B2F4:
+/* 8026B2F4 00268234 C0 5F 00 04 */ lfs f2, 4(r31)
+/* 8026B2F8 00268238 EC 82 08 2A */ fadds f4, f2, f1
+/* 8026B2FC 0026823C C0 7D 00 04 */ lfs f3, 4(r29)
+/* 8026B300 00268240 FC 04 18 40 */ fcmpo cr0, f4, f3
+/* 8026B304 00268244 40 80 00 18 */ bge lbl_8026B31C
+/* 8026B308 00268248 C0 1D 00 10 */ lfs f0, 0x10(r29)
+/* 8026B30C 0026824C FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 8026B310 00268250 40 80 00 0C */ bge lbl_8026B31C
+/* 8026B314 00268254 38 60 00 00 */ li r3, 0
+/* 8026B318 00268258 48 00 01 B0 */ b lbl_8026B4C8
+lbl_8026B31C:
+/* 8026B31C 0026825C EC 42 08 28 */ fsubs f2, f2, f1
+/* 8026B320 00268260 FC 02 18 40 */ fcmpo cr0, f2, f3
+/* 8026B324 00268264 40 81 00 18 */ ble lbl_8026B33C
+/* 8026B328 00268268 C0 1D 00 10 */ lfs f0, 0x10(r29)
+/* 8026B32C 0026826C FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 8026B330 00268270 40 81 00 0C */ ble lbl_8026B33C
+/* 8026B334 00268274 38 60 00 00 */ li r3, 0
+/* 8026B338 00268278 48 00 01 90 */ b lbl_8026B4C8
+lbl_8026B33C:
+/* 8026B33C 0026827C C0 5F 00 08 */ lfs f2, 8(r31)
+/* 8026B340 00268280 EC 82 08 2A */ fadds f4, f2, f1
+/* 8026B344 00268284 C0 7D 00 08 */ lfs f3, 8(r29)
+/* 8026B348 00268288 FC 04 18 40 */ fcmpo cr0, f4, f3
+/* 8026B34C 0026828C 40 80 00 18 */ bge lbl_8026B364
+/* 8026B350 00268290 C0 1D 00 14 */ lfs f0, 0x14(r29)
+/* 8026B354 00268294 FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 8026B358 00268298 40 80 00 0C */ bge lbl_8026B364
+/* 8026B35C 0026829C 38 60 00 00 */ li r3, 0
+/* 8026B360 002682A0 48 00 01 68 */ b lbl_8026B4C8
+lbl_8026B364:
+/* 8026B364 002682A4 EC 22 08 28 */ fsubs f1, f2, f1
+/* 8026B368 002682A8 FC 01 18 40 */ fcmpo cr0, f1, f3
+/* 8026B36C 002682AC 40 81 00 18 */ ble lbl_8026B384
+/* 8026B370 002682B0 C0 1D 00 14 */ lfs f0, 0x14(r29)
+/* 8026B374 002682B4 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026B378 002682B8 40 81 00 0C */ ble lbl_8026B384
+/* 8026B37C 002682BC 38 60 00 00 */ li r3, 0
+/* 8026B380 002682C0 48 00 01 48 */ b lbl_8026B4C8
+lbl_8026B384:
+/* 8026B384 002682C4 38 7D 00 0C */ addi r3, r29, 0xc
+/* 8026B388 002682C8 7F A4 EB 78 */ mr r4, r29
+/* 8026B38C 002682CC 38 A1 00 20 */ addi r5, r1, 0x20
+/* 8026B390 002682D0 48 0D BD 25 */ bl PSVECSubtract
+/* 8026B394 002682D4 38 61 00 20 */ addi r3, r1, 0x20
+/* 8026B398 002682D8 48 0D BD A1 */ bl PSVECSquareMag
+/* 8026B39C 002682DC FF E0 08 90 */ fmr f31, f1
+/* 8026B3A0 002682E0 FC 00 FA 10 */ fabs f0, f31
+/* 8026B3A4 002682E4 FC 20 00 18 */ frsp f1, f0
+/* 8026B3A8 002682E8 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026B3AC 002682EC FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026B3B0 002682F0 40 80 00 0C */ bge lbl_8026B3BC
+/* 8026B3B4 002682F4 38 60 00 00 */ li r3, 0
+/* 8026B3B8 002682F8 48 00 01 10 */ b lbl_8026B4C8
+lbl_8026B3BC:
+/* 8026B3BC 002682FC 7F E3 FB 78 */ mr r3, r31
+/* 8026B3C0 00268300 7F A4 EB 78 */ mr r4, r29
+/* 8026B3C4 00268304 38 A1 00 14 */ addi r5, r1, 0x14
+/* 8026B3C8 00268308 48 0D BC ED */ bl PSVECSubtract
+/* 8026B3CC 0026830C 38 61 00 14 */ addi r3, r1, 0x14
+/* 8026B3D0 00268310 38 81 00 20 */ addi r4, r1, 0x20
+/* 8026B3D4 00268314 48 0D BD C1 */ bl PSVECDotProduct
+/* 8026B3D8 00268318 EC 21 F8 24 */ fdivs f1, f1, f31
+/* 8026B3DC 0026831C C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026B3E0 00268320 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026B3E4 00268324 41 80 00 10 */ blt lbl_8026B3F4
+/* 8026B3E8 00268328 C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 8026B3EC 0026832C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026B3F0 00268330 40 81 00 98 */ ble lbl_8026B488
+lbl_8026B3F4:
+/* 8026B3F4 00268334 38 7D 00 0C */ addi r3, r29, 0xc
+/* 8026B3F8 00268338 7F E4 FB 78 */ mr r4, r31
+/* 8026B3FC 0026833C 48 0D BF A1 */ bl PSVECSquareDistance
+/* 8026B400 00268340 FF E0 08 90 */ fmr f31, f1
+/* 8026B404 00268344 7F A3 EB 78 */ mr r3, r29
+/* 8026B408 00268348 7F E4 FB 78 */ mr r4, r31
+/* 8026B40C 0026834C 48 0D BF 91 */ bl PSVECSquareDistance
+/* 8026B410 00268350 FC 01 F8 40 */ fcmpo cr0, f1, f31
+/* 8026B414 00268354 40 80 00 38 */ bge lbl_8026B44C
+/* 8026B418 00268358 7F E3 FB 78 */ mr r3, r31
+/* 8026B41C 0026835C 7F A4 EB 78 */ mr r4, r29
+/* 8026B420 00268360 4B FF FE 19 */ bl cM3d_Cross_SphPnt__FPC8cM3dGSphPC3Vec
+/* 8026B424 00268364 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026B428 00268368 41 82 00 58 */ beq lbl_8026B480
+/* 8026B42C 0026836C C0 1D 00 00 */ lfs f0, 0(r29)
+/* 8026B430 00268370 D0 1E 00 00 */ stfs f0, 0(r30)
+/* 8026B434 00268374 C0 1D 00 04 */ lfs f0, 4(r29)
+/* 8026B438 00268378 D0 1E 00 04 */ stfs f0, 4(r30)
+/* 8026B43C 0026837C C0 1D 00 08 */ lfs f0, 8(r29)
+/* 8026B440 00268380 D0 1E 00 08 */ stfs f0, 8(r30)
+/* 8026B444 00268384 38 60 00 01 */ li r3, 1
+/* 8026B448 00268388 48 00 00 80 */ b lbl_8026B4C8
+lbl_8026B44C:
+/* 8026B44C 0026838C 7F E3 FB 78 */ mr r3, r31
+/* 8026B450 00268390 38 9D 00 0C */ addi r4, r29, 0xc
+/* 8026B454 00268394 4B FF FD E5 */ bl cM3d_Cross_SphPnt__FPC8cM3dGSphPC3Vec
+/* 8026B458 00268398 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026B45C 0026839C 41 82 00 24 */ beq lbl_8026B480
+/* 8026B460 002683A0 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 8026B464 002683A4 D0 1E 00 00 */ stfs f0, 0(r30)
+/* 8026B468 002683A8 C0 1D 00 10 */ lfs f0, 0x10(r29)
+/* 8026B46C 002683AC D0 1E 00 04 */ stfs f0, 4(r30)
+/* 8026B470 002683B0 C0 1D 00 14 */ lfs f0, 0x14(r29)
+/* 8026B474 002683B4 D0 1E 00 08 */ stfs f0, 8(r30)
+/* 8026B478 002683B8 38 60 00 01 */ li r3, 1
+/* 8026B47C 002683BC 48 00 00 4C */ b lbl_8026B4C8
+lbl_8026B480:
+/* 8026B480 002683C0 38 60 00 00 */ li r3, 0
+/* 8026B484 002683C4 48 00 00 44 */ b lbl_8026B4C8
+lbl_8026B488:
+/* 8026B488 002683C8 38 61 00 20 */ addi r3, r1, 0x20
+/* 8026B48C 002683CC 38 81 00 08 */ addi r4, r1, 8
+/* 8026B490 002683D0 48 0D BC 49 */ bl PSVECScale
+/* 8026B494 002683D4 38 61 00 08 */ addi r3, r1, 8
+/* 8026B498 002683D8 7F A4 EB 78 */ mr r4, r29
+/* 8026B49C 002683DC 7F C5 F3 78 */ mr r5, r30
+/* 8026B4A0 002683E0 48 0D BB F1 */ bl PSVECAdd
+/* 8026B4A4 002683E4 C3 FF 00 0C */ lfs f31, 0xc(r31)
+/* 8026B4A8 002683E8 7F C3 F3 78 */ mr r3, r30
+/* 8026B4AC 002683EC 7F E4 FB 78 */ mr r4, r31
+/* 8026B4B0 002683F0 48 0D BE ED */ bl PSVECSquareDistance
+/* 8026B4B4 002683F4 EC 1F 07 F2 */ fmuls f0, f31, f31
+/* 8026B4B8 002683F8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026B4BC 002683FC 4C 40 13 82 */ cror 2, 0, 2
+/* 8026B4C0 00268400 7C 00 00 26 */ mfcr r0
+/* 8026B4C4 00268404 54 03 1F FE */ rlwinm r3, r0, 3, 0x1f, 0x1f
+lbl_8026B4C8:
+/* 8026B4C8 00268408 E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0
+/* 8026B4CC 0026840C CB E1 00 40 */ lfd f31, 0x40(r1)
+/* 8026B4D0 00268410 39 61 00 40 */ addi r11, r1, 0x40
+/* 8026B4D4 00268414 48 0F 6D 55 */ bl _restgpr_29
+/* 8026B4D8 00268418 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 8026B4DC 0026841C 7C 08 03 A6 */ mtlr r0
+/* 8026B4E0 00268420 38 21 00 50 */ addi r1, r1, 0x50
+/* 8026B4E4 00268424 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026B4E8.s b/include/SComponent/c_m3d/asm/func_8026B4E8.s
new file mode 100644
index 0000000000..48d1f2787d
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026B4E8.s
@@ -0,0 +1,265 @@
+/* 8026B4E8 00268428 94 21 FF 70 */ stwu r1, -0x90(r1)
+/* 8026B4EC 0026842C 7C 08 02 A6 */ mflr r0
+/* 8026B4F0 00268430 90 01 00 94 */ stw r0, 0x94(r1)
+/* 8026B4F4 00268434 DB E1 00 80 */ stfd f31, 0x80(r1)
+/* 8026B4F8 00268438 F3 E1 00 88 */ psq_st f31, 136(r1), 0, 0
+/* 8026B4FC 0026843C DB C1 00 70 */ stfd f30, 0x70(r1)
+/* 8026B500 00268440 F3 C1 00 78 */ psq_st f30, 120(r1), 0, 0
+/* 8026B504 00268444 DB A1 00 60 */ stfd f29, 0x60(r1)
+/* 8026B508 00268448 F3 A1 00 68 */ psq_st f29, 104(r1), 0, 0
+/* 8026B50C 0026844C 39 61 00 60 */ addi r11, r1, 0x60
+/* 8026B510 00268450 48 0F 6C C9 */ bl _savegpr_28
+/* 8026B514 00268454 7C 7F 1B 78 */ mr r31, r3
+/* 8026B518 00268458 7C 9C 23 78 */ mr r28, r4
+/* 8026B51C 0026845C 7C BD 2B 78 */ mr r29, r5
+/* 8026B520 00268460 7C DE 33 78 */ mr r30, r6
+/* 8026B524 00268464 38 7C 00 0C */ addi r3, r28, 0xc
+/* 8026B528 00268468 38 A1 00 40 */ addi r5, r1, 0x40
+/* 8026B52C 0026846C 48 0D BB 89 */ bl PSVECSubtract
+/* 8026B530 00268470 7F 83 E3 78 */ mr r3, r28
+/* 8026B534 00268474 7F E4 FB 78 */ mr r4, r31
+/* 8026B538 00268478 38 A1 00 34 */ addi r5, r1, 0x34
+/* 8026B53C 0026847C 48 0D BB 79 */ bl PSVECSubtract
+/* 8026B540 00268480 38 61 00 40 */ addi r3, r1, 0x40
+/* 8026B544 00268484 7C 64 1B 78 */ mr r4, r3
+/* 8026B548 00268488 48 0D BC 4D */ bl PSVECDotProduct
+/* 8026B54C 0026848C FF C0 08 90 */ fmr f30, f1
+/* 8026B550 00268490 38 61 00 40 */ addi r3, r1, 0x40
+/* 8026B554 00268494 38 81 00 34 */ addi r4, r1, 0x34
+/* 8026B558 00268498 48 0D BC 3D */ bl PSVECDotProduct
+/* 8026B55C 0026849C C0 02 B7 BC */ lfs f0, lbl_804551BC-_SDA2_BASE_(r2)
+/* 8026B560 002684A0 EF E0 00 72 */ fmuls f31, f0, f1
+/* 8026B564 002684A4 38 61 00 34 */ addi r3, r1, 0x34
+/* 8026B568 002684A8 7C 64 1B 78 */ mr r4, r3
+/* 8026B56C 002684AC 48 0D BC 29 */ bl PSVECDotProduct
+/* 8026B570 002684B0 C0 1F 00 0C */ lfs f0, 0xc(r31)
+/* 8026B574 002684B4 EC 00 00 32 */ fmuls f0, f0, f0
+/* 8026B578 002684B8 EC 61 00 28 */ fsubs f3, f1, f0
+/* 8026B57C 002684BC FC 00 F2 10 */ fabs f0, f30
+/* 8026B580 002684C0 FC 00 00 18 */ frsp f0, f0
+/* 8026B584 002684C4 C0 4D 8C 00 */ lfs f2, lbl_80451180-_SDA_BASE_(r13)
+/* 8026B588 002684C8 FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 8026B58C 002684CC 40 80 00 48 */ bge lbl_8026B5D4
+/* 8026B590 002684D0 FC 00 FA 10 */ fabs f0, f31
+/* 8026B594 002684D4 FC 00 00 18 */ frsp f0, f0
+/* 8026B598 002684D8 FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 8026B59C 002684DC 40 80 00 0C */ bge lbl_8026B5A8
+/* 8026B5A0 002684E0 38 60 00 00 */ li r3, 0
+/* 8026B5A4 002684E4 48 00 02 D0 */ b lbl_8026B874
+lbl_8026B5A8:
+/* 8026B5A8 002684E8 3B E0 00 01 */ li r31, 1
+/* 8026B5AC 002684EC 38 61 00 40 */ addi r3, r1, 0x40
+/* 8026B5B0 002684F0 38 81 00 28 */ addi r4, r1, 0x28
+/* 8026B5B4 002684F4 FC 00 18 50 */ fneg f0, f3
+/* 8026B5B8 002684F8 EC 20 F8 24 */ fdivs f1, f0, f31
+/* 8026B5BC 002684FC 48 0D BB 1D */ bl PSVECScale
+/* 8026B5C0 00268500 38 61 00 28 */ addi r3, r1, 0x28
+/* 8026B5C4 00268504 7F 84 E3 78 */ mr r4, r28
+/* 8026B5C8 00268508 7F A5 EB 78 */ mr r5, r29
+/* 8026B5CC 0026850C 48 0D BA C5 */ bl PSVECAdd
+/* 8026B5D0 00268510 48 00 02 A0 */ b lbl_8026B870
+lbl_8026B5D4:
+/* 8026B5D4 00268514 EC 3F 07 F2 */ fmuls f1, f31, f31
+/* 8026B5D8 00268518 C0 02 B7 C0 */ lfs f0, lbl_804551C0-_SDA2_BASE_(r2)
+/* 8026B5DC 0026851C EC 00 07 B2 */ fmuls f0, f0, f30
+/* 8026B5E0 00268520 EC 00 00 F2 */ fmuls f0, f0, f3
+/* 8026B5E4 00268524 EC 01 00 28 */ fsubs f0, f1, f0
+/* 8026B5E8 00268528 FC 20 02 10 */ fabs f1, f0
+/* 8026B5EC 0026852C FC 20 08 18 */ frsp f1, f1
+/* 8026B5F0 00268530 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 8026B5F4 00268534 40 80 00 38 */ bge lbl_8026B62C
+/* 8026B5F8 00268538 3B E0 00 01 */ li r31, 1
+/* 8026B5FC 0026853C 38 61 00 40 */ addi r3, r1, 0x40
+/* 8026B600 00268540 38 81 00 1C */ addi r4, r1, 0x1c
+/* 8026B604 00268544 FC 20 F8 50 */ fneg f1, f31
+/* 8026B608 00268548 C0 02 B7 BC */ lfs f0, lbl_804551BC-_SDA2_BASE_(r2)
+/* 8026B60C 0026854C EC 00 07 B2 */ fmuls f0, f0, f30
+/* 8026B610 00268550 EC 21 00 24 */ fdivs f1, f1, f0
+/* 8026B614 00268554 48 0D BA C5 */ bl PSVECScale
+/* 8026B618 00268558 38 61 00 1C */ addi r3, r1, 0x1c
+/* 8026B61C 0026855C 7F 84 E3 78 */ mr r4, r28
+/* 8026B620 00268560 7F A5 EB 78 */ mr r5, r29
+/* 8026B624 00268564 48 0D BA 6D */ bl PSVECAdd
+/* 8026B628 00268568 48 00 02 48 */ b lbl_8026B870
+lbl_8026B62C:
+/* 8026B62C 0026856C C0 22 B7 18 */ lfs f1, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026B630 00268570 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026B634 00268574 40 80 00 0C */ bge lbl_8026B640
+/* 8026B638 00268578 3B E0 00 00 */ li r31, 0
+/* 8026B63C 0026857C 48 00 02 34 */ b lbl_8026B870
+lbl_8026B640:
+/* 8026B640 00268580 3B E0 00 02 */ li r31, 2
+/* 8026B644 00268584 C0 42 B7 38 */ lfs f2, lbl_80455138-_SDA2_BASE_(r2)
+/* 8026B648 00268588 C0 22 B7 BC */ lfs f1, lbl_804551BC-_SDA2_BASE_(r2)
+/* 8026B64C 0026858C EC 21 07 B2 */ fmuls f1, f1, f30
+/* 8026B650 00268590 EF C2 08 24 */ fdivs f30, f2, f1
+/* 8026B654 00268594 40 81 00 58 */ ble lbl_8026B6AC
+/* 8026B658 00268598 FC 20 00 34 */ frsqrte f1, f0
+/* 8026B65C 0026859C C8 82 B7 20 */ lfd f4, lbl_80455120-_SDA2_BASE_(r2)
+/* 8026B660 002685A0 FC 44 00 72 */ fmul f2, f4, f1
+/* 8026B664 002685A4 C8 62 B7 28 */ lfd f3, lbl_80455128-_SDA2_BASE_(r2)
+/* 8026B668 002685A8 FC 21 00 72 */ fmul f1, f1, f1
+/* 8026B66C 002685AC FC 20 00 72 */ fmul f1, f0, f1
+/* 8026B670 002685B0 FC 23 08 28 */ fsub f1, f3, f1
+/* 8026B674 002685B4 FC 22 00 72 */ fmul f1, f2, f1
+/* 8026B678 002685B8 FC 44 00 72 */ fmul f2, f4, f1
+/* 8026B67C 002685BC FC 21 00 72 */ fmul f1, f1, f1
+/* 8026B680 002685C0 FC 20 00 72 */ fmul f1, f0, f1
+/* 8026B684 002685C4 FC 23 08 28 */ fsub f1, f3, f1
+/* 8026B688 002685C8 FC 22 00 72 */ fmul f1, f2, f1
+/* 8026B68C 002685CC FC 44 00 72 */ fmul f2, f4, f1
+/* 8026B690 002685D0 FC 21 00 72 */ fmul f1, f1, f1
+/* 8026B694 002685D4 FC 20 00 72 */ fmul f1, f0, f1
+/* 8026B698 002685D8 FC 23 08 28 */ fsub f1, f3, f1
+/* 8026B69C 002685DC FC 22 00 72 */ fmul f1, f2, f1
+/* 8026B6A0 002685E0 FC 20 00 72 */ fmul f1, f0, f1
+/* 8026B6A4 002685E4 FC 20 08 18 */ frsp f1, f1
+/* 8026B6A8 002685E8 48 00 00 90 */ b lbl_8026B738
+lbl_8026B6AC:
+/* 8026B6AC 002685EC C8 22 B7 30 */ lfd f1, lbl_80455130-_SDA2_BASE_(r2)
+/* 8026B6B0 002685F0 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026B6B4 002685F4 40 80 00 10 */ bge lbl_8026B6C4
+/* 8026B6B8 002685F8 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026B6BC 002685FC C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+/* 8026B6C0 00268600 48 00 00 78 */ b lbl_8026B738
+lbl_8026B6C4:
+/* 8026B6C4 00268604 D0 01 00 0C */ stfs f0, 0xc(r1)
+/* 8026B6C8 00268608 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 8026B6CC 0026860C 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
+/* 8026B6D0 00268610 3C 00 7F 80 */ lis r0, 0x7f80
+/* 8026B6D4 00268614 7C 03 00 00 */ cmpw r3, r0
+/* 8026B6D8 00268618 41 82 00 14 */ beq lbl_8026B6EC
+/* 8026B6DC 0026861C 40 80 00 40 */ bge lbl_8026B71C
+/* 8026B6E0 00268620 2C 03 00 00 */ cmpwi r3, 0
+/* 8026B6E4 00268624 41 82 00 20 */ beq lbl_8026B704
+/* 8026B6E8 00268628 48 00 00 34 */ b lbl_8026B71C
+lbl_8026B6EC:
+/* 8026B6EC 0026862C 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026B6F0 00268630 41 82 00 0C */ beq lbl_8026B6FC
+/* 8026B6F4 00268634 38 00 00 01 */ li r0, 1
+/* 8026B6F8 00268638 48 00 00 28 */ b lbl_8026B720
+lbl_8026B6FC:
+/* 8026B6FC 0026863C 38 00 00 02 */ li r0, 2
+/* 8026B700 00268640 48 00 00 20 */ b lbl_8026B720
+lbl_8026B704:
+/* 8026B704 00268644 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026B708 00268648 41 82 00 0C */ beq lbl_8026B714
+/* 8026B70C 0026864C 38 00 00 05 */ li r0, 5
+/* 8026B710 00268650 48 00 00 10 */ b lbl_8026B720
+lbl_8026B714:
+/* 8026B714 00268654 38 00 00 03 */ li r0, 3
+/* 8026B718 00268658 48 00 00 08 */ b lbl_8026B720
+lbl_8026B71C:
+/* 8026B71C 0026865C 38 00 00 04 */ li r0, 4
+lbl_8026B720:
+/* 8026B720 00268660 2C 00 00 01 */ cmpwi r0, 1
+/* 8026B724 00268664 40 82 00 10 */ bne lbl_8026B734
+/* 8026B728 00268668 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026B72C 0026866C C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+/* 8026B730 00268670 48 00 00 08 */ b lbl_8026B738
+lbl_8026B734:
+/* 8026B734 00268674 FC 20 00 90 */ fmr f1, f0
+lbl_8026B738:
+/* 8026B738 00268678 FF E0 F8 50 */ fneg f31, f31
+/* 8026B73C 0026867C EC 3F 08 2A */ fadds f1, f31, f1
+/* 8026B740 00268680 EC 3E 00 72 */ fmuls f1, f30, f1
+/* 8026B744 00268684 C0 42 B7 18 */ lfs f2, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026B748 00268688 FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 8026B74C 0026868C 40 81 00 58 */ ble lbl_8026B7A4
+/* 8026B750 00268690 FC 40 00 34 */ frsqrte f2, f0
+/* 8026B754 00268694 C8 A2 B7 20 */ lfd f5, lbl_80455120-_SDA2_BASE_(r2)
+/* 8026B758 00268698 FC 65 00 B2 */ fmul f3, f5, f2
+/* 8026B75C 0026869C C8 82 B7 28 */ lfd f4, lbl_80455128-_SDA2_BASE_(r2)
+/* 8026B760 002686A0 FC 42 00 B2 */ fmul f2, f2, f2
+/* 8026B764 002686A4 FC 40 00 B2 */ fmul f2, f0, f2
+/* 8026B768 002686A8 FC 44 10 28 */ fsub f2, f4, f2
+/* 8026B76C 002686AC FC 43 00 B2 */ fmul f2, f3, f2
+/* 8026B770 002686B0 FC 65 00 B2 */ fmul f3, f5, f2
+/* 8026B774 002686B4 FC 42 00 B2 */ fmul f2, f2, f2
+/* 8026B778 002686B8 FC 40 00 B2 */ fmul f2, f0, f2
+/* 8026B77C 002686BC FC 44 10 28 */ fsub f2, f4, f2
+/* 8026B780 002686C0 FC 43 00 B2 */ fmul f2, f3, f2
+/* 8026B784 002686C4 FC 65 00 B2 */ fmul f3, f5, f2
+/* 8026B788 002686C8 FC 42 00 B2 */ fmul f2, f2, f2
+/* 8026B78C 002686CC FC 40 00 B2 */ fmul f2, f0, f2
+/* 8026B790 002686D0 FC 44 10 28 */ fsub f2, f4, f2
+/* 8026B794 002686D4 FC 43 00 B2 */ fmul f2, f3, f2
+/* 8026B798 002686D8 FF A0 00 B2 */ fmul f29, f0, f2
+/* 8026B79C 002686DC FF A0 E8 18 */ frsp f29, f29
+/* 8026B7A0 002686E0 48 00 00 90 */ b lbl_8026B830
+lbl_8026B7A4:
+/* 8026B7A4 002686E4 C8 42 B7 30 */ lfd f2, lbl_80455130-_SDA2_BASE_(r2)
+/* 8026B7A8 002686E8 FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 8026B7AC 002686EC 40 80 00 10 */ bge lbl_8026B7BC
+/* 8026B7B0 002686F0 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026B7B4 002686F4 C3 A3 0A E0 */ lfs f29, lbl_80450AE0@l(r3)
+/* 8026B7B8 002686F8 48 00 00 78 */ b lbl_8026B830
+lbl_8026B7BC:
+/* 8026B7BC 002686FC D0 01 00 08 */ stfs f0, 8(r1)
+/* 8026B7C0 00268700 80 81 00 08 */ lwz r4, 8(r1)
+/* 8026B7C4 00268704 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
+/* 8026B7C8 00268708 3C 00 7F 80 */ lis r0, 0x7f80
+/* 8026B7CC 0026870C 7C 03 00 00 */ cmpw r3, r0
+/* 8026B7D0 00268710 41 82 00 14 */ beq lbl_8026B7E4
+/* 8026B7D4 00268714 40 80 00 40 */ bge lbl_8026B814
+/* 8026B7D8 00268718 2C 03 00 00 */ cmpwi r3, 0
+/* 8026B7DC 0026871C 41 82 00 20 */ beq lbl_8026B7FC
+/* 8026B7E0 00268720 48 00 00 34 */ b lbl_8026B814
+lbl_8026B7E4:
+/* 8026B7E4 00268724 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026B7E8 00268728 41 82 00 0C */ beq lbl_8026B7F4
+/* 8026B7EC 0026872C 38 00 00 01 */ li r0, 1
+/* 8026B7F0 00268730 48 00 00 28 */ b lbl_8026B818
+lbl_8026B7F4:
+/* 8026B7F4 00268734 38 00 00 02 */ li r0, 2
+/* 8026B7F8 00268738 48 00 00 20 */ b lbl_8026B818
+lbl_8026B7FC:
+/* 8026B7FC 0026873C 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026B800 00268740 41 82 00 0C */ beq lbl_8026B80C
+/* 8026B804 00268744 38 00 00 05 */ li r0, 5
+/* 8026B808 00268748 48 00 00 10 */ b lbl_8026B818
+lbl_8026B80C:
+/* 8026B80C 0026874C 38 00 00 03 */ li r0, 3
+/* 8026B810 00268750 48 00 00 08 */ b lbl_8026B818
+lbl_8026B814:
+/* 8026B814 00268754 38 00 00 04 */ li r0, 4
+lbl_8026B818:
+/* 8026B818 00268758 2C 00 00 01 */ cmpwi r0, 1
+/* 8026B81C 0026875C 40 82 00 10 */ bne lbl_8026B82C
+/* 8026B820 00268760 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026B824 00268764 C3 A3 0A E0 */ lfs f29, lbl_80450AE0@l(r3)
+/* 8026B828 00268768 48 00 00 08 */ b lbl_8026B830
+lbl_8026B82C:
+/* 8026B82C 0026876C FF A0 00 90 */ fmr f29, f0
+lbl_8026B830:
+/* 8026B830 00268770 38 61 00 40 */ addi r3, r1, 0x40
+/* 8026B834 00268774 38 81 00 10 */ addi r4, r1, 0x10
+/* 8026B838 00268778 48 0D B8 A1 */ bl PSVECScale
+/* 8026B83C 0026877C 38 61 00 10 */ addi r3, r1, 0x10
+/* 8026B840 00268780 7F 84 E3 78 */ mr r4, r28
+/* 8026B844 00268784 7F A5 EB 78 */ mr r5, r29
+/* 8026B848 00268788 48 0D B8 49 */ bl PSVECAdd
+/* 8026B84C 0026878C 38 61 00 40 */ addi r3, r1, 0x40
+/* 8026B850 00268790 38 81 00 10 */ addi r4, r1, 0x10
+/* 8026B854 00268794 EC 1F E8 28 */ fsubs f0, f31, f29
+/* 8026B858 00268798 EC 3E 00 32 */ fmuls f1, f30, f0
+/* 8026B85C 0026879C 48 0D B8 7D */ bl PSVECScale
+/* 8026B860 002687A0 38 61 00 10 */ addi r3, r1, 0x10
+/* 8026B864 002687A4 7F 84 E3 78 */ mr r4, r28
+/* 8026B868 002687A8 7F C5 F3 78 */ mr r5, r30
+/* 8026B86C 002687AC 48 0D B8 25 */ bl PSVECAdd
+lbl_8026B870:
+/* 8026B870 002687B0 7F E3 FB 78 */ mr r3, r31
+lbl_8026B874:
+/* 8026B874 002687B4 E3 E1 00 88 */ psq_l f31, 136(r1), 0, 0
+/* 8026B878 002687B8 CB E1 00 80 */ lfd f31, 0x80(r1)
+/* 8026B87C 002687BC E3 C1 00 78 */ psq_l f30, 120(r1), 0, 0
+/* 8026B880 002687C0 CB C1 00 70 */ lfd f30, 0x70(r1)
+/* 8026B884 002687C4 E3 A1 00 68 */ psq_l f29, 104(r1), 0, 0
+/* 8026B888 002687C8 CB A1 00 60 */ lfd f29, 0x60(r1)
+/* 8026B88C 002687CC 39 61 00 60 */ addi r11, r1, 0x60
+/* 8026B890 002687D0 48 0F 69 95 */ bl _restgpr_28
+/* 8026B894 002687D4 80 01 00 94 */ lwz r0, 0x94(r1)
+/* 8026B898 002687D8 7C 08 03 A6 */ mtlr r0
+/* 8026B89C 002687DC 38 21 00 90 */ addi r1, r1, 0x90
+/* 8026B8A0 002687E0 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026B8A4.s b/include/SComponent/c_m3d/asm/func_8026B8A4.s
new file mode 100644
index 0000000000..be3a99b79b
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026B8A4.s
@@ -0,0 +1,117 @@
+/* 8026B8A4 002687E4 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8026B8A8 002687E8 7C 08 02 A6 */ mflr r0
+/* 8026B8AC 002687EC 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8026B8B0 002687F0 DB E1 00 20 */ stfd f31, 0x20(r1)
+/* 8026B8B4 002687F4 F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0
+/* 8026B8B8 002687F8 39 61 00 20 */ addi r11, r1, 0x20
+/* 8026B8BC 002687FC 48 0F 69 21 */ bl _savegpr_29
+/* 8026B8C0 00268800 7C 7D 1B 78 */ mr r29, r3
+/* 8026B8C4 00268804 7C 9E 23 78 */ mr r30, r4
+/* 8026B8C8 00268808 7C BF 2B 78 */ mr r31, r5
+/* 8026B8CC 0026880C C0 23 00 0C */ lfs f1, 0xc(r3)
+/* 8026B8D0 00268810 C0 04 00 0C */ lfs f0, 0xc(r4)
+/* 8026B8D4 00268814 EF E1 00 2A */ fadds f31, f1, f0
+/* 8026B8D8 00268818 C0 24 00 00 */ lfs f1, 0(r4)
+/* 8026B8DC 0026881C C0 44 00 08 */ lfs f2, 8(r4)
+/* 8026B8E0 00268820 C0 63 00 00 */ lfs f3, 0(r3)
+/* 8026B8E4 00268824 C0 83 00 08 */ lfs f4, 8(r3)
+/* 8026B8E8 00268828 4B FF CD 2D */ bl cM3d_Len2dSq__Fffff
+/* 8026B8EC 0026882C C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026B8F0 00268830 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026B8F4 00268834 40 81 00 58 */ ble lbl_8026B94C
+/* 8026B8F8 00268838 FC 00 08 34 */ frsqrte f0, f1
+/* 8026B8FC 0026883C C8 82 B7 20 */ lfd f4, lbl_80455120-_SDA2_BASE_(r2)
+/* 8026B900 00268840 FC 44 00 32 */ fmul f2, f4, f0
+/* 8026B904 00268844 C8 62 B7 28 */ lfd f3, lbl_80455128-_SDA2_BASE_(r2)
+/* 8026B908 00268848 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026B90C 0026884C FC 01 00 32 */ fmul f0, f1, f0
+/* 8026B910 00268850 FC 03 00 28 */ fsub f0, f3, f0
+/* 8026B914 00268854 FC 02 00 32 */ fmul f0, f2, f0
+/* 8026B918 00268858 FC 44 00 32 */ fmul f2, f4, f0
+/* 8026B91C 0026885C FC 00 00 32 */ fmul f0, f0, f0
+/* 8026B920 00268860 FC 01 00 32 */ fmul f0, f1, f0
+/* 8026B924 00268864 FC 03 00 28 */ fsub f0, f3, f0
+/* 8026B928 00268868 FC 02 00 32 */ fmul f0, f2, f0
+/* 8026B92C 0026886C FC 44 00 32 */ fmul f2, f4, f0
+/* 8026B930 00268870 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026B934 00268874 FC 01 00 32 */ fmul f0, f1, f0
+/* 8026B938 00268878 FC 03 00 28 */ fsub f0, f3, f0
+/* 8026B93C 0026887C FC 02 00 32 */ fmul f0, f2, f0
+/* 8026B940 00268880 FC 21 00 32 */ fmul f1, f1, f0
+/* 8026B944 00268884 FC 20 08 18 */ frsp f1, f1
+/* 8026B948 00268888 48 00 00 88 */ b lbl_8026B9D0
+lbl_8026B94C:
+/* 8026B94C 0026888C C8 02 B7 30 */ lfd f0, lbl_80455130-_SDA2_BASE_(r2)
+/* 8026B950 00268890 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026B954 00268894 40 80 00 10 */ bge lbl_8026B964
+/* 8026B958 00268898 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026B95C 0026889C C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+/* 8026B960 002688A0 48 00 00 70 */ b lbl_8026B9D0
+lbl_8026B964:
+/* 8026B964 002688A4 D0 21 00 08 */ stfs f1, 8(r1)
+/* 8026B968 002688A8 80 81 00 08 */ lwz r4, 8(r1)
+/* 8026B96C 002688AC 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
+/* 8026B970 002688B0 3C 00 7F 80 */ lis r0, 0x7f80
+/* 8026B974 002688B4 7C 03 00 00 */ cmpw r3, r0
+/* 8026B978 002688B8 41 82 00 14 */ beq lbl_8026B98C
+/* 8026B97C 002688BC 40 80 00 40 */ bge lbl_8026B9BC
+/* 8026B980 002688C0 2C 03 00 00 */ cmpwi r3, 0
+/* 8026B984 002688C4 41 82 00 20 */ beq lbl_8026B9A4
+/* 8026B988 002688C8 48 00 00 34 */ b lbl_8026B9BC
+lbl_8026B98C:
+/* 8026B98C 002688CC 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026B990 002688D0 41 82 00 0C */ beq lbl_8026B99C
+/* 8026B994 002688D4 38 00 00 01 */ li r0, 1
+/* 8026B998 002688D8 48 00 00 28 */ b lbl_8026B9C0
+lbl_8026B99C:
+/* 8026B99C 002688DC 38 00 00 02 */ li r0, 2
+/* 8026B9A0 002688E0 48 00 00 20 */ b lbl_8026B9C0
+lbl_8026B9A4:
+/* 8026B9A4 002688E4 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026B9A8 002688E8 41 82 00 0C */ beq lbl_8026B9B4
+/* 8026B9AC 002688EC 38 00 00 05 */ li r0, 5
+/* 8026B9B0 002688F0 48 00 00 10 */ b lbl_8026B9C0
+lbl_8026B9B4:
+/* 8026B9B4 002688F4 38 00 00 03 */ li r0, 3
+/* 8026B9B8 002688F8 48 00 00 08 */ b lbl_8026B9C0
+lbl_8026B9BC:
+/* 8026B9BC 002688FC 38 00 00 04 */ li r0, 4
+lbl_8026B9C0:
+/* 8026B9C0 00268900 2C 00 00 01 */ cmpwi r0, 1
+/* 8026B9C4 00268904 40 82 00 0C */ bne lbl_8026B9D0
+/* 8026B9C8 00268908 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026B9CC 0026890C C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+lbl_8026B9D0:
+/* 8026B9D0 00268910 FC 1F 08 40 */ fcmpo cr0, f31, f1
+/* 8026B9D4 00268914 40 80 00 0C */ bge lbl_8026B9E0
+/* 8026B9D8 00268918 38 60 00 00 */ li r3, 0
+/* 8026B9DC 0026891C 48 00 00 4C */ b lbl_8026BA28
+lbl_8026B9E0:
+/* 8026B9E0 00268920 C0 9E 00 04 */ lfs f4, 4(r30)
+/* 8026B9E4 00268924 C0 5E 00 0C */ lfs f2, 0xc(r30)
+/* 8026B9E8 00268928 EC 04 10 2A */ fadds f0, f4, f2
+/* 8026B9EC 0026892C C0 7D 00 04 */ lfs f3, 4(r29)
+/* 8026B9F0 00268930 FC 00 18 40 */ fcmpo cr0, f0, f3
+/* 8026B9F4 00268934 4C 41 13 82 */ cror 2, 1, 2
+/* 8026B9F8 00268938 40 82 00 2C */ bne lbl_8026BA24
+/* 8026B9FC 0026893C EC 44 10 28 */ fsubs f2, f4, f2
+/* 8026BA00 00268940 C0 1D 00 10 */ lfs f0, 0x10(r29)
+/* 8026BA04 00268944 EC 03 00 2A */ fadds f0, f3, f0
+/* 8026BA08 00268948 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 8026BA0C 0026894C 4C 40 13 82 */ cror 2, 0, 2
+/* 8026BA10 00268950 40 82 00 14 */ bne lbl_8026BA24
+/* 8026BA14 00268954 EC 1F 08 28 */ fsubs f0, f31, f1
+/* 8026BA18 00268958 D0 1F 00 00 */ stfs f0, 0(r31)
+/* 8026BA1C 0026895C 38 60 00 01 */ li r3, 1
+/* 8026BA20 00268960 48 00 00 08 */ b lbl_8026BA28
+lbl_8026BA24:
+/* 8026BA24 00268964 38 60 00 00 */ li r3, 0
+lbl_8026BA28:
+/* 8026BA28 00268968 E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0
+/* 8026BA2C 0026896C CB E1 00 20 */ lfd f31, 0x20(r1)
+/* 8026BA30 00268970 39 61 00 20 */ addi r11, r1, 0x20
+/* 8026BA34 00268974 48 0F 67 F5 */ bl _restgpr_29
+/* 8026BA38 00268978 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8026BA3C 0026897C 7C 08 03 A6 */ mtlr r0
+/* 8026BA40 00268980 38 21 00 30 */ addi r1, r1, 0x30
+/* 8026BA44 00268984 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026BA48.s b/include/SComponent/c_m3d/asm/func_8026BA48.s
new file mode 100644
index 0000000000..024f0f296a
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026BA48.s
@@ -0,0 +1,156 @@
+/* 8026BA48 00268988 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 8026BA4C 0026898C 7C 08 02 A6 */ mflr r0
+/* 8026BA50 00268990 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8026BA54 00268994 DB E1 00 30 */ stfd f31, 0x30(r1)
+/* 8026BA58 00268998 F3 E1 00 38 */ psq_st f31, 56(r1), 0, 0
+/* 8026BA5C 0026899C 39 61 00 30 */ addi r11, r1, 0x30
+/* 8026BA60 002689A0 48 0F 67 79 */ bl _savegpr_28
+/* 8026BA64 002689A4 7C 7E 1B 78 */ mr r30, r3
+/* 8026BA68 002689A8 7C 9F 23 78 */ mr r31, r4
+/* 8026BA6C 002689AC 7C BC 2B 78 */ mr r28, r5
+/* 8026BA70 002689B0 7C DD 33 78 */ mr r29, r6
+/* 8026BA74 002689B4 C0 23 00 0C */ lfs f1, 0xc(r3)
+/* 8026BA78 002689B8 C0 04 00 0C */ lfs f0, 0xc(r4)
+/* 8026BA7C 002689BC EF E1 00 2A */ fadds f31, f1, f0
+/* 8026BA80 002689C0 C0 24 00 00 */ lfs f1, 0(r4)
+/* 8026BA84 002689C4 C0 44 00 08 */ lfs f2, 8(r4)
+/* 8026BA88 002689C8 C0 63 00 00 */ lfs f3, 0(r3)
+/* 8026BA8C 002689CC C0 83 00 08 */ lfs f4, 8(r3)
+/* 8026BA90 002689D0 4B FF CB 85 */ bl cM3d_Len2dSq__Fffff
+/* 8026BA94 002689D4 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026BA98 002689D8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026BA9C 002689DC 40 81 00 58 */ ble lbl_8026BAF4
+/* 8026BAA0 002689E0 FC 00 08 34 */ frsqrte f0, f1
+/* 8026BAA4 002689E4 C8 82 B7 20 */ lfd f4, lbl_80455120-_SDA2_BASE_(r2)
+/* 8026BAA8 002689E8 FC 44 00 32 */ fmul f2, f4, f0
+/* 8026BAAC 002689EC C8 62 B7 28 */ lfd f3, lbl_80455128-_SDA2_BASE_(r2)
+/* 8026BAB0 002689F0 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026BAB4 002689F4 FC 01 00 32 */ fmul f0, f1, f0
+/* 8026BAB8 002689F8 FC 03 00 28 */ fsub f0, f3, f0
+/* 8026BABC 002689FC FC 02 00 32 */ fmul f0, f2, f0
+/* 8026BAC0 00268A00 FC 44 00 32 */ fmul f2, f4, f0
+/* 8026BAC4 00268A04 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026BAC8 00268A08 FC 01 00 32 */ fmul f0, f1, f0
+/* 8026BACC 00268A0C FC 03 00 28 */ fsub f0, f3, f0
+/* 8026BAD0 00268A10 FC 02 00 32 */ fmul f0, f2, f0
+/* 8026BAD4 00268A14 FC 44 00 32 */ fmul f2, f4, f0
+/* 8026BAD8 00268A18 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026BADC 00268A1C FC 01 00 32 */ fmul f0, f1, f0
+/* 8026BAE0 00268A20 FC 03 00 28 */ fsub f0, f3, f0
+/* 8026BAE4 00268A24 FC 02 00 32 */ fmul f0, f2, f0
+/* 8026BAE8 00268A28 FC 21 00 32 */ fmul f1, f1, f0
+/* 8026BAEC 00268A2C FC 20 08 18 */ frsp f1, f1
+/* 8026BAF0 00268A30 48 00 00 88 */ b lbl_8026BB78
+lbl_8026BAF4:
+/* 8026BAF4 00268A34 C8 02 B7 30 */ lfd f0, lbl_80455130-_SDA2_BASE_(r2)
+/* 8026BAF8 00268A38 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026BAFC 00268A3C 40 80 00 10 */ bge lbl_8026BB0C
+/* 8026BB00 00268A40 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026BB04 00268A44 C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+/* 8026BB08 00268A48 48 00 00 70 */ b lbl_8026BB78
+lbl_8026BB0C:
+/* 8026BB0C 00268A4C D0 21 00 08 */ stfs f1, 8(r1)
+/* 8026BB10 00268A50 80 81 00 08 */ lwz r4, 8(r1)
+/* 8026BB14 00268A54 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
+/* 8026BB18 00268A58 3C 00 7F 80 */ lis r0, 0x7f80
+/* 8026BB1C 00268A5C 7C 03 00 00 */ cmpw r3, r0
+/* 8026BB20 00268A60 41 82 00 14 */ beq lbl_8026BB34
+/* 8026BB24 00268A64 40 80 00 40 */ bge lbl_8026BB64
+/* 8026BB28 00268A68 2C 03 00 00 */ cmpwi r3, 0
+/* 8026BB2C 00268A6C 41 82 00 20 */ beq lbl_8026BB4C
+/* 8026BB30 00268A70 48 00 00 34 */ b lbl_8026BB64
+lbl_8026BB34:
+/* 8026BB34 00268A74 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026BB38 00268A78 41 82 00 0C */ beq lbl_8026BB44
+/* 8026BB3C 00268A7C 38 00 00 01 */ li r0, 1
+/* 8026BB40 00268A80 48 00 00 28 */ b lbl_8026BB68
+lbl_8026BB44:
+/* 8026BB44 00268A84 38 00 00 02 */ li r0, 2
+/* 8026BB48 00268A88 48 00 00 20 */ b lbl_8026BB68
+lbl_8026BB4C:
+/* 8026BB4C 00268A8C 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026BB50 00268A90 41 82 00 0C */ beq lbl_8026BB5C
+/* 8026BB54 00268A94 38 00 00 05 */ li r0, 5
+/* 8026BB58 00268A98 48 00 00 10 */ b lbl_8026BB68
+lbl_8026BB5C:
+/* 8026BB5C 00268A9C 38 00 00 03 */ li r0, 3
+/* 8026BB60 00268AA0 48 00 00 08 */ b lbl_8026BB68
+lbl_8026BB64:
+/* 8026BB64 00268AA4 38 00 00 04 */ li r0, 4
+lbl_8026BB68:
+/* 8026BB68 00268AA8 2C 00 00 01 */ cmpwi r0, 1
+/* 8026BB6C 00268AAC 40 82 00 0C */ bne lbl_8026BB78
+/* 8026BB70 00268AB0 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026BB74 00268AB4 C0 23 0A E0 */ lfs f1, lbl_80450AE0@l(r3)
+lbl_8026BB78:
+/* 8026BB78 00268AB8 FC 1F 08 40 */ fcmpo cr0, f31, f1
+/* 8026BB7C 00268ABC 40 80 00 0C */ bge lbl_8026BB88
+/* 8026BB80 00268AC0 38 60 00 00 */ li r3, 0
+/* 8026BB84 00268AC4 48 00 00 D8 */ b lbl_8026BC5C
+lbl_8026BB88:
+/* 8026BB88 00268AC8 C0 9F 00 04 */ lfs f4, 4(r31)
+/* 8026BB8C 00268ACC C0 5F 00 0C */ lfs f2, 0xc(r31)
+/* 8026BB90 00268AD0 EC 04 10 2A */ fadds f0, f4, f2
+/* 8026BB94 00268AD4 C0 7E 00 04 */ lfs f3, 4(r30)
+/* 8026BB98 00268AD8 FC 00 18 40 */ fcmpo cr0, f0, f3
+/* 8026BB9C 00268ADC 4C 41 13 82 */ cror 2, 1, 2
+/* 8026BBA0 00268AE0 40 82 00 B8 */ bne lbl_8026BC58
+/* 8026BBA4 00268AE4 EC 44 10 28 */ fsubs f2, f4, f2
+/* 8026BBA8 00268AE8 C0 1E 00 10 */ lfs f0, 0x10(r30)
+/* 8026BBAC 00268AEC EC 03 00 2A */ fadds f0, f3, f0
+/* 8026BBB0 00268AF0 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 8026BBB4 00268AF4 4C 40 13 82 */ cror 2, 0, 2
+/* 8026BBB8 00268AF8 40 82 00 A0 */ bne lbl_8026BC58
+/* 8026BBBC 00268AFC EC 1F 08 28 */ fsubs f0, f31, f1
+/* 8026BBC0 00268B00 D0 1D 00 00 */ stfs f0, 0(r29)
+/* 8026BBC4 00268B04 FC 00 0A 10 */ fabs f0, f1
+/* 8026BBC8 00268B08 FC 40 00 18 */ frsp f2, f0
+/* 8026BBCC 00268B0C C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026BBD0 00268B10 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 8026BBD4 00268B14 41 80 00 68 */ blt lbl_8026BC3C
+/* 8026BBD8 00268B18 C0 1E 00 0C */ lfs f0, 0xc(r30)
+/* 8026BBDC 00268B1C EF E0 08 24 */ fdivs f31, f0, f1
+/* 8026BBE0 00268B20 C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 8026BBE4 00268B24 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026BBE8 00268B28 4C 40 13 82 */ cror 2, 0, 2
+/* 8026BBEC 00268B2C 40 82 00 38 */ bne lbl_8026BC24
+/* 8026BBF0 00268B30 7F E3 FB 78 */ mr r3, r31
+/* 8026BBF4 00268B34 7F C4 F3 78 */ mr r4, r30
+/* 8026BBF8 00268B38 38 A1 00 0C */ addi r5, r1, 0xc
+/* 8026BBFC 00268B3C 48 0D B4 B9 */ bl PSVECSubtract
+/* 8026BC00 00268B40 38 61 00 0C */ addi r3, r1, 0xc
+/* 8026BC04 00268B44 7C 64 1B 78 */ mr r4, r3
+/* 8026BC08 00268B48 FC 20 F8 90 */ fmr f1, f31
+/* 8026BC0C 00268B4C 48 0D B4 CD */ bl PSVECScale
+/* 8026BC10 00268B50 38 61 00 0C */ addi r3, r1, 0xc
+/* 8026BC14 00268B54 7F C4 F3 78 */ mr r4, r30
+/* 8026BC18 00268B58 7F 85 E3 78 */ mr r5, r28
+/* 8026BC1C 00268B5C 48 0D B4 75 */ bl PSVECAdd
+/* 8026BC20 00268B60 48 00 00 30 */ b lbl_8026BC50
+lbl_8026BC24:
+/* 8026BC24 00268B64 C0 1F 00 00 */ lfs f0, 0(r31)
+/* 8026BC28 00268B68 D0 1C 00 00 */ stfs f0, 0(r28)
+/* 8026BC2C 00268B6C D0 9C 00 04 */ stfs f4, 4(r28)
+/* 8026BC30 00268B70 C0 1F 00 08 */ lfs f0, 8(r31)
+/* 8026BC34 00268B74 D0 1C 00 08 */ stfs f0, 8(r28)
+/* 8026BC38 00268B78 48 00 00 18 */ b lbl_8026BC50
+lbl_8026BC3C:
+/* 8026BC3C 00268B7C C0 1F 00 00 */ lfs f0, 0(r31)
+/* 8026BC40 00268B80 D0 1C 00 00 */ stfs f0, 0(r28)
+/* 8026BC44 00268B84 D0 9C 00 04 */ stfs f4, 4(r28)
+/* 8026BC48 00268B88 C0 1F 00 08 */ lfs f0, 8(r31)
+/* 8026BC4C 00268B8C D0 1C 00 08 */ stfs f0, 8(r28)
+lbl_8026BC50:
+/* 8026BC50 00268B90 38 60 00 01 */ li r3, 1
+/* 8026BC54 00268B94 48 00 00 08 */ b lbl_8026BC5C
+lbl_8026BC58:
+/* 8026BC58 00268B98 38 60 00 00 */ li r3, 0
+lbl_8026BC5C:
+/* 8026BC5C 00268B9C E3 E1 00 38 */ psq_l f31, 56(r1), 0, 0
+/* 8026BC60 00268BA0 CB E1 00 30 */ lfd f31, 0x30(r1)
+/* 8026BC64 00268BA4 39 61 00 30 */ addi r11, r1, 0x30
+/* 8026BC68 00268BA8 48 0F 65 BD */ bl _restgpr_28
+/* 8026BC6C 00268BAC 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8026BC70 00268BB0 7C 08 03 A6 */ mtlr r0
+/* 8026BC74 00268BB4 38 21 00 40 */ addi r1, r1, 0x40
+/* 8026BC78 00268BB8 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026BC7C.s b/include/SComponent/c_m3d/asm/func_8026BC7C.s
new file mode 100644
index 0000000000..f32799e46c
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026BC7C.s
@@ -0,0 +1,34 @@
+/* 8026BC7C 00268BBC 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8026BC80 00268BC0 7C 08 02 A6 */ mflr r0
+/* 8026BC84 00268BC4 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8026BC88 00268BC8 39 61 00 30 */ addi r11, r1, 0x30
+/* 8026BC8C 00268BCC 48 0F 65 51 */ bl _savegpr_29
+/* 8026BC90 00268BD0 7C 7D 1B 78 */ mr r29, r3
+/* 8026BC94 00268BD4 7C 9E 23 78 */ mr r30, r4
+/* 8026BC98 00268BD8 7C BF 2B 78 */ mr r31, r5
+/* 8026BC9C 00268BDC 38 A1 00 08 */ addi r5, r1, 8
+/* 8026BCA0 00268BE0 48 0D B4 15 */ bl PSVECSubtract
+/* 8026BCA4 00268BE4 38 61 00 08 */ addi r3, r1, 8
+/* 8026BCA8 00268BE8 48 0D B4 A9 */ bl PSVECMag
+/* 8026BCAC 00268BEC C0 5D 00 0C */ lfs f2, 0xc(r29)
+/* 8026BCB0 00268BF0 C0 1E 00 0C */ lfs f0, 0xc(r30)
+/* 8026BCB4 00268BF4 EC 02 00 2A */ fadds f0, f2, f0
+/* 8026BCB8 00268BF8 EC 00 08 28 */ fsubs f0, f0, f1
+/* 8026BCBC 00268BFC D0 1F 00 00 */ stfs f0, 0(r31)
+/* 8026BCC0 00268C00 C0 3F 00 00 */ lfs f1, 0(r31)
+/* 8026BCC4 00268C04 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026BCC8 00268C08 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026BCCC 00268C0C 40 81 00 0C */ ble lbl_8026BCD8
+/* 8026BCD0 00268C10 38 60 00 01 */ li r3, 1
+/* 8026BCD4 00268C14 48 00 00 10 */ b lbl_8026BCE4
+lbl_8026BCD8:
+/* 8026BCD8 00268C18 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026BCDC 00268C1C D0 1F 00 00 */ stfs f0, 0(r31)
+/* 8026BCE0 00268C20 38 60 00 00 */ li r3, 0
+lbl_8026BCE4:
+/* 8026BCE4 00268C24 39 61 00 30 */ addi r11, r1, 0x30
+/* 8026BCE8 00268C28 48 0F 65 41 */ bl _restgpr_29
+/* 8026BCEC 00268C2C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8026BCF0 00268C30 7C 08 03 A6 */ mtlr r0
+/* 8026BCF4 00268C34 38 21 00 30 */ addi r1, r1, 0x30
+/* 8026BCF8 00268C38 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026BCFC.s b/include/SComponent/c_m3d/asm/func_8026BCFC.s
new file mode 100644
index 0000000000..d1d7827fab
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026BCFC.s
@@ -0,0 +1,37 @@
+/* 8026BCFC 00268C3C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8026BD00 00268C40 7C 08 02 A6 */ mflr r0
+/* 8026BD04 00268C44 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8026BD08 00268C48 39 61 00 30 */ addi r11, r1, 0x30
+/* 8026BD0C 00268C4C 48 0F 64 CD */ bl _savegpr_28
+/* 8026BD10 00268C50 7C 7C 1B 78 */ mr r28, r3
+/* 8026BD14 00268C54 7C 9D 23 78 */ mr r29, r4
+/* 8026BD18 00268C58 7C BE 2B 78 */ mr r30, r5
+/* 8026BD1C 00268C5C 7C DF 33 78 */ mr r31, r6
+/* 8026BD20 00268C60 38 A1 00 08 */ addi r5, r1, 8
+/* 8026BD24 00268C64 48 0D B3 91 */ bl PSVECSubtract
+/* 8026BD28 00268C68 38 61 00 08 */ addi r3, r1, 8
+/* 8026BD2C 00268C6C 48 0D B4 25 */ bl PSVECMag
+/* 8026BD30 00268C70 D0 3E 00 00 */ stfs f1, 0(r30)
+/* 8026BD34 00268C74 C0 3C 00 0C */ lfs f1, 0xc(r28)
+/* 8026BD38 00268C78 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 8026BD3C 00268C7C EC 21 00 2A */ fadds f1, f1, f0
+/* 8026BD40 00268C80 C0 1E 00 00 */ lfs f0, 0(r30)
+/* 8026BD44 00268C84 EC 01 00 28 */ fsubs f0, f1, f0
+/* 8026BD48 00268C88 D0 1F 00 00 */ stfs f0, 0(r31)
+/* 8026BD4C 00268C8C C0 3F 00 00 */ lfs f1, 0(r31)
+/* 8026BD50 00268C90 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026BD54 00268C94 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026BD58 00268C98 40 81 00 0C */ ble lbl_8026BD64
+/* 8026BD5C 00268C9C 38 60 00 01 */ li r3, 1
+/* 8026BD60 00268CA0 48 00 00 10 */ b lbl_8026BD70
+lbl_8026BD64:
+/* 8026BD64 00268CA4 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026BD68 00268CA8 D0 1F 00 00 */ stfs f0, 0(r31)
+/* 8026BD6C 00268CAC 38 60 00 00 */ li r3, 0
+lbl_8026BD70:
+/* 8026BD70 00268CB0 39 61 00 30 */ addi r11, r1, 0x30
+/* 8026BD74 00268CB4 48 0F 64 B1 */ bl _restgpr_28
+/* 8026BD78 00268CB8 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8026BD7C 00268CBC 7C 08 03 A6 */ mtlr r0
+/* 8026BD80 00268CC0 38 21 00 30 */ addi r1, r1, 0x30
+/* 8026BD84 00268CC4 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026BD88.s b/include/SComponent/c_m3d/asm/func_8026BD88.s
new file mode 100644
index 0000000000..eafdfcba6a
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026BD88.s
@@ -0,0 +1,57 @@
+/* 8026BD88 00268CC8 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 8026BD8C 00268CCC 7C 08 02 A6 */ mflr r0
+/* 8026BD90 00268CD0 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8026BD94 00268CD4 DB E1 00 30 */ stfd f31, 0x30(r1)
+/* 8026BD98 00268CD8 F3 E1 00 38 */ psq_st f31, 56(r1), 0, 0
+/* 8026BD9C 00268CDC 39 61 00 30 */ addi r11, r1, 0x30
+/* 8026BDA0 00268CE0 48 0F 64 3D */ bl _savegpr_29
+/* 8026BDA4 00268CE4 7C 7D 1B 78 */ mr r29, r3
+/* 8026BDA8 00268CE8 7C 9E 23 78 */ mr r30, r4
+/* 8026BDAC 00268CEC 7C BF 2B 78 */ mr r31, r5
+/* 8026BDB0 00268CF0 38 A1 00 0C */ addi r5, r1, 0xc
+/* 8026BDB4 00268CF4 38 C1 00 08 */ addi r6, r1, 8
+/* 8026BDB8 00268CF8 4B FF FF 45 */ bl cM3d_Cross_SphSph__FPC8cM3dGSphPC8cM3dGSphPfPf
+/* 8026BDBC 00268CFC 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026BDC0 00268D00 41 82 00 78 */ beq lbl_8026BE38
+/* 8026BDC4 00268D04 C0 41 00 0C */ lfs f2, 0xc(r1)
+/* 8026BDC8 00268D08 FC 00 12 10 */ fabs f0, f2
+/* 8026BDCC 00268D0C FC 20 00 18 */ frsp f1, f0
+/* 8026BDD0 00268D10 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026BDD4 00268D14 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026BDD8 00268D18 41 80 00 40 */ blt lbl_8026BE18
+/* 8026BDDC 00268D1C C0 1E 00 0C */ lfs f0, 0xc(r30)
+/* 8026BDE0 00268D20 EF E0 10 24 */ fdivs f31, f0, f2
+/* 8026BDE4 00268D24 7F A3 EB 78 */ mr r3, r29
+/* 8026BDE8 00268D28 7F C4 F3 78 */ mr r4, r30
+/* 8026BDEC 00268D2C 38 A1 00 10 */ addi r5, r1, 0x10
+/* 8026BDF0 00268D30 48 0D B2 C5 */ bl PSVECSubtract
+/* 8026BDF4 00268D34 38 61 00 10 */ addi r3, r1, 0x10
+/* 8026BDF8 00268D38 7C 64 1B 78 */ mr r4, r3
+/* 8026BDFC 00268D3C FC 20 F8 90 */ fmr f1, f31
+/* 8026BE00 00268D40 48 0D B2 D9 */ bl PSVECScale
+/* 8026BE04 00268D44 38 61 00 10 */ addi r3, r1, 0x10
+/* 8026BE08 00268D48 7F C4 F3 78 */ mr r4, r30
+/* 8026BE0C 00268D4C 7F E5 FB 78 */ mr r5, r31
+/* 8026BE10 00268D50 48 0D B2 81 */ bl PSVECAdd
+/* 8026BE14 00268D54 48 00 00 1C */ b lbl_8026BE30
+lbl_8026BE18:
+/* 8026BE18 00268D58 C0 1D 00 00 */ lfs f0, 0(r29)
+/* 8026BE1C 00268D5C D0 1F 00 00 */ stfs f0, 0(r31)
+/* 8026BE20 00268D60 C0 1D 00 04 */ lfs f0, 4(r29)
+/* 8026BE24 00268D64 D0 1F 00 04 */ stfs f0, 4(r31)
+/* 8026BE28 00268D68 C0 1D 00 08 */ lfs f0, 8(r29)
+/* 8026BE2C 00268D6C D0 1F 00 08 */ stfs f0, 8(r31)
+lbl_8026BE30:
+/* 8026BE30 00268D70 38 60 00 01 */ li r3, 1
+/* 8026BE34 00268D74 48 00 00 08 */ b lbl_8026BE3C
+lbl_8026BE38:
+/* 8026BE38 00268D78 38 60 00 00 */ li r3, 0
+lbl_8026BE3C:
+/* 8026BE3C 00268D7C E3 E1 00 38 */ psq_l f31, 56(r1), 0, 0
+/* 8026BE40 00268D80 CB E1 00 30 */ lfd f31, 0x30(r1)
+/* 8026BE44 00268D84 39 61 00 30 */ addi r11, r1, 0x30
+/* 8026BE48 00268D88 48 0F 63 E1 */ bl _restgpr_29
+/* 8026BE4C 00268D8C 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8026BE50 00268D90 7C 08 03 A6 */ mtlr r0
+/* 8026BE54 00268D94 38 21 00 40 */ addi r1, r1, 0x40
+/* 8026BE58 00268D98 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026BE5C.s b/include/SComponent/c_m3d/asm/func_8026BE5C.s
new file mode 100644
index 0000000000..e68f9f061d
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026BE5C.s
@@ -0,0 +1,44 @@
+/* 8026BE5C 00268D9C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8026BE60 00268DA0 7C 08 02 A6 */ mflr r0
+/* 8026BE64 00268DA4 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8026BE68 00268DA8 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 8026BE6C 00268DAC 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 8026BE70 00268DB0 7C 7E 1B 78 */ mr r30, r3
+/* 8026BE74 00268DB4 7C BF 2B 78 */ mr r31, r5
+/* 8026BE78 00268DB8 38 64 00 14 */ addi r3, r4, 0x14
+/* 8026BE7C 00268DBC 38 84 00 20 */ addi r4, r4, 0x20
+/* 8026BE80 00268DC0 38 A1 00 08 */ addi r5, r1, 8
+/* 8026BE84 00268DC4 48 0D B2 0D */ bl PSVECAdd
+/* 8026BE88 00268DC8 38 61 00 08 */ addi r3, r1, 8
+/* 8026BE8C 00268DCC 38 81 00 14 */ addi r4, r1, 0x14
+/* 8026BE90 00268DD0 C0 22 B7 C4 */ lfs f1, lbl_804551C4-_SDA2_BASE_(r2)
+/* 8026BE94 00268DD4 48 0D B2 45 */ bl PSVECScale
+/* 8026BE98 00268DD8 38 61 00 14 */ addi r3, r1, 0x14
+/* 8026BE9C 00268DDC 7F C4 F3 78 */ mr r4, r30
+/* 8026BEA0 00268DE0 48 0D B4 FD */ bl PSVECSquareDistance
+/* 8026BEA4 00268DE4 FC 00 0A 10 */ fabs f0, f1
+/* 8026BEA8 00268DE8 FC 40 00 18 */ frsp f2, f0
+/* 8026BEAC 00268DEC C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026BEB0 00268DF0 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 8026BEB4 00268DF4 40 80 00 20 */ bge lbl_8026BED4
+/* 8026BEB8 00268DF8 C0 1E 00 00 */ lfs f0, 0(r30)
+/* 8026BEBC 00268DFC D0 1F 00 00 */ stfs f0, 0(r31)
+/* 8026BEC0 00268E00 C0 1E 00 04 */ lfs f0, 4(r30)
+/* 8026BEC4 00268E04 D0 1F 00 04 */ stfs f0, 4(r31)
+/* 8026BEC8 00268E08 C0 1E 00 08 */ lfs f0, 8(r30)
+/* 8026BECC 00268E0C D0 1F 00 08 */ stfs f0, 8(r31)
+/* 8026BED0 00268E10 48 00 00 1C */ b lbl_8026BEEC
+lbl_8026BED4:
+/* 8026BED4 00268E14 7F C3 F3 78 */ mr r3, r30
+/* 8026BED8 00268E18 38 81 00 14 */ addi r4, r1, 0x14
+/* 8026BEDC 00268E1C C0 1E 00 0C */ lfs f0, 0xc(r30)
+/* 8026BEE0 00268E20 EC 20 08 24 */ fdivs f1, f0, f1
+/* 8026BEE4 00268E24 7F E5 FB 78 */ mr r5, r31
+/* 8026BEE8 00268E28 4B FF C6 C9 */ bl cM3d_InDivPos2__FPC3VecPC3VecfP3Vec
+lbl_8026BEEC:
+/* 8026BEEC 00268E2C 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 8026BEF0 00268E30 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 8026BEF4 00268E34 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8026BEF8 00268E38 7C 08 03 A6 */ mtlr r0
+/* 8026BEFC 00268E3C 38 21 00 30 */ addi r1, r1, 0x30
+/* 8026BF00 00268E40 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026BF04.s b/include/SComponent/c_m3d/asm/func_8026BF04.s
new file mode 100644
index 0000000000..ac3c3ea1ac
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026BF04.s
@@ -0,0 +1,217 @@
+/* 8026BF04 00268E44 94 21 FF 10 */ stwu r1, -0xf0(r1)
+/* 8026BF08 00268E48 7C 08 02 A6 */ mflr r0
+/* 8026BF0C 00268E4C 90 01 00 F4 */ stw r0, 0xf4(r1)
+/* 8026BF10 00268E50 39 61 00 F0 */ addi r11, r1, 0xf0
+/* 8026BF14 00268E54 48 0F 62 C9 */ bl _savegpr_29
+/* 8026BF18 00268E58 7C 7D 1B 78 */ mr r29, r3
+/* 8026BF1C 00268E5C 7C 9E 23 78 */ mr r30, r4
+/* 8026BF20 00268E60 7C BF 2B 78 */ mr r31, r5
+/* 8026BF24 00268E64 38 7E 00 14 */ addi r3, r30, 0x14
+/* 8026BF28 00268E68 38 9E 00 20 */ addi r4, r30, 0x20
+/* 8026BF2C 00268E6C 38 BE 00 2C */ addi r5, r30, 0x2c
+/* 8026BF30 00268E70 7F A6 EB 78 */ mr r6, r29
+/* 8026BF34 00268E74 C0 3D 00 0C */ lfs f1, 0xc(r29)
+/* 8026BF38 00268E78 4B FF DC F5 */ bl cM3d_InclusionCheckPosIn3PosBox3d__FPC3VecPC3VecPC3VecPC3Vecf
+/* 8026BF3C 00268E7C 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026BF40 00268E80 40 82 00 0C */ bne lbl_8026BF4C
+/* 8026BF44 00268E84 38 60 00 00 */ li r3, 0
+/* 8026BF48 00268E88 48 00 02 CC */ b lbl_8026C214
+lbl_8026BF4C:
+/* 8026BF4C 00268E8C 7F C3 F3 78 */ mr r3, r30
+/* 8026BF50 00268E90 7F A4 EB 78 */ mr r4, r29
+/* 8026BF54 00268E94 4B FF C8 C1 */ bl cM3d_SignedLenPlaAndPos__FPC8cM3dGPlaPC3Vec
+/* 8026BF58 00268E98 FC 00 0A 10 */ fabs f0, f1
+/* 8026BF5C 00268E9C FC 40 00 18 */ frsp f2, f0
+/* 8026BF60 00268EA0 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 8026BF64 00268EA4 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 8026BF68 00268EA8 40 81 00 0C */ ble lbl_8026BF74
+/* 8026BF6C 00268EAC 38 60 00 00 */ li r3, 0
+/* 8026BF70 00268EB0 48 00 02 A4 */ b lbl_8026C214
+lbl_8026BF74:
+/* 8026BF74 00268EB4 7F C3 F3 78 */ mr r3, r30
+/* 8026BF78 00268EB8 38 81 00 74 */ addi r4, r1, 0x74
+/* 8026BF7C 00268EBC 48 0D B1 5D */ bl PSVECScale
+/* 8026BF80 00268EC0 7F A3 EB 78 */ mr r3, r29
+/* 8026BF84 00268EC4 38 81 00 74 */ addi r4, r1, 0x74
+/* 8026BF88 00268EC8 38 A1 00 80 */ addi r5, r1, 0x80
+/* 8026BF8C 00268ECC 48 0D B1 29 */ bl PSVECSubtract
+/* 8026BF90 00268ED0 C0 1E 00 04 */ lfs f0, 4(r30)
+/* 8026BF94 00268ED4 FC 00 02 10 */ fabs f0, f0
+/* 8026BF98 00268ED8 FC 00 00 18 */ frsp f0, f0
+/* 8026BF9C 00268EDC C0 22 B7 C4 */ lfs f1, lbl_804551C4-_SDA2_BASE_(r2)
+/* 8026BFA0 00268EE0 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026BFA4 00268EE4 40 81 00 3C */ ble lbl_8026BFE0
+/* 8026BFA8 00268EE8 7F C3 F3 78 */ mr r3, r30
+/* 8026BFAC 00268EEC 38 81 00 80 */ addi r4, r1, 0x80
+/* 8026BFB0 00268EF0 C0 22 B7 18 */ lfs f1, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026BFB4 00268EF4 4B FF E9 91 */ bl cM3d_CrossY_Tri__FPC8cM3dGTriPC3Vecf
+/* 8026BFB8 00268EF8 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026BFBC 00268EFC 41 82 00 A8 */ beq lbl_8026C064
+/* 8026BFC0 00268F00 28 1F 00 00 */ cmplwi r31, 0
+/* 8026BFC4 00268F04 41 82 00 14 */ beq lbl_8026BFD8
+/* 8026BFC8 00268F08 7F A3 EB 78 */ mr r3, r29
+/* 8026BFCC 00268F0C 7F C4 F3 78 */ mr r4, r30
+/* 8026BFD0 00268F10 7F E5 FB 78 */ mr r5, r31
+/* 8026BFD4 00268F14 4B FF FE 89 */ bl cM3d_CalcSphVsTriCrossPoint__FPC8cM3dGSphPC8cM3dGTriP3Vec
+lbl_8026BFD8:
+/* 8026BFD8 00268F18 38 60 00 01 */ li r3, 1
+/* 8026BFDC 00268F1C 48 00 02 38 */ b lbl_8026C214
+lbl_8026BFE0:
+/* 8026BFE0 00268F20 C0 1E 00 00 */ lfs f0, 0(r30)
+/* 8026BFE4 00268F24 FC 00 02 10 */ fabs f0, f0
+/* 8026BFE8 00268F28 FC 00 00 18 */ frsp f0, f0
+/* 8026BFEC 00268F2C FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026BFF0 00268F30 40 81 00 3C */ ble lbl_8026C02C
+/* 8026BFF4 00268F34 7F C3 F3 78 */ mr r3, r30
+/* 8026BFF8 00268F38 38 81 00 80 */ addi r4, r1, 0x80
+/* 8026BFFC 00268F3C C0 22 B7 18 */ lfs f1, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026C000 00268F40 4B FF DE 19 */ bl cM3d_CrossX_Tri__FPC8cM3dGTriPC3Vecf
+/* 8026C004 00268F44 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026C008 00268F48 41 82 00 5C */ beq lbl_8026C064
+/* 8026C00C 00268F4C 28 1F 00 00 */ cmplwi r31, 0
+/* 8026C010 00268F50 41 82 00 14 */ beq lbl_8026C024
+/* 8026C014 00268F54 7F A3 EB 78 */ mr r3, r29
+/* 8026C018 00268F58 7F C4 F3 78 */ mr r4, r30
+/* 8026C01C 00268F5C 7F E5 FB 78 */ mr r5, r31
+/* 8026C020 00268F60 4B FF FE 3D */ bl cM3d_CalcSphVsTriCrossPoint__FPC8cM3dGSphPC8cM3dGTriP3Vec
+lbl_8026C024:
+/* 8026C024 00268F64 38 60 00 01 */ li r3, 1
+/* 8026C028 00268F68 48 00 01 EC */ b lbl_8026C214
+lbl_8026C02C:
+/* 8026C02C 00268F6C 7F C3 F3 78 */ mr r3, r30
+/* 8026C030 00268F70 38 81 00 80 */ addi r4, r1, 0x80
+/* 8026C034 00268F74 C0 22 B7 18 */ lfs f1, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026C038 00268F78 4B FF EB A1 */ bl cM3d_CrossZ_Tri__FPC8cM3dGTriPC3Vecf
+/* 8026C03C 00268F7C 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026C040 00268F80 41 82 00 24 */ beq lbl_8026C064
+/* 8026C044 00268F84 28 1F 00 00 */ cmplwi r31, 0
+/* 8026C048 00268F88 41 82 00 14 */ beq lbl_8026C05C
+/* 8026C04C 00268F8C 7F A3 EB 78 */ mr r3, r29
+/* 8026C050 00268F90 7F C4 F3 78 */ mr r4, r30
+/* 8026C054 00268F94 7F E5 FB 78 */ mr r5, r31
+/* 8026C058 00268F98 4B FF FE 05 */ bl cM3d_CalcSphVsTriCrossPoint__FPC8cM3dGSphPC8cM3dGTriP3Vec
+lbl_8026C05C:
+/* 8026C05C 00268F9C 38 60 00 01 */ li r3, 1
+/* 8026C060 00268FA0 48 00 01 B4 */ b lbl_8026C214
+lbl_8026C064:
+/* 8026C064 00268FA4 C0 1E 00 14 */ lfs f0, 0x14(r30)
+/* 8026C068 00268FA8 D0 01 00 68 */ stfs f0, 0x68(r1)
+/* 8026C06C 00268FAC C0 1E 00 18 */ lfs f0, 0x18(r30)
+/* 8026C070 00268FB0 D0 01 00 6C */ stfs f0, 0x6c(r1)
+/* 8026C074 00268FB4 C0 1E 00 1C */ lfs f0, 0x1c(r30)
+/* 8026C078 00268FB8 D0 01 00 70 */ stfs f0, 0x70(r1)
+/* 8026C07C 00268FBC C0 1E 00 20 */ lfs f0, 0x20(r30)
+/* 8026C080 00268FC0 D0 01 00 5C */ stfs f0, 0x5c(r1)
+/* 8026C084 00268FC4 C0 1E 00 24 */ lfs f0, 0x24(r30)
+/* 8026C088 00268FC8 D0 01 00 60 */ stfs f0, 0x60(r1)
+/* 8026C08C 00268FCC C0 1E 00 28 */ lfs f0, 0x28(r30)
+/* 8026C090 00268FD0 D0 01 00 64 */ stfs f0, 0x64(r1)
+/* 8026C094 00268FD4 38 61 00 C4 */ addi r3, r1, 0xc4
+/* 8026C098 00268FD8 38 81 00 68 */ addi r4, r1, 0x68
+/* 8026C09C 00268FDC 38 A1 00 5C */ addi r5, r1, 0x5c
+/* 8026C0A0 00268FE0 48 00 32 09 */ bl __ct__8cM3dGLinFRC4cXyzRC4cXyz
+/* 8026C0A4 00268FE4 38 61 00 C4 */ addi r3, r1, 0xc4
+/* 8026C0A8 00268FE8 7F A4 EB 78 */ mr r4, r29
+/* 8026C0AC 00268FEC 38 A1 00 20 */ addi r5, r1, 0x20
+/* 8026C0B0 00268FF0 4B FF F1 D1 */ bl cM3d_Cross_LinSph__FPC8cM3dGLinPC8cM3dGSphP3Vec
+/* 8026C0B4 00268FF4 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026C0B8 00268FF8 41 82 00 30 */ beq lbl_8026C0E8
+/* 8026C0BC 00268FFC 28 1F 00 00 */ cmplwi r31, 0
+/* 8026C0C0 00269000 41 82 00 14 */ beq lbl_8026C0D4
+/* 8026C0C4 00269004 7F A3 EB 78 */ mr r3, r29
+/* 8026C0C8 00269008 7F C4 F3 78 */ mr r4, r30
+/* 8026C0CC 0026900C 7F E5 FB 78 */ mr r5, r31
+/* 8026C0D0 00269010 4B FF FD 8D */ bl cM3d_CalcSphVsTriCrossPoint__FPC8cM3dGSphPC8cM3dGTriP3Vec
+lbl_8026C0D4:
+/* 8026C0D4 00269014 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026C0D8 00269018 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026C0DC 0026901C 90 01 00 DC */ stw r0, 0xdc(r1)
+/* 8026C0E0 00269020 38 60 00 01 */ li r3, 1
+/* 8026C0E4 00269024 48 00 01 30 */ b lbl_8026C214
+lbl_8026C0E8:
+/* 8026C0E8 00269028 C0 1E 00 20 */ lfs f0, 0x20(r30)
+/* 8026C0EC 0026902C D0 01 00 50 */ stfs f0, 0x50(r1)
+/* 8026C0F0 00269030 C0 1E 00 24 */ lfs f0, 0x24(r30)
+/* 8026C0F4 00269034 D0 01 00 54 */ stfs f0, 0x54(r1)
+/* 8026C0F8 00269038 C0 1E 00 28 */ lfs f0, 0x28(r30)
+/* 8026C0FC 0026903C D0 01 00 58 */ stfs f0, 0x58(r1)
+/* 8026C100 00269040 C0 1E 00 2C */ lfs f0, 0x2c(r30)
+/* 8026C104 00269044 D0 01 00 44 */ stfs f0, 0x44(r1)
+/* 8026C108 00269048 C0 1E 00 30 */ lfs f0, 0x30(r30)
+/* 8026C10C 0026904C D0 01 00 48 */ stfs f0, 0x48(r1)
+/* 8026C110 00269050 C0 1E 00 34 */ lfs f0, 0x34(r30)
+/* 8026C114 00269054 D0 01 00 4C */ stfs f0, 0x4c(r1)
+/* 8026C118 00269058 38 61 00 A8 */ addi r3, r1, 0xa8
+/* 8026C11C 0026905C 38 81 00 50 */ addi r4, r1, 0x50
+/* 8026C120 00269060 38 A1 00 44 */ addi r5, r1, 0x44
+/* 8026C124 00269064 48 00 31 85 */ bl __ct__8cM3dGLinFRC4cXyzRC4cXyz
+/* 8026C128 00269068 38 61 00 A8 */ addi r3, r1, 0xa8
+/* 8026C12C 0026906C 7F A4 EB 78 */ mr r4, r29
+/* 8026C130 00269070 38 A1 00 14 */ addi r5, r1, 0x14
+/* 8026C134 00269074 4B FF F1 4D */ bl cM3d_Cross_LinSph__FPC8cM3dGLinPC8cM3dGSphP3Vec
+/* 8026C138 00269078 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026C13C 0026907C 41 82 00 34 */ beq lbl_8026C170
+/* 8026C140 00269080 28 1F 00 00 */ cmplwi r31, 0
+/* 8026C144 00269084 41 82 00 14 */ beq lbl_8026C158
+/* 8026C148 00269088 7F A3 EB 78 */ mr r3, r29
+/* 8026C14C 0026908C 7F C4 F3 78 */ mr r4, r30
+/* 8026C150 00269090 7F E5 FB 78 */ mr r5, r31
+/* 8026C154 00269094 4B FF FD 09 */ bl cM3d_CalcSphVsTriCrossPoint__FPC8cM3dGSphPC8cM3dGTriP3Vec
+lbl_8026C158:
+/* 8026C158 00269098 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026C15C 0026909C 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026C160 002690A0 90 01 00 C0 */ stw r0, 0xc0(r1)
+/* 8026C164 002690A4 90 01 00 DC */ stw r0, 0xdc(r1)
+/* 8026C168 002690A8 38 60 00 01 */ li r3, 1
+/* 8026C16C 002690AC 48 00 00 A8 */ b lbl_8026C214
+lbl_8026C170:
+/* 8026C170 002690B0 C0 1E 00 2C */ lfs f0, 0x2c(r30)
+/* 8026C174 002690B4 D0 01 00 38 */ stfs f0, 0x38(r1)
+/* 8026C178 002690B8 C0 1E 00 30 */ lfs f0, 0x30(r30)
+/* 8026C17C 002690BC D0 01 00 3C */ stfs f0, 0x3c(r1)
+/* 8026C180 002690C0 C0 1E 00 34 */ lfs f0, 0x34(r30)
+/* 8026C184 002690C4 D0 01 00 40 */ stfs f0, 0x40(r1)
+/* 8026C188 002690C8 C0 1E 00 14 */ lfs f0, 0x14(r30)
+/* 8026C18C 002690CC D0 01 00 2C */ stfs f0, 0x2c(r1)
+/* 8026C190 002690D0 C0 1E 00 18 */ lfs f0, 0x18(r30)
+/* 8026C194 002690D4 D0 01 00 30 */ stfs f0, 0x30(r1)
+/* 8026C198 002690D8 C0 1E 00 1C */ lfs f0, 0x1c(r30)
+/* 8026C19C 002690DC D0 01 00 34 */ stfs f0, 0x34(r1)
+/* 8026C1A0 002690E0 38 61 00 8C */ addi r3, r1, 0x8c
+/* 8026C1A4 002690E4 38 81 00 38 */ addi r4, r1, 0x38
+/* 8026C1A8 002690E8 38 A1 00 2C */ addi r5, r1, 0x2c
+/* 8026C1AC 002690EC 48 00 30 FD */ bl __ct__8cM3dGLinFRC4cXyzRC4cXyz
+/* 8026C1B0 002690F0 38 61 00 8C */ addi r3, r1, 0x8c
+/* 8026C1B4 002690F4 7F A4 EB 78 */ mr r4, r29
+/* 8026C1B8 002690F8 38 A1 00 08 */ addi r5, r1, 8
+/* 8026C1BC 002690FC 4B FF F0 C5 */ bl cM3d_Cross_LinSph__FPC8cM3dGLinPC8cM3dGSphP3Vec
+/* 8026C1C0 00269100 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026C1C4 00269104 41 82 00 38 */ beq lbl_8026C1FC
+/* 8026C1C8 00269108 28 1F 00 00 */ cmplwi r31, 0
+/* 8026C1CC 0026910C 41 82 00 14 */ beq lbl_8026C1E0
+/* 8026C1D0 00269110 7F A3 EB 78 */ mr r3, r29
+/* 8026C1D4 00269114 7F C4 F3 78 */ mr r4, r30
+/* 8026C1D8 00269118 7F E5 FB 78 */ mr r5, r31
+/* 8026C1DC 0026911C 4B FF FC 81 */ bl cM3d_CalcSphVsTriCrossPoint__FPC8cM3dGSphPC8cM3dGTriP3Vec
+lbl_8026C1E0:
+/* 8026C1E0 00269120 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026C1E4 00269124 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026C1E8 00269128 90 01 00 A4 */ stw r0, 0xa4(r1)
+/* 8026C1EC 0026912C 90 01 00 C0 */ stw r0, 0xc0(r1)
+/* 8026C1F0 00269130 90 01 00 DC */ stw r0, 0xdc(r1)
+/* 8026C1F4 00269134 38 60 00 01 */ li r3, 1
+/* 8026C1F8 00269138 48 00 00 1C */ b lbl_8026C214
+lbl_8026C1FC:
+/* 8026C1FC 0026913C 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026C200 00269140 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026C204 00269144 90 01 00 A4 */ stw r0, 0xa4(r1)
+/* 8026C208 00269148 90 01 00 C0 */ stw r0, 0xc0(r1)
+/* 8026C20C 0026914C 90 01 00 DC */ stw r0, 0xdc(r1)
+/* 8026C210 00269150 38 60 00 00 */ li r3, 0
+lbl_8026C214:
+/* 8026C214 00269154 39 61 00 F0 */ addi r11, r1, 0xf0
+/* 8026C218 00269158 48 0F 60 11 */ bl _restgpr_29
+/* 8026C21C 0026915C 80 01 00 F4 */ lwz r0, 0xf4(r1)
+/* 8026C220 00269160 7C 08 03 A6 */ mtlr r0
+/* 8026C224 00269164 38 21 00 F0 */ addi r1, r1, 0xf0
+/* 8026C228 00269168 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026C22C.s b/include/SComponent/c_m3d/asm/func_8026C22C.s
new file mode 100644
index 0000000000..2ae3a1d9dc
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026C22C.s
@@ -0,0 +1,112 @@
+/* 8026C22C 0026916C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026C230 00269170 C0 23 00 00 */ lfs f1, 0(r3)
+/* 8026C234 00269174 C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026C238 00269178 EC 41 00 28 */ fsubs f2, f1, f0
+/* 8026C23C 0026917C C0 23 00 08 */ lfs f1, 8(r3)
+/* 8026C240 00269180 C0 04 00 08 */ lfs f0, 8(r4)
+/* 8026C244 00269184 EC 01 00 28 */ fsubs f0, f1, f0
+/* 8026C248 00269188 EC 22 00 B2 */ fmuls f1, f2, f2
+/* 8026C24C 0026918C EC 00 00 32 */ fmuls f0, f0, f0
+/* 8026C250 00269190 EC 81 00 2A */ fadds f4, f1, f0
+/* 8026C254 00269194 C0 23 00 0C */ lfs f1, 0xc(r3)
+/* 8026C258 00269198 C0 04 00 0C */ lfs f0, 0xc(r4)
+/* 8026C25C 0026919C EC A1 00 2A */ fadds f5, f1, f0
+/* 8026C260 002691A0 EC 05 01 72 */ fmuls f0, f5, f5
+/* 8026C264 002691A4 FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 8026C268 002691A8 40 81 00 14 */ ble lbl_8026C27C
+/* 8026C26C 002691AC C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026C270 002691B0 D0 05 00 00 */ stfs f0, 0(r5)
+/* 8026C274 002691B4 38 60 00 00 */ li r3, 0
+/* 8026C278 002691B8 48 00 01 34 */ b lbl_8026C3AC
+lbl_8026C27C:
+/* 8026C27C 002691BC C0 43 00 04 */ lfs f2, 4(r3)
+/* 8026C280 002691C0 C0 03 00 10 */ lfs f0, 0x10(r3)
+/* 8026C284 002691C4 EC 02 00 2A */ fadds f0, f2, f0
+/* 8026C288 002691C8 C0 24 00 04 */ lfs f1, 4(r4)
+/* 8026C28C 002691CC FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026C290 002691D0 41 80 00 14 */ blt lbl_8026C2A4
+/* 8026C294 002691D4 C0 04 00 10 */ lfs f0, 0x10(r4)
+/* 8026C298 002691D8 EC 01 00 2A */ fadds f0, f1, f0
+/* 8026C29C 002691DC FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 8026C2A0 002691E0 40 81 00 14 */ ble lbl_8026C2B4
+lbl_8026C2A4:
+/* 8026C2A4 002691E4 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026C2A8 002691E8 D0 05 00 00 */ stfs f0, 0(r5)
+/* 8026C2AC 002691EC 38 60 00 00 */ li r3, 0
+/* 8026C2B0 002691F0 48 00 00 FC */ b lbl_8026C3AC
+lbl_8026C2B4:
+/* 8026C2B4 002691F4 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026C2B8 002691F8 FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 8026C2BC 002691FC 40 81 00 58 */ ble lbl_8026C314
+/* 8026C2C0 00269200 FC 00 20 34 */ frsqrte f0, f4
+/* 8026C2C4 00269204 C8 62 B7 20 */ lfd f3, lbl_80455120-_SDA2_BASE_(r2)
+/* 8026C2C8 00269208 FC 23 00 32 */ fmul f1, f3, f0
+/* 8026C2CC 0026920C C8 42 B7 28 */ lfd f2, lbl_80455128-_SDA2_BASE_(r2)
+/* 8026C2D0 00269210 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026C2D4 00269214 FC 04 00 32 */ fmul f0, f4, f0
+/* 8026C2D8 00269218 FC 02 00 28 */ fsub f0, f2, f0
+/* 8026C2DC 0026921C FC 01 00 32 */ fmul f0, f1, f0
+/* 8026C2E0 00269220 FC 23 00 32 */ fmul f1, f3, f0
+/* 8026C2E4 00269224 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026C2E8 00269228 FC 04 00 32 */ fmul f0, f4, f0
+/* 8026C2EC 0026922C FC 02 00 28 */ fsub f0, f2, f0
+/* 8026C2F0 00269230 FC 01 00 32 */ fmul f0, f1, f0
+/* 8026C2F4 00269234 FC 23 00 32 */ fmul f1, f3, f0
+/* 8026C2F8 00269238 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026C2FC 0026923C FC 04 00 32 */ fmul f0, f4, f0
+/* 8026C300 00269240 FC 02 00 28 */ fsub f0, f2, f0
+/* 8026C304 00269244 FC 01 00 32 */ fmul f0, f1, f0
+/* 8026C308 00269248 FC 04 00 32 */ fmul f0, f4, f0
+/* 8026C30C 0026924C FC 00 00 18 */ frsp f0, f0
+/* 8026C310 00269250 48 00 00 90 */ b lbl_8026C3A0
+lbl_8026C314:
+/* 8026C314 00269254 C8 02 B7 30 */ lfd f0, lbl_80455130-_SDA2_BASE_(r2)
+/* 8026C318 00269258 FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 8026C31C 0026925C 40 80 00 10 */ bge lbl_8026C32C
+/* 8026C320 00269260 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026C324 00269264 C0 03 0A E0 */ lfs f0, lbl_80450AE0@l(r3)
+/* 8026C328 00269268 48 00 00 78 */ b lbl_8026C3A0
+lbl_8026C32C:
+/* 8026C32C 0026926C D0 81 00 08 */ stfs f4, 8(r1)
+/* 8026C330 00269270 80 81 00 08 */ lwz r4, 8(r1)
+/* 8026C334 00269274 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
+/* 8026C338 00269278 3C 00 7F 80 */ lis r0, 0x7f80
+/* 8026C33C 0026927C 7C 03 00 00 */ cmpw r3, r0
+/* 8026C340 00269280 41 82 00 14 */ beq lbl_8026C354
+/* 8026C344 00269284 40 80 00 40 */ bge lbl_8026C384
+/* 8026C348 00269288 2C 03 00 00 */ cmpwi r3, 0
+/* 8026C34C 0026928C 41 82 00 20 */ beq lbl_8026C36C
+/* 8026C350 00269290 48 00 00 34 */ b lbl_8026C384
+lbl_8026C354:
+/* 8026C354 00269294 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026C358 00269298 41 82 00 0C */ beq lbl_8026C364
+/* 8026C35C 0026929C 38 00 00 01 */ li r0, 1
+/* 8026C360 002692A0 48 00 00 28 */ b lbl_8026C388
+lbl_8026C364:
+/* 8026C364 002692A4 38 00 00 02 */ li r0, 2
+/* 8026C368 002692A8 48 00 00 20 */ b lbl_8026C388
+lbl_8026C36C:
+/* 8026C36C 002692AC 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026C370 002692B0 41 82 00 0C */ beq lbl_8026C37C
+/* 8026C374 002692B4 38 00 00 05 */ li r0, 5
+/* 8026C378 002692B8 48 00 00 10 */ b lbl_8026C388
+lbl_8026C37C:
+/* 8026C37C 002692BC 38 00 00 03 */ li r0, 3
+/* 8026C380 002692C0 48 00 00 08 */ b lbl_8026C388
+lbl_8026C384:
+/* 8026C384 002692C4 38 00 00 04 */ li r0, 4
+lbl_8026C388:
+/* 8026C388 002692C8 2C 00 00 01 */ cmpwi r0, 1
+/* 8026C38C 002692CC 40 82 00 10 */ bne lbl_8026C39C
+/* 8026C390 002692D0 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026C394 002692D4 C0 03 0A E0 */ lfs f0, lbl_80450AE0@l(r3)
+/* 8026C398 002692D8 48 00 00 08 */ b lbl_8026C3A0
+lbl_8026C39C:
+/* 8026C39C 002692DC FC 00 20 90 */ fmr f0, f4
+lbl_8026C3A0:
+/* 8026C3A0 002692E0 EC 05 00 28 */ fsubs f0, f5, f0
+/* 8026C3A4 002692E4 D0 05 00 00 */ stfs f0, 0(r5)
+/* 8026C3A8 002692E8 38 60 00 01 */ li r3, 1
+lbl_8026C3AC:
+/* 8026C3AC 002692EC 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026C3B0 002692F0 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026C3B4.s b/include/SComponent/c_m3d/asm/func_8026C3B4.s
new file mode 100644
index 0000000000..87b9aa686b
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026C3B4.s
@@ -0,0 +1,153 @@
+/* 8026C3B4 002692F4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026C3B8 002692F8 C0 23 00 00 */ lfs f1, 0(r3)
+/* 8026C3BC 002692FC C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026C3C0 00269300 EC 41 00 28 */ fsubs f2, f1, f0
+/* 8026C3C4 00269304 C0 23 00 08 */ lfs f1, 8(r3)
+/* 8026C3C8 00269308 C0 04 00 08 */ lfs f0, 8(r4)
+/* 8026C3CC 0026930C EC 01 00 28 */ fsubs f0, f1, f0
+/* 8026C3D0 00269310 EC 22 00 B2 */ fmuls f1, f2, f2
+/* 8026C3D4 00269314 EC 00 00 32 */ fmuls f0, f0, f0
+/* 8026C3D8 00269318 EC 81 00 2A */ fadds f4, f1, f0
+/* 8026C3DC 0026931C C0 23 00 0C */ lfs f1, 0xc(r3)
+/* 8026C3E0 00269320 C0 04 00 0C */ lfs f0, 0xc(r4)
+/* 8026C3E4 00269324 EC 01 00 2A */ fadds f0, f1, f0
+/* 8026C3E8 00269328 EC 00 00 32 */ fmuls f0, f0, f0
+/* 8026C3EC 0026932C FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 8026C3F0 00269330 40 81 00 0C */ ble lbl_8026C3FC
+/* 8026C3F4 00269334 38 60 00 00 */ li r3, 0
+/* 8026C3F8 00269338 48 00 01 D0 */ b lbl_8026C5C8
+lbl_8026C3FC:
+/* 8026C3FC 0026933C C0 43 00 04 */ lfs f2, 4(r3)
+/* 8026C400 00269340 C0 03 00 10 */ lfs f0, 0x10(r3)
+/* 8026C404 00269344 EC 02 00 2A */ fadds f0, f2, f0
+/* 8026C408 00269348 C0 24 00 04 */ lfs f1, 4(r4)
+/* 8026C40C 0026934C FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026C410 00269350 41 80 00 14 */ blt lbl_8026C424
+/* 8026C414 00269354 C0 04 00 10 */ lfs f0, 0x10(r4)
+/* 8026C418 00269358 EC 01 00 2A */ fadds f0, f1, f0
+/* 8026C41C 0026935C FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 8026C420 00269360 40 81 00 0C */ ble lbl_8026C42C
+lbl_8026C424:
+/* 8026C424 00269364 38 60 00 00 */ li r3, 0
+/* 8026C428 00269368 48 00 01 A0 */ b lbl_8026C5C8
+lbl_8026C42C:
+/* 8026C42C 0026936C C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026C430 00269370 FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 8026C434 00269374 40 81 00 58 */ ble lbl_8026C48C
+/* 8026C438 00269378 FC 00 20 34 */ frsqrte f0, f4
+/* 8026C43C 0026937C C8 62 B7 20 */ lfd f3, lbl_80455120-_SDA2_BASE_(r2)
+/* 8026C440 00269380 FC 23 00 32 */ fmul f1, f3, f0
+/* 8026C444 00269384 C8 42 B7 28 */ lfd f2, lbl_80455128-_SDA2_BASE_(r2)
+/* 8026C448 00269388 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026C44C 0026938C FC 04 00 32 */ fmul f0, f4, f0
+/* 8026C450 00269390 FC 02 00 28 */ fsub f0, f2, f0
+/* 8026C454 00269394 FC 01 00 32 */ fmul f0, f1, f0
+/* 8026C458 00269398 FC 23 00 32 */ fmul f1, f3, f0
+/* 8026C45C 0026939C FC 00 00 32 */ fmul f0, f0, f0
+/* 8026C460 002693A0 FC 04 00 32 */ fmul f0, f4, f0
+/* 8026C464 002693A4 FC 02 00 28 */ fsub f0, f2, f0
+/* 8026C468 002693A8 FC 01 00 32 */ fmul f0, f1, f0
+/* 8026C46C 002693AC FC 23 00 32 */ fmul f1, f3, f0
+/* 8026C470 002693B0 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026C474 002693B4 FC 04 00 32 */ fmul f0, f4, f0
+/* 8026C478 002693B8 FC 02 00 28 */ fsub f0, f2, f0
+/* 8026C47C 002693BC FC 01 00 32 */ fmul f0, f1, f0
+/* 8026C480 002693C0 FC 44 00 32 */ fmul f2, f4, f0
+/* 8026C484 002693C4 FC 40 10 18 */ frsp f2, f2
+/* 8026C488 002693C8 48 00 00 90 */ b lbl_8026C518
+lbl_8026C48C:
+/* 8026C48C 002693CC C8 02 B7 30 */ lfd f0, lbl_80455130-_SDA2_BASE_(r2)
+/* 8026C490 002693D0 FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 8026C494 002693D4 40 80 00 10 */ bge lbl_8026C4A4
+/* 8026C498 002693D8 3C C0 80 45 */ lis r6, lbl_80450AE0@ha
+/* 8026C49C 002693DC C0 46 0A E0 */ lfs f2, lbl_80450AE0@l(r6)
+/* 8026C4A0 002693E0 48 00 00 78 */ b lbl_8026C518
+lbl_8026C4A4:
+/* 8026C4A4 002693E4 D0 81 00 08 */ stfs f4, 8(r1)
+/* 8026C4A8 002693E8 80 E1 00 08 */ lwz r7, 8(r1)
+/* 8026C4AC 002693EC 54 E6 00 50 */ rlwinm r6, r7, 0, 1, 8
+/* 8026C4B0 002693F0 3C 00 7F 80 */ lis r0, 0x7f80
+/* 8026C4B4 002693F4 7C 06 00 00 */ cmpw r6, r0
+/* 8026C4B8 002693F8 41 82 00 14 */ beq lbl_8026C4CC
+/* 8026C4BC 002693FC 40 80 00 40 */ bge lbl_8026C4FC
+/* 8026C4C0 00269400 2C 06 00 00 */ cmpwi r6, 0
+/* 8026C4C4 00269404 41 82 00 20 */ beq lbl_8026C4E4
+/* 8026C4C8 00269408 48 00 00 34 */ b lbl_8026C4FC
+lbl_8026C4CC:
+/* 8026C4CC 0026940C 54 E0 02 7F */ clrlwi. r0, r7, 9
+/* 8026C4D0 00269410 41 82 00 0C */ beq lbl_8026C4DC
+/* 8026C4D4 00269414 38 00 00 01 */ li r0, 1
+/* 8026C4D8 00269418 48 00 00 28 */ b lbl_8026C500
+lbl_8026C4DC:
+/* 8026C4DC 0026941C 38 00 00 02 */ li r0, 2
+/* 8026C4E0 00269420 48 00 00 20 */ b lbl_8026C500
+lbl_8026C4E4:
+/* 8026C4E4 00269424 54 E0 02 7F */ clrlwi. r0, r7, 9
+/* 8026C4E8 00269428 41 82 00 0C */ beq lbl_8026C4F4
+/* 8026C4EC 0026942C 38 00 00 05 */ li r0, 5
+/* 8026C4F0 00269430 48 00 00 10 */ b lbl_8026C500
+lbl_8026C4F4:
+/* 8026C4F4 00269434 38 00 00 03 */ li r0, 3
+/* 8026C4F8 00269438 48 00 00 08 */ b lbl_8026C500
+lbl_8026C4FC:
+/* 8026C4FC 0026943C 38 00 00 04 */ li r0, 4
+lbl_8026C500:
+/* 8026C500 00269440 2C 00 00 01 */ cmpwi r0, 1
+/* 8026C504 00269444 40 82 00 10 */ bne lbl_8026C514
+/* 8026C508 00269448 3C C0 80 45 */ lis r6, lbl_80450AE0@ha
+/* 8026C50C 0026944C C0 46 0A E0 */ lfs f2, lbl_80450AE0@l(r6)
+/* 8026C510 00269450 48 00 00 08 */ b lbl_8026C518
+lbl_8026C514:
+/* 8026C514 00269454 FC 40 20 90 */ fmr f2, f4
+lbl_8026C518:
+/* 8026C518 00269458 FC 00 12 10 */ fabs f0, f2
+/* 8026C51C 0026945C FC 20 00 18 */ frsp f1, f0
+/* 8026C520 00269460 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026C524 00269464 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026C528 00269468 41 80 00 84 */ blt lbl_8026C5AC
+/* 8026C52C 0026946C C0 04 00 0C */ lfs f0, 0xc(r4)
+/* 8026C530 00269470 EC 60 10 24 */ fdivs f3, f0, f2
+/* 8026C534 00269474 C0 44 00 04 */ lfs f2, 4(r4)
+/* 8026C538 00269478 C0 22 B7 C4 */ lfs f1, lbl_804551C4-_SDA2_BASE_(r2)
+/* 8026C53C 0026947C C0 04 00 10 */ lfs f0, 0x10(r4)
+/* 8026C540 00269480 EC 01 00 32 */ fmuls f0, f1, f0
+/* 8026C544 00269484 EC 02 00 2A */ fadds f0, f2, f0
+/* 8026C548 00269488 D0 05 00 04 */ stfs f0, 4(r5)
+/* 8026C54C 0026948C C0 43 00 04 */ lfs f2, 4(r3)
+/* 8026C550 00269490 C0 25 00 04 */ lfs f1, 4(r5)
+/* 8026C554 00269494 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 8026C558 00269498 40 80 00 0C */ bge lbl_8026C564
+/* 8026C55C 0026949C D0 45 00 04 */ stfs f2, 4(r5)
+/* 8026C560 002694A0 48 00 00 18 */ b lbl_8026C578
+lbl_8026C564:
+/* 8026C564 002694A4 C0 03 00 10 */ lfs f0, 0x10(r3)
+/* 8026C568 002694A8 EC 42 00 2A */ fadds f2, f2, f0
+/* 8026C56C 002694AC FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 8026C570 002694B0 40 81 00 08 */ ble lbl_8026C578
+/* 8026C574 002694B4 D0 45 00 04 */ stfs f2, 4(r5)
+lbl_8026C578:
+/* 8026C578 002694B8 C0 24 00 00 */ lfs f1, 0(r4)
+/* 8026C57C 002694BC C0 03 00 00 */ lfs f0, 0(r3)
+/* 8026C580 002694C0 EC 00 08 28 */ fsubs f0, f0, f1
+/* 8026C584 002694C4 EC 03 00 32 */ fmuls f0, f3, f0
+/* 8026C588 002694C8 EC 01 00 2A */ fadds f0, f1, f0
+/* 8026C58C 002694CC D0 05 00 00 */ stfs f0, 0(r5)
+/* 8026C590 002694D0 C0 24 00 08 */ lfs f1, 8(r4)
+/* 8026C594 002694D4 C0 03 00 08 */ lfs f0, 8(r3)
+/* 8026C598 002694D8 EC 00 08 28 */ fsubs f0, f0, f1
+/* 8026C59C 002694DC EC 03 00 32 */ fmuls f0, f3, f0
+/* 8026C5A0 002694E0 EC 01 00 2A */ fadds f0, f1, f0
+/* 8026C5A4 002694E4 D0 05 00 08 */ stfs f0, 8(r5)
+/* 8026C5A8 002694E8 48 00 00 1C */ b lbl_8026C5C4
+lbl_8026C5AC:
+/* 8026C5AC 002694EC C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026C5B0 002694F0 D0 05 00 00 */ stfs f0, 0(r5)
+/* 8026C5B4 002694F4 C0 04 00 04 */ lfs f0, 4(r4)
+/* 8026C5B8 002694F8 D0 05 00 04 */ stfs f0, 4(r5)
+/* 8026C5BC 002694FC C0 04 00 08 */ lfs f0, 8(r4)
+/* 8026C5C0 00269500 D0 05 00 08 */ stfs f0, 8(r5)
+lbl_8026C5C4:
+/* 8026C5C4 00269504 38 60 00 01 */ li r3, 1
+lbl_8026C5C8:
+/* 8026C5C8 00269508 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026C5CC 0026950C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026C5D0.s b/include/SComponent/c_m3d/asm/func_8026C5D0.s
new file mode 100644
index 0000000000..47f887efa6
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026C5D0.s
@@ -0,0 +1,241 @@
+/* 8026C5D0 00269510 94 21 FF 70 */ stwu r1, -0x90(r1)
+/* 8026C5D4 00269514 7C 08 02 A6 */ mflr r0
+/* 8026C5D8 00269518 90 01 00 94 */ stw r0, 0x94(r1)
+/* 8026C5DC 0026951C DB E1 00 80 */ stfd f31, 0x80(r1)
+/* 8026C5E0 00269520 F3 E1 00 88 */ psq_st f31, 136(r1), 0, 0
+/* 8026C5E4 00269524 DB C1 00 70 */ stfd f30, 0x70(r1)
+/* 8026C5E8 00269528 F3 C1 00 78 */ psq_st f30, 120(r1), 0, 0
+/* 8026C5EC 0026952C 39 61 00 70 */ addi r11, r1, 0x70
+/* 8026C5F0 00269530 48 0F 5B ED */ bl _savegpr_29
+/* 8026C5F4 00269534 7C 7D 1B 78 */ mr r29, r3
+/* 8026C5F8 00269538 7C 9E 23 78 */ mr r30, r4
+/* 8026C5FC 0026953C 7C BF 2B 78 */ mr r31, r5
+/* 8026C600 00269540 C0 23 00 04 */ lfs f1, 4(r3)
+/* 8026C604 00269544 C0 03 00 10 */ lfs f0, 0x10(r3)
+/* 8026C608 00269548 EF E1 00 2A */ fadds f31, f1, f0
+/* 8026C60C 0026954C C0 44 00 18 */ lfs f2, 0x18(r4)
+/* 8026C610 00269550 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 8026C614 00269554 40 81 00 1C */ ble lbl_8026C630
+/* 8026C618 00269558 C0 1E 00 24 */ lfs f0, 0x24(r30)
+/* 8026C61C 0026955C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026C620 00269560 40 81 00 10 */ ble lbl_8026C630
+/* 8026C624 00269564 C0 1E 00 30 */ lfs f0, 0x30(r30)
+/* 8026C628 00269568 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026C62C 0026956C 41 81 00 24 */ bgt lbl_8026C650
+lbl_8026C630:
+/* 8026C630 00269570 FC 1F 10 40 */ fcmpo cr0, f31, f2
+/* 8026C634 00269574 40 80 00 24 */ bge lbl_8026C658
+/* 8026C638 00269578 C0 1E 00 24 */ lfs f0, 0x24(r30)
+/* 8026C63C 0026957C FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026C640 00269580 40 80 00 18 */ bge lbl_8026C658
+/* 8026C644 00269584 C0 1E 00 30 */ lfs f0, 0x30(r30)
+/* 8026C648 00269588 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026C64C 0026958C 40 80 00 0C */ bge lbl_8026C658
+lbl_8026C650:
+/* 8026C650 00269590 38 60 00 00 */ li r3, 0
+/* 8026C654 00269594 48 00 02 C8 */ b lbl_8026C91C
+lbl_8026C658:
+/* 8026C658 00269598 C3 C2 B7 C8 */ lfs f30, lbl_804551C8-_SDA2_BASE_(r2)
+/* 8026C65C 0026959C 7F A3 EB 78 */ mr r3, r29
+/* 8026C660 002695A0 38 9E 00 14 */ addi r4, r30, 0x14
+/* 8026C664 002695A4 38 BE 00 20 */ addi r5, r30, 0x20
+/* 8026C668 002695A8 38 C1 00 54 */ addi r6, r1, 0x54
+/* 8026C66C 002695AC 38 E1 00 48 */ addi r7, r1, 0x48
+/* 8026C670 002695B0 48 00 09 D5 */ bl cM3d_Cross_CylPntPnt__FPC8cM3dGCylPC3VecPC3VecP3VecP3Vec
+/* 8026C674 002695B4 2C 03 00 00 */ cmpwi r3, 0
+/* 8026C678 002695B8 41 82 00 2C */ beq lbl_8026C6A4
+/* 8026C67C 002695BC 38 61 00 54 */ addi r3, r1, 0x54
+/* 8026C680 002695C0 38 9E 00 14 */ addi r4, r30, 0x14
+/* 8026C684 002695C4 48 0D AD 19 */ bl PSVECSquareDistance
+/* 8026C688 002695C8 FF C0 08 90 */ fmr f30, f1
+/* 8026C68C 002695CC C0 01 00 54 */ lfs f0, 0x54(r1)
+/* 8026C690 002695D0 D0 1F 00 00 */ stfs f0, 0(r31)
+/* 8026C694 002695D4 C0 01 00 58 */ lfs f0, 0x58(r1)
+/* 8026C698 002695D8 D0 1F 00 04 */ stfs f0, 4(r31)
+/* 8026C69C 002695DC C0 01 00 5C */ lfs f0, 0x5c(r1)
+/* 8026C6A0 002695E0 D0 1F 00 08 */ stfs f0, 8(r31)
+lbl_8026C6A4:
+/* 8026C6A4 002695E4 7F A3 EB 78 */ mr r3, r29
+/* 8026C6A8 002695E8 38 9E 00 2C */ addi r4, r30, 0x2c
+/* 8026C6AC 002695EC 38 BE 00 20 */ addi r5, r30, 0x20
+/* 8026C6B0 002695F0 38 C1 00 54 */ addi r6, r1, 0x54
+/* 8026C6B4 002695F4 38 E1 00 48 */ addi r7, r1, 0x48
+/* 8026C6B8 002695F8 48 00 09 8D */ bl cM3d_Cross_CylPntPnt__FPC8cM3dGCylPC3VecPC3VecP3VecP3Vec
+/* 8026C6BC 002695FC 2C 03 00 00 */ cmpwi r3, 0
+/* 8026C6C0 00269600 41 82 00 34 */ beq lbl_8026C6F4
+/* 8026C6C4 00269604 38 61 00 54 */ addi r3, r1, 0x54
+/* 8026C6C8 00269608 38 9E 00 2C */ addi r4, r30, 0x2c
+/* 8026C6CC 0026960C 48 0D AC D1 */ bl PSVECSquareDistance
+/* 8026C6D0 00269610 FC 1E 08 40 */ fcmpo cr0, f30, f1
+/* 8026C6D4 00269614 40 81 00 20 */ ble lbl_8026C6F4
+/* 8026C6D8 00269618 FF C0 08 90 */ fmr f30, f1
+/* 8026C6DC 0026961C C0 01 00 54 */ lfs f0, 0x54(r1)
+/* 8026C6E0 00269620 D0 1F 00 00 */ stfs f0, 0(r31)
+/* 8026C6E4 00269624 C0 01 00 58 */ lfs f0, 0x58(r1)
+/* 8026C6E8 00269628 D0 1F 00 04 */ stfs f0, 4(r31)
+/* 8026C6EC 0026962C C0 01 00 5C */ lfs f0, 0x5c(r1)
+/* 8026C6F0 00269630 D0 1F 00 08 */ stfs f0, 8(r31)
+lbl_8026C6F4:
+/* 8026C6F4 00269634 7F A3 EB 78 */ mr r3, r29
+/* 8026C6F8 00269638 38 9E 00 14 */ addi r4, r30, 0x14
+/* 8026C6FC 0026963C 38 BE 00 2C */ addi r5, r30, 0x2c
+/* 8026C700 00269640 38 C1 00 54 */ addi r6, r1, 0x54
+/* 8026C704 00269644 38 E1 00 48 */ addi r7, r1, 0x48
+/* 8026C708 00269648 48 00 09 3D */ bl cM3d_Cross_CylPntPnt__FPC8cM3dGCylPC3VecPC3VecP3VecP3Vec
+/* 8026C70C 0026964C 2C 03 00 00 */ cmpwi r3, 0
+/* 8026C710 00269650 41 82 00 34 */ beq lbl_8026C744
+/* 8026C714 00269654 38 61 00 54 */ addi r3, r1, 0x54
+/* 8026C718 00269658 38 9E 00 14 */ addi r4, r30, 0x14
+/* 8026C71C 0026965C 48 0D AC 81 */ bl PSVECSquareDistance
+/* 8026C720 00269660 FC 1E 08 40 */ fcmpo cr0, f30, f1
+/* 8026C724 00269664 40 81 00 20 */ ble lbl_8026C744
+/* 8026C728 00269668 FF C0 08 90 */ fmr f30, f1
+/* 8026C72C 0026966C C0 01 00 54 */ lfs f0, 0x54(r1)
+/* 8026C730 00269670 D0 1F 00 00 */ stfs f0, 0(r31)
+/* 8026C734 00269674 C0 01 00 58 */ lfs f0, 0x58(r1)
+/* 8026C738 00269678 D0 1F 00 04 */ stfs f0, 4(r31)
+/* 8026C73C 0026967C C0 01 00 5C */ lfs f0, 0x5c(r1)
+/* 8026C740 00269680 D0 1F 00 08 */ stfs f0, 8(r31)
+lbl_8026C744:
+/* 8026C744 00269684 C0 02 B7 C8 */ lfs f0, lbl_804551C8-_SDA2_BASE_(r2)
+/* 8026C748 00269688 FC 00 F0 00 */ fcmpu cr0, f0, f30
+/* 8026C74C 0026968C 41 82 00 0C */ beq lbl_8026C758
+/* 8026C750 00269690 38 60 00 01 */ li r3, 1
+/* 8026C754 00269694 48 00 01 C8 */ b lbl_8026C91C
+lbl_8026C758:
+/* 8026C758 00269698 C0 1D 00 04 */ lfs f0, 4(r29)
+/* 8026C75C 0026969C D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 8026C760 002696A0 D3 E1 00 14 */ stfs f31, 0x14(r1)
+/* 8026C764 002696A4 7F C3 F3 78 */ mr r3, r30
+/* 8026C768 002696A8 7F A4 EB 78 */ mr r4, r29
+/* 8026C76C 002696AC 38 A1 00 10 */ addi r5, r1, 0x10
+/* 8026C770 002696B0 38 C1 00 0C */ addi r6, r1, 0xc
+/* 8026C774 002696B4 4B FF E3 75 */ bl cM3d_CrossY_Tri__FPC8cM3dGTriPC3VecPC10cM3d_RangePf
+/* 8026C778 002696B8 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026C77C 002696BC 41 82 01 9C */ beq lbl_8026C918
+/* 8026C780 002696C0 C0 1D 00 00 */ lfs f0, 0(r29)
+/* 8026C784 002696C4 D0 01 00 3C */ stfs f0, 0x3c(r1)
+/* 8026C788 002696C8 C0 1D 00 04 */ lfs f0, 4(r29)
+/* 8026C78C 002696CC D0 01 00 40 */ stfs f0, 0x40(r1)
+/* 8026C790 002696D0 C0 1D 00 08 */ lfs f0, 8(r29)
+/* 8026C794 002696D4 D0 01 00 44 */ stfs f0, 0x44(r1)
+/* 8026C798 002696D8 C0 01 00 0C */ lfs f0, 0xc(r1)
+/* 8026C79C 002696DC D0 01 00 40 */ stfs f0, 0x40(r1)
+/* 8026C7A0 002696E0 38 7E 00 14 */ addi r3, r30, 0x14
+/* 8026C7A4 002696E4 38 9E 00 20 */ addi r4, r30, 0x20
+/* 8026C7A8 002696E8 38 A1 00 18 */ addi r5, r1, 0x18
+/* 8026C7AC 002696EC 48 0D A8 E5 */ bl PSVECAdd
+/* 8026C7B0 002696F0 38 61 00 18 */ addi r3, r1, 0x18
+/* 8026C7B4 002696F4 38 81 00 30 */ addi r4, r1, 0x30
+/* 8026C7B8 002696F8 C0 22 B7 C4 */ lfs f1, lbl_804551C4-_SDA2_BASE_(r2)
+/* 8026C7BC 002696FC 48 0D A9 1D */ bl PSVECScale
+/* 8026C7C0 00269700 38 61 00 30 */ addi r3, r1, 0x30
+/* 8026C7C4 00269704 38 81 00 3C */ addi r4, r1, 0x3c
+/* 8026C7C8 00269708 38 A1 00 24 */ addi r5, r1, 0x24
+/* 8026C7CC 0026970C 48 0D A8 E9 */ bl PSVECSubtract
+/* 8026C7D0 00269710 C0 01 00 24 */ lfs f0, 0x24(r1)
+/* 8026C7D4 00269714 EC 20 00 32 */ fmuls f1, f0, f0
+/* 8026C7D8 00269718 C0 01 00 2C */ lfs f0, 0x2c(r1)
+/* 8026C7DC 0026971C EC 00 00 32 */ fmuls f0, f0, f0
+/* 8026C7E0 00269720 EC 81 00 2A */ fadds f4, f1, f0
+/* 8026C7E4 00269724 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026C7E8 00269728 FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 8026C7EC 0026972C 40 81 00 58 */ ble lbl_8026C844
+/* 8026C7F0 00269730 FC 00 20 34 */ frsqrte f0, f4
+/* 8026C7F4 00269734 C8 62 B7 20 */ lfd f3, lbl_80455120-_SDA2_BASE_(r2)
+/* 8026C7F8 00269738 FC 23 00 32 */ fmul f1, f3, f0
+/* 8026C7FC 0026973C C8 42 B7 28 */ lfd f2, lbl_80455128-_SDA2_BASE_(r2)
+/* 8026C800 00269740 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026C804 00269744 FC 04 00 32 */ fmul f0, f4, f0
+/* 8026C808 00269748 FC 02 00 28 */ fsub f0, f2, f0
+/* 8026C80C 0026974C FC 01 00 32 */ fmul f0, f1, f0
+/* 8026C810 00269750 FC 23 00 32 */ fmul f1, f3, f0
+/* 8026C814 00269754 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026C818 00269758 FC 04 00 32 */ fmul f0, f4, f0
+/* 8026C81C 0026975C FC 02 00 28 */ fsub f0, f2, f0
+/* 8026C820 00269760 FC 01 00 32 */ fmul f0, f1, f0
+/* 8026C824 00269764 FC 23 00 32 */ fmul f1, f3, f0
+/* 8026C828 00269768 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026C82C 0026976C FC 04 00 32 */ fmul f0, f4, f0
+/* 8026C830 00269770 FC 02 00 28 */ fsub f0, f2, f0
+/* 8026C834 00269774 FC 01 00 32 */ fmul f0, f1, f0
+/* 8026C838 00269778 FC 84 00 32 */ fmul f4, f4, f0
+/* 8026C83C 0026977C FC 80 20 18 */ frsp f4, f4
+/* 8026C840 00269780 48 00 00 88 */ b lbl_8026C8C8
+lbl_8026C844:
+/* 8026C844 00269784 C8 02 B7 30 */ lfd f0, lbl_80455130-_SDA2_BASE_(r2)
+/* 8026C848 00269788 FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 8026C84C 0026978C 40 80 00 10 */ bge lbl_8026C85C
+/* 8026C850 00269790 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026C854 00269794 C0 83 0A E0 */ lfs f4, lbl_80450AE0@l(r3)
+/* 8026C858 00269798 48 00 00 70 */ b lbl_8026C8C8
+lbl_8026C85C:
+/* 8026C85C 0026979C D0 81 00 08 */ stfs f4, 8(r1)
+/* 8026C860 002697A0 80 81 00 08 */ lwz r4, 8(r1)
+/* 8026C864 002697A4 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
+/* 8026C868 002697A8 3C 00 7F 80 */ lis r0, 0x7f80
+/* 8026C86C 002697AC 7C 03 00 00 */ cmpw r3, r0
+/* 8026C870 002697B0 41 82 00 14 */ beq lbl_8026C884
+/* 8026C874 002697B4 40 80 00 40 */ bge lbl_8026C8B4
+/* 8026C878 002697B8 2C 03 00 00 */ cmpwi r3, 0
+/* 8026C87C 002697BC 41 82 00 20 */ beq lbl_8026C89C
+/* 8026C880 002697C0 48 00 00 34 */ b lbl_8026C8B4
+lbl_8026C884:
+/* 8026C884 002697C4 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026C888 002697C8 41 82 00 0C */ beq lbl_8026C894
+/* 8026C88C 002697CC 38 00 00 01 */ li r0, 1
+/* 8026C890 002697D0 48 00 00 28 */ b lbl_8026C8B8
+lbl_8026C894:
+/* 8026C894 002697D4 38 00 00 02 */ li r0, 2
+/* 8026C898 002697D8 48 00 00 20 */ b lbl_8026C8B8
+lbl_8026C89C:
+/* 8026C89C 002697DC 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026C8A0 002697E0 41 82 00 0C */ beq lbl_8026C8AC
+/* 8026C8A4 002697E4 38 00 00 05 */ li r0, 5
+/* 8026C8A8 002697E8 48 00 00 10 */ b lbl_8026C8B8
+lbl_8026C8AC:
+/* 8026C8AC 002697EC 38 00 00 03 */ li r0, 3
+/* 8026C8B0 002697F0 48 00 00 08 */ b lbl_8026C8B8
+lbl_8026C8B4:
+/* 8026C8B4 002697F4 38 00 00 04 */ li r0, 4
+lbl_8026C8B8:
+/* 8026C8B8 002697F8 2C 00 00 01 */ cmpwi r0, 1
+/* 8026C8BC 002697FC 40 82 00 0C */ bne lbl_8026C8C8
+/* 8026C8C0 00269800 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026C8C4 00269804 C0 83 0A E0 */ lfs f4, lbl_80450AE0@l(r3)
+lbl_8026C8C8:
+/* 8026C8C8 00269808 FC 00 22 10 */ fabs f0, f4
+/* 8026C8CC 0026980C FC 20 00 18 */ frsp f1, f0
+/* 8026C8D0 00269810 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026C8D4 00269814 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026C8D8 00269818 40 80 00 20 */ bge lbl_8026C8F8
+/* 8026C8DC 0026981C C0 01 00 30 */ lfs f0, 0x30(r1)
+/* 8026C8E0 00269820 D0 1F 00 00 */ stfs f0, 0(r31)
+/* 8026C8E4 00269824 C0 01 00 34 */ lfs f0, 0x34(r1)
+/* 8026C8E8 00269828 D0 1F 00 04 */ stfs f0, 4(r31)
+/* 8026C8EC 0026982C C0 01 00 38 */ lfs f0, 0x38(r1)
+/* 8026C8F0 00269830 D0 1F 00 08 */ stfs f0, 8(r31)
+/* 8026C8F4 00269834 48 00 00 1C */ b lbl_8026C910
+lbl_8026C8F8:
+/* 8026C8F8 00269838 38 61 00 3C */ addi r3, r1, 0x3c
+/* 8026C8FC 0026983C 38 81 00 24 */ addi r4, r1, 0x24
+/* 8026C900 00269840 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 8026C904 00269844 EC 20 20 24 */ fdivs f1, f0, f4
+/* 8026C908 00269848 7F E5 FB 78 */ mr r5, r31
+/* 8026C90C 0026984C 4B FF BC 55 */ bl cM3d_InDivPos1__FPC3VecPC3VecfP3Vec
+lbl_8026C910:
+/* 8026C910 00269850 38 60 00 01 */ li r3, 1
+/* 8026C914 00269854 48 00 00 08 */ b lbl_8026C91C
+lbl_8026C918:
+/* 8026C918 00269858 38 60 00 00 */ li r3, 0
+lbl_8026C91C:
+/* 8026C91C 0026985C E3 E1 00 88 */ psq_l f31, 136(r1), 0, 0
+/* 8026C920 00269860 CB E1 00 80 */ lfd f31, 0x80(r1)
+/* 8026C924 00269864 E3 C1 00 78 */ psq_l f30, 120(r1), 0, 0
+/* 8026C928 00269868 CB C1 00 70 */ lfd f30, 0x70(r1)
+/* 8026C92C 0026986C 39 61 00 70 */ addi r11, r1, 0x70
+/* 8026C930 00269870 48 0F 58 F9 */ bl _restgpr_29
+/* 8026C934 00269874 80 01 00 94 */ lwz r0, 0x94(r1)
+/* 8026C938 00269878 7C 08 03 A6 */ mtlr r0
+/* 8026C93C 0026987C 38 21 00 90 */ addi r1, r1, 0x90
+/* 8026C940 00269880 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026C944.s b/include/SComponent/c_m3d/asm/func_8026C944.s
new file mode 100644
index 0000000000..449957054f
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026C944.s
@@ -0,0 +1,492 @@
+/* 8026C944 00269884 94 21 FF 20 */ stwu r1, -0xe0(r1)
+/* 8026C948 00269888 7C 08 02 A6 */ mflr r0
+/* 8026C94C 0026988C 90 01 00 E4 */ stw r0, 0xe4(r1)
+/* 8026C950 00269890 DB E1 00 D0 */ stfd f31, 0xd0(r1)
+/* 8026C954 00269894 F3 E1 00 D8 */ psq_st f31, 216(r1), 0, 0
+/* 8026C958 00269898 DB C1 00 C0 */ stfd f30, 0xc0(r1)
+/* 8026C95C 0026989C F3 C1 00 C8 */ psq_st f30, 200(r1), 0, 0
+/* 8026C960 002698A0 39 61 00 C0 */ addi r11, r1, 0xc0
+/* 8026C964 002698A4 48 0F 58 6D */ bl _savegpr_26
+/* 8026C968 002698A8 7C 7E 1B 78 */ mr r30, r3
+/* 8026C96C 002698AC 7C 9B 23 78 */ mr r27, r4
+/* 8026C970 002698B0 7C BC 2B 78 */ mr r28, r5
+/* 8026C974 002698B4 7C DD 33 78 */ mr r29, r6
+/* 8026C978 002698B8 C3 E2 B7 18 */ lfs f31, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026C97C 002698BC FF C0 F8 90 */ fmr f30, f31
+/* 8026C980 002698C0 3B E0 00 00 */ li r31, 0
+/* 8026C984 002698C4 48 00 07 2D */ bl cM3d_Cross_CylPnt__FPC8cM3dGCylPC3Vec
+/* 8026C988 002698C8 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026C98C 002698CC 41 82 00 50 */ beq lbl_8026C9DC
+/* 8026C990 002698D0 7F C3 F3 78 */ mr r3, r30
+/* 8026C994 002698D4 38 9B 00 0C */ addi r4, r27, 0xc
+/* 8026C998 002698D8 48 00 07 19 */ bl cM3d_Cross_CylPnt__FPC8cM3dGCylPC3Vec
+/* 8026C99C 002698DC 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026C9A0 002698E0 41 82 00 3C */ beq lbl_8026C9DC
+/* 8026C9A4 002698E4 C0 1B 00 00 */ lfs f0, 0(r27)
+/* 8026C9A8 002698E8 D0 1C 00 00 */ stfs f0, 0(r28)
+/* 8026C9AC 002698EC C0 1B 00 04 */ lfs f0, 4(r27)
+/* 8026C9B0 002698F0 D0 1C 00 04 */ stfs f0, 4(r28)
+/* 8026C9B4 002698F4 C0 1B 00 08 */ lfs f0, 8(r27)
+/* 8026C9B8 002698F8 D0 1C 00 08 */ stfs f0, 8(r28)
+/* 8026C9BC 002698FC C0 1B 00 0C */ lfs f0, 0xc(r27)
+/* 8026C9C0 00269900 D0 1D 00 00 */ stfs f0, 0(r29)
+/* 8026C9C4 00269904 C0 1B 00 10 */ lfs f0, 0x10(r27)
+/* 8026C9C8 00269908 D0 1D 00 04 */ stfs f0, 4(r29)
+/* 8026C9CC 0026990C C0 1B 00 14 */ lfs f0, 0x14(r27)
+/* 8026C9D0 00269910 D0 1D 00 08 */ stfs f0, 8(r29)
+/* 8026C9D4 00269914 38 60 00 02 */ li r3, 2
+/* 8026C9D8 00269918 48 00 06 44 */ b lbl_8026D01C
+lbl_8026C9DC:
+/* 8026C9DC 0026991C 7F 63 DB 78 */ mr r3, r27
+/* 8026C9E0 00269920 7F C4 F3 78 */ mr r4, r30
+/* 8026C9E4 00269924 38 A1 00 6C */ addi r5, r1, 0x6c
+/* 8026C9E8 00269928 48 0D A6 CD */ bl PSVECSubtract
+/* 8026C9EC 0026992C 38 7B 00 0C */ addi r3, r27, 0xc
+/* 8026C9F0 00269930 7F C4 F3 78 */ mr r4, r30
+/* 8026C9F4 00269934 38 A1 00 60 */ addi r5, r1, 0x60
+/* 8026C9F8 00269938 48 0D A6 BD */ bl PSVECSubtract
+/* 8026C9FC 0026993C 38 61 00 60 */ addi r3, r1, 0x60
+/* 8026CA00 00269940 38 81 00 6C */ addi r4, r1, 0x6c
+/* 8026CA04 00269944 38 A1 00 54 */ addi r5, r1, 0x54
+/* 8026CA08 00269948 48 0D A6 AD */ bl PSVECSubtract
+/* 8026CA0C 0026994C C0 1E 00 0C */ lfs f0, 0xc(r30)
+/* 8026CA10 00269950 EC 20 00 32 */ fmuls f1, f0, f0
+/* 8026CA14 00269954 C0 81 00 58 */ lfs f4, 0x58(r1)
+/* 8026CA18 00269958 FC 00 22 10 */ fabs f0, f4
+/* 8026CA1C 0026995C FC 40 00 18 */ frsp f2, f0
+/* 8026CA20 00269960 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026CA24 00269964 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 8026CA28 00269968 41 80 01 10 */ blt lbl_8026CB38
+/* 8026CA2C 0026996C C0 A1 00 70 */ lfs f5, 0x70(r1)
+/* 8026CA30 00269970 FC 00 28 50 */ fneg f0, f5
+/* 8026CA34 00269974 EC 60 20 24 */ fdivs f3, f0, f4
+/* 8026CA38 00269978 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026CA3C 0026997C FC 03 00 40 */ fcmpo cr0, f3, f0
+/* 8026CA40 00269980 4C 41 13 82 */ cror 2, 1, 2
+/* 8026CA44 00269984 40 82 00 6C */ bne lbl_8026CAB0
+/* 8026CA48 00269988 C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 8026CA4C 0026998C FC 03 00 40 */ fcmpo cr0, f3, f0
+/* 8026CA50 00269990 4C 40 13 82 */ cror 2, 0, 2
+/* 8026CA54 00269994 40 82 00 5C */ bne lbl_8026CAB0
+/* 8026CA58 00269998 C0 41 00 6C */ lfs f2, 0x6c(r1)
+/* 8026CA5C 0026999C C0 01 00 54 */ lfs f0, 0x54(r1)
+/* 8026CA60 002699A0 EC 00 00 F2 */ fmuls f0, f0, f3
+/* 8026CA64 002699A4 EC C2 00 2A */ fadds f6, f2, f0
+/* 8026CA68 002699A8 C0 41 00 74 */ lfs f2, 0x74(r1)
+/* 8026CA6C 002699AC C0 01 00 5C */ lfs f0, 0x5c(r1)
+/* 8026CA70 002699B0 EC 00 00 F2 */ fmuls f0, f0, f3
+/* 8026CA74 002699B4 EC 62 00 2A */ fadds f3, f2, f0
+/* 8026CA78 002699B8 EC 46 01 B2 */ fmuls f2, f6, f6
+/* 8026CA7C 002699BC EC 03 00 F2 */ fmuls f0, f3, f3
+/* 8026CA80 002699C0 EC 02 00 2A */ fadds f0, f2, f0
+/* 8026CA84 002699C4 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026CA88 002699C8 40 80 00 28 */ bge lbl_8026CAB0
+/* 8026CA8C 002699CC 63 FF 00 01 */ ori r31, r31, 1
+/* 8026CA90 002699D0 C0 1E 00 00 */ lfs f0, 0(r30)
+/* 8026CA94 002699D4 EC 06 00 2A */ fadds f0, f6, f0
+/* 8026CA98 002699D8 D0 01 00 78 */ stfs f0, 0x78(r1)
+/* 8026CA9C 002699DC C0 1E 00 04 */ lfs f0, 4(r30)
+/* 8026CAA0 002699E0 D0 01 00 7C */ stfs f0, 0x7c(r1)
+/* 8026CAA4 002699E4 C0 1E 00 08 */ lfs f0, 8(r30)
+/* 8026CAA8 002699E8 EC 03 00 2A */ fadds f0, f3, f0
+/* 8026CAAC 002699EC D0 01 00 80 */ stfs f0, 0x80(r1)
+lbl_8026CAB0:
+/* 8026CAB0 002699F0 C0 7E 00 10 */ lfs f3, 0x10(r30)
+/* 8026CAB4 002699F4 EC 03 28 28 */ fsubs f0, f3, f5
+/* 8026CAB8 002699F8 EF E0 20 24 */ fdivs f31, f0, f4
+/* 8026CABC 002699FC C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026CAC0 00269A00 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026CAC4 00269A04 4C 41 13 82 */ cror 2, 1, 2
+/* 8026CAC8 00269A08 40 82 00 70 */ bne lbl_8026CB38
+/* 8026CACC 00269A0C C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 8026CAD0 00269A10 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026CAD4 00269A14 4C 40 13 82 */ cror 2, 0, 2
+/* 8026CAD8 00269A18 40 82 00 60 */ bne lbl_8026CB38
+/* 8026CADC 00269A1C C0 41 00 6C */ lfs f2, 0x6c(r1)
+/* 8026CAE0 00269A20 C0 01 00 54 */ lfs f0, 0x54(r1)
+/* 8026CAE4 00269A24 EC 00 07 F2 */ fmuls f0, f0, f31
+/* 8026CAE8 00269A28 EC 82 00 2A */ fadds f4, f2, f0
+/* 8026CAEC 00269A2C C0 41 00 74 */ lfs f2, 0x74(r1)
+/* 8026CAF0 00269A30 C0 01 00 5C */ lfs f0, 0x5c(r1)
+/* 8026CAF4 00269A34 EC 00 07 F2 */ fmuls f0, f0, f31
+/* 8026CAF8 00269A38 EC A2 00 2A */ fadds f5, f2, f0
+/* 8026CAFC 00269A3C EC 44 01 32 */ fmuls f2, f4, f4
+/* 8026CB00 00269A40 EC 05 01 72 */ fmuls f0, f5, f5
+/* 8026CB04 00269A44 EC 02 00 2A */ fadds f0, f2, f0
+/* 8026CB08 00269A48 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026CB0C 00269A4C 40 80 00 2C */ bge lbl_8026CB38
+/* 8026CB10 00269A50 63 FF 00 02 */ ori r31, r31, 2
+/* 8026CB14 00269A54 C0 1E 00 00 */ lfs f0, 0(r30)
+/* 8026CB18 00269A58 EC 04 00 2A */ fadds f0, f4, f0
+/* 8026CB1C 00269A5C D0 01 00 84 */ stfs f0, 0x84(r1)
+/* 8026CB20 00269A60 C0 1E 00 04 */ lfs f0, 4(r30)
+/* 8026CB24 00269A64 EC 00 18 2A */ fadds f0, f0, f3
+/* 8026CB28 00269A68 D0 01 00 88 */ stfs f0, 0x88(r1)
+/* 8026CB2C 00269A6C C0 1E 00 08 */ lfs f0, 8(r30)
+/* 8026CB30 00269A70 EC 05 00 2A */ fadds f0, f5, f0
+/* 8026CB34 00269A74 D0 01 00 8C */ stfs f0, 0x8c(r1)
+lbl_8026CB38:
+/* 8026CB38 00269A78 C0 A1 00 54 */ lfs f5, 0x54(r1)
+/* 8026CB3C 00269A7C EC 45 01 72 */ fmuls f2, f5, f5
+/* 8026CB40 00269A80 C0 61 00 5C */ lfs f3, 0x5c(r1)
+/* 8026CB44 00269A84 EC 03 00 F2 */ fmuls f0, f3, f3
+/* 8026CB48 00269A88 EC E2 00 2A */ fadds f7, f2, f0
+/* 8026CB4C 00269A8C C0 82 B7 BC */ lfs f4, lbl_804551BC-_SDA2_BASE_(r2)
+/* 8026CB50 00269A90 C0 C1 00 6C */ lfs f6, 0x6c(r1)
+/* 8026CB54 00269A94 EC 45 01 B2 */ fmuls f2, f5, f6
+/* 8026CB58 00269A98 C0 A1 00 74 */ lfs f5, 0x74(r1)
+/* 8026CB5C 00269A9C EC 03 01 72 */ fmuls f0, f3, f5
+/* 8026CB60 00269AA0 EC 02 00 2A */ fadds f0, f2, f0
+/* 8026CB64 00269AA4 EC 04 00 32 */ fmuls f0, f4, f0
+/* 8026CB68 00269AA8 EC 66 01 B2 */ fmuls f3, f6, f6
+/* 8026CB6C 00269AAC EC 45 01 72 */ fmuls f2, f5, f5
+/* 8026CB70 00269AB0 EC 43 10 2A */ fadds f2, f3, f2
+/* 8026CB74 00269AB4 EC A2 08 28 */ fsubs f5, f2, f1
+/* 8026CB78 00269AB8 EC 24 01 F2 */ fmuls f1, f4, f7
+/* 8026CB7C 00269ABC FC 40 0A 10 */ fabs f2, f1
+/* 8026CB80 00269AC0 FC 60 10 18 */ frsp f3, f2
+/* 8026CB84 00269AC4 C0 4D 8C 00 */ lfs f2, lbl_80451180-_SDA_BASE_(r13)
+/* 8026CB88 00269AC8 FC 03 10 40 */ fcmpo cr0, f3, f2
+/* 8026CB8C 00269ACC 41 80 01 5C */ blt lbl_8026CCE8
+/* 8026CB90 00269AD0 EC 60 00 32 */ fmuls f3, f0, f0
+/* 8026CB94 00269AD4 C0 42 B7 C0 */ lfs f2, lbl_804551C0-_SDA2_BASE_(r2)
+/* 8026CB98 00269AD8 EC 42 01 F2 */ fmuls f2, f2, f7
+/* 8026CB9C 00269ADC EC 42 01 72 */ fmuls f2, f2, f5
+/* 8026CBA0 00269AE0 EC C3 10 28 */ fsubs f6, f3, f2
+/* 8026CBA4 00269AE4 C0 42 B7 18 */ lfs f2, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026CBA8 00269AE8 FC 06 10 40 */ fcmpo cr0, f6, f2
+/* 8026CBAC 00269AEC 40 80 00 0C */ bge lbl_8026CBB8
+/* 8026CBB0 00269AF0 38 60 00 00 */ li r3, 0
+/* 8026CBB4 00269AF4 48 00 04 68 */ b lbl_8026D01C
+lbl_8026CBB8:
+/* 8026CBB8 00269AF8 40 81 00 10 */ ble lbl_8026CBC8
+/* 8026CBBC 00269AFC 38 C0 00 01 */ li r6, 1
+/* 8026CBC0 00269B00 38 A0 00 01 */ li r5, 1
+/* 8026CBC4 00269B04 48 00 00 0C */ b lbl_8026CBD0
+lbl_8026CBC8:
+/* 8026CBC8 00269B08 38 A0 00 01 */ li r5, 1
+/* 8026CBCC 00269B0C 38 C0 00 00 */ li r6, 0
+lbl_8026CBD0:
+/* 8026CBD0 00269B10 C0 42 B7 18 */ lfs f2, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026CBD4 00269B14 FC 06 10 40 */ fcmpo cr0, f6, f2
+/* 8026CBD8 00269B18 40 81 00 58 */ ble lbl_8026CC30
+/* 8026CBDC 00269B1C FC 40 30 34 */ frsqrte f2, f6
+/* 8026CBE0 00269B20 C8 A2 B7 20 */ lfd f5, lbl_80455120-_SDA2_BASE_(r2)
+/* 8026CBE4 00269B24 FC 65 00 B2 */ fmul f3, f5, f2
+/* 8026CBE8 00269B28 C8 82 B7 28 */ lfd f4, lbl_80455128-_SDA2_BASE_(r2)
+/* 8026CBEC 00269B2C FC 42 00 B2 */ fmul f2, f2, f2
+/* 8026CBF0 00269B30 FC 46 00 B2 */ fmul f2, f6, f2
+/* 8026CBF4 00269B34 FC 44 10 28 */ fsub f2, f4, f2
+/* 8026CBF8 00269B38 FC 43 00 B2 */ fmul f2, f3, f2
+/* 8026CBFC 00269B3C FC 65 00 B2 */ fmul f3, f5, f2
+/* 8026CC00 00269B40 FC 42 00 B2 */ fmul f2, f2, f2
+/* 8026CC04 00269B44 FC 46 00 B2 */ fmul f2, f6, f2
+/* 8026CC08 00269B48 FC 44 10 28 */ fsub f2, f4, f2
+/* 8026CC0C 00269B4C FC 43 00 B2 */ fmul f2, f3, f2
+/* 8026CC10 00269B50 FC 65 00 B2 */ fmul f3, f5, f2
+/* 8026CC14 00269B54 FC 42 00 B2 */ fmul f2, f2, f2
+/* 8026CC18 00269B58 FC 46 00 B2 */ fmul f2, f6, f2
+/* 8026CC1C 00269B5C FC 44 10 28 */ fsub f2, f4, f2
+/* 8026CC20 00269B60 FC 43 00 B2 */ fmul f2, f3, f2
+/* 8026CC24 00269B64 FC 66 00 B2 */ fmul f3, f6, f2
+/* 8026CC28 00269B68 FC 60 18 18 */ frsp f3, f3
+/* 8026CC2C 00269B6C 48 00 00 90 */ b lbl_8026CCBC
+lbl_8026CC30:
+/* 8026CC30 00269B70 C8 42 B7 30 */ lfd f2, lbl_80455130-_SDA2_BASE_(r2)
+/* 8026CC34 00269B74 FC 06 10 40 */ fcmpo cr0, f6, f2
+/* 8026CC38 00269B78 40 80 00 10 */ bge lbl_8026CC48
+/* 8026CC3C 00269B7C 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026CC40 00269B80 C0 63 0A E0 */ lfs f3, lbl_80450AE0@l(r3)
+/* 8026CC44 00269B84 48 00 00 78 */ b lbl_8026CCBC
+lbl_8026CC48:
+/* 8026CC48 00269B88 D0 C1 00 08 */ stfs f6, 8(r1)
+/* 8026CC4C 00269B8C 80 81 00 08 */ lwz r4, 8(r1)
+/* 8026CC50 00269B90 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
+/* 8026CC54 00269B94 3C 00 7F 80 */ lis r0, 0x7f80
+/* 8026CC58 00269B98 7C 03 00 00 */ cmpw r3, r0
+/* 8026CC5C 00269B9C 41 82 00 14 */ beq lbl_8026CC70
+/* 8026CC60 00269BA0 40 80 00 40 */ bge lbl_8026CCA0
+/* 8026CC64 00269BA4 2C 03 00 00 */ cmpwi r3, 0
+/* 8026CC68 00269BA8 41 82 00 20 */ beq lbl_8026CC88
+/* 8026CC6C 00269BAC 48 00 00 34 */ b lbl_8026CCA0
+lbl_8026CC70:
+/* 8026CC70 00269BB0 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026CC74 00269BB4 41 82 00 0C */ beq lbl_8026CC80
+/* 8026CC78 00269BB8 38 00 00 01 */ li r0, 1
+/* 8026CC7C 00269BBC 48 00 00 28 */ b lbl_8026CCA4
+lbl_8026CC80:
+/* 8026CC80 00269BC0 38 00 00 02 */ li r0, 2
+/* 8026CC84 00269BC4 48 00 00 20 */ b lbl_8026CCA4
+lbl_8026CC88:
+/* 8026CC88 00269BC8 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026CC8C 00269BCC 41 82 00 0C */ beq lbl_8026CC98
+/* 8026CC90 00269BD0 38 00 00 05 */ li r0, 5
+/* 8026CC94 00269BD4 48 00 00 10 */ b lbl_8026CCA4
+lbl_8026CC98:
+/* 8026CC98 00269BD8 38 00 00 03 */ li r0, 3
+/* 8026CC9C 00269BDC 48 00 00 08 */ b lbl_8026CCA4
+lbl_8026CCA0:
+/* 8026CCA0 00269BE0 38 00 00 04 */ li r0, 4
+lbl_8026CCA4:
+/* 8026CCA4 00269BE4 2C 00 00 01 */ cmpwi r0, 1
+/* 8026CCA8 00269BE8 40 82 00 10 */ bne lbl_8026CCB8
+/* 8026CCAC 00269BEC 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026CCB0 00269BF0 C0 63 0A E0 */ lfs f3, lbl_80450AE0@l(r3)
+/* 8026CCB4 00269BF4 48 00 00 08 */ b lbl_8026CCBC
+lbl_8026CCB8:
+/* 8026CCB8 00269BF8 FC 60 30 90 */ fmr f3, f6
+lbl_8026CCBC:
+/* 8026CCBC 00269BFC 2C 05 00 00 */ cmpwi r5, 0
+/* 8026CCC0 00269C00 41 82 00 10 */ beq lbl_8026CCD0
+/* 8026CCC4 00269C04 FC 40 00 50 */ fneg f2, f0
+/* 8026CCC8 00269C08 EC 42 18 2A */ fadds f2, f2, f3
+/* 8026CCCC 00269C0C EF E2 08 24 */ fdivs f31, f2, f1
+lbl_8026CCD0:
+/* 8026CCD0 00269C10 2C 06 00 00 */ cmpwi r6, 0
+/* 8026CCD4 00269C14 41 82 00 40 */ beq lbl_8026CD14
+/* 8026CCD8 00269C18 FC 00 00 50 */ fneg f0, f0
+/* 8026CCDC 00269C1C EC 00 18 28 */ fsubs f0, f0, f3
+/* 8026CCE0 00269C20 EF C0 08 24 */ fdivs f30, f0, f1
+/* 8026CCE4 00269C24 48 00 00 30 */ b lbl_8026CD14
+lbl_8026CCE8:
+/* 8026CCE8 00269C28 FC 20 02 10 */ fabs f1, f0
+/* 8026CCEC 00269C2C FC 20 08 18 */ frsp f1, f1
+/* 8026CCF0 00269C30 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 8026CCF4 00269C34 41 80 00 18 */ blt lbl_8026CD0C
+/* 8026CCF8 00269C38 38 A0 00 01 */ li r5, 1
+/* 8026CCFC 00269C3C 38 C0 00 00 */ li r6, 0
+/* 8026CD00 00269C40 FC 20 28 50 */ fneg f1, f5
+/* 8026CD04 00269C44 EF E1 00 24 */ fdivs f31, f1, f0
+/* 8026CD08 00269C48 48 00 00 0C */ b lbl_8026CD14
+lbl_8026CD0C:
+/* 8026CD0C 00269C4C 38 60 00 00 */ li r3, 0
+/* 8026CD10 00269C50 48 00 03 0C */ b lbl_8026D01C
+lbl_8026CD14:
+/* 8026CD14 00269C54 2C 05 00 00 */ cmpwi r5, 0
+/* 8026CD18 00269C58 41 82 00 2C */ beq lbl_8026CD44
+/* 8026CD1C 00269C5C 2C 06 00 00 */ cmpwi r6, 0
+/* 8026CD20 00269C60 40 82 00 24 */ bne lbl_8026CD44
+/* 8026CD24 00269C64 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026CD28 00269C68 FC 00 F8 40 */ fcmpo cr0, f0, f31
+/* 8026CD2C 00269C6C 41 81 00 10 */ bgt lbl_8026CD3C
+/* 8026CD30 00269C70 C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 8026CD34 00269C74 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026CD38 00269C78 40 81 00 84 */ ble lbl_8026CDBC
+lbl_8026CD3C:
+/* 8026CD3C 00269C7C 38 60 00 00 */ li r3, 0
+/* 8026CD40 00269C80 48 00 02 DC */ b lbl_8026D01C
+lbl_8026CD44:
+/* 8026CD44 00269C84 38 00 00 00 */ li r0, 0
+/* 8026CD48 00269C88 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026CD4C 00269C8C FC 00 F8 40 */ fcmpo cr0, f0, f31
+/* 8026CD50 00269C90 41 81 00 10 */ bgt lbl_8026CD60
+/* 8026CD54 00269C94 C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 8026CD58 00269C98 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026CD5C 00269C9C 40 81 00 08 */ ble lbl_8026CD64
+lbl_8026CD60:
+/* 8026CD60 00269CA0 38 00 00 01 */ li r0, 1
+lbl_8026CD64:
+/* 8026CD64 00269CA4 54 03 06 3E */ clrlwi r3, r0, 0x18
+/* 8026CD68 00269CA8 38 00 00 00 */ li r0, 0
+/* 8026CD6C 00269CAC C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026CD70 00269CB0 FC 00 F0 40 */ fcmpo cr0, f0, f30
+/* 8026CD74 00269CB4 41 81 00 10 */ bgt lbl_8026CD84
+/* 8026CD78 00269CB8 C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 8026CD7C 00269CBC FC 1E 00 40 */ fcmpo cr0, f30, f0
+/* 8026CD80 00269CC0 40 81 00 08 */ ble lbl_8026CD88
+lbl_8026CD84:
+/* 8026CD84 00269CC4 38 00 00 01 */ li r0, 1
+lbl_8026CD88:
+/* 8026CD88 00269CC8 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 8026CD8C 00269CCC 2C 03 00 00 */ cmpwi r3, 0
+/* 8026CD90 00269CD0 41 82 00 14 */ beq lbl_8026CDA4
+/* 8026CD94 00269CD4 2C 00 00 00 */ cmpwi r0, 0
+/* 8026CD98 00269CD8 41 82 00 0C */ beq lbl_8026CDA4
+/* 8026CD9C 00269CDC 38 60 00 00 */ li r3, 0
+/* 8026CDA0 00269CE0 48 00 02 7C */ b lbl_8026D01C
+lbl_8026CDA4:
+/* 8026CDA4 00269CE4 2C 03 00 00 */ cmpwi r3, 0
+/* 8026CDA8 00269CE8 41 82 00 08 */ beq lbl_8026CDB0
+/* 8026CDAC 00269CEC 38 A0 00 00 */ li r5, 0
+lbl_8026CDB0:
+/* 8026CDB0 00269CF0 2C 00 00 00 */ cmpwi r0, 0
+/* 8026CDB4 00269CF4 41 82 00 08 */ beq lbl_8026CDBC
+/* 8026CDB8 00269CF8 38 C0 00 00 */ li r6, 0
+lbl_8026CDBC:
+/* 8026CDBC 00269CFC 2C 05 00 00 */ cmpwi r5, 0
+/* 8026CDC0 00269D00 41 82 00 30 */ beq lbl_8026CDF0
+/* 8026CDC4 00269D04 C0 21 00 70 */ lfs f1, 0x70(r1)
+/* 8026CDC8 00269D08 C0 01 00 58 */ lfs f0, 0x58(r1)
+/* 8026CDCC 00269D0C EC 1F 00 32 */ fmuls f0, f31, f0
+/* 8026CDD0 00269D10 EC 21 00 2A */ fadds f1, f1, f0
+/* 8026CDD4 00269D14 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026CDD8 00269D18 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026CDDC 00269D1C 41 80 00 10 */ blt lbl_8026CDEC
+/* 8026CDE0 00269D20 C0 1E 00 10 */ lfs f0, 0x10(r30)
+/* 8026CDE4 00269D24 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026CDE8 00269D28 40 81 00 08 */ ble lbl_8026CDF0
+lbl_8026CDEC:
+/* 8026CDEC 00269D2C 38 A0 00 00 */ li r5, 0
+lbl_8026CDF0:
+/* 8026CDF0 00269D30 2C 06 00 00 */ cmpwi r6, 0
+/* 8026CDF4 00269D34 41 82 00 30 */ beq lbl_8026CE24
+/* 8026CDF8 00269D38 C0 21 00 70 */ lfs f1, 0x70(r1)
+/* 8026CDFC 00269D3C C0 01 00 58 */ lfs f0, 0x58(r1)
+/* 8026CE00 00269D40 EC 1E 00 32 */ fmuls f0, f30, f0
+/* 8026CE04 00269D44 EC 21 00 2A */ fadds f1, f1, f0
+/* 8026CE08 00269D48 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026CE0C 00269D4C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026CE10 00269D50 41 80 00 10 */ blt lbl_8026CE20
+/* 8026CE14 00269D54 C0 1E 00 10 */ lfs f0, 0x10(r30)
+/* 8026CE18 00269D58 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026CE1C 00269D5C 40 81 00 08 */ ble lbl_8026CE24
+lbl_8026CE20:
+/* 8026CE20 00269D60 38 C0 00 00 */ li r6, 0
+lbl_8026CE24:
+/* 8026CE24 00269D64 2C 05 00 00 */ cmpwi r5, 0
+/* 8026CE28 00269D68 40 82 00 14 */ bne lbl_8026CE3C
+/* 8026CE2C 00269D6C 2C 06 00 00 */ cmpwi r6, 0
+/* 8026CE30 00269D70 40 82 00 0C */ bne lbl_8026CE3C
+/* 8026CE34 00269D74 38 60 00 00 */ li r3, 0
+/* 8026CE38 00269D78 48 00 01 E4 */ b lbl_8026D01C
+lbl_8026CE3C:
+/* 8026CE3C 00269D7C 2C 05 00 00 */ cmpwi r5, 0
+/* 8026CE40 00269D80 41 82 00 64 */ beq lbl_8026CEA4
+/* 8026CE44 00269D84 2C 06 00 00 */ cmpwi r6, 0
+/* 8026CE48 00269D88 41 82 00 5C */ beq lbl_8026CEA4
+/* 8026CE4C 00269D8C 38 61 00 6C */ addi r3, r1, 0x6c
+/* 8026CE50 00269D90 7F C4 F3 78 */ mr r4, r30
+/* 8026CE54 00269D94 38 A1 00 48 */ addi r5, r1, 0x48
+/* 8026CE58 00269D98 48 0D A2 39 */ bl PSVECAdd
+/* 8026CE5C 00269D9C 38 61 00 54 */ addi r3, r1, 0x54
+/* 8026CE60 00269DA0 38 81 00 3C */ addi r4, r1, 0x3c
+/* 8026CE64 00269DA4 FC 20 F8 90 */ fmr f1, f31
+/* 8026CE68 00269DA8 48 0D A2 71 */ bl PSVECScale
+/* 8026CE6C 00269DAC 38 61 00 3C */ addi r3, r1, 0x3c
+/* 8026CE70 00269DB0 38 81 00 48 */ addi r4, r1, 0x48
+/* 8026CE74 00269DB4 38 A1 00 90 */ addi r5, r1, 0x90
+/* 8026CE78 00269DB8 48 0D A2 19 */ bl PSVECAdd
+/* 8026CE7C 00269DBC 63 FF 00 0C */ ori r31, r31, 0xc
+/* 8026CE80 00269DC0 38 61 00 54 */ addi r3, r1, 0x54
+/* 8026CE84 00269DC4 38 81 00 3C */ addi r4, r1, 0x3c
+/* 8026CE88 00269DC8 FC 20 F0 90 */ fmr f1, f30
+/* 8026CE8C 00269DCC 48 0D A2 4D */ bl PSVECScale
+/* 8026CE90 00269DD0 38 61 00 3C */ addi r3, r1, 0x3c
+/* 8026CE94 00269DD4 38 81 00 48 */ addi r4, r1, 0x48
+/* 8026CE98 00269DD8 38 A1 00 9C */ addi r5, r1, 0x9c
+/* 8026CE9C 00269DDC 48 0D A1 F5 */ bl PSVECAdd
+/* 8026CEA0 00269DE0 48 00 00 80 */ b lbl_8026CF20
+lbl_8026CEA4:
+/* 8026CEA4 00269DE4 2C 05 00 00 */ cmpwi r5, 0
+/* 8026CEA8 00269DE8 41 82 00 3C */ beq lbl_8026CEE4
+/* 8026CEAC 00269DEC 63 FF 00 04 */ ori r31, r31, 4
+/* 8026CEB0 00269DF0 38 61 00 54 */ addi r3, r1, 0x54
+/* 8026CEB4 00269DF4 38 81 00 30 */ addi r4, r1, 0x30
+/* 8026CEB8 00269DF8 FC 20 F8 90 */ fmr f1, f31
+/* 8026CEBC 00269DFC 48 0D A2 1D */ bl PSVECScale
+/* 8026CEC0 00269E00 38 61 00 30 */ addi r3, r1, 0x30
+/* 8026CEC4 00269E04 38 81 00 6C */ addi r4, r1, 0x6c
+/* 8026CEC8 00269E08 38 A1 00 24 */ addi r5, r1, 0x24
+/* 8026CECC 00269E0C 48 0D A1 C5 */ bl PSVECAdd
+/* 8026CED0 00269E10 38 61 00 24 */ addi r3, r1, 0x24
+/* 8026CED4 00269E14 7F C4 F3 78 */ mr r4, r30
+/* 8026CED8 00269E18 38 A1 00 90 */ addi r5, r1, 0x90
+/* 8026CEDC 00269E1C 48 0D A1 B5 */ bl PSVECAdd
+/* 8026CEE0 00269E20 48 00 00 40 */ b lbl_8026CF20
+lbl_8026CEE4:
+/* 8026CEE4 00269E24 2C 06 00 00 */ cmpwi r6, 0
+/* 8026CEE8 00269E28 41 82 00 38 */ beq lbl_8026CF20
+/* 8026CEEC 00269E2C 63 FF 00 04 */ ori r31, r31, 4
+/* 8026CEF0 00269E30 38 61 00 54 */ addi r3, r1, 0x54
+/* 8026CEF4 00269E34 38 81 00 18 */ addi r4, r1, 0x18
+/* 8026CEF8 00269E38 FC 20 F0 90 */ fmr f1, f30
+/* 8026CEFC 00269E3C 48 0D A1 DD */ bl PSVECScale
+/* 8026CF00 00269E40 38 61 00 18 */ addi r3, r1, 0x18
+/* 8026CF04 00269E44 38 81 00 6C */ addi r4, r1, 0x6c
+/* 8026CF08 00269E48 38 A1 00 0C */ addi r5, r1, 0xc
+/* 8026CF0C 00269E4C 48 0D A1 85 */ bl PSVECAdd
+/* 8026CF10 00269E50 38 61 00 0C */ addi r3, r1, 0xc
+/* 8026CF14 00269E54 7F C4 F3 78 */ mr r4, r30
+/* 8026CF18 00269E58 38 A1 00 90 */ addi r5, r1, 0x90
+/* 8026CF1C 00269E5C 48 0D A1 75 */ bl PSVECAdd
+lbl_8026CF20:
+/* 8026CF20 00269E60 3B 40 00 00 */ li r26, 0
+/* 8026CF24 00269E64 38 C0 00 00 */ li r6, 0
+/* 8026CF28 00269E68 38 60 00 00 */ li r3, 0
+/* 8026CF2C 00269E6C 38 80 00 01 */ li r4, 1
+/* 8026CF30 00269E70 38 00 00 04 */ li r0, 4
+/* 8026CF34 00269E74 7C 09 03 A6 */ mtctr r0
+lbl_8026CF38:
+/* 8026CF38 00269E78 7C 80 30 30 */ slw r0, r4, r6
+/* 8026CF3C 00269E7C 7F E0 00 39 */ and. r0, r31, r0
+/* 8026CF40 00269E80 41 82 00 CC */ beq lbl_8026D00C
+/* 8026CF44 00269E84 2C 1A 00 00 */ cmpwi r26, 0
+/* 8026CF48 00269E88 40 82 00 28 */ bne lbl_8026CF70
+/* 8026CF4C 00269E8C 38 A1 00 78 */ addi r5, r1, 0x78
+/* 8026CF50 00269E90 7C A5 1A 14 */ add r5, r5, r3
+/* 8026CF54 00269E94 C0 05 00 00 */ lfs f0, 0(r5)
+/* 8026CF58 00269E98 D0 1C 00 00 */ stfs f0, 0(r28)
+/* 8026CF5C 00269E9C C0 05 00 04 */ lfs f0, 4(r5)
+/* 8026CF60 00269EA0 D0 1C 00 04 */ stfs f0, 4(r28)
+/* 8026CF64 00269EA4 C0 05 00 08 */ lfs f0, 8(r5)
+/* 8026CF68 00269EA8 D0 1C 00 08 */ stfs f0, 8(r28)
+/* 8026CF6C 00269EAC 48 00 00 9C */ b lbl_8026D008
+lbl_8026CF70:
+/* 8026CF70 00269EB0 2C 1A 00 01 */ cmpwi r26, 1
+/* 8026CF74 00269EB4 40 82 00 94 */ bne lbl_8026D008
+/* 8026CF78 00269EB8 7F 63 DB 78 */ mr r3, r27
+/* 8026CF7C 00269EBC 1F E6 00 0C */ mulli r31, r6, 0xc
+/* 8026CF80 00269EC0 3B C1 00 78 */ addi r30, r1, 0x78
+/* 8026CF84 00269EC4 7F DE FA 14 */ add r30, r30, r31
+/* 8026CF88 00269EC8 7F C4 F3 78 */ mr r4, r30
+/* 8026CF8C 00269ECC 48 0D A4 11 */ bl PSVECSquareDistance
+/* 8026CF90 00269ED0 FF C0 08 90 */ fmr f30, f1
+/* 8026CF94 00269ED4 7F 63 DB 78 */ mr r3, r27
+/* 8026CF98 00269ED8 7F 84 E3 78 */ mr r4, r28
+/* 8026CF9C 00269EDC 48 0D A4 01 */ bl PSVECSquareDistance
+/* 8026CFA0 00269EE0 FC 01 F0 40 */ fcmpo cr0, f1, f30
+/* 8026CFA4 00269EE4 40 80 00 28 */ bge lbl_8026CFCC
+/* 8026CFA8 00269EE8 C0 1E 00 00 */ lfs f0, 0(r30)
+/* 8026CFAC 00269EEC D0 1D 00 00 */ stfs f0, 0(r29)
+/* 8026CFB0 00269EF0 38 61 00 7C */ addi r3, r1, 0x7c
+/* 8026CFB4 00269EF4 7C 03 FC 2E */ lfsx f0, r3, r31
+/* 8026CFB8 00269EF8 D0 1D 00 04 */ stfs f0, 4(r29)
+/* 8026CFBC 00269EFC 38 61 00 80 */ addi r3, r1, 0x80
+/* 8026CFC0 00269F00 7C 03 FC 2E */ lfsx f0, r3, r31
+/* 8026CFC4 00269F04 D0 1D 00 08 */ stfs f0, 8(r29)
+/* 8026CFC8 00269F08 48 00 00 50 */ b lbl_8026D018
+lbl_8026CFCC:
+/* 8026CFCC 00269F0C C0 1C 00 00 */ lfs f0, 0(r28)
+/* 8026CFD0 00269F10 D0 1D 00 00 */ stfs f0, 0(r29)
+/* 8026CFD4 00269F14 C0 1C 00 04 */ lfs f0, 4(r28)
+/* 8026CFD8 00269F18 D0 1D 00 04 */ stfs f0, 4(r29)
+/* 8026CFDC 00269F1C C0 1C 00 08 */ lfs f0, 8(r28)
+/* 8026CFE0 00269F20 D0 1D 00 08 */ stfs f0, 8(r29)
+/* 8026CFE4 00269F24 C0 1E 00 00 */ lfs f0, 0(r30)
+/* 8026CFE8 00269F28 D0 1C 00 00 */ stfs f0, 0(r28)
+/* 8026CFEC 00269F2C 38 61 00 7C */ addi r3, r1, 0x7c
+/* 8026CFF0 00269F30 7C 03 FC 2E */ lfsx f0, r3, r31
+/* 8026CFF4 00269F34 D0 1C 00 04 */ stfs f0, 4(r28)
+/* 8026CFF8 00269F38 38 61 00 80 */ addi r3, r1, 0x80
+/* 8026CFFC 00269F3C 7C 03 FC 2E */ lfsx f0, r3, r31
+/* 8026D000 00269F40 D0 1C 00 08 */ stfs f0, 8(r28)
+/* 8026D004 00269F44 48 00 00 14 */ b lbl_8026D018
+lbl_8026D008:
+/* 8026D008 00269F48 3B 5A 00 01 */ addi r26, r26, 1
+lbl_8026D00C:
+/* 8026D00C 00269F4C 38 C6 00 01 */ addi r6, r6, 1
+/* 8026D010 00269F50 38 63 00 0C */ addi r3, r3, 0xc
+/* 8026D014 00269F54 42 00 FF 24 */ bdnz lbl_8026CF38
+lbl_8026D018:
+/* 8026D018 00269F58 7F 43 D3 78 */ mr r3, r26
+lbl_8026D01C:
+/* 8026D01C 00269F5C E3 E1 00 D8 */ psq_l f31, 216(r1), 0, 0
+/* 8026D020 00269F60 CB E1 00 D0 */ lfd f31, 0xd0(r1)
+/* 8026D024 00269F64 E3 C1 00 C8 */ psq_l f30, 200(r1), 0, 0
+/* 8026D028 00269F68 CB C1 00 C0 */ lfd f30, 0xc0(r1)
+/* 8026D02C 00269F6C 39 61 00 C0 */ addi r11, r1, 0xc0
+/* 8026D030 00269F70 48 0F 51 ED */ bl _restgpr_26
+/* 8026D034 00269F74 80 01 00 E4 */ lwz r0, 0xe4(r1)
+/* 8026D038 00269F78 7C 08 03 A6 */ mtlr r0
+/* 8026D03C 00269F7C 38 21 00 E0 */ addi r1, r1, 0xe0
+/* 8026D040 00269F80 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026D044.s b/include/SComponent/c_m3d/asm/func_8026D044.s
new file mode 100644
index 0000000000..b1e783e5dd
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026D044.s
@@ -0,0 +1,27 @@
+/* 8026D044 00269F84 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 8026D048 00269F88 7C 08 02 A6 */ mflr r0
+/* 8026D04C 00269F8C 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8026D050 00269F90 39 61 00 40 */ addi r11, r1, 0x40
+/* 8026D054 00269F94 48 0F 51 89 */ bl _savegpr_29
+/* 8026D058 00269F98 7C 7D 1B 78 */ mr r29, r3
+/* 8026D05C 00269F9C 7C DE 33 78 */ mr r30, r6
+/* 8026D060 00269FA0 7C FF 3B 78 */ mr r31, r7
+/* 8026D064 00269FA4 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026D068 00269FA8 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026D06C 00269FAC 90 01 00 20 */ stw r0, 0x20(r1)
+/* 8026D070 00269FB0 38 61 00 08 */ addi r3, r1, 8
+/* 8026D074 00269FB4 48 00 22 A9 */ bl SetStartEnd__8cM3dGLinFRC3VecRC3Vec
+/* 8026D078 00269FB8 7F A3 EB 78 */ mr r3, r29
+/* 8026D07C 00269FBC 38 81 00 08 */ addi r4, r1, 8
+/* 8026D080 00269FC0 7F C5 F3 78 */ mr r5, r30
+/* 8026D084 00269FC4 7F E6 FB 78 */ mr r6, r31
+/* 8026D088 00269FC8 4B FF F8 BD */ bl cM3d_Cross_CylLin__FPC8cM3dGCylPC8cM3dGLinP3VecP3Vec
+/* 8026D08C 00269FCC 3C 80 80 3A */ lis r4, lbl_803A78F8@ha
+/* 8026D090 00269FD0 38 04 78 F8 */ addi r0, r4, lbl_803A78F8@l
+/* 8026D094 00269FD4 90 01 00 20 */ stw r0, 0x20(r1)
+/* 8026D098 00269FD8 39 61 00 40 */ addi r11, r1, 0x40
+/* 8026D09C 00269FDC 48 0F 51 8D */ bl _restgpr_29
+/* 8026D0A0 00269FE0 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8026D0A4 00269FE4 7C 08 03 A6 */ mtlr r0
+/* 8026D0A8 00269FE8 38 21 00 40 */ addi r1, r1, 0x40
+/* 8026D0AC 00269FEC 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026D0B0.s b/include/SComponent/c_m3d/asm/func_8026D0B0.s
new file mode 100644
index 0000000000..1d604dd810
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026D0B0.s
@@ -0,0 +1,26 @@
+/* 8026D0B0 00269FF0 C0 23 00 00 */ lfs f1, 0(r3)
+/* 8026D0B4 00269FF4 C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026D0B8 00269FF8 EC 41 00 28 */ fsubs f2, f1, f0
+/* 8026D0BC 00269FFC C0 23 00 08 */ lfs f1, 8(r3)
+/* 8026D0C0 0026A000 C0 04 00 08 */ lfs f0, 8(r4)
+/* 8026D0C4 0026A004 EC 61 00 28 */ fsubs f3, f1, f0
+/* 8026D0C8 0026A008 C0 83 00 04 */ lfs f4, 4(r3)
+/* 8026D0CC 0026A00C C0 03 00 10 */ lfs f0, 0x10(r3)
+/* 8026D0D0 0026A010 EC A4 00 2A */ fadds f5, f4, f0
+/* 8026D0D4 0026A014 EC 22 00 B2 */ fmuls f1, f2, f2
+/* 8026D0D8 0026A018 EC 03 00 F2 */ fmuls f0, f3, f3
+/* 8026D0DC 0026A01C EC 21 00 2A */ fadds f1, f1, f0
+/* 8026D0E0 0026A020 C0 03 00 0C */ lfs f0, 0xc(r3)
+/* 8026D0E4 0026A024 EC 00 00 32 */ fmuls f0, f0, f0
+/* 8026D0E8 0026A028 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026D0EC 0026A02C 40 80 00 20 */ bge lbl_8026D10C
+/* 8026D0F0 0026A030 C0 04 00 04 */ lfs f0, 4(r4)
+/* 8026D0F4 0026A034 FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 8026D0F8 0026A038 40 80 00 14 */ bge lbl_8026D10C
+/* 8026D0FC 0026A03C FC 05 00 40 */ fcmpo cr0, f5, f0
+/* 8026D100 0026A040 40 81 00 0C */ ble lbl_8026D10C
+/* 8026D104 0026A044 38 60 00 01 */ li r3, 1
+/* 8026D108 0026A048 4E 80 00 20 */ blr
+lbl_8026D10C:
+/* 8026D10C 0026A04C 38 60 00 00 */ li r3, 0
+/* 8026D110 0026A050 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026D114.s b/include/SComponent/c_m3d/asm/func_8026D114.s
new file mode 100644
index 0000000000..23f87a2db7
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026D114.s
@@ -0,0 +1,190 @@
+/* 8026D114 0026A054 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 8026D118 0026A058 7C 08 02 A6 */ mflr r0
+/* 8026D11C 0026A05C 90 01 00 54 */ stw r0, 0x54(r1)
+/* 8026D120 0026A060 39 61 00 50 */ addi r11, r1, 0x50
+/* 8026D124 0026A064 48 0F 50 B9 */ bl _savegpr_29
+/* 8026D128 0026A068 7C 7D 1B 78 */ mr r29, r3
+/* 8026D12C 0026A06C 7C 9E 23 78 */ mr r30, r4
+/* 8026D130 0026A070 7C BF 2B 78 */ mr r31, r5
+/* 8026D134 0026A074 38 A1 00 0C */ addi r5, r1, 0xc
+/* 8026D138 0026A078 38 C1 00 08 */ addi r6, r1, 8
+/* 8026D13C 0026A07C 4B FF BB 21 */ bl cM3d_Check_LinLin__FPC8cM3dGLinPC8cM3dGLinPfPf
+/* 8026D140 0026A080 2C 03 00 01 */ cmpwi r3, 1
+/* 8026D144 0026A084 40 82 00 0C */ bne lbl_8026D150
+/* 8026D148 0026A088 38 60 00 00 */ li r3, 0
+/* 8026D14C 0026A08C 48 00 02 70 */ b lbl_8026D3BC
+lbl_8026D150:
+/* 8026D150 0026A090 2C 03 00 02 */ cmpwi r3, 2
+/* 8026D154 0026A094 40 82 00 98 */ bne lbl_8026D1EC
+/* 8026D158 0026A098 C0 21 00 0C */ lfs f1, 0xc(r1)
+/* 8026D15C 0026A09C C0 42 B7 18 */ lfs f2, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026D160 0026A0A0 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 8026D164 0026A0A4 40 81 02 54 */ ble lbl_8026D3B8
+/* 8026D168 0026A0A8 C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 8026D16C 0026A0AC FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026D170 0026A0B0 40 80 02 48 */ bge lbl_8026D3B8
+/* 8026D174 0026A0B4 C0 61 00 08 */ lfs f3, 8(r1)
+/* 8026D178 0026A0B8 FC 03 10 40 */ fcmpo cr0, f3, f2
+/* 8026D17C 0026A0BC 40 81 02 3C */ ble lbl_8026D3B8
+/* 8026D180 0026A0C0 FC 03 00 40 */ fcmpo cr0, f3, f0
+/* 8026D184 0026A0C4 40 80 02 34 */ bge lbl_8026D3B8
+/* 8026D188 0026A0C8 7F A3 EB 78 */ mr r3, r29
+/* 8026D18C 0026A0CC 38 81 00 34 */ addi r4, r1, 0x34
+/* 8026D190 0026A0D0 48 00 21 C1 */ bl CalcPos__8cM3dGLinCFP3Vecf
+/* 8026D194 0026A0D4 7F C3 F3 78 */ mr r3, r30
+/* 8026D198 0026A0D8 38 81 00 28 */ addi r4, r1, 0x28
+/* 8026D19C 0026A0DC C0 21 00 08 */ lfs f1, 8(r1)
+/* 8026D1A0 0026A0E0 48 00 21 B1 */ bl CalcPos__8cM3dGLinCFP3Vecf
+/* 8026D1A4 0026A0E4 38 61 00 34 */ addi r3, r1, 0x34
+/* 8026D1A8 0026A0E8 38 81 00 28 */ addi r4, r1, 0x28
+/* 8026D1AC 0026A0EC 48 0D A2 19 */ bl PSVECDistance
+/* 8026D1B0 0026A0F0 C0 5D 00 1C */ lfs f2, 0x1c(r29)
+/* 8026D1B4 0026A0F4 C0 1E 00 1C */ lfs f0, 0x1c(r30)
+/* 8026D1B8 0026A0F8 EC 02 00 2A */ fadds f0, f2, f0
+/* 8026D1BC 0026A0FC FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026D1C0 0026A100 40 80 01 F8 */ bge lbl_8026D3B8
+/* 8026D1C4 0026A104 38 61 00 34 */ addi r3, r1, 0x34
+/* 8026D1C8 0026A108 38 81 00 28 */ addi r4, r1, 0x28
+/* 8026D1CC 0026A10C 7F E5 FB 78 */ mr r5, r31
+/* 8026D1D0 0026A110 48 0D 9E C1 */ bl PSVECAdd
+/* 8026D1D4 0026A114 7F E3 FB 78 */ mr r3, r31
+/* 8026D1D8 0026A118 7F E4 FB 78 */ mr r4, r31
+/* 8026D1DC 0026A11C C0 22 B7 C4 */ lfs f1, lbl_804551C4-_SDA2_BASE_(r2)
+/* 8026D1E0 0026A120 48 0D 9E F9 */ bl PSVECScale
+/* 8026D1E4 0026A124 38 60 00 01 */ li r3, 1
+/* 8026D1E8 0026A128 48 00 01 D4 */ b lbl_8026D3BC
+lbl_8026D1EC:
+/* 8026D1EC 0026A12C 2C 03 00 03 */ cmpwi r3, 3
+/* 8026D1F0 0026A130 40 82 01 C8 */ bne lbl_8026D3B8
+/* 8026D1F4 0026A134 C0 21 00 0C */ lfs f1, 0xc(r1)
+/* 8026D1F8 0026A138 C0 62 B7 18 */ lfs f3, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026D1FC 0026A13C FC 01 18 40 */ fcmpo cr0, f1, f3
+/* 8026D200 0026A140 40 80 00 7C */ bge lbl_8026D27C
+/* 8026D204 0026A144 C0 1D 00 00 */ lfs f0, 0(r29)
+/* 8026D208 0026A148 D0 01 00 1C */ stfs f0, 0x1c(r1)
+/* 8026D20C 0026A14C C0 1D 00 04 */ lfs f0, 4(r29)
+/* 8026D210 0026A150 D0 01 00 20 */ stfs f0, 0x20(r1)
+/* 8026D214 0026A154 C0 1D 00 08 */ lfs f0, 8(r29)
+/* 8026D218 0026A158 D0 01 00 24 */ stfs f0, 0x24(r1)
+/* 8026D21C 0026A15C C0 21 00 08 */ lfs f1, 8(r1)
+/* 8026D220 0026A160 FC 01 18 40 */ fcmpo cr0, f1, f3
+/* 8026D224 0026A164 40 80 00 20 */ bge lbl_8026D244
+/* 8026D228 0026A168 C0 1E 00 00 */ lfs f0, 0(r30)
+/* 8026D22C 0026A16C D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 8026D230 0026A170 C0 1E 00 04 */ lfs f0, 4(r30)
+/* 8026D234 0026A174 D0 01 00 14 */ stfs f0, 0x14(r1)
+/* 8026D238 0026A178 C0 1E 00 08 */ lfs f0, 8(r30)
+/* 8026D23C 0026A17C D0 01 00 18 */ stfs f0, 0x18(r1)
+/* 8026D240 0026A180 48 00 01 28 */ b lbl_8026D368
+lbl_8026D244:
+/* 8026D244 0026A184 C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 8026D248 0026A188 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026D24C 0026A18C 40 81 00 20 */ ble lbl_8026D26C
+/* 8026D250 0026A190 C0 1E 00 0C */ lfs f0, 0xc(r30)
+/* 8026D254 0026A194 D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 8026D258 0026A198 C0 1E 00 10 */ lfs f0, 0x10(r30)
+/* 8026D25C 0026A19C D0 01 00 14 */ stfs f0, 0x14(r1)
+/* 8026D260 0026A1A0 C0 1E 00 14 */ lfs f0, 0x14(r30)
+/* 8026D264 0026A1A4 D0 01 00 18 */ stfs f0, 0x18(r1)
+/* 8026D268 0026A1A8 48 00 01 00 */ b lbl_8026D368
+lbl_8026D26C:
+/* 8026D26C 0026A1AC 7F C3 F3 78 */ mr r3, r30
+/* 8026D270 0026A1B0 38 81 00 10 */ addi r4, r1, 0x10
+/* 8026D274 0026A1B4 48 00 20 DD */ bl CalcPos__8cM3dGLinCFP3Vecf
+/* 8026D278 0026A1B8 48 00 00 F0 */ b lbl_8026D368
+lbl_8026D27C:
+/* 8026D27C 0026A1BC C0 42 B7 38 */ lfs f2, lbl_80455138-_SDA2_BASE_(r2)
+/* 8026D280 0026A1C0 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 8026D284 0026A1C4 40 81 00 78 */ ble lbl_8026D2FC
+/* 8026D288 0026A1C8 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 8026D28C 0026A1CC D0 01 00 1C */ stfs f0, 0x1c(r1)
+/* 8026D290 0026A1D0 C0 1D 00 10 */ lfs f0, 0x10(r29)
+/* 8026D294 0026A1D4 D0 01 00 20 */ stfs f0, 0x20(r1)
+/* 8026D298 0026A1D8 C0 1D 00 14 */ lfs f0, 0x14(r29)
+/* 8026D29C 0026A1DC D0 01 00 24 */ stfs f0, 0x24(r1)
+/* 8026D2A0 0026A1E0 C0 21 00 08 */ lfs f1, 8(r1)
+/* 8026D2A4 0026A1E4 FC 01 18 40 */ fcmpo cr0, f1, f3
+/* 8026D2A8 0026A1E8 40 80 00 20 */ bge lbl_8026D2C8
+/* 8026D2AC 0026A1EC C0 1E 00 00 */ lfs f0, 0(r30)
+/* 8026D2B0 0026A1F0 D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 8026D2B4 0026A1F4 C0 1E 00 04 */ lfs f0, 4(r30)
+/* 8026D2B8 0026A1F8 D0 01 00 14 */ stfs f0, 0x14(r1)
+/* 8026D2BC 0026A1FC C0 1E 00 08 */ lfs f0, 8(r30)
+/* 8026D2C0 0026A200 D0 01 00 18 */ stfs f0, 0x18(r1)
+/* 8026D2C4 0026A204 48 00 00 A4 */ b lbl_8026D368
+lbl_8026D2C8:
+/* 8026D2C8 0026A208 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 8026D2CC 0026A20C 40 81 00 20 */ ble lbl_8026D2EC
+/* 8026D2D0 0026A210 C0 1E 00 0C */ lfs f0, 0xc(r30)
+/* 8026D2D4 0026A214 D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 8026D2D8 0026A218 C0 1E 00 10 */ lfs f0, 0x10(r30)
+/* 8026D2DC 0026A21C D0 01 00 14 */ stfs f0, 0x14(r1)
+/* 8026D2E0 0026A220 C0 1E 00 14 */ lfs f0, 0x14(r30)
+/* 8026D2E4 0026A224 D0 01 00 18 */ stfs f0, 0x18(r1)
+/* 8026D2E8 0026A228 48 00 00 80 */ b lbl_8026D368
+lbl_8026D2EC:
+/* 8026D2EC 0026A22C 7F C3 F3 78 */ mr r3, r30
+/* 8026D2F0 0026A230 38 81 00 10 */ addi r4, r1, 0x10
+/* 8026D2F4 0026A234 48 00 20 5D */ bl CalcPos__8cM3dGLinCFP3Vecf
+/* 8026D2F8 0026A238 48 00 00 70 */ b lbl_8026D368
+lbl_8026D2FC:
+/* 8026D2FC 0026A23C 7F A3 EB 78 */ mr r3, r29
+/* 8026D300 0026A240 38 81 00 1C */ addi r4, r1, 0x1c
+/* 8026D304 0026A244 48 00 20 4D */ bl CalcPos__8cM3dGLinCFP3Vecf
+/* 8026D308 0026A248 C0 21 00 08 */ lfs f1, 8(r1)
+/* 8026D30C 0026A24C C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026D310 0026A250 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026D314 0026A254 40 80 00 20 */ bge lbl_8026D334
+/* 8026D318 0026A258 C0 1E 00 00 */ lfs f0, 0(r30)
+/* 8026D31C 0026A25C D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 8026D320 0026A260 C0 1E 00 04 */ lfs f0, 4(r30)
+/* 8026D324 0026A264 D0 01 00 14 */ stfs f0, 0x14(r1)
+/* 8026D328 0026A268 C0 1E 00 08 */ lfs f0, 8(r30)
+/* 8026D32C 0026A26C D0 01 00 18 */ stfs f0, 0x18(r1)
+/* 8026D330 0026A270 48 00 00 38 */ b lbl_8026D368
+lbl_8026D334:
+/* 8026D334 0026A274 C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 8026D338 0026A278 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026D33C 0026A27C 40 81 00 20 */ ble lbl_8026D35C
+/* 8026D340 0026A280 C0 1E 00 0C */ lfs f0, 0xc(r30)
+/* 8026D344 0026A284 D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 8026D348 0026A288 C0 1E 00 10 */ lfs f0, 0x10(r30)
+/* 8026D34C 0026A28C D0 01 00 14 */ stfs f0, 0x14(r1)
+/* 8026D350 0026A290 C0 1E 00 14 */ lfs f0, 0x14(r30)
+/* 8026D354 0026A294 D0 01 00 18 */ stfs f0, 0x18(r1)
+/* 8026D358 0026A298 48 00 00 10 */ b lbl_8026D368
+lbl_8026D35C:
+/* 8026D35C 0026A29C 7F C3 F3 78 */ mr r3, r30
+/* 8026D360 0026A2A0 38 81 00 10 */ addi r4, r1, 0x10
+/* 8026D364 0026A2A4 48 00 1F ED */ bl CalcPos__8cM3dGLinCFP3Vecf
+lbl_8026D368:
+/* 8026D368 0026A2A8 38 61 00 1C */ addi r3, r1, 0x1c
+/* 8026D36C 0026A2AC 38 81 00 10 */ addi r4, r1, 0x10
+/* 8026D370 0026A2B0 48 0D A0 55 */ bl PSVECDistance
+/* 8026D374 0026A2B4 C0 5D 00 1C */ lfs f2, 0x1c(r29)
+/* 8026D378 0026A2B8 C0 1E 00 1C */ lfs f0, 0x1c(r30)
+/* 8026D37C 0026A2BC EC 02 00 2A */ fadds f0, f2, f0
+/* 8026D380 0026A2C0 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026D384 0026A2C4 40 80 00 2C */ bge lbl_8026D3B0
+/* 8026D388 0026A2C8 38 61 00 1C */ addi r3, r1, 0x1c
+/* 8026D38C 0026A2CC 38 81 00 10 */ addi r4, r1, 0x10
+/* 8026D390 0026A2D0 7F E5 FB 78 */ mr r5, r31
+/* 8026D394 0026A2D4 48 0D 9C FD */ bl PSVECAdd
+/* 8026D398 0026A2D8 7F E3 FB 78 */ mr r3, r31
+/* 8026D39C 0026A2DC 7F E4 FB 78 */ mr r4, r31
+/* 8026D3A0 0026A2E0 C0 22 B7 C4 */ lfs f1, lbl_804551C4-_SDA2_BASE_(r2)
+/* 8026D3A4 0026A2E4 48 0D 9D 35 */ bl PSVECScale
+/* 8026D3A8 0026A2E8 38 60 00 01 */ li r3, 1
+/* 8026D3AC 0026A2EC 48 00 00 10 */ b lbl_8026D3BC
+lbl_8026D3B0:
+/* 8026D3B0 0026A2F0 38 60 00 00 */ li r3, 0
+/* 8026D3B4 0026A2F4 48 00 00 08 */ b lbl_8026D3BC
+lbl_8026D3B8:
+/* 8026D3B8 0026A2F8 38 60 00 00 */ li r3, 0
+lbl_8026D3BC:
+/* 8026D3BC 0026A2FC 39 61 00 50 */ addi r11, r1, 0x50
+/* 8026D3C0 0026A300 48 0F 4E 69 */ bl _restgpr_29
+/* 8026D3C4 0026A304 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 8026D3C8 0026A308 7C 08 03 A6 */ mtlr r0
+/* 8026D3CC 0026A30C 38 21 00 50 */ addi r1, r1, 0x50
+/* 8026D3D0 0026A310 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026D3D4.s b/include/SComponent/c_m3d/asm/func_8026D3D4.s
new file mode 100644
index 0000000000..c2731d1fc3
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026D3D4.s
@@ -0,0 +1,481 @@
+/* 8026D3D4 0026A314 94 21 FF 60 */ stwu r1, -0xa0(r1)
+/* 8026D3D8 0026A318 7C 08 02 A6 */ mflr r0
+/* 8026D3DC 0026A31C 90 01 00 A4 */ stw r0, 0xa4(r1)
+/* 8026D3E0 0026A320 39 61 00 A0 */ addi r11, r1, 0xa0
+/* 8026D3E4 0026A324 48 0F 4D F5 */ bl _savegpr_28
+/* 8026D3E8 0026A328 7C 7C 1B 78 */ mr r28, r3
+/* 8026D3EC 0026A32C 7C 9D 23 78 */ mr r29, r4
+/* 8026D3F0 0026A330 7C BE 2B 78 */ mr r30, r5
+/* 8026D3F4 0026A334 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026D3F8 0026A338 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026D3FC 0026A33C 90 01 00 80 */ stw r0, 0x80(r1)
+/* 8026D400 0026A340 7F A3 EB 78 */ mr r3, r29
+/* 8026D404 0026A344 38 9C 00 0C */ addi r4, r28, 0xc
+/* 8026D408 0026A348 4B FF FC A9 */ bl cM3d_Cross_CylPnt__FPC8cM3dGCylPC3Vec
+/* 8026D40C 0026A34C 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026D410 0026A350 41 82 00 30 */ beq lbl_8026D440
+/* 8026D414 0026A354 C0 1C 00 0C */ lfs f0, 0xc(r28)
+/* 8026D418 0026A358 D0 1E 00 00 */ stfs f0, 0(r30)
+/* 8026D41C 0026A35C C0 1C 00 10 */ lfs f0, 0x10(r28)
+/* 8026D420 0026A360 D0 1E 00 04 */ stfs f0, 4(r30)
+/* 8026D424 0026A364 C0 1C 00 14 */ lfs f0, 0x14(r28)
+/* 8026D428 0026A368 D0 1E 00 08 */ stfs f0, 8(r30)
+/* 8026D42C 0026A36C 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026D430 0026A370 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026D434 0026A374 90 01 00 80 */ stw r0, 0x80(r1)
+/* 8026D438 0026A378 38 60 00 01 */ li r3, 1
+/* 8026D43C 0026A37C 48 00 06 8C */ b lbl_8026DAC8
+lbl_8026D440:
+/* 8026D440 0026A380 7F A3 EB 78 */ mr r3, r29
+/* 8026D444 0026A384 7F 84 E3 78 */ mr r4, r28
+/* 8026D448 0026A388 4B FF FC 69 */ bl cM3d_Cross_CylPnt__FPC8cM3dGCylPC3Vec
+/* 8026D44C 0026A38C 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026D450 0026A390 41 82 00 30 */ beq lbl_8026D480
+/* 8026D454 0026A394 C0 1C 00 00 */ lfs f0, 0(r28)
+/* 8026D458 0026A398 D0 1E 00 00 */ stfs f0, 0(r30)
+/* 8026D45C 0026A39C C0 1C 00 04 */ lfs f0, 4(r28)
+/* 8026D460 0026A3A0 D0 1E 00 04 */ stfs f0, 4(r30)
+/* 8026D464 0026A3A4 C0 1C 00 08 */ lfs f0, 8(r28)
+/* 8026D468 0026A3A8 D0 1E 00 08 */ stfs f0, 8(r30)
+/* 8026D46C 0026A3AC 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026D470 0026A3B0 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026D474 0026A3B4 90 01 00 80 */ stw r0, 0x80(r1)
+/* 8026D478 0026A3B8 38 60 00 01 */ li r3, 1
+/* 8026D47C 0026A3BC 48 00 06 4C */ b lbl_8026DAC8
+lbl_8026D480:
+/* 8026D480 0026A3C0 C0 5D 00 00 */ lfs f2, 0(r29)
+/* 8026D484 0026A3C4 D0 41 00 68 */ stfs f2, 0x68(r1)
+/* 8026D488 0026A3C8 C0 3D 00 04 */ lfs f1, 4(r29)
+/* 8026D48C 0026A3CC D0 21 00 6C */ stfs f1, 0x6c(r1)
+/* 8026D490 0026A3D0 C0 1D 00 08 */ lfs f0, 8(r29)
+/* 8026D494 0026A3D4 D0 01 00 70 */ stfs f0, 0x70(r1)
+/* 8026D498 0026A3D8 3B E1 00 74 */ addi r31, r1, 0x74
+/* 8026D49C 0026A3DC D0 41 00 74 */ stfs f2, 0x74(r1)
+/* 8026D4A0 0026A3E0 D0 21 00 78 */ stfs f1, 0x78(r1)
+/* 8026D4A4 0026A3E4 D0 01 00 7C */ stfs f0, 0x7c(r1)
+/* 8026D4A8 0026A3E8 C0 1D 00 10 */ lfs f0, 0x10(r29)
+/* 8026D4AC 0026A3EC EC 01 00 2A */ fadds f0, f1, f0
+/* 8026D4B0 0026A3F0 D0 01 00 78 */ stfs f0, 0x78(r1)
+/* 8026D4B4 0026A3F4 7F 83 E3 78 */ mr r3, r28
+/* 8026D4B8 0026A3F8 7F E4 FB 78 */ mr r4, r31
+/* 8026D4BC 0026A3FC 38 A1 00 48 */ addi r5, r1, 0x48
+/* 8026D4C0 0026A400 38 C1 00 14 */ addi r6, r1, 0x14
+/* 8026D4C4 0026A404 4B FF B2 4D */ bl cM3d_Len3dSqPntAndSegLine__FPC8cM3dGLinPC3VecP3VecPf
+/* 8026D4C8 0026A408 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026D4CC 0026A40C 41 82 00 68 */ beq lbl_8026D534
+/* 8026D4D0 0026A410 7F E3 FB 78 */ mr r3, r31
+/* 8026D4D4 0026A414 38 81 00 48 */ addi r4, r1, 0x48
+/* 8026D4D8 0026A418 48 0D 9E ED */ bl PSVECDistance
+/* 8026D4DC 0026A41C C0 1C 00 1C */ lfs f0, 0x1c(r28)
+/* 8026D4E0 0026A420 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026D4E4 0026A424 40 80 00 50 */ bge lbl_8026D534
+/* 8026D4E8 0026A428 7F E3 FB 78 */ mr r3, r31
+/* 8026D4EC 0026A42C 38 81 00 48 */ addi r4, r1, 0x48
+/* 8026D4F0 0026A430 7F C5 F3 78 */ mr r5, r30
+/* 8026D4F4 0026A434 48 0D 9B 9D */ bl PSVECAdd
+/* 8026D4F8 0026A438 7F C3 F3 78 */ mr r3, r30
+/* 8026D4FC 0026A43C 7F C4 F3 78 */ mr r4, r30
+/* 8026D500 0026A440 C0 22 B7 C4 */ lfs f1, lbl_804551C4-_SDA2_BASE_(r2)
+/* 8026D504 0026A444 48 0D 9B D5 */ bl PSVECScale
+/* 8026D508 0026A448 C0 01 00 74 */ lfs f0, 0x74(r1)
+/* 8026D50C 0026A44C D0 1E 00 00 */ stfs f0, 0(r30)
+/* 8026D510 0026A450 C0 01 00 78 */ lfs f0, 0x78(r1)
+/* 8026D514 0026A454 D0 1E 00 04 */ stfs f0, 4(r30)
+/* 8026D518 0026A458 C0 01 00 7C */ lfs f0, 0x7c(r1)
+/* 8026D51C 0026A45C D0 1E 00 08 */ stfs f0, 8(r30)
+/* 8026D520 0026A460 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026D524 0026A464 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026D528 0026A468 90 01 00 80 */ stw r0, 0x80(r1)
+/* 8026D52C 0026A46C 38 60 00 01 */ li r3, 1
+/* 8026D530 0026A470 48 00 05 98 */ b lbl_8026DAC8
+lbl_8026D534:
+/* 8026D534 0026A474 7F 83 E3 78 */ mr r3, r28
+/* 8026D538 0026A478 38 81 00 68 */ addi r4, r1, 0x68
+/* 8026D53C 0026A47C 38 A1 00 48 */ addi r5, r1, 0x48
+/* 8026D540 0026A480 38 C1 00 14 */ addi r6, r1, 0x14
+/* 8026D544 0026A484 4B FF B1 CD */ bl cM3d_Len3dSqPntAndSegLine__FPC8cM3dGLinPC3VecP3VecPf
+/* 8026D548 0026A488 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026D54C 0026A48C 41 82 00 50 */ beq lbl_8026D59C
+/* 8026D550 0026A490 38 61 00 68 */ addi r3, r1, 0x68
+/* 8026D554 0026A494 38 81 00 48 */ addi r4, r1, 0x48
+/* 8026D558 0026A498 48 0D 9E 6D */ bl PSVECDistance
+/* 8026D55C 0026A49C C0 1C 00 1C */ lfs f0, 0x1c(r28)
+/* 8026D560 0026A4A0 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026D564 0026A4A4 40 80 00 38 */ bge lbl_8026D59C
+/* 8026D568 0026A4A8 38 61 00 68 */ addi r3, r1, 0x68
+/* 8026D56C 0026A4AC 38 81 00 48 */ addi r4, r1, 0x48
+/* 8026D570 0026A4B0 7F C5 F3 78 */ mr r5, r30
+/* 8026D574 0026A4B4 48 0D 9B 1D */ bl PSVECAdd
+/* 8026D578 0026A4B8 7F C3 F3 78 */ mr r3, r30
+/* 8026D57C 0026A4BC 7F C4 F3 78 */ mr r4, r30
+/* 8026D580 0026A4C0 C0 22 B7 C4 */ lfs f1, lbl_804551C4-_SDA2_BASE_(r2)
+/* 8026D584 0026A4C4 48 0D 9B 55 */ bl PSVECScale
+/* 8026D588 0026A4C8 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026D58C 0026A4CC 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026D590 0026A4D0 90 01 00 80 */ stw r0, 0x80(r1)
+/* 8026D594 0026A4D4 38 60 00 01 */ li r3, 1
+/* 8026D598 0026A4D8 48 00 05 30 */ b lbl_8026DAC8
+lbl_8026D59C:
+/* 8026D59C 0026A4DC 7F 83 E3 78 */ mr r3, r28
+/* 8026D5A0 0026A4E0 38 81 00 68 */ addi r4, r1, 0x68
+/* 8026D5A4 0026A4E4 38 A1 00 10 */ addi r5, r1, 0x10
+/* 8026D5A8 0026A4E8 38 C1 00 0C */ addi r6, r1, 0xc
+/* 8026D5AC 0026A4EC 4B FF B6 B1 */ bl cM3d_Check_LinLin__FPC8cM3dGLinPC8cM3dGLinPfPf
+/* 8026D5B0 0026A4F0 2C 03 00 01 */ cmpwi r3, 1
+/* 8026D5B4 0026A4F4 40 82 00 58 */ bne lbl_8026D60C
+/* 8026D5B8 0026A4F8 3C 60 80 3A */ lis r3, lbl_803A7904@ha
+/* 8026D5BC 0026A4FC 38 03 79 04 */ addi r0, r3, lbl_803A7904@l
+/* 8026D5C0 0026A500 90 01 00 64 */ stw r0, 0x64(r1)
+/* 8026D5C4 0026A504 38 61 00 54 */ addi r3, r1, 0x54
+/* 8026D5C8 0026A508 C0 3C 00 1C */ lfs f1, 0x1c(r28)
+/* 8026D5CC 0026A50C 48 00 21 3D */ bl SetR__8cM3dGSphFf
+/* 8026D5D0 0026A510 38 61 00 54 */ addi r3, r1, 0x54
+/* 8026D5D4 0026A514 7F 84 E3 78 */ mr r4, r28
+/* 8026D5D8 0026A518 48 00 20 71 */ bl SetC__8cM3dGSphFRC4cXyz
+/* 8026D5DC 0026A51C 7F A3 EB 78 */ mr r3, r29
+/* 8026D5E0 0026A520 38 81 00 54 */ addi r4, r1, 0x54
+/* 8026D5E4 0026A524 7F C5 F3 78 */ mr r5, r30
+/* 8026D5E8 0026A528 38 C1 00 08 */ addi r6, r1, 8
+/* 8026D5EC 0026A52C 4B FF E4 5D */ bl cM3d_Cross_CylSph__FPC8cM3dGCylPC8cM3dGSphP3VecPf
+/* 8026D5F0 0026A530 3C 80 80 3A */ lis r4, lbl_803A7904@ha
+/* 8026D5F4 0026A534 38 04 79 04 */ addi r0, r4, lbl_803A7904@l
+/* 8026D5F8 0026A538 90 01 00 64 */ stw r0, 0x64(r1)
+/* 8026D5FC 0026A53C 3C 80 80 3A */ lis r4, lbl_803A78F8@ha
+/* 8026D600 0026A540 38 04 78 F8 */ addi r0, r4, lbl_803A78F8@l
+/* 8026D604 0026A544 90 01 00 80 */ stw r0, 0x80(r1)
+/* 8026D608 0026A548 48 00 04 C0 */ b lbl_8026DAC8
+lbl_8026D60C:
+/* 8026D60C 0026A54C 2C 03 00 02 */ cmpwi r3, 2
+/* 8026D610 0026A550 40 82 00 B4 */ bne lbl_8026D6C4
+/* 8026D614 0026A554 C0 21 00 10 */ lfs f1, 0x10(r1)
+/* 8026D618 0026A558 C0 42 B7 18 */ lfs f2, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026D61C 0026A55C FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 8026D620 0026A560 4C 41 13 82 */ cror 2, 1, 2
+/* 8026D624 0026A564 40 82 04 94 */ bne lbl_8026DAB8
+/* 8026D628 0026A568 C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 8026D62C 0026A56C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026D630 0026A570 4C 40 13 82 */ cror 2, 0, 2
+/* 8026D634 0026A574 40 82 04 84 */ bne lbl_8026DAB8
+/* 8026D638 0026A578 C0 61 00 0C */ lfs f3, 0xc(r1)
+/* 8026D63C 0026A57C FC 03 10 40 */ fcmpo cr0, f3, f2
+/* 8026D640 0026A580 4C 41 13 82 */ cror 2, 1, 2
+/* 8026D644 0026A584 40 82 04 74 */ bne lbl_8026DAB8
+/* 8026D648 0026A588 FC 03 00 40 */ fcmpo cr0, f3, f0
+/* 8026D64C 0026A58C 4C 40 13 82 */ cror 2, 0, 2
+/* 8026D650 0026A590 40 82 04 68 */ bne lbl_8026DAB8
+/* 8026D654 0026A594 7F 83 E3 78 */ mr r3, r28
+/* 8026D658 0026A598 38 81 00 3C */ addi r4, r1, 0x3c
+/* 8026D65C 0026A59C 48 00 1C F5 */ bl CalcPos__8cM3dGLinCFP3Vecf
+/* 8026D660 0026A5A0 38 61 00 68 */ addi r3, r1, 0x68
+/* 8026D664 0026A5A4 38 81 00 30 */ addi r4, r1, 0x30
+/* 8026D668 0026A5A8 C0 21 00 0C */ lfs f1, 0xc(r1)
+/* 8026D66C 0026A5AC 48 00 1C E5 */ bl CalcPos__8cM3dGLinCFP3Vecf
+/* 8026D670 0026A5B0 38 61 00 3C */ addi r3, r1, 0x3c
+/* 8026D674 0026A5B4 38 81 00 30 */ addi r4, r1, 0x30
+/* 8026D678 0026A5B8 48 0D 9D 4D */ bl PSVECDistance
+/* 8026D67C 0026A5BC C0 5C 00 1C */ lfs f2, 0x1c(r28)
+/* 8026D680 0026A5C0 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 8026D684 0026A5C4 EC 02 00 2A */ fadds f0, f2, f0
+/* 8026D688 0026A5C8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026D68C 0026A5CC 40 80 04 2C */ bge lbl_8026DAB8
+/* 8026D690 0026A5D0 38 61 00 3C */ addi r3, r1, 0x3c
+/* 8026D694 0026A5D4 38 81 00 30 */ addi r4, r1, 0x30
+/* 8026D698 0026A5D8 7F C5 F3 78 */ mr r5, r30
+/* 8026D69C 0026A5DC 48 0D 99 F5 */ bl PSVECAdd
+/* 8026D6A0 0026A5E0 7F C3 F3 78 */ mr r3, r30
+/* 8026D6A4 0026A5E4 7F C4 F3 78 */ mr r4, r30
+/* 8026D6A8 0026A5E8 C0 22 B7 C4 */ lfs f1, lbl_804551C4-_SDA2_BASE_(r2)
+/* 8026D6AC 0026A5EC 48 0D 9A 2D */ bl PSVECScale
+/* 8026D6B0 0026A5F0 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026D6B4 0026A5F4 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026D6B8 0026A5F8 90 01 00 80 */ stw r0, 0x80(r1)
+/* 8026D6BC 0026A5FC 38 60 00 01 */ li r3, 1
+/* 8026D6C0 0026A600 48 00 04 08 */ b lbl_8026DAC8
+lbl_8026D6C4:
+/* 8026D6C4 0026A604 2C 03 00 03 */ cmpwi r3, 3
+/* 8026D6C8 0026A608 40 82 03 F0 */ bne lbl_8026DAB8
+/* 8026D6CC 0026A60C C0 21 00 10 */ lfs f1, 0x10(r1)
+/* 8026D6D0 0026A610 C0 62 B7 18 */ lfs f3, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026D6D4 0026A614 FC 01 18 40 */ fcmpo cr0, f1, f3
+/* 8026D6D8 0026A618 40 80 01 2C */ bge lbl_8026D804
+/* 8026D6DC 0026A61C C0 1C 00 00 */ lfs f0, 0(r28)
+/* 8026D6E0 0026A620 D0 01 00 24 */ stfs f0, 0x24(r1)
+/* 8026D6E4 0026A624 C0 1C 00 04 */ lfs f0, 4(r28)
+/* 8026D6E8 0026A628 D0 01 00 28 */ stfs f0, 0x28(r1)
+/* 8026D6EC 0026A62C C0 1C 00 08 */ lfs f0, 8(r28)
+/* 8026D6F0 0026A630 D0 01 00 2C */ stfs f0, 0x2c(r1)
+/* 8026D6F4 0026A634 C0 21 00 0C */ lfs f1, 0xc(r1)
+/* 8026D6F8 0026A638 FC 01 18 40 */ fcmpo cr0, f1, f3
+/* 8026D6FC 0026A63C 40 80 00 78 */ bge lbl_8026D774
+/* 8026D700 0026A640 C0 01 00 68 */ lfs f0, 0x68(r1)
+/* 8026D704 0026A644 D0 01 00 18 */ stfs f0, 0x18(r1)
+/* 8026D708 0026A648 C0 01 00 6C */ lfs f0, 0x6c(r1)
+/* 8026D70C 0026A64C D0 01 00 1C */ stfs f0, 0x1c(r1)
+/* 8026D710 0026A650 C0 01 00 70 */ lfs f0, 0x70(r1)
+/* 8026D714 0026A654 D0 01 00 20 */ stfs f0, 0x20(r1)
+/* 8026D718 0026A658 38 61 00 24 */ addi r3, r1, 0x24
+/* 8026D71C 0026A65C 38 81 00 18 */ addi r4, r1, 0x18
+/* 8026D720 0026A660 48 0D 9C A5 */ bl PSVECDistance
+/* 8026D724 0026A664 C0 5C 00 1C */ lfs f2, 0x1c(r28)
+/* 8026D728 0026A668 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 8026D72C 0026A66C EC 02 00 2A */ fadds f0, f2, f0
+/* 8026D730 0026A670 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026D734 0026A674 40 80 00 2C */ bge lbl_8026D760
+/* 8026D738 0026A678 38 61 00 24 */ addi r3, r1, 0x24
+/* 8026D73C 0026A67C 38 81 00 18 */ addi r4, r1, 0x18
+/* 8026D740 0026A680 7F C5 F3 78 */ mr r5, r30
+/* 8026D744 0026A684 48 0D 99 4D */ bl PSVECAdd
+/* 8026D748 0026A688 7F C3 F3 78 */ mr r3, r30
+/* 8026D74C 0026A68C 7F C4 F3 78 */ mr r4, r30
+/* 8026D750 0026A690 C0 22 B7 C4 */ lfs f1, lbl_804551C4-_SDA2_BASE_(r2)
+/* 8026D754 0026A694 48 0D 99 85 */ bl PSVECScale
+/* 8026D758 0026A698 38 60 00 01 */ li r3, 1
+/* 8026D75C 0026A69C 48 00 00 08 */ b lbl_8026D764
+lbl_8026D760:
+/* 8026D760 0026A6A0 38 60 00 00 */ li r3, 0
+lbl_8026D764:
+/* 8026D764 0026A6A4 3C 80 80 3A */ lis r4, lbl_803A78F8@ha
+/* 8026D768 0026A6A8 38 04 78 F8 */ addi r0, r4, lbl_803A78F8@l
+/* 8026D76C 0026A6AC 90 01 00 80 */ stw r0, 0x80(r1)
+/* 8026D770 0026A6B0 48 00 03 58 */ b lbl_8026DAC8
+lbl_8026D774:
+/* 8026D774 0026A6B4 C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 8026D778 0026A6B8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026D77C 0026A6BC 40 81 00 78 */ ble lbl_8026D7F4
+/* 8026D780 0026A6C0 C0 01 00 74 */ lfs f0, 0x74(r1)
+/* 8026D784 0026A6C4 D0 01 00 18 */ stfs f0, 0x18(r1)
+/* 8026D788 0026A6C8 C0 01 00 78 */ lfs f0, 0x78(r1)
+/* 8026D78C 0026A6CC D0 01 00 1C */ stfs f0, 0x1c(r1)
+/* 8026D790 0026A6D0 C0 01 00 7C */ lfs f0, 0x7c(r1)
+/* 8026D794 0026A6D4 D0 01 00 20 */ stfs f0, 0x20(r1)
+/* 8026D798 0026A6D8 38 61 00 24 */ addi r3, r1, 0x24
+/* 8026D79C 0026A6DC 38 81 00 18 */ addi r4, r1, 0x18
+/* 8026D7A0 0026A6E0 48 0D 9C 25 */ bl PSVECDistance
+/* 8026D7A4 0026A6E4 C0 5C 00 1C */ lfs f2, 0x1c(r28)
+/* 8026D7A8 0026A6E8 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 8026D7AC 0026A6EC EC 02 00 2A */ fadds f0, f2, f0
+/* 8026D7B0 0026A6F0 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026D7B4 0026A6F4 40 80 00 2C */ bge lbl_8026D7E0
+/* 8026D7B8 0026A6F8 38 61 00 24 */ addi r3, r1, 0x24
+/* 8026D7BC 0026A6FC 38 81 00 18 */ addi r4, r1, 0x18
+/* 8026D7C0 0026A700 7F C5 F3 78 */ mr r5, r30
+/* 8026D7C4 0026A704 48 0D 98 CD */ bl PSVECAdd
+/* 8026D7C8 0026A708 7F C3 F3 78 */ mr r3, r30
+/* 8026D7CC 0026A70C 7F C4 F3 78 */ mr r4, r30
+/* 8026D7D0 0026A710 C0 22 B7 C4 */ lfs f1, lbl_804551C4-_SDA2_BASE_(r2)
+/* 8026D7D4 0026A714 48 0D 99 05 */ bl PSVECScale
+/* 8026D7D8 0026A718 38 60 00 01 */ li r3, 1
+/* 8026D7DC 0026A71C 48 00 00 08 */ b lbl_8026D7E4
+lbl_8026D7E0:
+/* 8026D7E0 0026A720 38 60 00 00 */ li r3, 0
+lbl_8026D7E4:
+/* 8026D7E4 0026A724 3C 80 80 3A */ lis r4, lbl_803A78F8@ha
+/* 8026D7E8 0026A728 38 04 78 F8 */ addi r0, r4, lbl_803A78F8@l
+/* 8026D7EC 0026A72C 90 01 00 80 */ stw r0, 0x80(r1)
+/* 8026D7F0 0026A730 48 00 02 D8 */ b lbl_8026DAC8
+lbl_8026D7F4:
+/* 8026D7F4 0026A734 38 61 00 68 */ addi r3, r1, 0x68
+/* 8026D7F8 0026A738 38 81 00 18 */ addi r4, r1, 0x18
+/* 8026D7FC 0026A73C 48 00 1B 55 */ bl CalcPos__8cM3dGLinCFP3Vecf
+/* 8026D800 0026A740 48 00 02 50 */ b lbl_8026DA50
+lbl_8026D804:
+/* 8026D804 0026A744 C0 42 B7 38 */ lfs f2, lbl_80455138-_SDA2_BASE_(r2)
+/* 8026D808 0026A748 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 8026D80C 0026A74C 40 81 01 28 */ ble lbl_8026D934
+/* 8026D810 0026A750 C0 1C 00 0C */ lfs f0, 0xc(r28)
+/* 8026D814 0026A754 D0 01 00 24 */ stfs f0, 0x24(r1)
+/* 8026D818 0026A758 C0 1C 00 10 */ lfs f0, 0x10(r28)
+/* 8026D81C 0026A75C D0 01 00 28 */ stfs f0, 0x28(r1)
+/* 8026D820 0026A760 C0 1C 00 14 */ lfs f0, 0x14(r28)
+/* 8026D824 0026A764 D0 01 00 2C */ stfs f0, 0x2c(r1)
+/* 8026D828 0026A768 C0 21 00 0C */ lfs f1, 0xc(r1)
+/* 8026D82C 0026A76C FC 01 18 40 */ fcmpo cr0, f1, f3
+/* 8026D830 0026A770 40 80 00 78 */ bge lbl_8026D8A8
+/* 8026D834 0026A774 C0 01 00 68 */ lfs f0, 0x68(r1)
+/* 8026D838 0026A778 D0 01 00 18 */ stfs f0, 0x18(r1)
+/* 8026D83C 0026A77C C0 01 00 6C */ lfs f0, 0x6c(r1)
+/* 8026D840 0026A780 D0 01 00 1C */ stfs f0, 0x1c(r1)
+/* 8026D844 0026A784 C0 01 00 70 */ lfs f0, 0x70(r1)
+/* 8026D848 0026A788 D0 01 00 20 */ stfs f0, 0x20(r1)
+/* 8026D84C 0026A78C 38 61 00 24 */ addi r3, r1, 0x24
+/* 8026D850 0026A790 38 81 00 18 */ addi r4, r1, 0x18
+/* 8026D854 0026A794 48 0D 9B 71 */ bl PSVECDistance
+/* 8026D858 0026A798 C0 5C 00 1C */ lfs f2, 0x1c(r28)
+/* 8026D85C 0026A79C C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 8026D860 0026A7A0 EC 02 00 2A */ fadds f0, f2, f0
+/* 8026D864 0026A7A4 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026D868 0026A7A8 40 80 00 2C */ bge lbl_8026D894
+/* 8026D86C 0026A7AC 38 61 00 24 */ addi r3, r1, 0x24
+/* 8026D870 0026A7B0 38 81 00 18 */ addi r4, r1, 0x18
+/* 8026D874 0026A7B4 7F C5 F3 78 */ mr r5, r30
+/* 8026D878 0026A7B8 48 0D 98 19 */ bl PSVECAdd
+/* 8026D87C 0026A7BC 7F C3 F3 78 */ mr r3, r30
+/* 8026D880 0026A7C0 7F C4 F3 78 */ mr r4, r30
+/* 8026D884 0026A7C4 C0 22 B7 C4 */ lfs f1, lbl_804551C4-_SDA2_BASE_(r2)
+/* 8026D888 0026A7C8 48 0D 98 51 */ bl PSVECScale
+/* 8026D88C 0026A7CC 38 60 00 01 */ li r3, 1
+/* 8026D890 0026A7D0 48 00 00 08 */ b lbl_8026D898
+lbl_8026D894:
+/* 8026D894 0026A7D4 38 60 00 00 */ li r3, 0
+lbl_8026D898:
+/* 8026D898 0026A7D8 3C 80 80 3A */ lis r4, lbl_803A78F8@ha
+/* 8026D89C 0026A7DC 38 04 78 F8 */ addi r0, r4, lbl_803A78F8@l
+/* 8026D8A0 0026A7E0 90 01 00 80 */ stw r0, 0x80(r1)
+/* 8026D8A4 0026A7E4 48 00 02 24 */ b lbl_8026DAC8
+lbl_8026D8A8:
+/* 8026D8A8 0026A7E8 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 8026D8AC 0026A7EC 40 81 00 78 */ ble lbl_8026D924
+/* 8026D8B0 0026A7F0 C0 01 00 74 */ lfs f0, 0x74(r1)
+/* 8026D8B4 0026A7F4 D0 01 00 18 */ stfs f0, 0x18(r1)
+/* 8026D8B8 0026A7F8 C0 01 00 78 */ lfs f0, 0x78(r1)
+/* 8026D8BC 0026A7FC D0 01 00 1C */ stfs f0, 0x1c(r1)
+/* 8026D8C0 0026A800 C0 01 00 7C */ lfs f0, 0x7c(r1)
+/* 8026D8C4 0026A804 D0 01 00 20 */ stfs f0, 0x20(r1)
+/* 8026D8C8 0026A808 38 61 00 24 */ addi r3, r1, 0x24
+/* 8026D8CC 0026A80C 38 81 00 18 */ addi r4, r1, 0x18
+/* 8026D8D0 0026A810 48 0D 9A F5 */ bl PSVECDistance
+/* 8026D8D4 0026A814 C0 5C 00 1C */ lfs f2, 0x1c(r28)
+/* 8026D8D8 0026A818 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 8026D8DC 0026A81C EC 02 00 2A */ fadds f0, f2, f0
+/* 8026D8E0 0026A820 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026D8E4 0026A824 40 80 00 2C */ bge lbl_8026D910
+/* 8026D8E8 0026A828 38 61 00 24 */ addi r3, r1, 0x24
+/* 8026D8EC 0026A82C 38 81 00 18 */ addi r4, r1, 0x18
+/* 8026D8F0 0026A830 7F C5 F3 78 */ mr r5, r30
+/* 8026D8F4 0026A834 48 0D 97 9D */ bl PSVECAdd
+/* 8026D8F8 0026A838 7F C3 F3 78 */ mr r3, r30
+/* 8026D8FC 0026A83C 7F C4 F3 78 */ mr r4, r30
+/* 8026D900 0026A840 C0 22 B7 C4 */ lfs f1, lbl_804551C4-_SDA2_BASE_(r2)
+/* 8026D904 0026A844 48 0D 97 D5 */ bl PSVECScale
+/* 8026D908 0026A848 38 60 00 01 */ li r3, 1
+/* 8026D90C 0026A84C 48 00 00 08 */ b lbl_8026D914
+lbl_8026D910:
+/* 8026D910 0026A850 38 60 00 00 */ li r3, 0
+lbl_8026D914:
+/* 8026D914 0026A854 3C 80 80 3A */ lis r4, lbl_803A78F8@ha
+/* 8026D918 0026A858 38 04 78 F8 */ addi r0, r4, lbl_803A78F8@l
+/* 8026D91C 0026A85C 90 01 00 80 */ stw r0, 0x80(r1)
+/* 8026D920 0026A860 48 00 01 A8 */ b lbl_8026DAC8
+lbl_8026D924:
+/* 8026D924 0026A864 38 61 00 68 */ addi r3, r1, 0x68
+/* 8026D928 0026A868 38 81 00 18 */ addi r4, r1, 0x18
+/* 8026D92C 0026A86C 48 00 1A 25 */ bl CalcPos__8cM3dGLinCFP3Vecf
+/* 8026D930 0026A870 48 00 01 20 */ b lbl_8026DA50
+lbl_8026D934:
+/* 8026D934 0026A874 7F 83 E3 78 */ mr r3, r28
+/* 8026D938 0026A878 38 81 00 24 */ addi r4, r1, 0x24
+/* 8026D93C 0026A87C 48 00 1A 15 */ bl CalcPos__8cM3dGLinCFP3Vecf
+/* 8026D940 0026A880 C0 21 00 0C */ lfs f1, 0xc(r1)
+/* 8026D944 0026A884 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026D948 0026A888 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026D94C 0026A88C 40 80 00 78 */ bge lbl_8026D9C4
+/* 8026D950 0026A890 C0 01 00 68 */ lfs f0, 0x68(r1)
+/* 8026D954 0026A894 D0 01 00 18 */ stfs f0, 0x18(r1)
+/* 8026D958 0026A898 C0 01 00 6C */ lfs f0, 0x6c(r1)
+/* 8026D95C 0026A89C D0 01 00 1C */ stfs f0, 0x1c(r1)
+/* 8026D960 0026A8A0 C0 01 00 70 */ lfs f0, 0x70(r1)
+/* 8026D964 0026A8A4 D0 01 00 20 */ stfs f0, 0x20(r1)
+/* 8026D968 0026A8A8 38 61 00 24 */ addi r3, r1, 0x24
+/* 8026D96C 0026A8AC 38 81 00 18 */ addi r4, r1, 0x18
+/* 8026D970 0026A8B0 48 0D 9A 55 */ bl PSVECDistance
+/* 8026D974 0026A8B4 C0 5C 00 1C */ lfs f2, 0x1c(r28)
+/* 8026D978 0026A8B8 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 8026D97C 0026A8BC EC 02 00 2A */ fadds f0, f2, f0
+/* 8026D980 0026A8C0 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026D984 0026A8C4 40 80 00 2C */ bge lbl_8026D9B0
+/* 8026D988 0026A8C8 38 61 00 24 */ addi r3, r1, 0x24
+/* 8026D98C 0026A8CC 38 81 00 18 */ addi r4, r1, 0x18
+/* 8026D990 0026A8D0 7F C5 F3 78 */ mr r5, r30
+/* 8026D994 0026A8D4 48 0D 96 FD */ bl PSVECAdd
+/* 8026D998 0026A8D8 7F C3 F3 78 */ mr r3, r30
+/* 8026D99C 0026A8DC 7F C4 F3 78 */ mr r4, r30
+/* 8026D9A0 0026A8E0 C0 22 B7 C4 */ lfs f1, lbl_804551C4-_SDA2_BASE_(r2)
+/* 8026D9A4 0026A8E4 48 0D 97 35 */ bl PSVECScale
+/* 8026D9A8 0026A8E8 38 60 00 01 */ li r3, 1
+/* 8026D9AC 0026A8EC 48 00 00 08 */ b lbl_8026D9B4
+lbl_8026D9B0:
+/* 8026D9B0 0026A8F0 38 60 00 00 */ li r3, 0
+lbl_8026D9B4:
+/* 8026D9B4 0026A8F4 3C 80 80 3A */ lis r4, lbl_803A78F8@ha
+/* 8026D9B8 0026A8F8 38 04 78 F8 */ addi r0, r4, lbl_803A78F8@l
+/* 8026D9BC 0026A8FC 90 01 00 80 */ stw r0, 0x80(r1)
+/* 8026D9C0 0026A900 48 00 01 08 */ b lbl_8026DAC8
+lbl_8026D9C4:
+/* 8026D9C4 0026A904 C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 8026D9C8 0026A908 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026D9CC 0026A90C 40 81 00 78 */ ble lbl_8026DA44
+/* 8026D9D0 0026A910 C0 01 00 74 */ lfs f0, 0x74(r1)
+/* 8026D9D4 0026A914 D0 01 00 18 */ stfs f0, 0x18(r1)
+/* 8026D9D8 0026A918 C0 01 00 78 */ lfs f0, 0x78(r1)
+/* 8026D9DC 0026A91C D0 01 00 1C */ stfs f0, 0x1c(r1)
+/* 8026D9E0 0026A920 C0 01 00 7C */ lfs f0, 0x7c(r1)
+/* 8026D9E4 0026A924 D0 01 00 20 */ stfs f0, 0x20(r1)
+/* 8026D9E8 0026A928 38 61 00 24 */ addi r3, r1, 0x24
+/* 8026D9EC 0026A92C 38 81 00 18 */ addi r4, r1, 0x18
+/* 8026D9F0 0026A930 48 0D 99 D5 */ bl PSVECDistance
+/* 8026D9F4 0026A934 C0 5C 00 1C */ lfs f2, 0x1c(r28)
+/* 8026D9F8 0026A938 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 8026D9FC 0026A93C EC 02 00 2A */ fadds f0, f2, f0
+/* 8026DA00 0026A940 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026DA04 0026A944 40 80 00 2C */ bge lbl_8026DA30
+/* 8026DA08 0026A948 38 61 00 24 */ addi r3, r1, 0x24
+/* 8026DA0C 0026A94C 38 81 00 18 */ addi r4, r1, 0x18
+/* 8026DA10 0026A950 7F C5 F3 78 */ mr r5, r30
+/* 8026DA14 0026A954 48 0D 96 7D */ bl PSVECAdd
+/* 8026DA18 0026A958 7F C3 F3 78 */ mr r3, r30
+/* 8026DA1C 0026A95C 7F C4 F3 78 */ mr r4, r30
+/* 8026DA20 0026A960 C0 22 B7 C4 */ lfs f1, lbl_804551C4-_SDA2_BASE_(r2)
+/* 8026DA24 0026A964 48 0D 96 B5 */ bl PSVECScale
+/* 8026DA28 0026A968 38 60 00 01 */ li r3, 1
+/* 8026DA2C 0026A96C 48 00 00 08 */ b lbl_8026DA34
+lbl_8026DA30:
+/* 8026DA30 0026A970 38 60 00 00 */ li r3, 0
+lbl_8026DA34:
+/* 8026DA34 0026A974 3C 80 80 3A */ lis r4, lbl_803A78F8@ha
+/* 8026DA38 0026A978 38 04 78 F8 */ addi r0, r4, lbl_803A78F8@l
+/* 8026DA3C 0026A97C 90 01 00 80 */ stw r0, 0x80(r1)
+/* 8026DA40 0026A980 48 00 00 88 */ b lbl_8026DAC8
+lbl_8026DA44:
+/* 8026DA44 0026A984 38 61 00 68 */ addi r3, r1, 0x68
+/* 8026DA48 0026A988 38 81 00 18 */ addi r4, r1, 0x18
+/* 8026DA4C 0026A98C 48 00 19 05 */ bl CalcPos__8cM3dGLinCFP3Vecf
+lbl_8026DA50:
+/* 8026DA50 0026A990 38 61 00 24 */ addi r3, r1, 0x24
+/* 8026DA54 0026A994 38 81 00 18 */ addi r4, r1, 0x18
+/* 8026DA58 0026A998 48 0D 99 6D */ bl PSVECDistance
+/* 8026DA5C 0026A99C C0 5C 00 1C */ lfs f2, 0x1c(r28)
+/* 8026DA60 0026A9A0 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 8026DA64 0026A9A4 EC 02 00 2A */ fadds f0, f2, f0
+/* 8026DA68 0026A9A8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026DA6C 0026A9AC 40 80 00 38 */ bge lbl_8026DAA4
+/* 8026DA70 0026A9B0 38 61 00 24 */ addi r3, r1, 0x24
+/* 8026DA74 0026A9B4 38 81 00 18 */ addi r4, r1, 0x18
+/* 8026DA78 0026A9B8 7F C5 F3 78 */ mr r5, r30
+/* 8026DA7C 0026A9BC 48 0D 96 15 */ bl PSVECAdd
+/* 8026DA80 0026A9C0 7F C3 F3 78 */ mr r3, r30
+/* 8026DA84 0026A9C4 7F C4 F3 78 */ mr r4, r30
+/* 8026DA88 0026A9C8 C0 22 B7 C4 */ lfs f1, lbl_804551C4-_SDA2_BASE_(r2)
+/* 8026DA8C 0026A9CC 48 0D 96 4D */ bl PSVECScale
+/* 8026DA90 0026A9D0 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026DA94 0026A9D4 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026DA98 0026A9D8 90 01 00 80 */ stw r0, 0x80(r1)
+/* 8026DA9C 0026A9DC 38 60 00 01 */ li r3, 1
+/* 8026DAA0 0026A9E0 48 00 00 28 */ b lbl_8026DAC8
+lbl_8026DAA4:
+/* 8026DAA4 0026A9E4 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026DAA8 0026A9E8 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026DAAC 0026A9EC 90 01 00 80 */ stw r0, 0x80(r1)
+/* 8026DAB0 0026A9F0 38 60 00 00 */ li r3, 0
+/* 8026DAB4 0026A9F4 48 00 00 14 */ b lbl_8026DAC8
+lbl_8026DAB8:
+/* 8026DAB8 0026A9F8 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026DABC 0026A9FC 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026DAC0 0026AA00 90 01 00 80 */ stw r0, 0x80(r1)
+/* 8026DAC4 0026AA04 38 60 00 00 */ li r3, 0
+lbl_8026DAC8:
+/* 8026DAC8 0026AA08 39 61 00 A0 */ addi r11, r1, 0xa0
+/* 8026DACC 0026AA0C 48 0F 47 59 */ bl _restgpr_28
+/* 8026DAD0 0026AA10 80 01 00 A4 */ lwz r0, 0xa4(r1)
+/* 8026DAD4 0026AA14 7C 08 03 A6 */ mtlr r0
+/* 8026DAD8 0026AA18 38 21 00 A0 */ addi r1, r1, 0xa0
+/* 8026DADC 0026AA1C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026DAE0.s b/include/SComponent/c_m3d/asm/func_8026DAE0.s
new file mode 100644
index 0000000000..fdf4866e6b
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026DAE0.s
@@ -0,0 +1,92 @@
+/* 8026DAE0 0026AA20 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 8026DAE4 0026AA24 7C 08 02 A6 */ mflr r0
+/* 8026DAE8 0026AA28 90 01 00 54 */ stw r0, 0x54(r1)
+/* 8026DAEC 0026AA2C DB E1 00 40 */ stfd f31, 0x40(r1)
+/* 8026DAF0 0026AA30 F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0
+/* 8026DAF4 0026AA34 39 61 00 40 */ addi r11, r1, 0x40
+/* 8026DAF8 0026AA38 48 0F 46 E1 */ bl _savegpr_28
+/* 8026DAFC 0026AA3C 7C 7C 1B 78 */ mr r28, r3
+/* 8026DB00 0026AA40 7C 9D 23 78 */ mr r29, r4
+/* 8026DB04 0026AA44 7C BE 2B 78 */ mr r30, r5
+/* 8026DB08 0026AA48 7C DF 33 78 */ mr r31, r6
+/* 8026DB0C 0026AA4C 7F A3 EB 78 */ mr r3, r29
+/* 8026DB10 0026AA50 7F 84 E3 78 */ mr r4, r28
+/* 8026DB14 0026AA54 38 A1 00 20 */ addi r5, r1, 0x20
+/* 8026DB18 0026AA58 38 C1 00 14 */ addi r6, r1, 0x14
+/* 8026DB1C 0026AA5C 4B FF D9 CD */ bl cM3d_Cross_LinSph_CrossPos__FRC8cM3dGSphRC8cM3dGLinP3VecP3Vec
+/* 8026DB20 0026AA60 2C 03 00 01 */ cmpwi r3, 1
+/* 8026DB24 0026AA64 40 82 00 20 */ bne lbl_8026DB44
+/* 8026DB28 0026AA68 C0 01 00 20 */ lfs f0, 0x20(r1)
+/* 8026DB2C 0026AA6C D0 1F 00 00 */ stfs f0, 0(r31)
+/* 8026DB30 0026AA70 C0 01 00 24 */ lfs f0, 0x24(r1)
+/* 8026DB34 0026AA74 D0 1F 00 04 */ stfs f0, 4(r31)
+/* 8026DB38 0026AA78 C0 01 00 28 */ lfs f0, 0x28(r1)
+/* 8026DB3C 0026AA7C D0 1F 00 08 */ stfs f0, 8(r31)
+/* 8026DB40 0026AA80 48 00 00 DC */ b lbl_8026DC1C
+lbl_8026DB44:
+/* 8026DB44 0026AA84 2C 03 00 02 */ cmpwi r3, 2
+/* 8026DB48 0026AA88 40 82 00 60 */ bne lbl_8026DBA8
+/* 8026DB4C 0026AA8C 38 61 00 20 */ addi r3, r1, 0x20
+/* 8026DB50 0026AA90 7F 84 E3 78 */ mr r4, r28
+/* 8026DB54 0026AA94 48 0D 98 49 */ bl PSVECSquareDistance
+/* 8026DB58 0026AA98 FF E0 08 90 */ fmr f31, f1
+/* 8026DB5C 0026AA9C 38 61 00 14 */ addi r3, r1, 0x14
+/* 8026DB60 0026AAA0 7F 84 E3 78 */ mr r4, r28
+/* 8026DB64 0026AAA4 48 0D 98 39 */ bl PSVECSquareDistance
+/* 8026DB68 0026AAA8 FC 1F 08 40 */ fcmpo cr0, f31, f1
+/* 8026DB6C 0026AAAC 40 80 00 20 */ bge lbl_8026DB8C
+/* 8026DB70 0026AAB0 C0 01 00 20 */ lfs f0, 0x20(r1)
+/* 8026DB74 0026AAB4 D0 1F 00 00 */ stfs f0, 0(r31)
+/* 8026DB78 0026AAB8 C0 01 00 24 */ lfs f0, 0x24(r1)
+/* 8026DB7C 0026AABC D0 1F 00 04 */ stfs f0, 4(r31)
+/* 8026DB80 0026AAC0 C0 01 00 28 */ lfs f0, 0x28(r1)
+/* 8026DB84 0026AAC4 D0 1F 00 08 */ stfs f0, 8(r31)
+/* 8026DB88 0026AAC8 48 00 00 94 */ b lbl_8026DC1C
+lbl_8026DB8C:
+/* 8026DB8C 0026AACC C0 01 00 14 */ lfs f0, 0x14(r1)
+/* 8026DB90 0026AAD0 D0 1F 00 00 */ stfs f0, 0(r31)
+/* 8026DB94 0026AAD4 C0 01 00 18 */ lfs f0, 0x18(r1)
+/* 8026DB98 0026AAD8 D0 1F 00 04 */ stfs f0, 4(r31)
+/* 8026DB9C 0026AADC C0 01 00 1C */ lfs f0, 0x1c(r1)
+/* 8026DBA0 0026AAE0 D0 1F 00 08 */ stfs f0, 8(r31)
+/* 8026DBA4 0026AAE4 48 00 00 78 */ b lbl_8026DC1C
+lbl_8026DBA8:
+/* 8026DBA8 0026AAE8 C0 3C 00 1C */ lfs f1, 0x1c(r28)
+/* 8026DBAC 0026AAEC C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 8026DBB0 0026AAF0 EC 01 00 2A */ fadds f0, f1, f0
+/* 8026DBB4 0026AAF4 C0 9E 00 00 */ lfs f4, 0(r30)
+/* 8026DBB8 0026AAF8 D0 9F 00 00 */ stfs f4, 0(r31)
+/* 8026DBBC 0026AAFC C0 7E 00 04 */ lfs f3, 4(r30)
+/* 8026DBC0 0026AB00 D0 7F 00 04 */ stfs f3, 4(r31)
+/* 8026DBC4 0026AB04 C0 5E 00 08 */ lfs f2, 8(r30)
+/* 8026DBC8 0026AB08 D0 5F 00 08 */ stfs f2, 8(r31)
+/* 8026DBCC 0026AB0C FC 00 02 10 */ fabs f0, f0
+/* 8026DBD0 0026AB10 FC 20 00 18 */ frsp f1, f0
+/* 8026DBD4 0026AB14 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026DBD8 0026AB18 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026DBDC 0026AB1C 40 80 00 10 */ bge lbl_8026DBEC
+/* 8026DBE0 0026AB20 D0 9F 00 00 */ stfs f4, 0(r31)
+/* 8026DBE4 0026AB24 D0 7F 00 04 */ stfs f3, 4(r31)
+/* 8026DBE8 0026AB28 D0 5F 00 08 */ stfs f2, 8(r31)
+lbl_8026DBEC:
+/* 8026DBEC 0026AB2C 7F C3 F3 78 */ mr r3, r30
+/* 8026DBF0 0026AB30 7F A4 EB 78 */ mr r4, r29
+/* 8026DBF4 0026AB34 38 A1 00 08 */ addi r5, r1, 8
+/* 8026DBF8 0026AB38 48 0D 94 BD */ bl PSVECSubtract
+/* 8026DBFC 0026AB3C 38 61 00 08 */ addi r3, r1, 8
+/* 8026DC00 0026AB40 7C 64 1B 78 */ mr r4, r3
+/* 8026DC04 0026AB44 C0 22 B7 C4 */ lfs f1, lbl_804551C4-_SDA2_BASE_(r2)
+/* 8026DC08 0026AB48 48 0D 94 D1 */ bl PSVECScale
+/* 8026DC0C 0026AB4C 7F E3 FB 78 */ mr r3, r31
+/* 8026DC10 0026AB50 38 81 00 08 */ addi r4, r1, 8
+/* 8026DC14 0026AB54 7F E5 FB 78 */ mr r5, r31
+/* 8026DC18 0026AB58 48 0D 94 79 */ bl PSVECAdd
+lbl_8026DC1C:
+/* 8026DC1C 0026AB5C E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0
+/* 8026DC20 0026AB60 CB E1 00 40 */ lfd f31, 0x40(r1)
+/* 8026DC24 0026AB64 39 61 00 40 */ addi r11, r1, 0x40
+/* 8026DC28 0026AB68 48 0F 45 FD */ bl _restgpr_28
+/* 8026DC2C 0026AB6C 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 8026DC30 0026AB70 7C 08 03 A6 */ mtlr r0
+/* 8026DC34 0026AB74 38 21 00 50 */ addi r1, r1, 0x50
+/* 8026DC38 0026AB78 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026DC3C.s b/include/SComponent/c_m3d/asm/func_8026DC3C.s
new file mode 100644
index 0000000000..afe939fbad
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026DC3C.s
@@ -0,0 +1,137 @@
+/* 8026DC3C 0026AB7C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8026DC40 0026AB80 7C 08 02 A6 */ mflr r0
+/* 8026DC44 0026AB84 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8026DC48 0026AB88 39 61 00 30 */ addi r11, r1, 0x30
+/* 8026DC4C 0026AB8C 48 0F 45 91 */ bl _savegpr_29
+/* 8026DC50 0026AB90 7C 7D 1B 78 */ mr r29, r3
+/* 8026DC54 0026AB94 7C 9E 23 78 */ mr r30, r4
+/* 8026DC58 0026AB98 7C BF 2B 78 */ mr r31, r5
+/* 8026DC5C 0026AB9C 48 0D 97 69 */ bl PSVECDistance
+/* 8026DC60 0026ABA0 D0 21 00 0C */ stfs f1, 0xc(r1)
+/* 8026DC64 0026ABA4 FC 40 08 18 */ frsp f2, f1
+/* 8026DC68 0026ABA8 C0 3D 00 1C */ lfs f1, 0x1c(r29)
+/* 8026DC6C 0026ABAC C0 1E 00 0C */ lfs f0, 0xc(r30)
+/* 8026DC70 0026ABB0 EC 01 00 2A */ fadds f0, f1, f0
+/* 8026DC74 0026ABB4 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 8026DC78 0026ABB8 40 80 00 20 */ bge lbl_8026DC98
+/* 8026DC7C 0026ABBC 7F A3 EB 78 */ mr r3, r29
+/* 8026DC80 0026ABC0 7F C4 F3 78 */ mr r4, r30
+/* 8026DC84 0026ABC4 7F A5 EB 78 */ mr r5, r29
+/* 8026DC88 0026ABC8 7F E6 FB 78 */ mr r6, r31
+/* 8026DC8C 0026ABCC 4B FF FE 55 */ bl cM3d_Cross_CpsSph_CrossPos__FRC8cM3dGCpsRC8cM3dGSphRC3VecP3Vec
+/* 8026DC90 0026ABD0 38 60 00 01 */ li r3, 1
+/* 8026DC94 0026ABD4 48 00 01 80 */ b lbl_8026DE14
+lbl_8026DC98:
+/* 8026DC98 0026ABD8 38 7D 00 0C */ addi r3, r29, 0xc
+/* 8026DC9C 0026ABDC 7F C4 F3 78 */ mr r4, r30
+/* 8026DCA0 0026ABE0 48 0D 97 25 */ bl PSVECDistance
+/* 8026DCA4 0026ABE4 D0 21 00 0C */ stfs f1, 0xc(r1)
+/* 8026DCA8 0026ABE8 FC 40 08 18 */ frsp f2, f1
+/* 8026DCAC 0026ABEC C0 3D 00 1C */ lfs f1, 0x1c(r29)
+/* 8026DCB0 0026ABF0 C0 1E 00 0C */ lfs f0, 0xc(r30)
+/* 8026DCB4 0026ABF4 EC 01 00 2A */ fadds f0, f1, f0
+/* 8026DCB8 0026ABF8 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 8026DCBC 0026ABFC 40 80 00 20 */ bge lbl_8026DCDC
+/* 8026DCC0 0026AC00 7F A3 EB 78 */ mr r3, r29
+/* 8026DCC4 0026AC04 7F C4 F3 78 */ mr r4, r30
+/* 8026DCC8 0026AC08 38 BD 00 0C */ addi r5, r29, 0xc
+/* 8026DCCC 0026AC0C 7F E6 FB 78 */ mr r6, r31
+/* 8026DCD0 0026AC10 4B FF FE 11 */ bl cM3d_Cross_CpsSph_CrossPos__FRC8cM3dGCpsRC8cM3dGSphRC3VecP3Vec
+/* 8026DCD4 0026AC14 38 60 00 01 */ li r3, 1
+/* 8026DCD8 0026AC18 48 00 01 3C */ b lbl_8026DE14
+lbl_8026DCDC:
+/* 8026DCDC 0026AC1C 7F A3 EB 78 */ mr r3, r29
+/* 8026DCE0 0026AC20 7F C4 F3 78 */ mr r4, r30
+/* 8026DCE4 0026AC24 38 A1 00 10 */ addi r5, r1, 0x10
+/* 8026DCE8 0026AC28 38 C1 00 0C */ addi r6, r1, 0xc
+/* 8026DCEC 0026AC2C 4B FF AA 25 */ bl cM3d_Len3dSqPntAndSegLine__FPC8cM3dGLinPC3VecP3VecPf
+/* 8026DCF0 0026AC30 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026DCF4 0026AC34 41 82 01 1C */ beq lbl_8026DE10
+/* 8026DCF8 0026AC38 C0 9D 00 1C */ lfs f4, 0x1c(r29)
+/* 8026DCFC 0026AC3C C0 BE 00 0C */ lfs f5, 0xc(r30)
+/* 8026DD00 0026AC40 C0 C1 00 0C */ lfs f6, 0xc(r1)
+/* 8026DD04 0026AC44 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026DD08 0026AC48 FC 06 00 40 */ fcmpo cr0, f6, f0
+/* 8026DD0C 0026AC4C 40 81 00 58 */ ble lbl_8026DD64
+/* 8026DD10 0026AC50 FC 00 30 34 */ frsqrte f0, f6
+/* 8026DD14 0026AC54 C8 62 B7 20 */ lfd f3, lbl_80455120-_SDA2_BASE_(r2)
+/* 8026DD18 0026AC58 FC 23 00 32 */ fmul f1, f3, f0
+/* 8026DD1C 0026AC5C C8 42 B7 28 */ lfd f2, lbl_80455128-_SDA2_BASE_(r2)
+/* 8026DD20 0026AC60 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026DD24 0026AC64 FC 06 00 32 */ fmul f0, f6, f0
+/* 8026DD28 0026AC68 FC 02 00 28 */ fsub f0, f2, f0
+/* 8026DD2C 0026AC6C FC 01 00 32 */ fmul f0, f1, f0
+/* 8026DD30 0026AC70 FC 23 00 32 */ fmul f1, f3, f0
+/* 8026DD34 0026AC74 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026DD38 0026AC78 FC 06 00 32 */ fmul f0, f6, f0
+/* 8026DD3C 0026AC7C FC 02 00 28 */ fsub f0, f2, f0
+/* 8026DD40 0026AC80 FC 01 00 32 */ fmul f0, f1, f0
+/* 8026DD44 0026AC84 FC 23 00 32 */ fmul f1, f3, f0
+/* 8026DD48 0026AC88 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026DD4C 0026AC8C FC 06 00 32 */ fmul f0, f6, f0
+/* 8026DD50 0026AC90 FC 02 00 28 */ fsub f0, f2, f0
+/* 8026DD54 0026AC94 FC 01 00 32 */ fmul f0, f1, f0
+/* 8026DD58 0026AC98 FC C6 00 32 */ fmul f6, f6, f0
+/* 8026DD5C 0026AC9C FC C0 30 18 */ frsp f6, f6
+/* 8026DD60 0026ACA0 48 00 00 88 */ b lbl_8026DDE8
+lbl_8026DD64:
+/* 8026DD64 0026ACA4 C8 02 B7 30 */ lfd f0, lbl_80455130-_SDA2_BASE_(r2)
+/* 8026DD68 0026ACA8 FC 06 00 40 */ fcmpo cr0, f6, f0
+/* 8026DD6C 0026ACAC 40 80 00 10 */ bge lbl_8026DD7C
+/* 8026DD70 0026ACB0 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026DD74 0026ACB4 C0 C3 0A E0 */ lfs f6, lbl_80450AE0@l(r3)
+/* 8026DD78 0026ACB8 48 00 00 70 */ b lbl_8026DDE8
+lbl_8026DD7C:
+/* 8026DD7C 0026ACBC D0 C1 00 08 */ stfs f6, 8(r1)
+/* 8026DD80 0026ACC0 80 81 00 08 */ lwz r4, 8(r1)
+/* 8026DD84 0026ACC4 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
+/* 8026DD88 0026ACC8 3C 00 7F 80 */ lis r0, 0x7f80
+/* 8026DD8C 0026ACCC 7C 03 00 00 */ cmpw r3, r0
+/* 8026DD90 0026ACD0 41 82 00 14 */ beq lbl_8026DDA4
+/* 8026DD94 0026ACD4 40 80 00 40 */ bge lbl_8026DDD4
+/* 8026DD98 0026ACD8 2C 03 00 00 */ cmpwi r3, 0
+/* 8026DD9C 0026ACDC 41 82 00 20 */ beq lbl_8026DDBC
+/* 8026DDA0 0026ACE0 48 00 00 34 */ b lbl_8026DDD4
+lbl_8026DDA4:
+/* 8026DDA4 0026ACE4 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026DDA8 0026ACE8 41 82 00 0C */ beq lbl_8026DDB4
+/* 8026DDAC 0026ACEC 38 00 00 01 */ li r0, 1
+/* 8026DDB0 0026ACF0 48 00 00 28 */ b lbl_8026DDD8
+lbl_8026DDB4:
+/* 8026DDB4 0026ACF4 38 00 00 02 */ li r0, 2
+/* 8026DDB8 0026ACF8 48 00 00 20 */ b lbl_8026DDD8
+lbl_8026DDBC:
+/* 8026DDBC 0026ACFC 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026DDC0 0026AD00 41 82 00 0C */ beq lbl_8026DDCC
+/* 8026DDC4 0026AD04 38 00 00 05 */ li r0, 5
+/* 8026DDC8 0026AD08 48 00 00 10 */ b lbl_8026DDD8
+lbl_8026DDCC:
+/* 8026DDCC 0026AD0C 38 00 00 03 */ li r0, 3
+/* 8026DDD0 0026AD10 48 00 00 08 */ b lbl_8026DDD8
+lbl_8026DDD4:
+/* 8026DDD4 0026AD14 38 00 00 04 */ li r0, 4
+lbl_8026DDD8:
+/* 8026DDD8 0026AD18 2C 00 00 01 */ cmpwi r0, 1
+/* 8026DDDC 0026AD1C 40 82 00 0C */ bne lbl_8026DDE8
+/* 8026DDE0 0026AD20 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026DDE4 0026AD24 C0 C3 0A E0 */ lfs f6, lbl_80450AE0@l(r3)
+lbl_8026DDE8:
+/* 8026DDE8 0026AD28 EC 04 28 2A */ fadds f0, f4, f5
+/* 8026DDEC 0026AD2C FC 06 00 40 */ fcmpo cr0, f6, f0
+/* 8026DDF0 0026AD30 40 80 00 20 */ bge lbl_8026DE10
+/* 8026DDF4 0026AD34 7F A3 EB 78 */ mr r3, r29
+/* 8026DDF8 0026AD38 7F C4 F3 78 */ mr r4, r30
+/* 8026DDFC 0026AD3C 38 A1 00 10 */ addi r5, r1, 0x10
+/* 8026DE00 0026AD40 7F E6 FB 78 */ mr r6, r31
+/* 8026DE04 0026AD44 4B FF FC DD */ bl cM3d_Cross_CpsSph_CrossPos__FRC8cM3dGCpsRC8cM3dGSphRC3VecP3Vec
+/* 8026DE08 0026AD48 38 60 00 01 */ li r3, 1
+/* 8026DE0C 0026AD4C 48 00 00 08 */ b lbl_8026DE14
+lbl_8026DE10:
+/* 8026DE10 0026AD50 38 60 00 00 */ li r3, 0
+lbl_8026DE14:
+/* 8026DE14 0026AD54 39 61 00 30 */ addi r11, r1, 0x30
+/* 8026DE18 0026AD58 48 0F 44 11 */ bl _restgpr_29
+/* 8026DE1C 0026AD5C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8026DE20 0026AD60 7C 08 03 A6 */ mtlr r0
+/* 8026DE24 0026AD64 38 21 00 30 */ addi r1, r1, 0x30
+/* 8026DE28 0026AD68 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026DE2C.s b/include/SComponent/c_m3d/asm/func_8026DE2C.s
new file mode 100644
index 0000000000..11bb646f80
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026DE2C.s
@@ -0,0 +1,205 @@
+/* 8026DE2C 0026AD6C 94 21 FF A0 */ stwu r1, -0x60(r1)
+/* 8026DE30 0026AD70 7C 08 02 A6 */ mflr r0
+/* 8026DE34 0026AD74 90 01 00 64 */ stw r0, 0x64(r1)
+/* 8026DE38 0026AD78 DB E1 00 50 */ stfd f31, 0x50(r1)
+/* 8026DE3C 0026AD7C F3 E1 00 58 */ psq_st f31, 88(r1), 0, 0
+/* 8026DE40 0026AD80 DB C1 00 40 */ stfd f30, 0x40(r1)
+/* 8026DE44 0026AD84 F3 C1 00 48 */ psq_st f30, 72(r1), 0, 0
+/* 8026DE48 0026AD88 39 61 00 40 */ addi r11, r1, 0x40
+/* 8026DE4C 0026AD8C 48 0F 43 91 */ bl _savegpr_29
+/* 8026DE50 0026AD90 7C 7D 1B 78 */ mr r29, r3
+/* 8026DE54 0026AD94 7C 9E 23 78 */ mr r30, r4
+/* 8026DE58 0026AD98 7C BF 2B 78 */ mr r31, r5
+/* 8026DE5C 0026AD9C 38 9E 00 14 */ addi r4, r30, 0x14
+/* 8026DE60 0026ADA0 48 0D 93 35 */ bl PSVECDotProduct
+/* 8026DE64 0026ADA4 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 8026DE68 0026ADA8 EF E0 08 2A */ fadds f31, f0, f1
+/* 8026DE6C 0026ADAC 7F A3 EB 78 */ mr r3, r29
+/* 8026DE70 0026ADB0 38 9E 00 20 */ addi r4, r30, 0x20
+/* 8026DE74 0026ADB4 48 0D 93 21 */ bl PSVECDotProduct
+/* 8026DE78 0026ADB8 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 8026DE7C 0026ADBC EF C0 08 2A */ fadds f30, f0, f1
+/* 8026DE80 0026ADC0 7F A3 EB 78 */ mr r3, r29
+/* 8026DE84 0026ADC4 38 9E 00 2C */ addi r4, r30, 0x2c
+/* 8026DE88 0026ADC8 48 0D 93 0D */ bl PSVECDotProduct
+/* 8026DE8C 0026ADCC C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 8026DE90 0026ADD0 EC 20 08 2A */ fadds f1, f0, f1
+/* 8026DE94 0026ADD4 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026DE98 0026ADD8 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026DE9C 0026ADDC 40 81 00 14 */ ble lbl_8026DEB0
+/* 8026DEA0 0026ADE0 FC 1E 00 40 */ fcmpo cr0, f30, f0
+/* 8026DEA4 0026ADE4 40 81 00 0C */ ble lbl_8026DEB0
+/* 8026DEA8 0026ADE8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026DEAC 0026ADEC 41 81 00 20 */ bgt lbl_8026DECC
+lbl_8026DEB0:
+/* 8026DEB0 0026ADF0 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026DEB4 0026ADF4 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026DEB8 0026ADF8 40 80 00 1C */ bge lbl_8026DED4
+/* 8026DEBC 0026ADFC FC 1E 00 40 */ fcmpo cr0, f30, f0
+/* 8026DEC0 0026AE00 40 80 00 14 */ bge lbl_8026DED4
+/* 8026DEC4 0026AE04 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026DEC8 0026AE08 40 80 00 0C */ bge lbl_8026DED4
+lbl_8026DECC:
+/* 8026DECC 0026AE0C 38 60 00 00 */ li r3, 0
+/* 8026DED0 0026AE10 48 00 02 34 */ b lbl_8026E104
+lbl_8026DED4:
+/* 8026DED4 0026AE14 7F C3 F3 78 */ mr r3, r30
+/* 8026DED8 0026AE18 38 9D 00 14 */ addi r4, r29, 0x14
+/* 8026DEDC 0026AE1C 48 0D 92 B9 */ bl PSVECDotProduct
+/* 8026DEE0 0026AE20 C0 1E 00 0C */ lfs f0, 0xc(r30)
+/* 8026DEE4 0026AE24 EF C0 08 2A */ fadds f30, f0, f1
+/* 8026DEE8 0026AE28 7F C3 F3 78 */ mr r3, r30
+/* 8026DEEC 0026AE2C 38 9D 00 20 */ addi r4, r29, 0x20
+/* 8026DEF0 0026AE30 48 0D 92 A5 */ bl PSVECDotProduct
+/* 8026DEF4 0026AE34 C0 1E 00 0C */ lfs f0, 0xc(r30)
+/* 8026DEF8 0026AE38 EF E0 08 2A */ fadds f31, f0, f1
+/* 8026DEFC 0026AE3C 7F C3 F3 78 */ mr r3, r30
+/* 8026DF00 0026AE40 38 9D 00 2C */ addi r4, r29, 0x2c
+/* 8026DF04 0026AE44 48 0D 92 91 */ bl PSVECDotProduct
+/* 8026DF08 0026AE48 C0 1E 00 0C */ lfs f0, 0xc(r30)
+/* 8026DF0C 0026AE4C EC 20 08 2A */ fadds f1, f0, f1
+/* 8026DF10 0026AE50 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026DF14 0026AE54 FC 1E 00 40 */ fcmpo cr0, f30, f0
+/* 8026DF18 0026AE58 40 81 00 14 */ ble lbl_8026DF2C
+/* 8026DF1C 0026AE5C FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026DF20 0026AE60 40 81 00 0C */ ble lbl_8026DF2C
+/* 8026DF24 0026AE64 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026DF28 0026AE68 41 81 00 20 */ bgt lbl_8026DF48
+lbl_8026DF2C:
+/* 8026DF2C 0026AE6C C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026DF30 0026AE70 FC 1E 00 40 */ fcmpo cr0, f30, f0
+/* 8026DF34 0026AE74 40 80 00 1C */ bge lbl_8026DF50
+/* 8026DF38 0026AE78 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026DF3C 0026AE7C 40 80 00 14 */ bge lbl_8026DF50
+/* 8026DF40 0026AE80 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026DF44 0026AE84 40 80 00 0C */ bge lbl_8026DF50
+lbl_8026DF48:
+/* 8026DF48 0026AE88 38 60 00 00 */ li r3, 0
+/* 8026DF4C 0026AE8C 48 00 01 B8 */ b lbl_8026E104
+lbl_8026DF50:
+/* 8026DF50 0026AE90 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026DF54 0026AE94 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026DF58 0026AE98 90 01 00 20 */ stw r0, 0x20(r1)
+/* 8026DF5C 0026AE9C 38 61 00 08 */ addi r3, r1, 8
+/* 8026DF60 0026AEA0 38 9E 00 14 */ addi r4, r30, 0x14
+/* 8026DF64 0026AEA4 38 BE 00 20 */ addi r5, r30, 0x20
+/* 8026DF68 0026AEA8 48 00 13 B5 */ bl SetStartEnd__8cM3dGLinFRC3VecRC3Vec
+/* 8026DF6C 0026AEAC 38 61 00 08 */ addi r3, r1, 8
+/* 8026DF70 0026AEB0 7F A4 EB 78 */ mr r4, r29
+/* 8026DF74 0026AEB4 7F E5 FB 78 */ mr r5, r31
+/* 8026DF78 0026AEB8 38 C0 00 00 */ li r6, 0
+/* 8026DF7C 0026AEBC 38 E0 00 00 */ li r7, 0
+/* 8026DF80 0026AEC0 4B FF D1 25 */ bl cM3d_Cross_LinTri__FPC8cM3dGLinPC8cM3dGTriP3Vecbb
+/* 8026DF84 0026AEC4 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026DF88 0026AEC8 41 82 00 18 */ beq lbl_8026DFA0
+/* 8026DF8C 0026AECC 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026DF90 0026AED0 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026DF94 0026AED4 90 01 00 20 */ stw r0, 0x20(r1)
+/* 8026DF98 0026AED8 38 60 00 01 */ li r3, 1
+/* 8026DF9C 0026AEDC 48 00 01 68 */ b lbl_8026E104
+lbl_8026DFA0:
+/* 8026DFA0 0026AEE0 38 61 00 08 */ addi r3, r1, 8
+/* 8026DFA4 0026AEE4 38 9E 00 20 */ addi r4, r30, 0x20
+/* 8026DFA8 0026AEE8 38 BE 00 2C */ addi r5, r30, 0x2c
+/* 8026DFAC 0026AEEC 48 00 13 71 */ bl SetStartEnd__8cM3dGLinFRC3VecRC3Vec
+/* 8026DFB0 0026AEF0 38 61 00 08 */ addi r3, r1, 8
+/* 8026DFB4 0026AEF4 7F A4 EB 78 */ mr r4, r29
+/* 8026DFB8 0026AEF8 7F E5 FB 78 */ mr r5, r31
+/* 8026DFBC 0026AEFC 38 C0 00 00 */ li r6, 0
+/* 8026DFC0 0026AF00 38 E0 00 00 */ li r7, 0
+/* 8026DFC4 0026AF04 4B FF D0 E1 */ bl cM3d_Cross_LinTri__FPC8cM3dGLinPC8cM3dGTriP3Vecbb
+/* 8026DFC8 0026AF08 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026DFCC 0026AF0C 41 82 00 18 */ beq lbl_8026DFE4
+/* 8026DFD0 0026AF10 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026DFD4 0026AF14 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026DFD8 0026AF18 90 01 00 20 */ stw r0, 0x20(r1)
+/* 8026DFDC 0026AF1C 38 60 00 01 */ li r3, 1
+/* 8026DFE0 0026AF20 48 00 01 24 */ b lbl_8026E104
+lbl_8026DFE4:
+/* 8026DFE4 0026AF24 38 61 00 08 */ addi r3, r1, 8
+/* 8026DFE8 0026AF28 38 9E 00 14 */ addi r4, r30, 0x14
+/* 8026DFEC 0026AF2C 38 BE 00 20 */ addi r5, r30, 0x20
+/* 8026DFF0 0026AF30 48 00 13 2D */ bl SetStartEnd__8cM3dGLinFRC3VecRC3Vec
+/* 8026DFF4 0026AF34 38 61 00 08 */ addi r3, r1, 8
+/* 8026DFF8 0026AF38 7F A4 EB 78 */ mr r4, r29
+/* 8026DFFC 0026AF3C 7F E5 FB 78 */ mr r5, r31
+/* 8026E000 0026AF40 38 C0 00 00 */ li r6, 0
+/* 8026E004 0026AF44 38 E0 00 00 */ li r7, 0
+/* 8026E008 0026AF48 4B FF D0 9D */ bl cM3d_Cross_LinTri__FPC8cM3dGLinPC8cM3dGTriP3Vecbb
+/* 8026E00C 0026AF4C 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026E010 0026AF50 41 82 00 18 */ beq lbl_8026E028
+/* 8026E014 0026AF54 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026E018 0026AF58 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026E01C 0026AF5C 90 01 00 20 */ stw r0, 0x20(r1)
+/* 8026E020 0026AF60 38 60 00 01 */ li r3, 1
+/* 8026E024 0026AF64 48 00 00 E0 */ b lbl_8026E104
+lbl_8026E028:
+/* 8026E028 0026AF68 38 61 00 08 */ addi r3, r1, 8
+/* 8026E02C 0026AF6C 38 9D 00 14 */ addi r4, r29, 0x14
+/* 8026E030 0026AF70 38 BD 00 20 */ addi r5, r29, 0x20
+/* 8026E034 0026AF74 48 00 12 E9 */ bl SetStartEnd__8cM3dGLinFRC3VecRC3Vec
+/* 8026E038 0026AF78 38 61 00 08 */ addi r3, r1, 8
+/* 8026E03C 0026AF7C 7F C4 F3 78 */ mr r4, r30
+/* 8026E040 0026AF80 7F E5 FB 78 */ mr r5, r31
+/* 8026E044 0026AF84 38 C0 00 00 */ li r6, 0
+/* 8026E048 0026AF88 38 E0 00 00 */ li r7, 0
+/* 8026E04C 0026AF8C 4B FF D0 59 */ bl cM3d_Cross_LinTri__FPC8cM3dGLinPC8cM3dGTriP3Vecbb
+/* 8026E050 0026AF90 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026E054 0026AF94 41 82 00 18 */ beq lbl_8026E06C
+/* 8026E058 0026AF98 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026E05C 0026AF9C 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026E060 0026AFA0 90 01 00 20 */ stw r0, 0x20(r1)
+/* 8026E064 0026AFA4 38 60 00 01 */ li r3, 1
+/* 8026E068 0026AFA8 48 00 00 9C */ b lbl_8026E104
+lbl_8026E06C:
+/* 8026E06C 0026AFAC 38 61 00 08 */ addi r3, r1, 8
+/* 8026E070 0026AFB0 38 9D 00 20 */ addi r4, r29, 0x20
+/* 8026E074 0026AFB4 38 BD 00 2C */ addi r5, r29, 0x2c
+/* 8026E078 0026AFB8 48 00 12 A5 */ bl SetStartEnd__8cM3dGLinFRC3VecRC3Vec
+/* 8026E07C 0026AFBC 38 61 00 08 */ addi r3, r1, 8
+/* 8026E080 0026AFC0 7F C4 F3 78 */ mr r4, r30
+/* 8026E084 0026AFC4 7F E5 FB 78 */ mr r5, r31
+/* 8026E088 0026AFC8 38 C0 00 00 */ li r6, 0
+/* 8026E08C 0026AFCC 38 E0 00 00 */ li r7, 0
+/* 8026E090 0026AFD0 4B FF D0 15 */ bl cM3d_Cross_LinTri__FPC8cM3dGLinPC8cM3dGTriP3Vecbb
+/* 8026E094 0026AFD4 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026E098 0026AFD8 41 82 00 18 */ beq lbl_8026E0B0
+/* 8026E09C 0026AFDC 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026E0A0 0026AFE0 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026E0A4 0026AFE4 90 01 00 20 */ stw r0, 0x20(r1)
+/* 8026E0A8 0026AFE8 38 60 00 01 */ li r3, 1
+/* 8026E0AC 0026AFEC 48 00 00 58 */ b lbl_8026E104
+lbl_8026E0B0:
+/* 8026E0B0 0026AFF0 38 61 00 08 */ addi r3, r1, 8
+/* 8026E0B4 0026AFF4 38 9D 00 14 */ addi r4, r29, 0x14
+/* 8026E0B8 0026AFF8 38 BD 00 20 */ addi r5, r29, 0x20
+/* 8026E0BC 0026AFFC 48 00 12 61 */ bl SetStartEnd__8cM3dGLinFRC3VecRC3Vec
+/* 8026E0C0 0026B000 38 61 00 08 */ addi r3, r1, 8
+/* 8026E0C4 0026B004 7F C4 F3 78 */ mr r4, r30
+/* 8026E0C8 0026B008 7F E5 FB 78 */ mr r5, r31
+/* 8026E0CC 0026B00C 38 C0 00 00 */ li r6, 0
+/* 8026E0D0 0026B010 38 E0 00 00 */ li r7, 0
+/* 8026E0D4 0026B014 4B FF CF D1 */ bl cM3d_Cross_LinTri__FPC8cM3dGLinPC8cM3dGTriP3Vecbb
+/* 8026E0D8 0026B018 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026E0DC 0026B01C 41 82 00 18 */ beq lbl_8026E0F4
+/* 8026E0E0 0026B020 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026E0E4 0026B024 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026E0E8 0026B028 90 01 00 20 */ stw r0, 0x20(r1)
+/* 8026E0EC 0026B02C 38 60 00 01 */ li r3, 1
+/* 8026E0F0 0026B030 48 00 00 14 */ b lbl_8026E104
+lbl_8026E0F4:
+/* 8026E0F4 0026B034 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026E0F8 0026B038 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026E0FC 0026B03C 90 01 00 20 */ stw r0, 0x20(r1)
+/* 8026E100 0026B040 38 60 00 00 */ li r3, 0
+lbl_8026E104:
+/* 8026E104 0026B044 E3 E1 00 58 */ psq_l f31, 88(r1), 0, 0
+/* 8026E108 0026B048 CB E1 00 50 */ lfd f31, 0x50(r1)
+/* 8026E10C 0026B04C E3 C1 00 48 */ psq_l f30, 72(r1), 0, 0
+/* 8026E110 0026B050 CB C1 00 40 */ lfd f30, 0x40(r1)
+/* 8026E114 0026B054 39 61 00 40 */ addi r11, r1, 0x40
+/* 8026E118 0026B058 48 0F 41 11 */ bl _restgpr_29
+/* 8026E11C 0026B05C 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 8026E120 0026B060 7C 08 03 A6 */ mtlr r0
+/* 8026E124 0026B064 38 21 00 60 */ addi r1, r1, 0x60
+/* 8026E128 0026B068 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026E12C.s b/include/SComponent/c_m3d/asm/func_8026E12C.s
new file mode 100644
index 0000000000..267f2c67ad
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026E12C.s
@@ -0,0 +1,252 @@
+/* 8026E12C 0026B06C 94 21 FF 50 */ stwu r1, -0xb0(r1)
+/* 8026E130 0026B070 7C 08 02 A6 */ mflr r0
+/* 8026E134 0026B074 90 01 00 B4 */ stw r0, 0xb4(r1)
+/* 8026E138 0026B078 DB E1 00 A0 */ stfd f31, 0xa0(r1)
+/* 8026E13C 0026B07C F3 E1 00 A8 */ psq_st f31, 168(r1), 0, 0
+/* 8026E140 0026B080 39 61 00 A0 */ addi r11, r1, 0xa0
+/* 8026E144 0026B084 48 0F 40 99 */ bl _savegpr_29
+/* 8026E148 0026B088 7C 7D 1B 78 */ mr r29, r3
+/* 8026E14C 0026B08C 7C 9E 23 78 */ mr r30, r4
+/* 8026E150 0026B090 7C BF 2B 78 */ mr r31, r5
+/* 8026E154 0026B094 3C 60 80 3A */ lis r3, lbl_803A7904@ha
+/* 8026E158 0026B098 38 03 79 04 */ addi r0, r3, lbl_803A7904@l
+/* 8026E15C 0026B09C 90 01 00 84 */ stw r0, 0x84(r1)
+/* 8026E160 0026B0A0 38 61 00 74 */ addi r3, r1, 0x74
+/* 8026E164 0026B0A4 7F A4 EB 78 */ mr r4, r29
+/* 8026E168 0026B0A8 48 00 14 E1 */ bl SetC__8cM3dGSphFRC4cXyz
+/* 8026E16C 0026B0AC 38 61 00 74 */ addi r3, r1, 0x74
+/* 8026E170 0026B0B0 C0 3D 00 1C */ lfs f1, 0x1c(r29)
+/* 8026E174 0026B0B4 48 00 15 95 */ bl SetR__8cM3dGSphFf
+/* 8026E178 0026B0B8 38 61 00 74 */ addi r3, r1, 0x74
+/* 8026E17C 0026B0BC 7F C4 F3 78 */ mr r4, r30
+/* 8026E180 0026B0C0 7F E5 FB 78 */ mr r5, r31
+/* 8026E184 0026B0C4 4B FF DD 81 */ bl cM3d_Cross_SphTri__FPC8cM3dGSphPC8cM3dGTriP3Vec
+/* 8026E188 0026B0C8 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026E18C 0026B0CC 41 82 00 18 */ beq lbl_8026E1A4
+/* 8026E190 0026B0D0 3C 60 80 3A */ lis r3, lbl_803A7904@ha
+/* 8026E194 0026B0D4 38 03 79 04 */ addi r0, r3, lbl_803A7904@l
+/* 8026E198 0026B0D8 90 01 00 84 */ stw r0, 0x84(r1)
+/* 8026E19C 0026B0DC 38 60 00 01 */ li r3, 1
+/* 8026E1A0 0026B0E0 48 00 03 3C */ b lbl_8026E4DC
+lbl_8026E1A4:
+/* 8026E1A4 0026B0E4 38 61 00 74 */ addi r3, r1, 0x74
+/* 8026E1A8 0026B0E8 38 9D 00 0C */ addi r4, r29, 0xc
+/* 8026E1AC 0026B0EC 48 00 14 9D */ bl SetC__8cM3dGSphFRC4cXyz
+/* 8026E1B0 0026B0F0 38 61 00 74 */ addi r3, r1, 0x74
+/* 8026E1B4 0026B0F4 C0 3D 00 1C */ lfs f1, 0x1c(r29)
+/* 8026E1B8 0026B0F8 48 00 15 51 */ bl SetR__8cM3dGSphFf
+/* 8026E1BC 0026B0FC 38 61 00 74 */ addi r3, r1, 0x74
+/* 8026E1C0 0026B100 7F C4 F3 78 */ mr r4, r30
+/* 8026E1C4 0026B104 7F E5 FB 78 */ mr r5, r31
+/* 8026E1C8 0026B108 4B FF DD 3D */ bl cM3d_Cross_SphTri__FPC8cM3dGSphPC8cM3dGTriP3Vec
+/* 8026E1CC 0026B10C 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026E1D0 0026B110 41 82 00 18 */ beq lbl_8026E1E8
+/* 8026E1D4 0026B114 3C 60 80 3A */ lis r3, lbl_803A7904@ha
+/* 8026E1D8 0026B118 38 03 79 04 */ addi r0, r3, lbl_803A7904@l
+/* 8026E1DC 0026B11C 90 01 00 84 */ stw r0, 0x84(r1)
+/* 8026E1E0 0026B120 38 60 00 01 */ li r3, 1
+/* 8026E1E4 0026B124 48 00 02 F8 */ b lbl_8026E4DC
+lbl_8026E1E8:
+/* 8026E1E8 0026B128 7F A3 EB 78 */ mr r3, r29
+/* 8026E1EC 0026B12C 7F C4 F3 78 */ mr r4, r30
+/* 8026E1F0 0026B130 7F E5 FB 78 */ mr r5, r31
+/* 8026E1F4 0026B134 38 C0 00 01 */ li r6, 1
+/* 8026E1F8 0026B138 38 E0 00 01 */ li r7, 1
+/* 8026E1FC 0026B13C 4B FF AD 39 */ bl cM3d_Cross_LinPla__FPC8cM3dGLinPC8cM3dGPlaP3Vecbb
+/* 8026E200 0026B140 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026E204 0026B144 40 82 00 18 */ bne lbl_8026E21C
+/* 8026E208 0026B148 3C 60 80 3A */ lis r3, lbl_803A7904@ha
+/* 8026E20C 0026B14C 38 03 79 04 */ addi r0, r3, lbl_803A7904@l
+/* 8026E210 0026B150 90 01 00 84 */ stw r0, 0x84(r1)
+/* 8026E214 0026B154 38 60 00 00 */ li r3, 0
+/* 8026E218 0026B158 48 00 02 C4 */ b lbl_8026E4DC
+lbl_8026E21C:
+/* 8026E21C 0026B15C 7F C3 F3 78 */ mr r3, r30
+/* 8026E220 0026B160 7F E4 FB 78 */ mr r4, r31
+/* 8026E224 0026B164 4B FF CF 59 */ bl cM3d_Cross_LinTri_Easy__FPC8cM3dGTriPC3Vec
+/* 8026E228 0026B168 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026E22C 0026B16C 41 82 00 18 */ beq lbl_8026E244
+/* 8026E230 0026B170 3C 60 80 3A */ lis r3, lbl_803A7904@ha
+/* 8026E234 0026B174 38 03 79 04 */ addi r0, r3, lbl_803A7904@l
+/* 8026E238 0026B178 90 01 00 84 */ stw r0, 0x84(r1)
+/* 8026E23C 0026B17C 38 60 00 01 */ li r3, 1
+/* 8026E240 0026B180 48 00 02 9C */ b lbl_8026E4DC
+lbl_8026E244:
+/* 8026E244 0026B184 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026E248 0026B188 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026E24C 0026B18C 90 01 00 70 */ stw r0, 0x70(r1)
+/* 8026E250 0026B190 38 61 00 58 */ addi r3, r1, 0x58
+/* 8026E254 0026B194 38 9E 00 14 */ addi r4, r30, 0x14
+/* 8026E258 0026B198 38 BE 00 20 */ addi r5, r30, 0x20
+/* 8026E25C 0026B19C 48 00 10 C1 */ bl SetStartEnd__8cM3dGLinFRC3VecRC3Vec
+/* 8026E260 0026B1A0 7F A3 EB 78 */ mr r3, r29
+/* 8026E264 0026B1A4 38 81 00 58 */ addi r4, r1, 0x58
+/* 8026E268 0026B1A8 38 A1 00 0C */ addi r5, r1, 0xc
+/* 8026E26C 0026B1AC 38 C1 00 08 */ addi r6, r1, 8
+/* 8026E270 0026B1B0 4B FF A9 ED */ bl cM3d_Check_LinLin__FPC8cM3dGLinPC8cM3dGLinPfPf
+/* 8026E274 0026B1B4 2C 03 00 02 */ cmpwi r3, 2
+/* 8026E278 0026B1B8 41 80 00 A8 */ blt lbl_8026E320
+/* 8026E27C 0026B1BC C0 21 00 0C */ lfs f1, 0xc(r1)
+/* 8026E280 0026B1C0 C0 42 B7 18 */ lfs f2, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026E284 0026B1C4 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 8026E288 0026B1C8 40 81 00 98 */ ble lbl_8026E320
+/* 8026E28C 0026B1CC C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 8026E290 0026B1D0 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026E294 0026B1D4 40 80 00 8C */ bge lbl_8026E320
+/* 8026E298 0026B1D8 C3 E1 00 08 */ lfs f31, 8(r1)
+/* 8026E29C 0026B1DC FC 1F 10 40 */ fcmpo cr0, f31, f2
+/* 8026E2A0 0026B1E0 40 81 00 80 */ ble lbl_8026E320
+/* 8026E2A4 0026B1E4 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026E2A8 0026B1E8 40 80 00 78 */ bge lbl_8026E320
+/* 8026E2AC 0026B1EC 7F A3 EB 78 */ mr r3, r29
+/* 8026E2B0 0026B1F0 38 81 00 40 */ addi r4, r1, 0x40
+/* 8026E2B4 0026B1F4 48 00 10 9D */ bl CalcPos__8cM3dGLinCFP3Vecf
+/* 8026E2B8 0026B1F8 38 61 00 58 */ addi r3, r1, 0x58
+/* 8026E2BC 0026B1FC 38 81 00 4C */ addi r4, r1, 0x4c
+/* 8026E2C0 0026B200 FC 20 F8 90 */ fmr f1, f31
+/* 8026E2C4 0026B204 48 00 10 8D */ bl CalcPos__8cM3dGLinCFP3Vecf
+/* 8026E2C8 0026B208 38 61 00 40 */ addi r3, r1, 0x40
+/* 8026E2CC 0026B20C 38 81 00 4C */ addi r4, r1, 0x4c
+/* 8026E2D0 0026B210 7F E5 FB 78 */ mr r5, r31
+/* 8026E2D4 0026B214 48 0D 8D BD */ bl PSVECAdd
+/* 8026E2D8 0026B218 7F E3 FB 78 */ mr r3, r31
+/* 8026E2DC 0026B21C 7F E4 FB 78 */ mr r4, r31
+/* 8026E2E0 0026B220 C0 22 B7 C4 */ lfs f1, lbl_804551C4-_SDA2_BASE_(r2)
+/* 8026E2E4 0026B224 48 0D 8D F5 */ bl PSVECScale
+/* 8026E2E8 0026B228 38 61 00 40 */ addi r3, r1, 0x40
+/* 8026E2EC 0026B22C 38 81 00 4C */ addi r4, r1, 0x4c
+/* 8026E2F0 0026B230 48 0D 90 D5 */ bl PSVECDistance
+/* 8026E2F4 0026B234 C0 1D 00 1C */ lfs f0, 0x1c(r29)
+/* 8026E2F8 0026B238 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026E2FC 0026B23C 40 80 00 24 */ bge lbl_8026E320
+/* 8026E300 0026B240 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026E304 0026B244 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026E308 0026B248 90 01 00 70 */ stw r0, 0x70(r1)
+/* 8026E30C 0026B24C 3C 60 80 3A */ lis r3, lbl_803A7904@ha
+/* 8026E310 0026B250 38 03 79 04 */ addi r0, r3, lbl_803A7904@l
+/* 8026E314 0026B254 90 01 00 84 */ stw r0, 0x84(r1)
+/* 8026E318 0026B258 38 60 00 01 */ li r3, 1
+/* 8026E31C 0026B25C 48 00 01 C0 */ b lbl_8026E4DC
+lbl_8026E320:
+/* 8026E320 0026B260 38 61 00 58 */ addi r3, r1, 0x58
+/* 8026E324 0026B264 38 9E 00 20 */ addi r4, r30, 0x20
+/* 8026E328 0026B268 38 BE 00 2C */ addi r5, r30, 0x2c
+/* 8026E32C 0026B26C 48 00 0F F1 */ bl SetStartEnd__8cM3dGLinFRC3VecRC3Vec
+/* 8026E330 0026B270 7F A3 EB 78 */ mr r3, r29
+/* 8026E334 0026B274 38 81 00 58 */ addi r4, r1, 0x58
+/* 8026E338 0026B278 38 A1 00 0C */ addi r5, r1, 0xc
+/* 8026E33C 0026B27C 38 C1 00 08 */ addi r6, r1, 8
+/* 8026E340 0026B280 4B FF A9 1D */ bl cM3d_Check_LinLin__FPC8cM3dGLinPC8cM3dGLinPfPf
+/* 8026E344 0026B284 2C 03 00 02 */ cmpwi r3, 2
+/* 8026E348 0026B288 41 80 00 A8 */ blt lbl_8026E3F0
+/* 8026E34C 0026B28C C0 21 00 0C */ lfs f1, 0xc(r1)
+/* 8026E350 0026B290 C0 42 B7 18 */ lfs f2, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026E354 0026B294 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 8026E358 0026B298 40 81 00 98 */ ble lbl_8026E3F0
+/* 8026E35C 0026B29C C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 8026E360 0026B2A0 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026E364 0026B2A4 40 80 00 8C */ bge lbl_8026E3F0
+/* 8026E368 0026B2A8 C3 E1 00 08 */ lfs f31, 8(r1)
+/* 8026E36C 0026B2AC FC 1F 10 40 */ fcmpo cr0, f31, f2
+/* 8026E370 0026B2B0 40 81 00 80 */ ble lbl_8026E3F0
+/* 8026E374 0026B2B4 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026E378 0026B2B8 40 80 00 78 */ bge lbl_8026E3F0
+/* 8026E37C 0026B2BC 7F A3 EB 78 */ mr r3, r29
+/* 8026E380 0026B2C0 38 81 00 28 */ addi r4, r1, 0x28
+/* 8026E384 0026B2C4 48 00 0F CD */ bl CalcPos__8cM3dGLinCFP3Vecf
+/* 8026E388 0026B2C8 38 61 00 58 */ addi r3, r1, 0x58
+/* 8026E38C 0026B2CC 38 81 00 34 */ addi r4, r1, 0x34
+/* 8026E390 0026B2D0 FC 20 F8 90 */ fmr f1, f31
+/* 8026E394 0026B2D4 48 00 0F BD */ bl CalcPos__8cM3dGLinCFP3Vecf
+/* 8026E398 0026B2D8 38 61 00 28 */ addi r3, r1, 0x28
+/* 8026E39C 0026B2DC 38 81 00 34 */ addi r4, r1, 0x34
+/* 8026E3A0 0026B2E0 7F E5 FB 78 */ mr r5, r31
+/* 8026E3A4 0026B2E4 48 0D 8C ED */ bl PSVECAdd
+/* 8026E3A8 0026B2E8 7F E3 FB 78 */ mr r3, r31
+/* 8026E3AC 0026B2EC 7F E4 FB 78 */ mr r4, r31
+/* 8026E3B0 0026B2F0 C0 22 B7 C4 */ lfs f1, lbl_804551C4-_SDA2_BASE_(r2)
+/* 8026E3B4 0026B2F4 48 0D 8D 25 */ bl PSVECScale
+/* 8026E3B8 0026B2F8 38 61 00 28 */ addi r3, r1, 0x28
+/* 8026E3BC 0026B2FC 38 81 00 34 */ addi r4, r1, 0x34
+/* 8026E3C0 0026B300 48 0D 90 05 */ bl PSVECDistance
+/* 8026E3C4 0026B304 C0 1D 00 1C */ lfs f0, 0x1c(r29)
+/* 8026E3C8 0026B308 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026E3CC 0026B30C 40 80 00 24 */ bge lbl_8026E3F0
+/* 8026E3D0 0026B310 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026E3D4 0026B314 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026E3D8 0026B318 90 01 00 70 */ stw r0, 0x70(r1)
+/* 8026E3DC 0026B31C 3C 60 80 3A */ lis r3, lbl_803A7904@ha
+/* 8026E3E0 0026B320 38 03 79 04 */ addi r0, r3, lbl_803A7904@l
+/* 8026E3E4 0026B324 90 01 00 84 */ stw r0, 0x84(r1)
+/* 8026E3E8 0026B328 38 60 00 01 */ li r3, 1
+/* 8026E3EC 0026B32C 48 00 00 F0 */ b lbl_8026E4DC
+lbl_8026E3F0:
+/* 8026E3F0 0026B330 38 61 00 58 */ addi r3, r1, 0x58
+/* 8026E3F4 0026B334 38 9E 00 2C */ addi r4, r30, 0x2c
+/* 8026E3F8 0026B338 38 BE 00 14 */ addi r5, r30, 0x14
+/* 8026E3FC 0026B33C 48 00 0F 21 */ bl SetStartEnd__8cM3dGLinFRC3VecRC3Vec
+/* 8026E400 0026B340 7F A3 EB 78 */ mr r3, r29
+/* 8026E404 0026B344 38 81 00 58 */ addi r4, r1, 0x58
+/* 8026E408 0026B348 38 A1 00 0C */ addi r5, r1, 0xc
+/* 8026E40C 0026B34C 38 C1 00 08 */ addi r6, r1, 8
+/* 8026E410 0026B350 4B FF A8 4D */ bl cM3d_Check_LinLin__FPC8cM3dGLinPC8cM3dGLinPfPf
+/* 8026E414 0026B354 2C 03 00 02 */ cmpwi r3, 2
+/* 8026E418 0026B358 41 80 00 A8 */ blt lbl_8026E4C0
+/* 8026E41C 0026B35C C0 21 00 0C */ lfs f1, 0xc(r1)
+/* 8026E420 0026B360 C0 42 B7 18 */ lfs f2, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026E424 0026B364 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 8026E428 0026B368 40 81 00 98 */ ble lbl_8026E4C0
+/* 8026E42C 0026B36C C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2)
+/* 8026E430 0026B370 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026E434 0026B374 40 80 00 8C */ bge lbl_8026E4C0
+/* 8026E438 0026B378 C3 E1 00 08 */ lfs f31, 8(r1)
+/* 8026E43C 0026B37C FC 1F 10 40 */ fcmpo cr0, f31, f2
+/* 8026E440 0026B380 40 81 00 80 */ ble lbl_8026E4C0
+/* 8026E444 0026B384 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 8026E448 0026B388 40 80 00 78 */ bge lbl_8026E4C0
+/* 8026E44C 0026B38C 7F A3 EB 78 */ mr r3, r29
+/* 8026E450 0026B390 38 81 00 10 */ addi r4, r1, 0x10
+/* 8026E454 0026B394 48 00 0E FD */ bl CalcPos__8cM3dGLinCFP3Vecf
+/* 8026E458 0026B398 38 61 00 58 */ addi r3, r1, 0x58
+/* 8026E45C 0026B39C 38 81 00 1C */ addi r4, r1, 0x1c
+/* 8026E460 0026B3A0 FC 20 F8 90 */ fmr f1, f31
+/* 8026E464 0026B3A4 48 00 0E ED */ bl CalcPos__8cM3dGLinCFP3Vecf
+/* 8026E468 0026B3A8 38 61 00 10 */ addi r3, r1, 0x10
+/* 8026E46C 0026B3AC 38 81 00 1C */ addi r4, r1, 0x1c
+/* 8026E470 0026B3B0 7F E5 FB 78 */ mr r5, r31
+/* 8026E474 0026B3B4 48 0D 8C 1D */ bl PSVECAdd
+/* 8026E478 0026B3B8 7F E3 FB 78 */ mr r3, r31
+/* 8026E47C 0026B3BC 7F E4 FB 78 */ mr r4, r31
+/* 8026E480 0026B3C0 C0 22 B7 C4 */ lfs f1, lbl_804551C4-_SDA2_BASE_(r2)
+/* 8026E484 0026B3C4 48 0D 8C 55 */ bl PSVECScale
+/* 8026E488 0026B3C8 38 61 00 10 */ addi r3, r1, 0x10
+/* 8026E48C 0026B3CC 38 81 00 1C */ addi r4, r1, 0x1c
+/* 8026E490 0026B3D0 48 0D 8F 35 */ bl PSVECDistance
+/* 8026E494 0026B3D4 C0 1D 00 1C */ lfs f0, 0x1c(r29)
+/* 8026E498 0026B3D8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026E49C 0026B3DC 40 80 00 24 */ bge lbl_8026E4C0
+/* 8026E4A0 0026B3E0 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026E4A4 0026B3E4 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026E4A8 0026B3E8 90 01 00 70 */ stw r0, 0x70(r1)
+/* 8026E4AC 0026B3EC 3C 60 80 3A */ lis r3, lbl_803A7904@ha
+/* 8026E4B0 0026B3F0 38 03 79 04 */ addi r0, r3, lbl_803A7904@l
+/* 8026E4B4 0026B3F4 90 01 00 84 */ stw r0, 0x84(r1)
+/* 8026E4B8 0026B3F8 38 60 00 01 */ li r3, 1
+/* 8026E4BC 0026B3FC 48 00 00 20 */ b lbl_8026E4DC
+lbl_8026E4C0:
+/* 8026E4C0 0026B400 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026E4C4 0026B404 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026E4C8 0026B408 90 01 00 70 */ stw r0, 0x70(r1)
+/* 8026E4CC 0026B40C 3C 60 80 3A */ lis r3, lbl_803A7904@ha
+/* 8026E4D0 0026B410 38 03 79 04 */ addi r0, r3, lbl_803A7904@l
+/* 8026E4D4 0026B414 90 01 00 84 */ stw r0, 0x84(r1)
+/* 8026E4D8 0026B418 38 60 00 00 */ li r3, 0
+lbl_8026E4DC:
+/* 8026E4DC 0026B41C E3 E1 00 A8 */ psq_l f31, 168(r1), 0, 0
+/* 8026E4E0 0026B420 CB E1 00 A0 */ lfd f31, 0xa0(r1)
+/* 8026E4E4 0026B424 39 61 00 A0 */ addi r11, r1, 0xa0
+/* 8026E4E8 0026B428 48 0F 3D 41 */ bl _restgpr_29
+/* 8026E4EC 0026B42C 80 01 00 B4 */ lwz r0, 0xb4(r1)
+/* 8026E4F0 0026B430 7C 08 03 A6 */ mtlr r0
+/* 8026E4F4 0026B434 38 21 00 B0 */ addi r1, r1, 0xb0
+/* 8026E4F8 0026B438 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_m3d/asm/func_8026E4FC.s b/include/SComponent/c_m3d/asm/func_8026E4FC.s
new file mode 100644
index 0000000000..9867f78763
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026E4FC.s
@@ -0,0 +1,29 @@
+/* 8026E4FC 0026B43C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026E500 0026B440 7C 08 02 A6 */ mflr r0
+/* 8026E504 0026B444 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026E508 0026B448 39 61 00 20 */ addi r11, r1, 0x20
+/* 8026E50C 0026B44C 48 0F 3C D1 */ bl _savegpr_29
+/* 8026E510 0026B450 7C 7D 1B 78 */ mr r29, r3
+/* 8026E514 0026B454 7C 9E 23 78 */ mr r30, r4
+/* 8026E518 0026B458 7C BF 2B 78 */ mr r31, r5
+/* 8026E51C 0026B45C C0 03 00 08 */ lfs f0, 8(r3)
+/* 8026E520 0026B460 FC 20 00 50 */ fneg f1, f0
+/* 8026E524 0026B464 C0 03 00 04 */ lfs f0, 4(r3)
+/* 8026E528 0026B468 EC 21 00 32 */ fmuls f1, f1, f0
+/* 8026E52C 0026B46C C0 42 B7 38 */ lfs f2, lbl_80455138-_SDA2_BASE_(r2)
+/* 8026E530 0026B470 4B FF 91 45 */ bl cM_atan2s__Fff
+/* 8026E534 0026B474 7C 03 00 D0 */ neg r0, r3
+/* 8026E538 0026B478 B0 1E 00 00 */ sth r0, 0(r30)
+/* 8026E53C 0026B47C C0 1D 00 00 */ lfs f0, 0(r29)
+/* 8026E540 0026B480 FC 20 00 50 */ fneg f1, f0
+/* 8026E544 0026B484 C0 1D 00 04 */ lfs f0, 4(r29)
+/* 8026E548 0026B488 EC 21 00 32 */ fmuls f1, f1, f0
+/* 8026E54C 0026B48C C0 42 B7 38 */ lfs f2, lbl_80455138-_SDA2_BASE_(r2)
+/* 8026E550 0026B490 4B FF 91 25 */ bl cM_atan2s__Fff
+/* 8026E554 0026B494 B0 7F 00 00 */ sth r3, 0(r31)
+/* 8026E558 0026B498 39 61 00 20 */ addi r11, r1, 0x20
+/* 8026E55C 0026B49C 48 0F 3C CD */ bl _restgpr_29
+/* 8026E560 0026B4A0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026E564 0026B4A4 7C 08 03 A6 */ mtlr r0
+/* 8026E568 0026B4A8 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026E56C 0026B4AC 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026E570.s b/include/SComponent/c_m3d/asm/func_8026E570.s
new file mode 100644
index 0000000000..dc8395aab7
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026E570.s
@@ -0,0 +1,94 @@
+/* 8026E570 0026B4B0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026E574 0026B4B4 7C 08 02 A6 */ mflr r0
+/* 8026E578 0026B4B8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026E57C 0026B4BC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026E580 0026B4C0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026E584 0026B4C4 7C 7E 1B 78 */ mr r30, r3
+/* 8026E588 0026B4C8 7C 9F 23 78 */ mr r31, r4
+/* 8026E58C 0026B4CC C0 03 00 00 */ lfs f0, 0(r3)
+/* 8026E590 0026B4D0 EC 20 00 32 */ fmuls f1, f0, f0
+/* 8026E594 0026B4D4 C0 03 00 08 */ lfs f0, 8(r3)
+/* 8026E598 0026B4D8 EC 00 00 32 */ fmuls f0, f0, f0
+/* 8026E59C 0026B4DC EC 41 00 2A */ fadds f2, f1, f0
+/* 8026E5A0 0026B4E0 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026E5A4 0026B4E4 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 8026E5A8 0026B4E8 40 81 00 58 */ ble lbl_8026E600
+/* 8026E5AC 0026B4EC FC 00 10 34 */ frsqrte f0, f2
+/* 8026E5B0 0026B4F0 C8 82 B7 20 */ lfd f4, lbl_80455120-_SDA2_BASE_(r2)
+/* 8026E5B4 0026B4F4 FC 24 00 32 */ fmul f1, f4, f0
+/* 8026E5B8 0026B4F8 C8 62 B7 28 */ lfd f3, lbl_80455128-_SDA2_BASE_(r2)
+/* 8026E5BC 0026B4FC FC 00 00 32 */ fmul f0, f0, f0
+/* 8026E5C0 0026B500 FC 02 00 32 */ fmul f0, f2, f0
+/* 8026E5C4 0026B504 FC 03 00 28 */ fsub f0, f3, f0
+/* 8026E5C8 0026B508 FC 01 00 32 */ fmul f0, f1, f0
+/* 8026E5CC 0026B50C FC 24 00 32 */ fmul f1, f4, f0
+/* 8026E5D0 0026B510 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026E5D4 0026B514 FC 02 00 32 */ fmul f0, f2, f0
+/* 8026E5D8 0026B518 FC 03 00 28 */ fsub f0, f3, f0
+/* 8026E5DC 0026B51C FC 01 00 32 */ fmul f0, f1, f0
+/* 8026E5E0 0026B520 FC 24 00 32 */ fmul f1, f4, f0
+/* 8026E5E4 0026B524 FC 00 00 32 */ fmul f0, f0, f0
+/* 8026E5E8 0026B528 FC 02 00 32 */ fmul f0, f2, f0
+/* 8026E5EC 0026B52C FC 03 00 28 */ fsub f0, f3, f0
+/* 8026E5F0 0026B530 FC 01 00 32 */ fmul f0, f1, f0
+/* 8026E5F4 0026B534 FC 42 00 32 */ fmul f2, f2, f0
+/* 8026E5F8 0026B538 FC 40 10 18 */ frsp f2, f2
+/* 8026E5FC 0026B53C 48 00 00 88 */ b lbl_8026E684
+lbl_8026E600:
+/* 8026E600 0026B540 C8 02 B7 30 */ lfd f0, lbl_80455130-_SDA2_BASE_(r2)
+/* 8026E604 0026B544 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 8026E608 0026B548 40 80 00 10 */ bge lbl_8026E618
+/* 8026E60C 0026B54C 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026E610 0026B550 C0 43 0A E0 */ lfs f2, lbl_80450AE0@l(r3)
+/* 8026E614 0026B554 48 00 00 70 */ b lbl_8026E684
+lbl_8026E618:
+/* 8026E618 0026B558 D0 41 00 08 */ stfs f2, 8(r1)
+/* 8026E61C 0026B55C 80 81 00 08 */ lwz r4, 8(r1)
+/* 8026E620 0026B560 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
+/* 8026E624 0026B564 3C 00 7F 80 */ lis r0, 0x7f80
+/* 8026E628 0026B568 7C 03 00 00 */ cmpw r3, r0
+/* 8026E62C 0026B56C 41 82 00 14 */ beq lbl_8026E640
+/* 8026E630 0026B570 40 80 00 40 */ bge lbl_8026E670
+/* 8026E634 0026B574 2C 03 00 00 */ cmpwi r3, 0
+/* 8026E638 0026B578 41 82 00 20 */ beq lbl_8026E658
+/* 8026E63C 0026B57C 48 00 00 34 */ b lbl_8026E670
+lbl_8026E640:
+/* 8026E640 0026B580 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026E644 0026B584 41 82 00 0C */ beq lbl_8026E650
+/* 8026E648 0026B588 38 00 00 01 */ li r0, 1
+/* 8026E64C 0026B58C 48 00 00 28 */ b lbl_8026E674
+lbl_8026E650:
+/* 8026E650 0026B590 38 00 00 02 */ li r0, 2
+/* 8026E654 0026B594 48 00 00 20 */ b lbl_8026E674
+lbl_8026E658:
+/* 8026E658 0026B598 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 8026E65C 0026B59C 41 82 00 0C */ beq lbl_8026E668
+/* 8026E660 0026B5A0 38 00 00 05 */ li r0, 5
+/* 8026E664 0026B5A4 48 00 00 10 */ b lbl_8026E674
+lbl_8026E668:
+/* 8026E668 0026B5A8 38 00 00 03 */ li r0, 3
+/* 8026E66C 0026B5AC 48 00 00 08 */ b lbl_8026E674
+lbl_8026E670:
+/* 8026E670 0026B5B0 38 00 00 04 */ li r0, 4
+lbl_8026E674:
+/* 8026E674 0026B5B4 2C 00 00 01 */ cmpwi r0, 1
+/* 8026E678 0026B5B8 40 82 00 0C */ bne lbl_8026E684
+/* 8026E67C 0026B5BC 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 8026E680 0026B5C0 C0 43 0A E0 */ lfs f2, lbl_80450AE0@l(r3)
+lbl_8026E684:
+/* 8026E684 0026B5C4 C0 3E 00 04 */ lfs f1, 4(r30)
+/* 8026E688 0026B5C8 4B FF 8F ED */ bl cM_atan2s__Fff
+/* 8026E68C 0026B5CC 7C 03 00 D0 */ neg r0, r3
+/* 8026E690 0026B5D0 B0 1F 00 00 */ sth r0, 0(r31)
+/* 8026E694 0026B5D4 C0 3E 00 00 */ lfs f1, 0(r30)
+/* 8026E698 0026B5D8 C0 5E 00 08 */ lfs f2, 8(r30)
+/* 8026E69C 0026B5DC 4B FF 8F D9 */ bl cM_atan2s__Fff
+/* 8026E6A0 0026B5E0 B0 7F 00 02 */ sth r3, 2(r31)
+/* 8026E6A4 0026B5E4 38 00 00 00 */ li r0, 0
+/* 8026E6A8 0026B5E8 B0 1F 00 04 */ sth r0, 4(r31)
+/* 8026E6AC 0026B5EC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026E6B0 0026B5F0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026E6B4 0026B5F4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026E6B8 0026B5F8 7C 08 03 A6 */ mtlr r0
+/* 8026E6BC 0026B5FC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026E6C0 0026B600 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026E6C4.s b/include/SComponent/c_m3d/asm/func_8026E6C4.s
new file mode 100644
index 0000000000..4879a46882
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026E6C4.s
@@ -0,0 +1,11 @@
+/* 8026E6C4 0026B604 EC 42 01 F2 */ fmuls f2, f2, f7
+/* 8026E6C8 0026B608 EC 04 01 B2 */ fmuls f0, f4, f6
+/* 8026E6CC 0026B60C EC 02 00 28 */ fsubs f0, f2, f0
+/* 8026E6D0 0026B610 EC 00 28 24 */ fdivs f0, f0, f5
+/* 8026E6D4 0026B614 D0 03 00 00 */ stfs f0, 0(r3)
+/* 8026E6D8 0026B618 EC 43 01 B2 */ fmuls f2, f3, f6
+/* 8026E6DC 0026B61C EC 01 01 F2 */ fmuls f0, f1, f7
+/* 8026E6E0 0026B620 EC 02 00 28 */ fsubs f0, f2, f0
+/* 8026E6E4 0026B624 EC 00 28 24 */ fdivs f0, f0, f5
+/* 8026E6E8 0026B628 D0 04 00 00 */ stfs f0, 0(r4)
+/* 8026E6EC 0026B62C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026E6F0.s b/include/SComponent/c_m3d/asm/func_8026E6F0.s
new file mode 100644
index 0000000000..02bd84a3e8
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026E6F0.s
@@ -0,0 +1,114 @@
+/* 8026E6F0 0026B630 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8026E6F4 0026B634 7C 08 02 A6 */ mflr r0
+/* 8026E6F8 0026B638 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8026E6FC 0026B63C 39 61 00 30 */ addi r11, r1, 0x30
+/* 8026E700 0026B640 48 0F 3A DD */ bl _savegpr_29
+/* 8026E704 0026B644 7C 7D 1B 78 */ mr r29, r3
+/* 8026E708 0026B648 7C 9E 23 78 */ mr r30, r4
+/* 8026E70C 0026B64C 7C BF 2B 78 */ mr r31, r5
+/* 8026E710 0026B650 38 A1 00 08 */ addi r5, r1, 8
+/* 8026E714 0026B654 48 0D 8A A1 */ bl PSVECCrossProduct
+/* 8026E718 0026B658 C0 01 00 08 */ lfs f0, 8(r1)
+/* 8026E71C 0026B65C FC 00 02 10 */ fabs f0, f0
+/* 8026E720 0026B660 FC 00 00 18 */ frsp f0, f0
+/* 8026E724 0026B664 C0 2D 8C 00 */ lfs f1, lbl_80451180-_SDA_BASE_(r13)
+/* 8026E728 0026B668 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026E72C 0026B66C 40 80 00 34 */ bge lbl_8026E760
+/* 8026E730 0026B670 C0 01 00 0C */ lfs f0, 0xc(r1)
+/* 8026E734 0026B674 FC 00 02 10 */ fabs f0, f0
+/* 8026E738 0026B678 FC 00 00 18 */ frsp f0, f0
+/* 8026E73C 0026B67C FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026E740 0026B680 40 80 00 20 */ bge lbl_8026E760
+/* 8026E744 0026B684 C0 01 00 10 */ lfs f0, 0x10(r1)
+/* 8026E748 0026B688 FC 00 02 10 */ fabs f0, f0
+/* 8026E74C 0026B68C FC 00 00 18 */ frsp f0, f0
+/* 8026E750 0026B690 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026E754 0026B694 40 80 00 0C */ bge lbl_8026E760
+/* 8026E758 0026B698 38 60 00 00 */ li r3, 0
+/* 8026E75C 0026B69C 48 00 01 2C */ b lbl_8026E888
+lbl_8026E760:
+/* 8026E760 0026B6A0 C0 A1 00 08 */ lfs f5, 8(r1)
+/* 8026E764 0026B6A4 FC 00 2A 10 */ fabs f0, f5
+/* 8026E768 0026B6A8 FC 20 00 18 */ frsp f1, f0
+/* 8026E76C 0026B6AC C0 01 00 0C */ lfs f0, 0xc(r1)
+/* 8026E770 0026B6B0 FC 00 02 10 */ fabs f0, f0
+/* 8026E774 0026B6B4 FC 40 00 18 */ frsp f2, f0
+/* 8026E778 0026B6B8 C0 01 00 10 */ lfs f0, 0x10(r1)
+/* 8026E77C 0026B6BC FC 00 02 10 */ fabs f0, f0
+/* 8026E780 0026B6C0 FC 00 00 18 */ frsp f0, f0
+/* 8026E784 0026B6C4 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 8026E788 0026B6C8 4C 41 13 82 */ cror 2, 1, 2
+/* 8026E78C 0026B6CC 40 82 00 40 */ bne lbl_8026E7CC
+/* 8026E790 0026B6D0 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026E794 0026B6D4 4C 41 13 82 */ cror 2, 1, 2
+/* 8026E798 0026B6D8 40 82 00 34 */ bne lbl_8026E7CC
+/* 8026E79C 0026B6DC C0 3D 00 04 */ lfs f1, 4(r29)
+/* 8026E7A0 0026B6E0 C0 5D 00 08 */ lfs f2, 8(r29)
+/* 8026E7A4 0026B6E4 C0 7E 00 04 */ lfs f3, 4(r30)
+/* 8026E7A8 0026B6E8 C0 9E 00 08 */ lfs f4, 8(r30)
+/* 8026E7AC 0026B6EC C0 DD 00 0C */ lfs f6, 0xc(r29)
+/* 8026E7B0 0026B6F0 C0 FE 00 0C */ lfs f7, 0xc(r30)
+/* 8026E7B4 0026B6F4 38 7F 00 04 */ addi r3, r31, 4
+/* 8026E7B8 0026B6F8 38 9F 00 08 */ addi r4, r31, 8
+/* 8026E7BC 0026B6FC 4B FF FF 09 */ bl cM3d_PlaneCrossLineProcWork__FfffffffPfPf
+/* 8026E7C0 0026B700 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026E7C4 0026B704 D0 1F 00 00 */ stfs f0, 0(r31)
+/* 8026E7C8 0026B708 48 00 00 80 */ b lbl_8026E848
+lbl_8026E7CC:
+/* 8026E7CC 0026B70C FC 02 08 40 */ fcmpo cr0, f2, f1
+/* 8026E7D0 0026B710 4C 41 13 82 */ cror 2, 1, 2
+/* 8026E7D4 0026B714 40 82 00 44 */ bne lbl_8026E818
+/* 8026E7D8 0026B718 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 8026E7DC 0026B71C 4C 41 13 82 */ cror 2, 1, 2
+/* 8026E7E0 0026B720 40 82 00 38 */ bne lbl_8026E818
+/* 8026E7E4 0026B724 C0 3D 00 08 */ lfs f1, 8(r29)
+/* 8026E7E8 0026B728 C0 5D 00 00 */ lfs f2, 0(r29)
+/* 8026E7EC 0026B72C C0 7E 00 08 */ lfs f3, 8(r30)
+/* 8026E7F0 0026B730 C0 9E 00 00 */ lfs f4, 0(r30)
+/* 8026E7F4 0026B734 C0 A1 00 0C */ lfs f5, 0xc(r1)
+/* 8026E7F8 0026B738 C0 DD 00 0C */ lfs f6, 0xc(r29)
+/* 8026E7FC 0026B73C C0 FE 00 0C */ lfs f7, 0xc(r30)
+/* 8026E800 0026B740 38 7F 00 08 */ addi r3, r31, 8
+/* 8026E804 0026B744 7F E4 FB 78 */ mr r4, r31
+/* 8026E808 0026B748 4B FF FE BD */ bl cM3d_PlaneCrossLineProcWork__FfffffffPfPf
+/* 8026E80C 0026B74C C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026E810 0026B750 D0 1F 00 04 */ stfs f0, 4(r31)
+/* 8026E814 0026B754 48 00 00 34 */ b lbl_8026E848
+lbl_8026E818:
+/* 8026E818 0026B758 C0 3D 00 00 */ lfs f1, 0(r29)
+/* 8026E81C 0026B75C C0 5D 00 04 */ lfs f2, 4(r29)
+/* 8026E820 0026B760 C0 7E 00 00 */ lfs f3, 0(r30)
+/* 8026E824 0026B764 C0 9E 00 04 */ lfs f4, 4(r30)
+/* 8026E828 0026B768 C0 A1 00 10 */ lfs f5, 0x10(r1)
+/* 8026E82C 0026B76C C0 DD 00 0C */ lfs f6, 0xc(r29)
+/* 8026E830 0026B770 C0 FE 00 0C */ lfs f7, 0xc(r30)
+/* 8026E834 0026B774 7F E3 FB 78 */ mr r3, r31
+/* 8026E838 0026B778 38 9F 00 04 */ addi r4, r31, 4
+/* 8026E83C 0026B77C 4B FF FE 89 */ bl cM3d_PlaneCrossLineProcWork__FfffffffPfPf
+/* 8026E840 0026B780 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026E844 0026B784 D0 1F 00 08 */ stfs f0, 8(r31)
+lbl_8026E848:
+/* 8026E848 0026B788 7F E3 FB 78 */ mr r3, r31
+/* 8026E84C 0026B78C 48 0D 89 05 */ bl PSVECMag
+/* 8026E850 0026B790 FC 00 0A 10 */ fabs f0, f1
+/* 8026E854 0026B794 FC 40 00 18 */ frsp f2, f0
+/* 8026E858 0026B798 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026E85C 0026B79C FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 8026E860 0026B7A0 40 80 00 08 */ bge lbl_8026E868
+/* 8026E864 0026B7A4 C0 22 B7 38 */ lfs f1, lbl_80455138-_SDA2_BASE_(r2)
+lbl_8026E868:
+/* 8026E868 0026B7A8 38 61 00 08 */ addi r3, r1, 8
+/* 8026E86C 0026B7AC 7C 64 1B 78 */ mr r4, r3
+/* 8026E870 0026B7B0 48 0D 88 69 */ bl PSVECScale
+/* 8026E874 0026B7B4 7F E3 FB 78 */ mr r3, r31
+/* 8026E878 0026B7B8 38 81 00 08 */ addi r4, r1, 8
+/* 8026E87C 0026B7BC 38 BF 00 0C */ addi r5, r31, 0xc
+/* 8026E880 0026B7C0 48 0D 88 11 */ bl PSVECAdd
+/* 8026E884 0026B7C4 38 60 00 01 */ li r3, 1
+lbl_8026E888:
+/* 8026E888 0026B7C8 39 61 00 30 */ addi r11, r1, 0x30
+/* 8026E88C 0026B7CC 48 0F 39 9D */ bl _restgpr_29
+/* 8026E890 0026B7D0 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8026E894 0026B7D4 7C 08 03 A6 */ mtlr r0
+/* 8026E898 0026B7D8 38 21 00 30 */ addi r1, r1, 0x30
+/* 8026E89C 0026B7DC 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026E8A0.s b/include/SComponent/c_m3d/asm/func_8026E8A0.s
new file mode 100644
index 0000000000..bba9c70615
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026E8A0.s
@@ -0,0 +1,59 @@
+/* 8026E8A0 0026B7E0 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 8026E8A4 0026B7E4 7C 08 02 A6 */ mflr r0
+/* 8026E8A8 0026B7E8 90 01 00 54 */ stw r0, 0x54(r1)
+/* 8026E8AC 0026B7EC DB E1 00 40 */ stfd f31, 0x40(r1)
+/* 8026E8B0 0026B7F0 F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0
+/* 8026E8B4 0026B7F4 39 61 00 40 */ addi r11, r1, 0x40
+/* 8026E8B8 0026B7F8 48 0F 39 25 */ bl _savegpr_29
+/* 8026E8BC 0026B7FC 7C BD 2B 78 */ mr r29, r5
+/* 8026E8C0 0026B800 7C DE 33 78 */ mr r30, r6
+/* 8026E8C4 0026B804 3C A0 80 3A */ lis r5, lbl_803A78F8@ha
+/* 8026E8C8 0026B808 38 05 78 F8 */ addi r0, r5, lbl_803A78F8@l
+/* 8026E8CC 0026B80C 90 01 00 20 */ stw r0, 0x20(r1)
+/* 8026E8D0 0026B810 38 A1 00 08 */ addi r5, r1, 8
+/* 8026E8D4 0026B814 4B FF FE 1D */ bl cM3d_2PlaneCrossLine__FRC8cM3dGPlaRC8cM3dGPlaP8cM3dGLin
+/* 8026E8D8 0026B818 2C 03 00 00 */ cmpwi r3, 0
+/* 8026E8DC 0026B81C 40 82 00 18 */ bne lbl_8026E8F4
+/* 8026E8E0 0026B820 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026E8E4 0026B824 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026E8E8 0026B828 90 01 00 20 */ stw r0, 0x20(r1)
+/* 8026E8EC 0026B82C 38 60 00 00 */ li r3, 0
+/* 8026E8F0 0026B830 48 00 00 70 */ b lbl_8026E960
+lbl_8026E8F4:
+/* 8026E8F4 0026B834 3B E1 00 14 */ addi r31, r1, 0x14
+/* 8026E8F8 0026B838 7F A3 EB 78 */ mr r3, r29
+/* 8026E8FC 0026B83C 38 81 00 08 */ addi r4, r1, 8
+/* 8026E900 0026B840 48 0D 88 95 */ bl PSVECDotProduct
+/* 8026E904 0026B844 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 8026E908 0026B848 EF E0 08 2A */ fadds f31, f0, f1
+/* 8026E90C 0026B84C 7F A3 EB 78 */ mr r3, r29
+/* 8026E910 0026B850 7F E4 FB 78 */ mr r4, r31
+/* 8026E914 0026B854 48 0D 88 81 */ bl PSVECDotProduct
+/* 8026E918 0026B858 C0 1D 00 0C */ lfs f0, 0xc(r29)
+/* 8026E91C 0026B85C EC 40 08 2A */ fadds f2, f0, f1
+/* 8026E920 0026B860 FC 20 F8 90 */ fmr f1, f31
+/* 8026E924 0026B864 38 61 00 08 */ addi r3, r1, 8
+/* 8026E928 0026B868 7F E4 FB 78 */ mr r4, r31
+/* 8026E92C 0026B86C 7F C5 F3 78 */ mr r5, r30
+/* 8026E930 0026B870 4B FF A5 A5 */ bl cM3d_CrossInfLineVsInfPlane_proc__FffPC3VecPC3VecP3Vec
+/* 8026E934 0026B874 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8026E938 0026B878 40 82 00 18 */ bne lbl_8026E950
+/* 8026E93C 0026B87C 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026E940 0026B880 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026E944 0026B884 90 01 00 20 */ stw r0, 0x20(r1)
+/* 8026E948 0026B888 38 60 00 00 */ li r3, 0
+/* 8026E94C 0026B88C 48 00 00 14 */ b lbl_8026E960
+lbl_8026E950:
+/* 8026E950 0026B890 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026E954 0026B894 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026E958 0026B898 90 01 00 20 */ stw r0, 0x20(r1)
+/* 8026E95C 0026B89C 38 60 00 01 */ li r3, 1
+lbl_8026E960:
+/* 8026E960 0026B8A0 E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0
+/* 8026E964 0026B8A4 CB E1 00 40 */ lfd f31, 0x40(r1)
+/* 8026E968 0026B8A8 39 61 00 40 */ addi r11, r1, 0x40
+/* 8026E96C 0026B8AC 48 0F 38 BD */ bl _restgpr_29
+/* 8026E970 0026B8B0 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 8026E974 0026B8B4 7C 08 03 A6 */ mtlr r0
+/* 8026E978 0026B8B8 38 21 00 50 */ addi r1, r1, 0x50
+/* 8026E97C 0026B8BC 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026E980.s b/include/SComponent/c_m3d/asm/func_8026E980.s
new file mode 100644
index 0000000000..f2fe191bba
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026E980.s
@@ -0,0 +1,57 @@
+/* 8026E980 0026B8C0 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 8026E984 0026B8C4 7C 08 02 A6 */ mflr r0
+/* 8026E988 0026B8C8 90 01 00 54 */ stw r0, 0x54(r1)
+/* 8026E98C 0026B8CC DB E1 00 40 */ stfd f31, 0x40(r1)
+/* 8026E990 0026B8D0 F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0
+/* 8026E994 0026B8D4 39 61 00 40 */ addi r11, r1, 0x40
+/* 8026E998 0026B8D8 48 0F 38 45 */ bl _savegpr_29
+/* 8026E99C 0026B8DC 7C 7D 1B 78 */ mr r29, r3
+/* 8026E9A0 0026B8E0 7C 9E 23 78 */ mr r30, r4
+/* 8026E9A4 0026B8E4 7C BF 2B 78 */ mr r31, r5
+/* 8026E9A8 0026B8E8 38 7D 00 0C */ addi r3, r29, 0xc
+/* 8026E9AC 0026B8EC 7F A4 EB 78 */ mr r4, r29
+/* 8026E9B0 0026B8F0 38 A1 00 20 */ addi r5, r1, 0x20
+/* 8026E9B4 0026B8F4 48 0D 87 01 */ bl PSVECSubtract
+/* 8026E9B8 0026B8F8 38 61 00 20 */ addi r3, r1, 0x20
+/* 8026E9BC 0026B8FC 48 0D 87 7D */ bl PSVECSquareMag
+/* 8026E9C0 0026B900 FF E0 08 90 */ fmr f31, f1
+/* 8026E9C4 0026B904 FC 00 FA 10 */ fabs f0, f31
+/* 8026E9C8 0026B908 FC 20 00 18 */ frsp f1, f0
+/* 8026E9CC 0026B90C C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026E9D0 0026B910 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026E9D4 0026B914 40 80 00 24 */ bge lbl_8026E9F8
+/* 8026E9D8 0026B918 C0 1E 00 00 */ lfs f0, 0(r30)
+/* 8026E9DC 0026B91C D0 1F 00 00 */ stfs f0, 0(r31)
+/* 8026E9E0 0026B920 C0 1E 00 04 */ lfs f0, 4(r30)
+/* 8026E9E4 0026B924 D0 1F 00 04 */ stfs f0, 4(r31)
+/* 8026E9E8 0026B928 C0 1E 00 08 */ lfs f0, 8(r30)
+/* 8026E9EC 0026B92C D0 1F 00 08 */ stfs f0, 8(r31)
+/* 8026E9F0 0026B930 C0 22 B7 18 */ lfs f1, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026E9F4 0026B934 48 00 00 48 */ b lbl_8026EA3C
+lbl_8026E9F8:
+/* 8026E9F8 0026B938 7F C3 F3 78 */ mr r3, r30
+/* 8026E9FC 0026B93C 7F A4 EB 78 */ mr r4, r29
+/* 8026EA00 0026B940 38 A1 00 14 */ addi r5, r1, 0x14
+/* 8026EA04 0026B944 48 0D 86 B1 */ bl PSVECSubtract
+/* 8026EA08 0026B948 38 61 00 14 */ addi r3, r1, 0x14
+/* 8026EA0C 0026B94C 38 81 00 20 */ addi r4, r1, 0x20
+/* 8026EA10 0026B950 48 0D 87 85 */ bl PSVECDotProduct
+/* 8026EA14 0026B954 EF E1 F8 24 */ fdivs f31, f1, f31
+/* 8026EA18 0026B958 38 61 00 20 */ addi r3, r1, 0x20
+/* 8026EA1C 0026B95C 38 81 00 08 */ addi r4, r1, 8
+/* 8026EA20 0026B960 FC 20 F8 90 */ fmr f1, f31
+/* 8026EA24 0026B964 48 0D 86 B5 */ bl PSVECScale
+/* 8026EA28 0026B968 38 61 00 08 */ addi r3, r1, 8
+/* 8026EA2C 0026B96C 7F A4 EB 78 */ mr r4, r29
+/* 8026EA30 0026B970 7F E5 FB 78 */ mr r5, r31
+/* 8026EA34 0026B974 48 0D 86 5D */ bl PSVECAdd
+/* 8026EA38 0026B978 FC 20 F8 90 */ fmr f1, f31
+lbl_8026EA3C:
+/* 8026EA3C 0026B97C E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0
+/* 8026EA40 0026B980 CB E1 00 40 */ lfd f31, 0x40(r1)
+/* 8026EA44 0026B984 39 61 00 40 */ addi r11, r1, 0x40
+/* 8026EA48 0026B988 48 0F 37 E1 */ bl _restgpr_29
+/* 8026EA4C 0026B98C 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 8026EA50 0026B990 7C 08 03 A6 */ mtlr r0
+/* 8026EA54 0026B994 38 21 00 50 */ addi r1, r1, 0x50
+/* 8026EA58 0026B998 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026EA5C.s b/include/SComponent/c_m3d/asm/func_8026EA5C.s
new file mode 100644
index 0000000000..a0cf4792f8
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026EA5C.s
@@ -0,0 +1,57 @@
+/* 8026EA5C 0026B99C 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 8026EA60 0026B9A0 7C 08 02 A6 */ mflr r0
+/* 8026EA64 0026B9A4 90 01 00 54 */ stw r0, 0x54(r1)
+/* 8026EA68 0026B9A8 DB E1 00 40 */ stfd f31, 0x40(r1)
+/* 8026EA6C 0026B9AC F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0
+/* 8026EA70 0026B9B0 39 61 00 40 */ addi r11, r1, 0x40
+/* 8026EA74 0026B9B4 48 0F 37 69 */ bl _savegpr_29
+/* 8026EA78 0026B9B8 7C 7D 1B 78 */ mr r29, r3
+/* 8026EA7C 0026B9BC 7C BE 2B 78 */ mr r30, r5
+/* 8026EA80 0026B9C0 7C DF 33 78 */ mr r31, r6
+/* 8026EA84 0026B9C4 7C 83 23 78 */ mr r3, r4
+/* 8026EA88 0026B9C8 7F A4 EB 78 */ mr r4, r29
+/* 8026EA8C 0026B9CC 38 A1 00 20 */ addi r5, r1, 0x20
+/* 8026EA90 0026B9D0 48 0D 86 25 */ bl PSVECSubtract
+/* 8026EA94 0026B9D4 38 61 00 20 */ addi r3, r1, 0x20
+/* 8026EA98 0026B9D8 48 0D 86 A1 */ bl PSVECSquareMag
+/* 8026EA9C 0026B9DC FF E0 08 90 */ fmr f31, f1
+/* 8026EAA0 0026B9E0 FC 00 FA 10 */ fabs f0, f31
+/* 8026EAA4 0026B9E4 FC 20 00 18 */ frsp f1, f0
+/* 8026EAA8 0026B9E8 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026EAAC 0026B9EC FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026EAB0 0026B9F0 40 80 00 24 */ bge lbl_8026EAD4
+/* 8026EAB4 0026B9F4 C0 1E 00 00 */ lfs f0, 0(r30)
+/* 8026EAB8 0026B9F8 D0 1F 00 00 */ stfs f0, 0(r31)
+/* 8026EABC 0026B9FC C0 1E 00 04 */ lfs f0, 4(r30)
+/* 8026EAC0 0026BA00 D0 1F 00 04 */ stfs f0, 4(r31)
+/* 8026EAC4 0026BA04 C0 1E 00 08 */ lfs f0, 8(r30)
+/* 8026EAC8 0026BA08 D0 1F 00 08 */ stfs f0, 8(r31)
+/* 8026EACC 0026BA0C C0 22 B7 18 */ lfs f1, lbl_80455118-_SDA2_BASE_(r2)
+/* 8026EAD0 0026BA10 48 00 00 48 */ b lbl_8026EB18
+lbl_8026EAD4:
+/* 8026EAD4 0026BA14 7F C3 F3 78 */ mr r3, r30
+/* 8026EAD8 0026BA18 7F A4 EB 78 */ mr r4, r29
+/* 8026EADC 0026BA1C 38 A1 00 14 */ addi r5, r1, 0x14
+/* 8026EAE0 0026BA20 48 0D 85 D5 */ bl PSVECSubtract
+/* 8026EAE4 0026BA24 38 61 00 14 */ addi r3, r1, 0x14
+/* 8026EAE8 0026BA28 38 81 00 20 */ addi r4, r1, 0x20
+/* 8026EAEC 0026BA2C 48 0D 86 A9 */ bl PSVECDotProduct
+/* 8026EAF0 0026BA30 EF E1 F8 24 */ fdivs f31, f1, f31
+/* 8026EAF4 0026BA34 38 61 00 20 */ addi r3, r1, 0x20
+/* 8026EAF8 0026BA38 38 81 00 08 */ addi r4, r1, 8
+/* 8026EAFC 0026BA3C FC 20 F8 90 */ fmr f1, f31
+/* 8026EB00 0026BA40 48 0D 85 D9 */ bl PSVECScale
+/* 8026EB04 0026BA44 38 61 00 08 */ addi r3, r1, 8
+/* 8026EB08 0026BA48 7F A4 EB 78 */ mr r4, r29
+/* 8026EB0C 0026BA4C 7F E5 FB 78 */ mr r5, r31
+/* 8026EB10 0026BA50 48 0D 85 81 */ bl PSVECAdd
+/* 8026EB14 0026BA54 FC 20 F8 90 */ fmr f1, f31
+lbl_8026EB18:
+/* 8026EB18 0026BA58 E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0
+/* 8026EB1C 0026BA5C CB E1 00 40 */ lfd f31, 0x40(r1)
+/* 8026EB20 0026BA60 39 61 00 40 */ addi r11, r1, 0x40
+/* 8026EB24 0026BA64 48 0F 37 05 */ bl _restgpr_29
+/* 8026EB28 0026BA68 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 8026EB2C 0026BA6C 7C 08 03 A6 */ mtlr r0
+/* 8026EB30 0026BA70 38 21 00 50 */ addi r1, r1, 0x50
+/* 8026EB34 0026BA74 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026EB38.s b/include/SComponent/c_m3d/asm/func_8026EB38.s
new file mode 100644
index 0000000000..17a50cfde8
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026EB38.s
@@ -0,0 +1,35 @@
+/* 8026EB38 0026BA78 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8026EB3C 0026BA7C 7C 08 02 A6 */ mflr r0
+/* 8026EB40 0026BA80 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8026EB44 0026BA84 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 8026EB48 0026BA88 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 8026EB4C 0026BA8C 7C BE 2B 78 */ mr r30, r5
+/* 8026EB50 0026BA90 7C DF 33 78 */ mr r31, r6
+/* 8026EB54 0026BA94 3C A0 80 3A */ lis r5, lbl_803A78F8@ha
+/* 8026EB58 0026BA98 38 05 78 F8 */ addi r0, r5, lbl_803A78F8@l
+/* 8026EB5C 0026BA9C 90 01 00 20 */ stw r0, 0x20(r1)
+/* 8026EB60 0026BAA0 38 A1 00 08 */ addi r5, r1, 8
+/* 8026EB64 0026BAA4 4B FF FB 8D */ bl cM3d_2PlaneCrossLine__FRC8cM3dGPlaRC8cM3dGPlaP8cM3dGLin
+/* 8026EB68 0026BAA8 2C 03 00 00 */ cmpwi r3, 0
+/* 8026EB6C 0026BAAC 40 82 00 18 */ bne lbl_8026EB84
+/* 8026EB70 0026BAB0 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026EB74 0026BAB4 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026EB78 0026BAB8 90 01 00 20 */ stw r0, 0x20(r1)
+/* 8026EB7C 0026BABC 38 60 00 00 */ li r3, 0
+/* 8026EB80 0026BAC0 48 00 00 24 */ b lbl_8026EBA4
+lbl_8026EB84:
+/* 8026EB84 0026BAC4 38 61 00 08 */ addi r3, r1, 8
+/* 8026EB88 0026BAC8 7F C4 F3 78 */ mr r4, r30
+/* 8026EB8C 0026BACC 7F E5 FB 78 */ mr r5, r31
+/* 8026EB90 0026BAD0 4B FF FD F1 */ bl cM3d_lineVsPosSuisenCross__FPC8cM3dGLinPC3VecP3Vec
+/* 8026EB94 0026BAD4 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026EB98 0026BAD8 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026EB9C 0026BADC 90 01 00 20 */ stw r0, 0x20(r1)
+/* 8026EBA0 0026BAE0 38 60 00 01 */ li r3, 1
+lbl_8026EBA4:
+/* 8026EBA4 0026BAE4 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 8026EBA8 0026BAE8 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 8026EBAC 0026BAEC 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8026EBB0 0026BAF0 7C 08 03 A6 */ mtlr r0
+/* 8026EBB4 0026BAF4 38 21 00 30 */ addi r1, r1, 0x30
+/* 8026EBB8 0026BAF8 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d/asm/func_8026EBBC.s b/include/SComponent/c_m3d/asm/func_8026EBBC.s
new file mode 100644
index 0000000000..42e61ff9e9
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026EBBC.s
@@ -0,0 +1,32 @@
+/* 8026EBBC 0026BAFC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026EBC0 0026BB00 7C 08 02 A6 */ mflr r0
+/* 8026EBC4 0026BB04 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026EBC8 0026BB08 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026EBCC 0026BB0C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026EBD0 0026BB10 7C 9E 23 78 */ mr r30, r4
+/* 8026EBD4 0026BB14 7C BF 2B 78 */ mr r31, r5
+/* 8026EBD8 0026BB18 C0 24 00 08 */ lfs f1, 8(r4)
+/* 8026EBDC 0026BB1C C0 03 00 08 */ lfs f0, 8(r3)
+/* 8026EBE0 0026BB20 EC 61 00 32 */ fmuls f3, f1, f0
+/* 8026EBE4 0026BB24 C0 24 00 00 */ lfs f1, 0(r4)
+/* 8026EBE8 0026BB28 C0 03 00 00 */ lfs f0, 0(r3)
+/* 8026EBEC 0026BB2C EC 41 00 32 */ fmuls f2, f1, f0
+/* 8026EBF0 0026BB30 C0 24 00 04 */ lfs f1, 4(r4)
+/* 8026EBF4 0026BB34 C0 03 00 04 */ lfs f0, 4(r3)
+/* 8026EBF8 0026BB38 EC 01 00 32 */ fmuls f0, f1, f0
+/* 8026EBFC 0026BB3C EC 02 00 2A */ fadds f0, f2, f0
+/* 8026EC00 0026BB40 EC 03 00 2A */ fadds f0, f3, f0
+/* 8026EC04 0026BB44 FC 00 02 10 */ fabs f0, f0
+/* 8026EC08 0026BB48 FC 20 00 18 */ frsp f1, f0
+/* 8026EC0C 0026BB4C 38 81 00 08 */ addi r4, r1, 8
+/* 8026EC10 0026BB50 48 0D 84 C9 */ bl PSVECScale
+/* 8026EC14 0026BB54 38 61 00 08 */ addi r3, r1, 8
+/* 8026EC18 0026BB58 7F C4 F3 78 */ mr r4, r30
+/* 8026EC1C 0026BB5C 7F E5 FB 78 */ mr r5, r31
+/* 8026EC20 0026BB60 48 0D 84 71 */ bl PSVECAdd
+/* 8026EC24 0026BB64 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026EC28 0026BB68 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026EC2C 0026BB6C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026EC30 0026BB70 7C 08 03 A6 */ mtlr r0
+/* 8026EC34 0026BB74 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026EC38 0026BB78 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_m3d/asm/func_8026EC3C.s b/include/SComponent/c_m3d/asm/func_8026EC3C.s
new file mode 100644
index 0000000000..3d13bb5654
--- /dev/null
+++ b/include/SComponent/c_m3d/asm/func_8026EC3C.s
@@ -0,0 +1,6 @@
+/* 8026EC3C 0026BB7C C0 22 B7 CC */ lfs f1, lbl_804551CC-_SDA2_BASE_(r2)
+/* 8026EC40 0026BB80 3C 60 80 45 */ lis r3, lbl_80450AEC@ha
+/* 8026EC44 0026BB84 C0 03 0A EC */ lfs f0, lbl_80450AEC@l(r3)
+/* 8026EC48 0026BB88 EC 01 00 32 */ fmuls f0, f1, f0
+/* 8026EC4C 0026BB8C D0 0D 8C 00 */ stfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026EC50 0026BB90 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_m3d_g_aab.h b/include/SComponent/c_m3d_g_aab.h
new file mode 100644
index 0000000000..1f3bc776cd
--- /dev/null
+++ b/include/SComponent/c_m3d_g_aab.h
@@ -0,0 +1,22 @@
+#ifndef __C_M3D_G_AAB_H_
+#define __C_M3D_G_AAB_H_
+
+#include "SComponent/c_xyz.h"
+#include "global.h"
+
+class cM3dGAab {
+public:
+ void Set(const cXyz*, const cXyz*);
+ bool CrossY(const cXyz*) const;
+ bool UnderPlaneYUnder(float) const;
+ bool TopPlaneYUnder(float) const;
+ void ClearForMinMax(void);
+ void SetMinMax(const cXyz&);
+ void SetMinMax(const cM3dGAab&);
+ void SetMin(const cXyz&);
+ void SetMax(const cXyz&);
+ void CalcCenter(cXyz*) const;
+ void PlusR(float);
+};
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_m3d_g_aab/asm/func_8026EC54.s b/include/SComponent/c_m3d_g_aab/asm/func_8026EC54.s
new file mode 100644
index 0000000000..ee48d8c14f
--- /dev/null
+++ b/include/SComponent/c_m3d_g_aab/asm/func_8026EC54.s
@@ -0,0 +1,13 @@
+/* 8026EC54 0026BB94 C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026EC58 0026BB98 D0 03 00 00 */ stfs f0, 0(r3)
+/* 8026EC5C 0026BB9C C0 04 00 04 */ lfs f0, 4(r4)
+/* 8026EC60 0026BBA0 D0 03 00 04 */ stfs f0, 4(r3)
+/* 8026EC64 0026BBA4 C0 04 00 08 */ lfs f0, 8(r4)
+/* 8026EC68 0026BBA8 D0 03 00 08 */ stfs f0, 8(r3)
+/* 8026EC6C 0026BBAC C0 05 00 00 */ lfs f0, 0(r5)
+/* 8026EC70 0026BBB0 D0 03 00 0C */ stfs f0, 0xc(r3)
+/* 8026EC74 0026BBB4 C0 05 00 04 */ lfs f0, 4(r5)
+/* 8026EC78 0026BBB8 D0 03 00 10 */ stfs f0, 0x10(r3)
+/* 8026EC7C 0026BBBC C0 05 00 08 */ lfs f0, 8(r5)
+/* 8026EC80 0026BBC0 D0 03 00 14 */ stfs f0, 0x14(r3)
+/* 8026EC84 0026BBC4 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_aab/asm/func_8026EC88.s b/include/SComponent/c_m3d_g_aab/asm/func_8026EC88.s
new file mode 100644
index 0000000000..26461e9db2
--- /dev/null
+++ b/include/SComponent/c_m3d_g_aab/asm/func_8026EC88.s
@@ -0,0 +1,20 @@
+/* 8026EC88 0026BBC8 C0 03 00 00 */ lfs f0, 0(r3)
+/* 8026EC8C 0026BBCC C0 24 00 00 */ lfs f1, 0(r4)
+/* 8026EC90 0026BBD0 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026EC94 0026BBD4 41 81 00 2C */ bgt lbl_8026ECC0
+/* 8026EC98 0026BBD8 C0 03 00 0C */ lfs f0, 0xc(r3)
+/* 8026EC9C 0026BBDC FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026ECA0 0026BBE0 41 80 00 20 */ blt lbl_8026ECC0
+/* 8026ECA4 0026BBE4 C0 03 00 08 */ lfs f0, 8(r3)
+/* 8026ECA8 0026BBE8 C0 24 00 08 */ lfs f1, 8(r4)
+/* 8026ECAC 0026BBEC FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026ECB0 0026BBF0 41 81 00 10 */ bgt lbl_8026ECC0
+/* 8026ECB4 0026BBF4 C0 03 00 14 */ lfs f0, 0x14(r3)
+/* 8026ECB8 0026BBF8 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026ECBC 0026BBFC 40 80 00 0C */ bge lbl_8026ECC8
+lbl_8026ECC0:
+/* 8026ECC0 0026BC00 38 60 00 00 */ li r3, 0
+/* 8026ECC4 0026BC04 4E 80 00 20 */ blr
+lbl_8026ECC8:
+/* 8026ECC8 0026BC08 38 60 00 01 */ li r3, 1
+/* 8026ECCC 0026BC0C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_aab/asm/func_8026ECD0.s b/include/SComponent/c_m3d_g_aab/asm/func_8026ECD0.s
new file mode 100644
index 0000000000..0eaf6aac55
--- /dev/null
+++ b/include/SComponent/c_m3d_g_aab/asm/func_8026ECD0.s
@@ -0,0 +1,5 @@
+/* 8026ECD0 0026BC10 C0 03 00 04 */ lfs f0, 4(r3)
+/* 8026ECD4 0026BC14 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026ECD8 0026BC18 7C 00 00 26 */ mfcr r0
+/* 8026ECDC 0026BC1C 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 8026ECE0 0026BC20 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_aab/asm/func_8026ECE4.s b/include/SComponent/c_m3d_g_aab/asm/func_8026ECE4.s
new file mode 100644
index 0000000000..b91c2e5cc7
--- /dev/null
+++ b/include/SComponent/c_m3d_g_aab/asm/func_8026ECE4.s
@@ -0,0 +1,5 @@
+/* 8026ECE4 0026BC24 C0 03 00 10 */ lfs f0, 0x10(r3)
+/* 8026ECE8 0026BC28 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026ECEC 0026BC2C 7C 00 00 26 */ mfcr r0
+/* 8026ECF0 0026BC30 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 8026ECF4 0026BC34 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_aab/asm/func_8026ECF8.s b/include/SComponent/c_m3d_g_aab/asm/func_8026ECF8.s
new file mode 100644
index 0000000000..1606b58f6c
--- /dev/null
+++ b/include/SComponent/c_m3d_g_aab/asm/func_8026ECF8.s
@@ -0,0 +1,9 @@
+/* 8026ECF8 0026BC38 C0 02 B7 D0 */ lfs f0, lbl_804551D0-_SDA2_BASE_(r2)
+/* 8026ECFC 0026BC3C D0 03 00 08 */ stfs f0, 8(r3)
+/* 8026ED00 0026BC40 D0 03 00 04 */ stfs f0, 4(r3)
+/* 8026ED04 0026BC44 D0 03 00 00 */ stfs f0, 0(r3)
+/* 8026ED08 0026BC48 C0 02 B7 D4 */ lfs f0, lbl_804551D4-_SDA2_BASE_(r2)
+/* 8026ED0C 0026BC4C D0 03 00 14 */ stfs f0, 0x14(r3)
+/* 8026ED10 0026BC50 D0 03 00 10 */ stfs f0, 0x10(r3)
+/* 8026ED14 0026BC54 D0 03 00 0C */ stfs f0, 0xc(r3)
+/* 8026ED18 0026BC58 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_aab/asm/func_8026ED1C.s b/include/SComponent/c_m3d_g_aab/asm/func_8026ED1C.s
new file mode 100644
index 0000000000..ac37532cfb
--- /dev/null
+++ b/include/SComponent/c_m3d_g_aab/asm/func_8026ED1C.s
@@ -0,0 +1,17 @@
+/* 8026ED1C 0026BC5C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026ED20 0026BC60 7C 08 02 A6 */ mflr r0
+/* 8026ED24 0026BC64 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026ED28 0026BC68 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8026ED2C 0026BC6C 93 C1 00 08 */ stw r30, 8(r1)
+/* 8026ED30 0026BC70 7C 7E 1B 78 */ mr r30, r3
+/* 8026ED34 0026BC74 7C 9F 23 78 */ mr r31, r4
+/* 8026ED38 0026BC78 48 00 00 6D */ bl SetMin__8cM3dGAabFRC4cXyz
+/* 8026ED3C 0026BC7C 7F C3 F3 78 */ mr r3, r30
+/* 8026ED40 0026BC80 7F E4 FB 78 */ mr r4, r31
+/* 8026ED44 0026BC84 48 00 00 A1 */ bl SetMax__8cM3dGAabFRC4cXyz
+/* 8026ED48 0026BC88 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8026ED4C 0026BC8C 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8026ED50 0026BC90 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026ED54 0026BC94 7C 08 03 A6 */ mtlr r0
+/* 8026ED58 0026BC98 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026ED5C 0026BC9C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_aab/asm/func_8026ED60.s b/include/SComponent/c_m3d_g_aab/asm/func_8026ED60.s
new file mode 100644
index 0000000000..4adb753e44
--- /dev/null
+++ b/include/SComponent/c_m3d_g_aab/asm/func_8026ED60.s
@@ -0,0 +1,17 @@
+/* 8026ED60 0026BCA0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026ED64 0026BCA4 7C 08 02 A6 */ mflr r0
+/* 8026ED68 0026BCA8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026ED6C 0026BCAC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8026ED70 0026BCB0 93 C1 00 08 */ stw r30, 8(r1)
+/* 8026ED74 0026BCB4 7C 7E 1B 78 */ mr r30, r3
+/* 8026ED78 0026BCB8 7C 9F 23 78 */ mr r31, r4
+/* 8026ED7C 0026BCBC 4B FF FF A1 */ bl SetMinMax__8cM3dGAabFRC4cXyz
+/* 8026ED80 0026BCC0 7F C3 F3 78 */ mr r3, r30
+/* 8026ED84 0026BCC4 38 9F 00 0C */ addi r4, r31, 0xc
+/* 8026ED88 0026BCC8 4B FF FF 95 */ bl SetMinMax__8cM3dGAabFRC4cXyz
+/* 8026ED8C 0026BCCC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8026ED90 0026BCD0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8026ED94 0026BCD4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026ED98 0026BCD8 7C 08 03 A6 */ mtlr r0
+/* 8026ED9C 0026BCDC 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026EDA0 0026BCE0 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_aab/asm/func_8026EDA4.s b/include/SComponent/c_m3d_g_aab/asm/func_8026EDA4.s
new file mode 100644
index 0000000000..2321c02b39
--- /dev/null
+++ b/include/SComponent/c_m3d_g_aab/asm/func_8026EDA4.s
@@ -0,0 +1,18 @@
+/* 8026EDA4 0026BCE4 C0 03 00 00 */ lfs f0, 0(r3)
+/* 8026EDA8 0026BCE8 C0 24 00 00 */ lfs f1, 0(r4)
+/* 8026EDAC 0026BCEC FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026EDB0 0026BCF0 40 81 00 08 */ ble lbl_8026EDB8
+/* 8026EDB4 0026BCF4 D0 23 00 00 */ stfs f1, 0(r3)
+lbl_8026EDB8:
+/* 8026EDB8 0026BCF8 C0 03 00 04 */ lfs f0, 4(r3)
+/* 8026EDBC 0026BCFC C0 24 00 04 */ lfs f1, 4(r4)
+/* 8026EDC0 0026BD00 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026EDC4 0026BD04 40 81 00 08 */ ble lbl_8026EDCC
+/* 8026EDC8 0026BD08 D0 23 00 04 */ stfs f1, 4(r3)
+lbl_8026EDCC:
+/* 8026EDCC 0026BD0C C0 03 00 08 */ lfs f0, 8(r3)
+/* 8026EDD0 0026BD10 C0 24 00 08 */ lfs f1, 8(r4)
+/* 8026EDD4 0026BD14 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026EDD8 0026BD18 4C 81 00 20 */ blelr
+/* 8026EDDC 0026BD1C D0 23 00 08 */ stfs f1, 8(r3)
+/* 8026EDE0 0026BD20 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_aab/asm/func_8026EDE4.s b/include/SComponent/c_m3d_g_aab/asm/func_8026EDE4.s
new file mode 100644
index 0000000000..5512a1a5cf
--- /dev/null
+++ b/include/SComponent/c_m3d_g_aab/asm/func_8026EDE4.s
@@ -0,0 +1,18 @@
+/* 8026EDE4 0026BD24 C0 03 00 0C */ lfs f0, 0xc(r3)
+/* 8026EDE8 0026BD28 C0 24 00 00 */ lfs f1, 0(r4)
+/* 8026EDEC 0026BD2C FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026EDF0 0026BD30 40 80 00 08 */ bge lbl_8026EDF8
+/* 8026EDF4 0026BD34 D0 23 00 0C */ stfs f1, 0xc(r3)
+lbl_8026EDF8:
+/* 8026EDF8 0026BD38 C0 03 00 10 */ lfs f0, 0x10(r3)
+/* 8026EDFC 0026BD3C C0 24 00 04 */ lfs f1, 4(r4)
+/* 8026EE00 0026BD40 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026EE04 0026BD44 40 80 00 08 */ bge lbl_8026EE0C
+/* 8026EE08 0026BD48 D0 23 00 10 */ stfs f1, 0x10(r3)
+lbl_8026EE0C:
+/* 8026EE0C 0026BD4C C0 03 00 14 */ lfs f0, 0x14(r3)
+/* 8026EE10 0026BD50 C0 24 00 08 */ lfs f1, 8(r4)
+/* 8026EE14 0026BD54 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8026EE18 0026BD58 4C 80 00 20 */ bgelr
+/* 8026EE1C 0026BD5C D0 23 00 14 */ stfs f1, 0x14(r3)
+/* 8026EE20 0026BD60 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_aab/asm/func_8026EE24.s b/include/SComponent/c_m3d_g_aab/asm/func_8026EE24.s
new file mode 100644
index 0000000000..f39caf94a3
--- /dev/null
+++ b/include/SComponent/c_m3d_g_aab/asm/func_8026EE24.s
@@ -0,0 +1,17 @@
+/* 8026EE24 0026BD64 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026EE28 0026BD68 7C 08 02 A6 */ mflr r0
+/* 8026EE2C 0026BD6C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026EE30 0026BD70 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8026EE34 0026BD74 7C 9F 23 78 */ mr r31, r4
+/* 8026EE38 0026BD78 38 83 00 0C */ addi r4, r3, 0xc
+/* 8026EE3C 0026BD7C 7F E5 FB 78 */ mr r5, r31
+/* 8026EE40 0026BD80 48 0D 82 51 */ bl PSVECAdd
+/* 8026EE44 0026BD84 7F E3 FB 78 */ mr r3, r31
+/* 8026EE48 0026BD88 7F E4 FB 78 */ mr r4, r31
+/* 8026EE4C 0026BD8C C0 22 B7 D8 */ lfs f1, lbl_804551D8-_SDA2_BASE_(r2)
+/* 8026EE50 0026BD90 48 0D 82 89 */ bl PSVECScale
+/* 8026EE54 0026BD94 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8026EE58 0026BD98 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026EE5C 0026BD9C 7C 08 03 A6 */ mtlr r0
+/* 8026EE60 0026BDA0 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026EE64 0026BDA4 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_aab/asm/func_8026EE68.s b/include/SComponent/c_m3d_g_aab/asm/func_8026EE68.s
new file mode 100644
index 0000000000..89ffa194b8
--- /dev/null
+++ b/include/SComponent/c_m3d_g_aab/asm/func_8026EE68.s
@@ -0,0 +1,19 @@
+/* 8026EE68 0026BDA8 C0 03 00 00 */ lfs f0, 0(r3)
+/* 8026EE6C 0026BDAC EC 00 08 28 */ fsubs f0, f0, f1
+/* 8026EE70 0026BDB0 D0 03 00 00 */ stfs f0, 0(r3)
+/* 8026EE74 0026BDB4 C0 03 00 04 */ lfs f0, 4(r3)
+/* 8026EE78 0026BDB8 EC 00 08 28 */ fsubs f0, f0, f1
+/* 8026EE7C 0026BDBC D0 03 00 04 */ stfs f0, 4(r3)
+/* 8026EE80 0026BDC0 C0 03 00 08 */ lfs f0, 8(r3)
+/* 8026EE84 0026BDC4 EC 00 08 28 */ fsubs f0, f0, f1
+/* 8026EE88 0026BDC8 D0 03 00 08 */ stfs f0, 8(r3)
+/* 8026EE8C 0026BDCC C0 03 00 0C */ lfs f0, 0xc(r3)
+/* 8026EE90 0026BDD0 EC 00 08 2A */ fadds f0, f0, f1
+/* 8026EE94 0026BDD4 D0 03 00 0C */ stfs f0, 0xc(r3)
+/* 8026EE98 0026BDD8 C0 03 00 10 */ lfs f0, 0x10(r3)
+/* 8026EE9C 0026BDDC EC 00 08 2A */ fadds f0, f0, f1
+/* 8026EEA0 0026BDE0 D0 03 00 10 */ stfs f0, 0x10(r3)
+/* 8026EEA4 0026BDE4 C0 03 00 14 */ lfs f0, 0x14(r3)
+/* 8026EEA8 0026BDE8 EC 00 08 2A */ fadds f0, f0, f1
+/* 8026EEAC 0026BDEC D0 03 00 14 */ stfs f0, 0x14(r3)
+/* 8026EEB0 0026BDF0 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_m3d_g_cir.h b/include/SComponent/c_m3d_g_cir.h
new file mode 100644
index 0000000000..8b0b2fa7b2
--- /dev/null
+++ b/include/SComponent/c_m3d_g_cir.h
@@ -0,0 +1,13 @@
+#ifndef __C_M3D_G_CIR_H_
+#define __C_M3D_G_CIR_H_
+
+#include "global.h"
+
+class cM3dGCir {
+public:
+ cM3dGCir(void);
+ ~cM3dGCir(void);
+ void Set(float, float, float, float);
+};
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_m3d_g_cir/asm/func_8026EEB4.s b/include/SComponent/c_m3d_g_cir/asm/func_8026EEB4.s
new file mode 100644
index 0000000000..9d92a3051f
--- /dev/null
+++ b/include/SComponent/c_m3d_g_cir/asm/func_8026EEB4.s
@@ -0,0 +1,7 @@
+/* 8026EEB4 0026BDF4 3C 80 80 3C */ lis r4, lbl_803C3FEC@ha
+/* 8026EEB8 0026BDF8 38 04 3F EC */ addi r0, r4, lbl_803C3FEC@l
+/* 8026EEBC 0026BDFC 90 03 00 0C */ stw r0, 0xc(r3)
+/* 8026EEC0 0026BE00 3C 80 80 3C */ lis r4, lbl_803C3FE0@ha
+/* 8026EEC4 0026BE04 38 04 3F E0 */ addi r0, r4, lbl_803C3FE0@l
+/* 8026EEC8 0026BE08 90 03 00 0C */ stw r0, 0xc(r3)
+/* 8026EECC 0026BE0C 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_m3d_g_cir/asm/func_8026EED0.s b/include/SComponent/c_m3d_g_cir/asm/func_8026EED0.s
new file mode 100644
index 0000000000..84637b9a49
--- /dev/null
+++ b/include/SComponent/c_m3d_g_cir/asm/func_8026EED0.s
@@ -0,0 +1,19 @@
+/* 8026EED0 0026BE10 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026EED4 0026BE14 7C 08 02 A6 */ mflr r0
+/* 8026EED8 0026BE18 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026EEDC 0026BE1C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8026EEE0 0026BE20 7C 7F 1B 79 */ or. r31, r3, r3
+/* 8026EEE4 0026BE24 41 82 00 1C */ beq lbl_8026EF00
+/* 8026EEE8 0026BE28 3C A0 80 3C */ lis r5, lbl_803C3FEC@ha
+/* 8026EEEC 0026BE2C 38 05 3F EC */ addi r0, r5, lbl_803C3FEC@l
+/* 8026EEF0 0026BE30 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 8026EEF4 0026BE34 7C 80 07 35 */ extsh. r0, r4
+/* 8026EEF8 0026BE38 40 81 00 08 */ ble lbl_8026EF00
+/* 8026EEFC 0026BE3C 48 05 FE 41 */ bl __dl__FPv
+lbl_8026EF00:
+/* 8026EF00 0026BE40 7F E3 FB 78 */ mr r3, r31
+/* 8026EF04 0026BE44 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8026EF08 0026BE48 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026EF0C 0026BE4C 7C 08 03 A6 */ mtlr r0
+/* 8026EF10 0026BE50 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026EF14 0026BE54 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_cir/asm/func_8026EF18.s b/include/SComponent/c_m3d_g_cir/asm/func_8026EF18.s
new file mode 100644
index 0000000000..3040f4fc5c
--- /dev/null
+++ b/include/SComponent/c_m3d_g_cir/asm/func_8026EF18.s
@@ -0,0 +1,25 @@
+/* 8026EF18 0026BE58 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026EF1C 0026BE5C 7C 08 02 A6 */ mflr r0
+/* 8026EF20 0026BE60 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026EF24 0026BE64 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8026EF28 0026BE68 7C 7F 1B 79 */ or. r31, r3, r3
+/* 8026EF2C 0026BE6C 41 82 00 30 */ beq lbl_8026EF5C
+/* 8026EF30 0026BE70 3C 60 80 3C */ lis r3, lbl_803C3FE0@ha
+/* 8026EF34 0026BE74 38 03 3F E0 */ addi r0, r3, lbl_803C3FE0@l
+/* 8026EF38 0026BE78 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 8026EF3C 0026BE7C 41 82 00 10 */ beq lbl_8026EF4C
+/* 8026EF40 0026BE80 3C 60 80 3C */ lis r3, lbl_803C3FEC@ha
+/* 8026EF44 0026BE84 38 03 3F EC */ addi r0, r3, lbl_803C3FEC@l
+/* 8026EF48 0026BE88 90 1F 00 0C */ stw r0, 0xc(r31)
+lbl_8026EF4C:
+/* 8026EF4C 0026BE8C 7C 80 07 35 */ extsh. r0, r4
+/* 8026EF50 0026BE90 40 81 00 0C */ ble lbl_8026EF5C
+/* 8026EF54 0026BE94 7F E3 FB 78 */ mr r3, r31
+/* 8026EF58 0026BE98 48 05 FD E5 */ bl __dl__FPv
+lbl_8026EF5C:
+/* 8026EF5C 0026BE9C 7F E3 FB 78 */ mr r3, r31
+/* 8026EF60 0026BEA0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8026EF64 0026BEA4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026EF68 0026BEA8 7C 08 03 A6 */ mtlr r0
+/* 8026EF6C 0026BEAC 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026EF70 0026BEB0 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_cir/asm/func_8026EF74.s b/include/SComponent/c_m3d_g_cir/asm/func_8026EF74.s
new file mode 100644
index 0000000000..0c13de6465
--- /dev/null
+++ b/include/SComponent/c_m3d_g_cir/asm/func_8026EF74.s
@@ -0,0 +1,5 @@
+/* 8026EF74 0026BEB4 D0 23 00 00 */ stfs f1, 0(r3)
+/* 8026EF78 0026BEB8 D0 43 00 04 */ stfs f2, 4(r3)
+/* 8026EF7C 0026BEBC D0 83 00 08 */ stfs f4, 8(r3)
+/* 8026EF80 0026BEC0 D0 63 00 10 */ stfs f3, 0x10(r3)
+/* 8026EF84 0026BEC4 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_m3d_g_cps.h b/include/SComponent/c_m3d_g_cps.h
new file mode 100644
index 0000000000..f7c6070e26
--- /dev/null
+++ b/include/SComponent/c_m3d_g_cps.h
@@ -0,0 +1,18 @@
+#ifndef __C_M3D_G_CPS_H_
+#define __C_M3D_G_CPS_H_
+
+#include "SComponent/c_xyz.h"
+#include "global.h"
+
+struct cM3dGCpsS;
+
+class cM3dGCps {
+public:
+ cM3dGCps(void);
+ ~cM3dGCps(void);
+ void Set(const cXyz&, const cXyz&, float);
+ void Set(const cM3dGCpsS&);
+ void SetCps(const cM3dGCps&);
+};
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_m3d_g_cps/asm/func_8026EF88.s b/include/SComponent/c_m3d_g_cps/asm/func_8026EF88.s
new file mode 100644
index 0000000000..6b9c26293f
--- /dev/null
+++ b/include/SComponent/c_m3d_g_cps/asm/func_8026EF88.s
@@ -0,0 +1,7 @@
+/* 8026EF88 0026BEC8 3C 80 80 3A */ lis r4, lbl_803A78F8@ha
+/* 8026EF8C 0026BECC 38 04 78 F8 */ addi r0, r4, lbl_803A78F8@l
+/* 8026EF90 0026BED0 90 03 00 18 */ stw r0, 0x18(r3)
+/* 8026EF94 0026BED4 3C 80 80 3C */ lis r4, lbl_803C3FF8@ha
+/* 8026EF98 0026BED8 38 04 3F F8 */ addi r0, r4, lbl_803C3FF8@l
+/* 8026EF9C 0026BEDC 90 03 00 18 */ stw r0, 0x18(r3)
+/* 8026EFA0 0026BEE0 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_cps/asm/func_8026EFA4.s b/include/SComponent/c_m3d_g_cps/asm/func_8026EFA4.s
new file mode 100644
index 0000000000..f53c18b425
--- /dev/null
+++ b/include/SComponent/c_m3d_g_cps/asm/func_8026EFA4.s
@@ -0,0 +1,25 @@
+/* 8026EFA4 0026BEE4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026EFA8 0026BEE8 7C 08 02 A6 */ mflr r0
+/* 8026EFAC 0026BEEC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026EFB0 0026BEF0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8026EFB4 0026BEF4 7C 7F 1B 79 */ or. r31, r3, r3
+/* 8026EFB8 0026BEF8 41 82 00 30 */ beq lbl_8026EFE8
+/* 8026EFBC 0026BEFC 3C 60 80 3C */ lis r3, lbl_803C3FF8@ha
+/* 8026EFC0 0026BF00 38 03 3F F8 */ addi r0, r3, lbl_803C3FF8@l
+/* 8026EFC4 0026BF04 90 1F 00 18 */ stw r0, 0x18(r31)
+/* 8026EFC8 0026BF08 41 82 00 10 */ beq lbl_8026EFD8
+/* 8026EFCC 0026BF0C 3C 60 80 3A */ lis r3, lbl_803A78F8@ha
+/* 8026EFD0 0026BF10 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l
+/* 8026EFD4 0026BF14 90 1F 00 18 */ stw r0, 0x18(r31)
+lbl_8026EFD8:
+/* 8026EFD8 0026BF18 7C 80 07 35 */ extsh. r0, r4
+/* 8026EFDC 0026BF1C 40 81 00 0C */ ble lbl_8026EFE8
+/* 8026EFE0 0026BF20 7F E3 FB 78 */ mr r3, r31
+/* 8026EFE4 0026BF24 48 05 FD 59 */ bl __dl__FPv
+lbl_8026EFE8:
+/* 8026EFE8 0026BF28 7F E3 FB 78 */ mr r3, r31
+/* 8026EFEC 0026BF2C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8026EFF0 0026BF30 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026EFF4 0026BF34 7C 08 03 A6 */ mtlr r0
+/* 8026EFF8 0026BF38 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026EFFC 0026BF3C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_cps/asm/func_8026F000.s b/include/SComponent/c_m3d_g_cps/asm/func_8026F000.s
new file mode 100644
index 0000000000..05af2d1d60
--- /dev/null
+++ b/include/SComponent/c_m3d_g_cps/asm/func_8026F000.s
@@ -0,0 +1,15 @@
+/* 8026F000 0026BF40 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026F004 0026BF44 7C 08 02 A6 */ mflr r0
+/* 8026F008 0026BF48 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026F00C 0026BF4C DB E1 00 18 */ stfd f31, 0x18(r1)
+/* 8026F010 0026BF50 93 E1 00 14 */ stw r31, 0x14(r1)
+/* 8026F014 0026BF54 7C 7F 1B 78 */ mr r31, r3
+/* 8026F018 0026BF58 FF E0 08 90 */ fmr f31, f1
+/* 8026F01C 0026BF5C 48 00 02 CD */ bl SetStartEnd__8cM3dGLinFRC4cXyzRC4cXyz
+/* 8026F020 0026BF60 D3 FF 00 1C */ stfs f31, 0x1c(r31)
+/* 8026F024 0026BF64 CB E1 00 18 */ lfd f31, 0x18(r1)
+/* 8026F028 0026BF68 83 E1 00 14 */ lwz r31, 0x14(r1)
+/* 8026F02C 0026BF6C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026F030 0026BF70 7C 08 03 A6 */ mtlr r0
+/* 8026F034 0026BF74 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026F038 0026BF78 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_cps/asm/func_8026F03C.s b/include/SComponent/c_m3d_g_cps/asm/func_8026F03C.s
new file mode 100644
index 0000000000..870817332e
--- /dev/null
+++ b/include/SComponent/c_m3d_g_cps/asm/func_8026F03C.s
@@ -0,0 +1,17 @@
+/* 8026F03C 0026BF7C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026F040 0026BF80 7C 08 02 A6 */ mflr r0
+/* 8026F044 0026BF84 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026F048 0026BF88 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8026F04C 0026BF8C 93 C1 00 08 */ stw r30, 8(r1)
+/* 8026F050 0026BF90 7C 7E 1B 78 */ mr r30, r3
+/* 8026F054 0026BF94 7C 9F 23 78 */ mr r31, r4
+/* 8026F058 0026BF98 38 BF 00 0C */ addi r5, r31, 0xc
+/* 8026F05C 0026BF9C 48 00 02 C1 */ bl SetStartEnd__8cM3dGLinFRC3VecRC3Vec
+/* 8026F060 0026BFA0 C0 1F 00 18 */ lfs f0, 0x18(r31)
+/* 8026F064 0026BFA4 D0 1E 00 1C */ stfs f0, 0x1c(r30)
+/* 8026F068 0026BFA8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8026F06C 0026BFAC 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8026F070 0026BFB0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026F074 0026BFB4 7C 08 03 A6 */ mtlr r0
+/* 8026F078 0026BFB8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026F07C 0026BFBC 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_cps/asm/func_8026F080.s b/include/SComponent/c_m3d_g_cps/asm/func_8026F080.s
new file mode 100644
index 0000000000..ab6cc845ae
--- /dev/null
+++ b/include/SComponent/c_m3d_g_cps/asm/func_8026F080.s
@@ -0,0 +1,10 @@
+/* 8026F080 0026BFC0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026F084 0026BFC4 7C 08 02 A6 */ mflr r0
+/* 8026F088 0026BFC8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026F08C 0026BFCC 38 A4 00 0C */ addi r5, r4, 0xc
+/* 8026F090 0026BFD0 C0 24 00 1C */ lfs f1, 0x1c(r4)
+/* 8026F094 0026BFD4 4B FF FF 6D */ bl Set__8cM3dGCpsFRC4cXyzRC4cXyzf
+/* 8026F098 0026BFD8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026F09C 0026BFDC 7C 08 03 A6 */ mtlr r0
+/* 8026F0A0 0026BFE0 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026F0A4 0026BFE4 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_m3d_g_cyl.h b/include/SComponent/c_m3d_g_cyl.h
new file mode 100644
index 0000000000..bcf7e25149
--- /dev/null
+++ b/include/SComponent/c_m3d_g_cyl.h
@@ -0,0 +1,23 @@
+#ifndef __C_M3D_G_CYL_H_
+#define __C_M3D_G_CYL_H_
+
+#include "SComponent/c_xyz.h"
+#include "global.h"
+
+struct cM3dGCylS;
+struct cM3dGSph;
+
+class cM3dGCyl {
+public:
+ cM3dGCyl(const cXyz*, float, float);
+ void Set(const cM3dGCylS&);
+ void Set(const cXyz&, float, float);
+ void SetC(const cXyz&);
+ void SetH(float);
+ void SetR(float);
+ bool cross(const cM3dGSph*, cXyz*) const;
+ bool cross(const cM3dGCyl*, cXyz*) const;
+ void calcMinMax(cXyz*, cXyz*);
+};
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_m3d_g_cyl/asm/func_8026F0A8.s b/include/SComponent/c_m3d_g_cyl/asm/func_8026F0A8.s
new file mode 100644
index 0000000000..6299d39be5
--- /dev/null
+++ b/include/SComponent/c_m3d_g_cyl/asm/func_8026F0A8.s
@@ -0,0 +1,27 @@
+/* 8026F0A8 0026BFE8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026F0AC 0026BFEC 7C 08 02 A6 */ mflr r0
+/* 8026F0B0 0026BFF0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026F0B4 0026BFF4 DB E1 00 18 */ stfd f31, 0x18(r1)
+/* 8026F0B8 0026BFF8 DB C1 00 10 */ stfd f30, 0x10(r1)
+/* 8026F0BC 0026BFFC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8026F0C0 0026C000 7C 7F 1B 78 */ mr r31, r3
+/* 8026F0C4 0026C004 FF C0 08 90 */ fmr f30, f1
+/* 8026F0C8 0026C008 FF E0 10 90 */ fmr f31, f2
+/* 8026F0CC 0026C00C 3C A0 80 3A */ lis r5, lbl_803A720C@ha
+/* 8026F0D0 0026C010 38 05 72 0C */ addi r0, r5, lbl_803A720C@l
+/* 8026F0D4 0026C014 90 03 00 14 */ stw r0, 0x14(r3)
+/* 8026F0D8 0026C018 48 00 01 05 */ bl SetC__8cM3dGCylFRC4cXyz
+/* 8026F0DC 0026C01C 7F E3 FB 78 */ mr r3, r31
+/* 8026F0E0 0026C020 FC 20 F0 90 */ fmr f1, f30
+/* 8026F0E4 0026C024 48 00 01 1D */ bl SetR__8cM3dGCylFf
+/* 8026F0E8 0026C028 7F E3 FB 78 */ mr r3, r31
+/* 8026F0EC 0026C02C FC 20 F8 90 */ fmr f1, f31
+/* 8026F0F0 0026C030 48 00 01 09 */ bl SetH__8cM3dGCylFf
+/* 8026F0F4 0026C034 7F E3 FB 78 */ mr r3, r31
+/* 8026F0F8 0026C038 CB E1 00 18 */ lfd f31, 0x18(r1)
+/* 8026F0FC 0026C03C CB C1 00 10 */ lfd f30, 0x10(r1)
+/* 8026F100 0026C040 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8026F104 0026C044 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026F108 0026C048 7C 08 03 A6 */ mtlr r0
+/* 8026F10C 0026C04C 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026F110 0026C050 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_cyl/asm/func_8026F114.s b/include/SComponent/c_m3d_g_cyl/asm/func_8026F114.s
new file mode 100644
index 0000000000..8d3593573a
--- /dev/null
+++ b/include/SComponent/c_m3d_g_cyl/asm/func_8026F114.s
@@ -0,0 +1,27 @@
+/* 8026F114 0026C054 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026F118 0026C058 7C 08 02 A6 */ mflr r0
+/* 8026F11C 0026C05C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026F120 0026C060 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026F124 0026C064 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026F128 0026C068 7C 7E 1B 78 */ mr r30, r3
+/* 8026F12C 0026C06C 7C 9F 23 78 */ mr r31, r4
+/* 8026F130 0026C070 C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026F134 0026C074 D0 01 00 08 */ stfs f0, 8(r1)
+/* 8026F138 0026C078 C0 04 00 04 */ lfs f0, 4(r4)
+/* 8026F13C 0026C07C D0 01 00 0C */ stfs f0, 0xc(r1)
+/* 8026F140 0026C080 C0 04 00 08 */ lfs f0, 8(r4)
+/* 8026F144 0026C084 D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 8026F148 0026C088 38 81 00 08 */ addi r4, r1, 8
+/* 8026F14C 0026C08C 48 00 00 91 */ bl SetC__8cM3dGCylFRC4cXyz
+/* 8026F150 0026C090 7F C3 F3 78 */ mr r3, r30
+/* 8026F154 0026C094 C0 3F 00 0C */ lfs f1, 0xc(r31)
+/* 8026F158 0026C098 48 00 00 A9 */ bl SetR__8cM3dGCylFf
+/* 8026F15C 0026C09C 7F C3 F3 78 */ mr r3, r30
+/* 8026F160 0026C0A0 C0 3F 00 10 */ lfs f1, 0x10(r31)
+/* 8026F164 0026C0A4 48 00 00 95 */ bl SetH__8cM3dGCylFf
+/* 8026F168 0026C0A8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026F16C 0026C0AC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026F170 0026C0B0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026F174 0026C0B4 7C 08 03 A6 */ mtlr r0
+/* 8026F178 0026C0B8 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026F17C 0026C0BC 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_cyl/asm/func_8026F180.s b/include/SComponent/c_m3d_g_cyl/asm/func_8026F180.s
new file mode 100644
index 0000000000..df41ea289e
--- /dev/null
+++ b/include/SComponent/c_m3d_g_cyl/asm/func_8026F180.s
@@ -0,0 +1,23 @@
+/* 8026F180 0026C0C0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026F184 0026C0C4 7C 08 02 A6 */ mflr r0
+/* 8026F188 0026C0C8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026F18C 0026C0CC DB E1 00 18 */ stfd f31, 0x18(r1)
+/* 8026F190 0026C0D0 DB C1 00 10 */ stfd f30, 0x10(r1)
+/* 8026F194 0026C0D4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8026F198 0026C0D8 7C 7F 1B 78 */ mr r31, r3
+/* 8026F19C 0026C0DC FF C0 08 90 */ fmr f30, f1
+/* 8026F1A0 0026C0E0 FF E0 10 90 */ fmr f31, f2
+/* 8026F1A4 0026C0E4 48 00 00 39 */ bl SetC__8cM3dGCylFRC4cXyz
+/* 8026F1A8 0026C0E8 7F E3 FB 78 */ mr r3, r31
+/* 8026F1AC 0026C0EC FC 20 F0 90 */ fmr f1, f30
+/* 8026F1B0 0026C0F0 48 00 00 51 */ bl SetR__8cM3dGCylFf
+/* 8026F1B4 0026C0F4 7F E3 FB 78 */ mr r3, r31
+/* 8026F1B8 0026C0F8 FC 20 F8 90 */ fmr f1, f31
+/* 8026F1BC 0026C0FC 48 00 00 3D */ bl SetH__8cM3dGCylFf
+/* 8026F1C0 0026C100 CB E1 00 18 */ lfd f31, 0x18(r1)
+/* 8026F1C4 0026C104 CB C1 00 10 */ lfd f30, 0x10(r1)
+/* 8026F1C8 0026C108 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8026F1CC 0026C10C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026F1D0 0026C110 7C 08 03 A6 */ mtlr r0
+/* 8026F1D4 0026C114 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026F1D8 0026C118 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_cyl/asm/func_8026F1DC.s b/include/SComponent/c_m3d_g_cyl/asm/func_8026F1DC.s
new file mode 100644
index 0000000000..990e8af2d7
--- /dev/null
+++ b/include/SComponent/c_m3d_g_cyl/asm/func_8026F1DC.s
@@ -0,0 +1,7 @@
+/* 8026F1DC 0026C11C C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026F1E0 0026C120 D0 03 00 00 */ stfs f0, 0(r3)
+/* 8026F1E4 0026C124 C0 04 00 04 */ lfs f0, 4(r4)
+/* 8026F1E8 0026C128 D0 03 00 04 */ stfs f0, 4(r3)
+/* 8026F1EC 0026C12C C0 04 00 08 */ lfs f0, 8(r4)
+/* 8026F1F0 0026C130 D0 03 00 08 */ stfs f0, 8(r3)
+/* 8026F1F4 0026C134 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_cyl/asm/func_8026F1F8.s b/include/SComponent/c_m3d_g_cyl/asm/func_8026F1F8.s
new file mode 100644
index 0000000000..16de3d7eed
--- /dev/null
+++ b/include/SComponent/c_m3d_g_cyl/asm/func_8026F1F8.s
@@ -0,0 +1,2 @@
+/* 8026F1F8 0026C138 D0 23 00 10 */ stfs f1, 0x10(r3)
+/* 8026F1FC 0026C13C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_cyl/asm/func_8026F200.s b/include/SComponent/c_m3d_g_cyl/asm/func_8026F200.s
new file mode 100644
index 0000000000..de03746cb8
--- /dev/null
+++ b/include/SComponent/c_m3d_g_cyl/asm/func_8026F200.s
@@ -0,0 +1,2 @@
+/* 8026F200 0026C140 D0 23 00 0C */ stfs f1, 0xc(r3)
+/* 8026F204 0026C144 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_cyl/asm/func_8026F208.s b/include/SComponent/c_m3d_g_cyl/asm/func_8026F208.s
new file mode 100644
index 0000000000..4b0d1fbbaf
--- /dev/null
+++ b/include/SComponent/c_m3d_g_cyl/asm/func_8026F208.s
@@ -0,0 +1,9 @@
+/* 8026F208 0026C148 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026F20C 0026C14C 7C 08 02 A6 */ mflr r0
+/* 8026F210 0026C150 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026F214 0026C154 38 C1 00 08 */ addi r6, r1, 8
+/* 8026F218 0026C158 4B FF C8 31 */ bl cM3d_Cross_CylSph__FPC8cM3dGCylPC8cM3dGSphP3VecPf
+/* 8026F21C 0026C15C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026F220 0026C160 7C 08 03 A6 */ mtlr r0
+/* 8026F224 0026C164 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026F228 0026C168 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_cyl/asm/func_8026F22C.s b/include/SComponent/c_m3d_g_cyl/asm/func_8026F22C.s
new file mode 100644
index 0000000000..f57e724af5
--- /dev/null
+++ b/include/SComponent/c_m3d_g_cyl/asm/func_8026F22C.s
@@ -0,0 +1,8 @@
+/* 8026F22C 0026C16C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026F230 0026C170 7C 08 02 A6 */ mflr r0
+/* 8026F234 0026C174 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026F238 0026C178 4B FF D1 7D */ bl cM3d_Cross_CylCyl__FPC8cM3dGCylPC8cM3dGCylP3Vec
+/* 8026F23C 0026C17C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026F240 0026C180 7C 08 03 A6 */ mtlr r0
+/* 8026F244 0026C184 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026F248 0026C188 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_cyl/asm/func_8026F24C.s b/include/SComponent/c_m3d_g_cyl/asm/func_8026F24C.s
new file mode 100644
index 0000000000..b800454404
--- /dev/null
+++ b/include/SComponent/c_m3d_g_cyl/asm/func_8026F24C.s
@@ -0,0 +1,23 @@
+/* 8026F24C 0026C18C C0 23 00 00 */ lfs f1, 0(r3)
+/* 8026F250 0026C190 C0 03 00 0C */ lfs f0, 0xc(r3)
+/* 8026F254 0026C194 EC 01 00 28 */ fsubs f0, f1, f0
+/* 8026F258 0026C198 D0 04 00 00 */ stfs f0, 0(r4)
+/* 8026F25C 0026C19C C0 03 00 04 */ lfs f0, 4(r3)
+/* 8026F260 0026C1A0 D0 04 00 04 */ stfs f0, 4(r4)
+/* 8026F264 0026C1A4 C0 23 00 08 */ lfs f1, 8(r3)
+/* 8026F268 0026C1A8 C0 03 00 0C */ lfs f0, 0xc(r3)
+/* 8026F26C 0026C1AC EC 01 00 28 */ fsubs f0, f1, f0
+/* 8026F270 0026C1B0 D0 04 00 08 */ stfs f0, 8(r4)
+/* 8026F274 0026C1B4 C0 23 00 00 */ lfs f1, 0(r3)
+/* 8026F278 0026C1B8 C0 03 00 0C */ lfs f0, 0xc(r3)
+/* 8026F27C 0026C1BC EC 01 00 2A */ fadds f0, f1, f0
+/* 8026F280 0026C1C0 D0 05 00 00 */ stfs f0, 0(r5)
+/* 8026F284 0026C1C4 C0 23 00 04 */ lfs f1, 4(r3)
+/* 8026F288 0026C1C8 C0 03 00 10 */ lfs f0, 0x10(r3)
+/* 8026F28C 0026C1CC EC 01 00 2A */ fadds f0, f1, f0
+/* 8026F290 0026C1D0 D0 05 00 04 */ stfs f0, 4(r5)
+/* 8026F294 0026C1D4 C0 23 00 08 */ lfs f1, 8(r3)
+/* 8026F298 0026C1D8 C0 03 00 0C */ lfs f0, 0xc(r3)
+/* 8026F29C 0026C1DC EC 01 00 2A */ fadds f0, f1, f0
+/* 8026F2A0 0026C1E0 D0 05 00 08 */ stfs f0, 8(r5)
+/* 8026F2A4 0026C1E4 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_m3d_g_lin.h b/include/SComponent/c_m3d_g_lin.h
new file mode 100644
index 0000000000..830a1b7fd4
--- /dev/null
+++ b/include/SComponent/c_m3d_g_lin.h
@@ -0,0 +1,16 @@
+#ifndef __C_M3D_G_LIN_H_
+#define __C_M3D_G_LIN_H_
+
+#include "SComponent/c_xyz.h"
+#include "global.h"
+
+class cM3dGLin {
+public:
+ cM3dGLin(const cXyz&, const cXyz&);
+ void SetStartEnd(const cXyz&, const cXyz&);
+ void SetStartEnd(const Vec&, const Vec&);
+ void CalcPos(Vec*, float) const;
+ void SetEnd(const cXyz&);
+};
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_m3d_g_lin/asm/func_8026F2A8.s b/include/SComponent/c_m3d_g_lin/asm/func_8026F2A8.s
new file mode 100644
index 0000000000..5cd73c667f
--- /dev/null
+++ b/include/SComponent/c_m3d_g_lin/asm/func_8026F2A8.s
@@ -0,0 +1,16 @@
+/* 8026F2A8 0026C1E8 3C C0 80 3A */ lis r6, lbl_803A78F8@ha
+/* 8026F2AC 0026C1EC 38 06 78 F8 */ addi r0, r6, lbl_803A78F8@l
+/* 8026F2B0 0026C1F0 90 03 00 18 */ stw r0, 0x18(r3)
+/* 8026F2B4 0026C1F4 C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026F2B8 0026C1F8 D0 03 00 00 */ stfs f0, 0(r3)
+/* 8026F2BC 0026C1FC C0 04 00 04 */ lfs f0, 4(r4)
+/* 8026F2C0 0026C200 D0 03 00 04 */ stfs f0, 4(r3)
+/* 8026F2C4 0026C204 C0 04 00 08 */ lfs f0, 8(r4)
+/* 8026F2C8 0026C208 D0 03 00 08 */ stfs f0, 8(r3)
+/* 8026F2CC 0026C20C C0 05 00 00 */ lfs f0, 0(r5)
+/* 8026F2D0 0026C210 D0 03 00 0C */ stfs f0, 0xc(r3)
+/* 8026F2D4 0026C214 C0 05 00 04 */ lfs f0, 4(r5)
+/* 8026F2D8 0026C218 D0 03 00 10 */ stfs f0, 0x10(r3)
+/* 8026F2DC 0026C21C C0 05 00 08 */ lfs f0, 8(r5)
+/* 8026F2E0 0026C220 D0 03 00 14 */ stfs f0, 0x14(r3)
+/* 8026F2E4 0026C224 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_lin/asm/func_8026F2E8.s b/include/SComponent/c_m3d_g_lin/asm/func_8026F2E8.s
new file mode 100644
index 0000000000..2406f3ebdd
--- /dev/null
+++ b/include/SComponent/c_m3d_g_lin/asm/func_8026F2E8.s
@@ -0,0 +1,13 @@
+/* 8026F2E8 0026C228 C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026F2EC 0026C22C D0 03 00 00 */ stfs f0, 0(r3)
+/* 8026F2F0 0026C230 C0 04 00 04 */ lfs f0, 4(r4)
+/* 8026F2F4 0026C234 D0 03 00 04 */ stfs f0, 4(r3)
+/* 8026F2F8 0026C238 C0 04 00 08 */ lfs f0, 8(r4)
+/* 8026F2FC 0026C23C D0 03 00 08 */ stfs f0, 8(r3)
+/* 8026F300 0026C240 C0 05 00 00 */ lfs f0, 0(r5)
+/* 8026F304 0026C244 D0 03 00 0C */ stfs f0, 0xc(r3)
+/* 8026F308 0026C248 C0 05 00 04 */ lfs f0, 4(r5)
+/* 8026F30C 0026C24C D0 03 00 10 */ stfs f0, 0x10(r3)
+/* 8026F310 0026C250 C0 05 00 08 */ lfs f0, 8(r5)
+/* 8026F314 0026C254 D0 03 00 14 */ stfs f0, 0x14(r3)
+/* 8026F318 0026C258 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_lin/asm/func_8026F31C.s b/include/SComponent/c_m3d_g_lin/asm/func_8026F31C.s
new file mode 100644
index 0000000000..d3a8ef59b8
--- /dev/null
+++ b/include/SComponent/c_m3d_g_lin/asm/func_8026F31C.s
@@ -0,0 +1,13 @@
+/* 8026F31C 0026C25C C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026F320 0026C260 D0 03 00 00 */ stfs f0, 0(r3)
+/* 8026F324 0026C264 C0 04 00 04 */ lfs f0, 4(r4)
+/* 8026F328 0026C268 D0 03 00 04 */ stfs f0, 4(r3)
+/* 8026F32C 0026C26C C0 04 00 08 */ lfs f0, 8(r4)
+/* 8026F330 0026C270 D0 03 00 08 */ stfs f0, 8(r3)
+/* 8026F334 0026C274 C0 05 00 00 */ lfs f0, 0(r5)
+/* 8026F338 0026C278 D0 03 00 0C */ stfs f0, 0xc(r3)
+/* 8026F33C 0026C27C C0 05 00 04 */ lfs f0, 4(r5)
+/* 8026F340 0026C280 D0 03 00 10 */ stfs f0, 0x10(r3)
+/* 8026F344 0026C284 C0 05 00 08 */ lfs f0, 8(r5)
+/* 8026F348 0026C288 D0 03 00 14 */ stfs f0, 0x14(r3)
+/* 8026F34C 0026C28C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_lin/asm/func_8026F350.s b/include/SComponent/c_m3d_g_lin/asm/func_8026F350.s
new file mode 100644
index 0000000000..9dc6d718a5
--- /dev/null
+++ b/include/SComponent/c_m3d_g_lin/asm/func_8026F350.s
@@ -0,0 +1,28 @@
+/* 8026F350 0026C290 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8026F354 0026C294 7C 08 02 A6 */ mflr r0
+/* 8026F358 0026C298 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8026F35C 0026C29C DB E1 00 28 */ stfd f31, 0x28(r1)
+/* 8026F360 0026C2A0 93 E1 00 24 */ stw r31, 0x24(r1)
+/* 8026F364 0026C2A4 93 C1 00 20 */ stw r30, 0x20(r1)
+/* 8026F368 0026C2A8 7C 7E 1B 78 */ mr r30, r3
+/* 8026F36C 0026C2AC 7C 9F 23 78 */ mr r31, r4
+/* 8026F370 0026C2B0 FF E0 08 90 */ fmr f31, f1
+/* 8026F374 0026C2B4 38 7E 00 0C */ addi r3, r30, 0xc
+/* 8026F378 0026C2B8 7F C4 F3 78 */ mr r4, r30
+/* 8026F37C 0026C2BC 38 A1 00 08 */ addi r5, r1, 8
+/* 8026F380 0026C2C0 48 0D 7D 35 */ bl PSVECSubtract
+/* 8026F384 0026C2C4 38 61 00 08 */ addi r3, r1, 8
+/* 8026F388 0026C2C8 7C 64 1B 78 */ mr r4, r3
+/* 8026F38C 0026C2CC FC 20 F8 90 */ fmr f1, f31
+/* 8026F390 0026C2D0 48 0D 7D 49 */ bl PSVECScale
+/* 8026F394 0026C2D4 38 61 00 08 */ addi r3, r1, 8
+/* 8026F398 0026C2D8 7F C4 F3 78 */ mr r4, r30
+/* 8026F39C 0026C2DC 7F E5 FB 78 */ mr r5, r31
+/* 8026F3A0 0026C2E0 48 0D 7C F1 */ bl PSVECAdd
+/* 8026F3A4 0026C2E4 CB E1 00 28 */ lfd f31, 0x28(r1)
+/* 8026F3A8 0026C2E8 83 E1 00 24 */ lwz r31, 0x24(r1)
+/* 8026F3AC 0026C2EC 83 C1 00 20 */ lwz r30, 0x20(r1)
+/* 8026F3B0 0026C2F0 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8026F3B4 0026C2F4 7C 08 03 A6 */ mtlr r0
+/* 8026F3B8 0026C2F8 38 21 00 30 */ addi r1, r1, 0x30
+/* 8026F3BC 0026C2FC 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_lin/asm/func_8026F3C0.s b/include/SComponent/c_m3d_g_lin/asm/func_8026F3C0.s
new file mode 100644
index 0000000000..f16f3bd6e5
--- /dev/null
+++ b/include/SComponent/c_m3d_g_lin/asm/func_8026F3C0.s
@@ -0,0 +1,7 @@
+/* 8026F3C0 0026C300 C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026F3C4 0026C304 D0 03 00 0C */ stfs f0, 0xc(r3)
+/* 8026F3C8 0026C308 C0 04 00 04 */ lfs f0, 4(r4)
+/* 8026F3CC 0026C30C D0 03 00 10 */ stfs f0, 0x10(r3)
+/* 8026F3D0 0026C310 C0 04 00 08 */ lfs f0, 8(r4)
+/* 8026F3D4 0026C314 D0 03 00 14 */ stfs f0, 0x14(r3)
+/* 8026F3D8 0026C318 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_m3d_g_pla.h b/include/SComponent/c_m3d_g_pla.h
new file mode 100644
index 0000000000..865080aff3
--- /dev/null
+++ b/include/SComponent/c_m3d_g_pla.h
@@ -0,0 +1,18 @@
+#ifndef __C_M3C_G_PLA_H_
+#define __C_M3C_G_PLA_H_
+
+#include "SComponent/c_xyz.h"
+#include "global.h"
+
+class cM3dGPla {
+public:
+ cM3dGPla(const cXyz*, float);
+ void crossInfLin(const cXyz&, const cXyz&, cXyz&) const;
+ void SetupNP0(const Vec&, const Vec&);
+ void SetupNP(const Vec&, const Vec&);
+ bool getCrossY(const cXyz&, float*) const;
+ bool getCrossYLessD(const Vec&, float*) const;
+ void Set(const cM3dGPla*);
+};
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_m3d_g_pla/asm/func_8026F3DC.s b/include/SComponent/c_m3d_g_pla/asm/func_8026F3DC.s
new file mode 100644
index 0000000000..ddbce712ac
--- /dev/null
+++ b/include/SComponent/c_m3d_g_pla/asm/func_8026F3DC.s
@@ -0,0 +1,11 @@
+/* 8026F3DC 0026C31C 3C A0 80 3A */ lis r5, lbl_803A37C0@ha
+/* 8026F3E0 0026C320 38 05 37 C0 */ addi r0, r5, lbl_803A37C0@l
+/* 8026F3E4 0026C324 90 03 00 10 */ stw r0, 0x10(r3)
+/* 8026F3E8 0026C328 C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026F3EC 0026C32C D0 03 00 00 */ stfs f0, 0(r3)
+/* 8026F3F0 0026C330 C0 04 00 04 */ lfs f0, 4(r4)
+/* 8026F3F4 0026C334 D0 03 00 04 */ stfs f0, 4(r3)
+/* 8026F3F8 0026C338 C0 04 00 08 */ lfs f0, 8(r4)
+/* 8026F3FC 0026C33C D0 03 00 08 */ stfs f0, 8(r3)
+/* 8026F400 0026C340 D0 23 00 0C */ stfs f1, 0xc(r3)
+/* 8026F404 0026C344 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_pla/asm/func_8026F408.s b/include/SComponent/c_m3d_g_pla/asm/func_8026F408.s
new file mode 100644
index 0000000000..6b96452223
--- /dev/null
+++ b/include/SComponent/c_m3d_g_pla/asm/func_8026F408.s
@@ -0,0 +1,49 @@
+/* 8026F408 0026C348 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8026F40C 0026C34C 7C 08 02 A6 */ mflr r0
+/* 8026F410 0026C350 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8026F414 0026C354 DB E1 00 20 */ stfd f31, 0x20(r1)
+/* 8026F418 0026C358 F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0
+/* 8026F41C 0026C35C 39 61 00 20 */ addi r11, r1, 0x20
+/* 8026F420 0026C360 48 0F 2D B9 */ bl _savegpr_28
+/* 8026F424 0026C364 7C 7C 1B 78 */ mr r28, r3
+/* 8026F428 0026C368 7C 9D 23 78 */ mr r29, r4
+/* 8026F42C 0026C36C 7C BE 2B 78 */ mr r30, r5
+/* 8026F430 0026C370 7C DF 33 78 */ mr r31, r6
+/* 8026F434 0026C374 48 0D 7D 61 */ bl PSVECDotProduct
+/* 8026F438 0026C378 C0 1C 00 0C */ lfs f0, 0xc(r28)
+/* 8026F43C 0026C37C EF E0 08 2A */ fadds f31, f0, f1
+/* 8026F440 0026C380 7F 83 E3 78 */ mr r3, r28
+/* 8026F444 0026C384 7F C4 F3 78 */ mr r4, r30
+/* 8026F448 0026C388 48 0D 7D 4D */ bl PSVECDotProduct
+/* 8026F44C 0026C38C C0 1C 00 0C */ lfs f0, 0xc(r28)
+/* 8026F450 0026C390 EC 00 08 2A */ fadds f0, f0, f1
+/* 8026F454 0026C394 EC 5F 00 28 */ fsubs f2, f31, f0
+/* 8026F458 0026C398 FC 00 12 10 */ fabs f0, f2
+/* 8026F45C 0026C39C FC 20 00 18 */ frsp f1, f0
+/* 8026F460 0026C3A0 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026F464 0026C3A4 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026F468 0026C3A8 40 80 00 24 */ bge lbl_8026F48C
+/* 8026F46C 0026C3AC C0 1E 00 00 */ lfs f0, 0(r30)
+/* 8026F470 0026C3B0 D0 1F 00 00 */ stfs f0, 0(r31)
+/* 8026F474 0026C3B4 C0 1E 00 04 */ lfs f0, 4(r30)
+/* 8026F478 0026C3B8 D0 1F 00 04 */ stfs f0, 4(r31)
+/* 8026F47C 0026C3BC C0 1E 00 08 */ lfs f0, 8(r30)
+/* 8026F480 0026C3C0 D0 1F 00 08 */ stfs f0, 8(r31)
+/* 8026F484 0026C3C4 38 60 00 00 */ li r3, 0
+/* 8026F488 0026C3C8 48 00 00 1C */ b lbl_8026F4A4
+lbl_8026F48C:
+/* 8026F48C 0026C3CC 7F A3 EB 78 */ mr r3, r29
+/* 8026F490 0026C3D0 7F C4 F3 78 */ mr r4, r30
+/* 8026F494 0026C3D4 EC 3F 10 24 */ fdivs f1, f31, f2
+/* 8026F498 0026C3D8 7F E5 FB 78 */ mr r5, r31
+/* 8026F49C 0026C3DC 4B FF 91 15 */ bl cM3d_InDivPos2__FPC3VecPC3VecfP3Vec
+/* 8026F4A0 0026C3E0 38 60 00 01 */ li r3, 1
+lbl_8026F4A4:
+/* 8026F4A4 0026C3E4 E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0
+/* 8026F4A8 0026C3E8 CB E1 00 20 */ lfd f31, 0x20(r1)
+/* 8026F4AC 0026C3EC 39 61 00 20 */ addi r11, r1, 0x20
+/* 8026F4B0 0026C3F0 48 0F 2D 75 */ bl _restgpr_28
+/* 8026F4B4 0026C3F4 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8026F4B8 0026C3F8 7C 08 03 A6 */ mtlr r0
+/* 8026F4BC 0026C3FC 38 21 00 30 */ addi r1, r1, 0x30
+/* 8026F4C0 0026C400 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_pla/asm/func_8026F4C4.s b/include/SComponent/c_m3d_g_pla/asm/func_8026F4C4.s
new file mode 100644
index 0000000000..11d6e5523e
--- /dev/null
+++ b/include/SComponent/c_m3d_g_pla/asm/func_8026F4C4.s
@@ -0,0 +1,26 @@
+/* 8026F4C4 0026C404 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026F4C8 0026C408 7C 08 02 A6 */ mflr r0
+/* 8026F4CC 0026C40C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026F4D0 0026C410 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8026F4D4 0026C414 93 C1 00 08 */ stw r30, 8(r1)
+/* 8026F4D8 0026C418 7C 7E 1B 78 */ mr r30, r3
+/* 8026F4DC 0026C41C 7C BF 2B 78 */ mr r31, r5
+/* 8026F4E0 0026C420 C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026F4E4 0026C424 D0 03 00 00 */ stfs f0, 0(r3)
+/* 8026F4E8 0026C428 C0 04 00 04 */ lfs f0, 4(r4)
+/* 8026F4EC 0026C42C D0 03 00 04 */ stfs f0, 4(r3)
+/* 8026F4F0 0026C430 C0 04 00 08 */ lfs f0, 8(r4)
+/* 8026F4F4 0026C434 D0 03 00 08 */ stfs f0, 8(r3)
+/* 8026F4F8 0026C438 7F C4 F3 78 */ mr r4, r30
+/* 8026F4FC 0026C43C 48 0D 7B F9 */ bl PSVECNormalize
+/* 8026F500 0026C440 7F C3 F3 78 */ mr r3, r30
+/* 8026F504 0026C444 7F E4 FB 78 */ mr r4, r31
+/* 8026F508 0026C448 48 0D 7C 8D */ bl PSVECDotProduct
+/* 8026F50C 0026C44C FC 00 08 50 */ fneg f0, f1
+/* 8026F510 0026C450 D0 1E 00 0C */ stfs f0, 0xc(r30)
+/* 8026F514 0026C454 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8026F518 0026C458 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8026F51C 0026C45C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026F520 0026C460 7C 08 03 A6 */ mtlr r0
+/* 8026F524 0026C464 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026F528 0026C468 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_pla/asm/func_8026F52C.s b/include/SComponent/c_m3d_g_pla/asm/func_8026F52C.s
new file mode 100644
index 0000000000..071828b359
--- /dev/null
+++ b/include/SComponent/c_m3d_g_pla/asm/func_8026F52C.s
@@ -0,0 +1,20 @@
+/* 8026F52C 0026C46C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026F530 0026C470 7C 08 02 A6 */ mflr r0
+/* 8026F534 0026C474 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026F538 0026C478 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8026F53C 0026C47C 7C 7F 1B 78 */ mr r31, r3
+/* 8026F540 0026C480 C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026F544 0026C484 D0 03 00 00 */ stfs f0, 0(r3)
+/* 8026F548 0026C488 C0 04 00 04 */ lfs f0, 4(r4)
+/* 8026F54C 0026C48C D0 03 00 04 */ stfs f0, 4(r3)
+/* 8026F550 0026C490 C0 04 00 08 */ lfs f0, 8(r4)
+/* 8026F554 0026C494 D0 03 00 08 */ stfs f0, 8(r3)
+/* 8026F558 0026C498 7C A4 2B 78 */ mr r4, r5
+/* 8026F55C 0026C49C 48 0D 7C 39 */ bl PSVECDotProduct
+/* 8026F560 0026C4A0 FC 00 08 50 */ fneg f0, f1
+/* 8026F564 0026C4A4 D0 1F 00 0C */ stfs f0, 0xc(r31)
+/* 8026F568 0026C4A8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8026F56C 0026C4AC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026F570 0026C4B0 7C 08 03 A6 */ mtlr r0
+/* 8026F574 0026C4B4 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026F578 0026C4B8 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_pla/asm/func_8026F57C.s b/include/SComponent/c_m3d_g_pla/asm/func_8026F57C.s
new file mode 100644
index 0000000000..8332636f23
--- /dev/null
+++ b/include/SComponent/c_m3d_g_pla/asm/func_8026F57C.s
@@ -0,0 +1,23 @@
+/* 8026F57C 0026C4BC C0 63 00 04 */ lfs f3, 4(r3)
+/* 8026F580 0026C4C0 FC 00 1A 10 */ fabs f0, f3
+/* 8026F584 0026C4C4 FC 20 00 18 */ frsp f1, f0
+/* 8026F588 0026C4C8 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026F58C 0026C4CC FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026F590 0026C4D0 40 80 00 0C */ bge lbl_8026F59C
+/* 8026F594 0026C4D4 38 60 00 00 */ li r3, 0
+/* 8026F598 0026C4D8 4E 80 00 20 */ blr
+lbl_8026F59C:
+/* 8026F59C 0026C4DC C0 03 00 00 */ lfs f0, 0(r3)
+/* 8026F5A0 0026C4E0 FC 20 00 50 */ fneg f1, f0
+/* 8026F5A4 0026C4E4 C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026F5A8 0026C4E8 EC 41 00 32 */ fmuls f2, f1, f0
+/* 8026F5AC 0026C4EC C0 23 00 08 */ lfs f1, 8(r3)
+/* 8026F5B0 0026C4F0 C0 04 00 08 */ lfs f0, 8(r4)
+/* 8026F5B4 0026C4F4 EC 01 00 32 */ fmuls f0, f1, f0
+/* 8026F5B8 0026C4F8 EC 22 00 28 */ fsubs f1, f2, f0
+/* 8026F5BC 0026C4FC C0 03 00 0C */ lfs f0, 0xc(r3)
+/* 8026F5C0 0026C500 EC 01 00 28 */ fsubs f0, f1, f0
+/* 8026F5C4 0026C504 EC 00 18 24 */ fdivs f0, f0, f3
+/* 8026F5C8 0026C508 D0 05 00 00 */ stfs f0, 0(r5)
+/* 8026F5CC 0026C50C 38 60 00 01 */ li r3, 1
+/* 8026F5D0 0026C510 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_pla/asm/func_8026F5D4.s b/include/SComponent/c_m3d_g_pla/asm/func_8026F5D4.s
new file mode 100644
index 0000000000..40b9cc4452
--- /dev/null
+++ b/include/SComponent/c_m3d_g_pla/asm/func_8026F5D4.s
@@ -0,0 +1,21 @@
+/* 8026F5D4 0026C514 C0 63 00 04 */ lfs f3, 4(r3)
+/* 8026F5D8 0026C518 FC 00 1A 10 */ fabs f0, f3
+/* 8026F5DC 0026C51C FC 20 00 18 */ frsp f1, f0
+/* 8026F5E0 0026C520 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
+/* 8026F5E4 0026C524 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026F5E8 0026C528 40 80 00 0C */ bge lbl_8026F5F4
+/* 8026F5EC 0026C52C 38 60 00 00 */ li r3, 0
+/* 8026F5F0 0026C530 4E 80 00 20 */ blr
+lbl_8026F5F4:
+/* 8026F5F4 0026C534 C0 03 00 00 */ lfs f0, 0(r3)
+/* 8026F5F8 0026C538 FC 20 00 50 */ fneg f1, f0
+/* 8026F5FC 0026C53C C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026F600 0026C540 EC 41 00 32 */ fmuls f2, f1, f0
+/* 8026F604 0026C544 C0 23 00 08 */ lfs f1, 8(r3)
+/* 8026F608 0026C548 C0 04 00 08 */ lfs f0, 8(r4)
+/* 8026F60C 0026C54C EC 01 00 32 */ fmuls f0, f1, f0
+/* 8026F610 0026C550 EC 02 00 28 */ fsubs f0, f2, f0
+/* 8026F614 0026C554 EC 00 18 24 */ fdivs f0, f0, f3
+/* 8026F618 0026C558 D0 05 00 00 */ stfs f0, 0(r5)
+/* 8026F61C 0026C55C 38 60 00 01 */ li r3, 1
+/* 8026F620 0026C560 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_pla/asm/func_8026F624.s b/include/SComponent/c_m3d_g_pla/asm/func_8026F624.s
new file mode 100644
index 0000000000..67bc63ec15
--- /dev/null
+++ b/include/SComponent/c_m3d_g_pla/asm/func_8026F624.s
@@ -0,0 +1,9 @@
+/* 8026F624 0026C564 C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026F628 0026C568 D0 03 00 00 */ stfs f0, 0(r3)
+/* 8026F62C 0026C56C C0 04 00 04 */ lfs f0, 4(r4)
+/* 8026F630 0026C570 D0 03 00 04 */ stfs f0, 4(r3)
+/* 8026F634 0026C574 C0 04 00 08 */ lfs f0, 8(r4)
+/* 8026F638 0026C578 D0 03 00 08 */ stfs f0, 8(r3)
+/* 8026F63C 0026C57C C0 04 00 0C */ lfs f0, 0xc(r4)
+/* 8026F640 0026C580 D0 03 00 0C */ stfs f0, 0xc(r3)
+/* 8026F644 0026C584 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_m3d_g_sph.h b/include/SComponent/c_m3d_g_sph.h
new file mode 100644
index 0000000000..f606cb63da
--- /dev/null
+++ b/include/SComponent/c_m3d_g_sph.h
@@ -0,0 +1,21 @@
+#ifndef __C_M3D_G_SPH_H_
+#define __C_M3D_G_SPH_H_
+
+#include "SComponent/c_m3d_g_cyl.h"
+#include "SComponent/c_xyz.h"
+#include "global.h"
+
+struct cM3dGSphS;
+
+class cM3dGSph {
+public:
+ void SetC(const cXyz&);
+ void Set(const cXyz&, float);
+ void Set(const cM3dGSphS&);
+ void SetR(float);
+ bool cross(const cM3dGSph*, cXyz*) const;
+ bool cross(const cM3dGCyl*, cXyz*) const;
+ void GetMinMaxCube(cXyz&, cXyz&) const;
+};
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_m3d_g_sph/asm/func_8026F648.s b/include/SComponent/c_m3d_g_sph/asm/func_8026F648.s
new file mode 100644
index 0000000000..ccd3e218a0
--- /dev/null
+++ b/include/SComponent/c_m3d_g_sph/asm/func_8026F648.s
@@ -0,0 +1,7 @@
+/* 8026F648 0026C588 C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026F64C 0026C58C D0 03 00 00 */ stfs f0, 0(r3)
+/* 8026F650 0026C590 C0 04 00 04 */ lfs f0, 4(r4)
+/* 8026F654 0026C594 D0 03 00 04 */ stfs f0, 4(r3)
+/* 8026F658 0026C598 C0 04 00 08 */ lfs f0, 8(r4)
+/* 8026F65C 0026C59C D0 03 00 08 */ stfs f0, 8(r3)
+/* 8026F660 0026C5A0 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_sph/asm/func_8026F664.s b/include/SComponent/c_m3d_g_sph/asm/func_8026F664.s
new file mode 100644
index 0000000000..f0bc467d06
--- /dev/null
+++ b/include/SComponent/c_m3d_g_sph/asm/func_8026F664.s
@@ -0,0 +1,17 @@
+/* 8026F664 0026C5A4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026F668 0026C5A8 7C 08 02 A6 */ mflr r0
+/* 8026F66C 0026C5AC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026F670 0026C5B0 DB E1 00 18 */ stfd f31, 0x18(r1)
+/* 8026F674 0026C5B4 93 E1 00 14 */ stw r31, 0x14(r1)
+/* 8026F678 0026C5B8 7C 7F 1B 78 */ mr r31, r3
+/* 8026F67C 0026C5BC FF E0 08 90 */ fmr f31, f1
+/* 8026F680 0026C5C0 4B FF FF C9 */ bl SetC__8cM3dGSphFRC4cXyz
+/* 8026F684 0026C5C4 7F E3 FB 78 */ mr r3, r31
+/* 8026F688 0026C5C8 FC 20 F8 90 */ fmr f1, f31
+/* 8026F68C 0026C5CC 48 00 00 7D */ bl SetR__8cM3dGSphFf
+/* 8026F690 0026C5D0 CB E1 00 18 */ lfd f31, 0x18(r1)
+/* 8026F694 0026C5D4 83 E1 00 14 */ lwz r31, 0x14(r1)
+/* 8026F698 0026C5D8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026F69C 0026C5DC 7C 08 03 A6 */ mtlr r0
+/* 8026F6A0 0026C5E0 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026F6A4 0026C5E4 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_sph/asm/func_8026F6A8.s b/include/SComponent/c_m3d_g_sph/asm/func_8026F6A8.s
new file mode 100644
index 0000000000..27af44ffe1
--- /dev/null
+++ b/include/SComponent/c_m3d_g_sph/asm/func_8026F6A8.s
@@ -0,0 +1,24 @@
+/* 8026F6A8 0026C5E8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026F6AC 0026C5EC 7C 08 02 A6 */ mflr r0
+/* 8026F6B0 0026C5F0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026F6B4 0026C5F4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026F6B8 0026C5F8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026F6BC 0026C5FC 7C 7E 1B 78 */ mr r30, r3
+/* 8026F6C0 0026C600 7C 9F 23 78 */ mr r31, r4
+/* 8026F6C4 0026C604 C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026F6C8 0026C608 D0 01 00 08 */ stfs f0, 8(r1)
+/* 8026F6CC 0026C60C C0 04 00 04 */ lfs f0, 4(r4)
+/* 8026F6D0 0026C610 D0 01 00 0C */ stfs f0, 0xc(r1)
+/* 8026F6D4 0026C614 C0 04 00 08 */ lfs f0, 8(r4)
+/* 8026F6D8 0026C618 D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 8026F6DC 0026C61C 38 81 00 08 */ addi r4, r1, 8
+/* 8026F6E0 0026C620 4B FF FF 69 */ bl SetC__8cM3dGSphFRC4cXyz
+/* 8026F6E4 0026C624 7F C3 F3 78 */ mr r3, r30
+/* 8026F6E8 0026C628 C0 3F 00 0C */ lfs f1, 0xc(r31)
+/* 8026F6EC 0026C62C 48 00 00 1D */ bl SetR__8cM3dGSphFf
+/* 8026F6F0 0026C630 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026F6F4 0026C634 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026F6F8 0026C638 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026F6FC 0026C63C 7C 08 03 A6 */ mtlr r0
+/* 8026F700 0026C640 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026F704 0026C644 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_sph/asm/func_8026F708.s b/include/SComponent/c_m3d_g_sph/asm/func_8026F708.s
new file mode 100644
index 0000000000..519eb584a8
--- /dev/null
+++ b/include/SComponent/c_m3d_g_sph/asm/func_8026F708.s
@@ -0,0 +1,2 @@
+/* 8026F708 0026C648 D0 23 00 0C */ stfs f1, 0xc(r3)
+/* 8026F70C 0026C64C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_sph/asm/func_8026F710.s b/include/SComponent/c_m3d_g_sph/asm/func_8026F710.s
new file mode 100644
index 0000000000..a481780420
--- /dev/null
+++ b/include/SComponent/c_m3d_g_sph/asm/func_8026F710.s
@@ -0,0 +1,11 @@
+/* 8026F710 0026C650 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026F714 0026C654 7C 08 02 A6 */ mflr r0
+/* 8026F718 0026C658 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026F71C 0026C65C 7C 60 1B 78 */ mr r0, r3
+/* 8026F720 0026C660 7C 83 23 78 */ mr r3, r4
+/* 8026F724 0026C664 7C 04 03 78 */ mr r4, r0
+/* 8026F728 0026C668 4B FF C6 61 */ bl cM3d_Cross_SphSph__FPC8cM3dGSphPC8cM3dGSphP3Vec
+/* 8026F72C 0026C66C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026F730 0026C670 7C 08 03 A6 */ mtlr r0
+/* 8026F734 0026C674 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026F738 0026C678 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_sph/asm/func_8026F73C.s b/include/SComponent/c_m3d_g_sph/asm/func_8026F73C.s
new file mode 100644
index 0000000000..9f6a1ffe97
--- /dev/null
+++ b/include/SComponent/c_m3d_g_sph/asm/func_8026F73C.s
@@ -0,0 +1,12 @@
+/* 8026F73C 0026C67C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026F740 0026C680 7C 08 02 A6 */ mflr r0
+/* 8026F744 0026C684 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026F748 0026C688 7C 60 1B 78 */ mr r0, r3
+/* 8026F74C 0026C68C 7C 83 23 78 */ mr r3, r4
+/* 8026F750 0026C690 7C 04 03 78 */ mr r4, r0
+/* 8026F754 0026C694 38 C1 00 08 */ addi r6, r1, 8
+/* 8026F758 0026C698 4B FF C2 F1 */ bl cM3d_Cross_CylSph__FPC8cM3dGCylPC8cM3dGSphP3VecPf
+/* 8026F75C 0026C69C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026F760 0026C6A0 7C 08 03 A6 */ mtlr r0
+/* 8026F764 0026C6A4 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026F768 0026C6A8 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_sph/asm/func_8026F76C.s b/include/SComponent/c_m3d_g_sph/asm/func_8026F76C.s
new file mode 100644
index 0000000000..fa4e2aa4e4
--- /dev/null
+++ b/include/SComponent/c_m3d_g_sph/asm/func_8026F76C.s
@@ -0,0 +1,17 @@
+/* 8026F76C 0026C6AC C0 83 00 00 */ lfs f4, 0(r3)
+/* 8026F770 0026C6B0 C0 63 00 0C */ lfs f3, 0xc(r3)
+/* 8026F774 0026C6B4 EC 04 18 28 */ fsubs f0, f4, f3
+/* 8026F778 0026C6B8 D0 04 00 00 */ stfs f0, 0(r4)
+/* 8026F77C 0026C6BC C0 43 00 04 */ lfs f2, 4(r3)
+/* 8026F780 0026C6C0 EC 02 18 28 */ fsubs f0, f2, f3
+/* 8026F784 0026C6C4 D0 04 00 04 */ stfs f0, 4(r4)
+/* 8026F788 0026C6C8 C0 23 00 08 */ lfs f1, 8(r3)
+/* 8026F78C 0026C6CC EC 01 18 28 */ fsubs f0, f1, f3
+/* 8026F790 0026C6D0 D0 04 00 08 */ stfs f0, 8(r4)
+/* 8026F794 0026C6D4 EC 04 18 2A */ fadds f0, f4, f3
+/* 8026F798 0026C6D8 D0 05 00 00 */ stfs f0, 0(r5)
+/* 8026F79C 0026C6DC EC 02 18 2A */ fadds f0, f2, f3
+/* 8026F7A0 0026C6E0 D0 05 00 04 */ stfs f0, 4(r5)
+/* 8026F7A4 0026C6E4 EC 01 18 2A */ fadds f0, f1, f3
+/* 8026F7A8 0026C6E8 D0 05 00 08 */ stfs f0, 8(r5)
+/* 8026F7AC 0026C6EC 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_m3d_g_tri.h b/include/SComponent/c_m3d_g_tri.h
new file mode 100644
index 0000000000..1b74ee4d5b
--- /dev/null
+++ b/include/SComponent/c_m3d_g_tri.h
@@ -0,0 +1,17 @@
+#ifndef __C_M3D_G_TRI_H_
+#define __C_M3D_G_TRI_H_
+
+#include "SComponent/c_m3d_g_cyl.h"
+#include "SComponent/c_m3d_g_pla.h"
+#include "SComponent/c_xyz.h"
+#include "global.h"
+
+class cM3dGTri {
+public:
+ bool cross(const cM3dGCyl*, Vec*) const;
+ void setPos(const Vec*, const Vec*, const Vec*);
+ void setBg(const Vec*, const Vec*, const Vec*, const cM3dGPla*);
+ void set(const Vec*, const Vec*, const Vec*, const Vec*);
+};
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_m3d_g_tri/asm/func_8026F7B0.s b/include/SComponent/c_m3d_g_tri/asm/func_8026F7B0.s
new file mode 100644
index 0000000000..4fdcdca4a0
--- /dev/null
+++ b/include/SComponent/c_m3d_g_tri/asm/func_8026F7B0.s
@@ -0,0 +1,11 @@
+/* 8026F7B0 0026C6F0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026F7B4 0026C6F4 7C 08 02 A6 */ mflr r0
+/* 8026F7B8 0026C6F8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026F7BC 0026C6FC 7C 60 1B 78 */ mr r0, r3
+/* 8026F7C0 0026C700 7C 83 23 78 */ mr r3, r4
+/* 8026F7C4 0026C704 7C 04 03 78 */ mr r4, r0
+/* 8026F7C8 0026C708 4B FF CE 09 */ bl cM3d_Cross_CylTri__FPC8cM3dGCylPC8cM3dGTriP3Vec
+/* 8026F7CC 0026C70C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026F7D0 0026C710 7C 08 03 A6 */ mtlr r0
+/* 8026F7D4 0026C714 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026F7D8 0026C718 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_m3d_g_tri/asm/func_8026F7DC.s b/include/SComponent/c_m3d_g_tri/asm/func_8026F7DC.s
new file mode 100644
index 0000000000..5cff0327af
--- /dev/null
+++ b/include/SComponent/c_m3d_g_tri/asm/func_8026F7DC.s
@@ -0,0 +1,32 @@
+/* 8026F7DC 0026C71C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026F7E0 0026C720 7C 08 02 A6 */ mflr r0
+/* 8026F7E4 0026C724 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026F7E8 0026C728 7C 67 1B 78 */ mr r7, r3
+/* 8026F7EC 0026C72C C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026F7F0 0026C730 D0 03 00 14 */ stfs f0, 0x14(r3)
+/* 8026F7F4 0026C734 C0 04 00 04 */ lfs f0, 4(r4)
+/* 8026F7F8 0026C738 D0 03 00 18 */ stfs f0, 0x18(r3)
+/* 8026F7FC 0026C73C C0 04 00 08 */ lfs f0, 8(r4)
+/* 8026F800 0026C740 D0 03 00 1C */ stfs f0, 0x1c(r3)
+/* 8026F804 0026C744 C0 05 00 00 */ lfs f0, 0(r5)
+/* 8026F808 0026C748 D0 03 00 20 */ stfs f0, 0x20(r3)
+/* 8026F80C 0026C74C C0 05 00 04 */ lfs f0, 4(r5)
+/* 8026F810 0026C750 D0 03 00 24 */ stfs f0, 0x24(r3)
+/* 8026F814 0026C754 C0 05 00 08 */ lfs f0, 8(r5)
+/* 8026F818 0026C758 D0 03 00 28 */ stfs f0, 0x28(r3)
+/* 8026F81C 0026C75C C0 06 00 00 */ lfs f0, 0(r6)
+/* 8026F820 0026C760 D0 03 00 2C */ stfs f0, 0x2c(r3)
+/* 8026F824 0026C764 C0 06 00 04 */ lfs f0, 4(r6)
+/* 8026F828 0026C768 D0 03 00 30 */ stfs f0, 0x30(r3)
+/* 8026F82C 0026C76C C0 06 00 08 */ lfs f0, 8(r6)
+/* 8026F830 0026C770 D0 03 00 34 */ stfs f0, 0x34(r3)
+/* 8026F834 0026C774 38 67 00 14 */ addi r3, r7, 0x14
+/* 8026F838 0026C778 38 87 00 20 */ addi r4, r7, 0x20
+/* 8026F83C 0026C77C 38 A7 00 2C */ addi r5, r7, 0x2c
+/* 8026F840 0026C780 7C E6 3B 78 */ mr r6, r7
+/* 8026F844 0026C784 38 E7 00 0C */ addi r7, r7, 0xc
+/* 8026F848 0026C788 4B FF 90 D5 */ bl cM3d_CalcPla__FPC3VecPC3VecPC3VecP3VecPf
+/* 8026F84C 0026C78C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026F850 0026C790 7C 08 03 A6 */ mtlr r0
+/* 8026F854 0026C794 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026F858 0026C798 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_tri/asm/func_8026F85C.s b/include/SComponent/c_m3d_g_tri/asm/func_8026F85C.s
new file mode 100644
index 0000000000..0a53953221
--- /dev/null
+++ b/include/SComponent/c_m3d_g_tri/asm/func_8026F85C.s
@@ -0,0 +1,27 @@
+/* 8026F85C 0026C79C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026F860 0026C7A0 7C 08 02 A6 */ mflr r0
+/* 8026F864 0026C7A4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026F868 0026C7A8 C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026F86C 0026C7AC D0 03 00 14 */ stfs f0, 0x14(r3)
+/* 8026F870 0026C7B0 C0 04 00 04 */ lfs f0, 4(r4)
+/* 8026F874 0026C7B4 D0 03 00 18 */ stfs f0, 0x18(r3)
+/* 8026F878 0026C7B8 C0 04 00 08 */ lfs f0, 8(r4)
+/* 8026F87C 0026C7BC D0 03 00 1C */ stfs f0, 0x1c(r3)
+/* 8026F880 0026C7C0 C0 05 00 00 */ lfs f0, 0(r5)
+/* 8026F884 0026C7C4 D0 03 00 20 */ stfs f0, 0x20(r3)
+/* 8026F888 0026C7C8 C0 05 00 04 */ lfs f0, 4(r5)
+/* 8026F88C 0026C7CC D0 03 00 24 */ stfs f0, 0x24(r3)
+/* 8026F890 0026C7D0 C0 05 00 08 */ lfs f0, 8(r5)
+/* 8026F894 0026C7D4 D0 03 00 28 */ stfs f0, 0x28(r3)
+/* 8026F898 0026C7D8 C0 06 00 00 */ lfs f0, 0(r6)
+/* 8026F89C 0026C7DC D0 03 00 2C */ stfs f0, 0x2c(r3)
+/* 8026F8A0 0026C7E0 C0 06 00 04 */ lfs f0, 4(r6)
+/* 8026F8A4 0026C7E4 D0 03 00 30 */ stfs f0, 0x30(r3)
+/* 8026F8A8 0026C7E8 C0 06 00 08 */ lfs f0, 8(r6)
+/* 8026F8AC 0026C7EC D0 03 00 34 */ stfs f0, 0x34(r3)
+/* 8026F8B0 0026C7F0 7C E4 3B 78 */ mr r4, r7
+/* 8026F8B4 0026C7F4 4B FF FD 71 */ bl Set__8cM3dGPlaFPC8cM3dGPla
+/* 8026F8B8 0026C7F8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026F8BC 0026C7FC 7C 08 03 A6 */ mtlr r0
+/* 8026F8C0 0026C800 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026F8C4 0026C804 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_m3d_g_tri/asm/func_8026F8C8.s b/include/SComponent/c_m3d_g_tri/asm/func_8026F8C8.s
new file mode 100644
index 0000000000..6e0d5c45f3
--- /dev/null
+++ b/include/SComponent/c_m3d_g_tri/asm/func_8026F8C8.s
@@ -0,0 +1,29 @@
+/* 8026F8C8 0026C808 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026F8CC 0026C80C 7C 08 02 A6 */ mflr r0
+/* 8026F8D0 0026C810 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026F8D4 0026C814 7C 88 23 78 */ mr r8, r4
+/* 8026F8D8 0026C818 C0 04 00 00 */ lfs f0, 0(r4)
+/* 8026F8DC 0026C81C D0 03 00 14 */ stfs f0, 0x14(r3)
+/* 8026F8E0 0026C820 C0 04 00 04 */ lfs f0, 4(r4)
+/* 8026F8E4 0026C824 D0 03 00 18 */ stfs f0, 0x18(r3)
+/* 8026F8E8 0026C828 C0 04 00 08 */ lfs f0, 8(r4)
+/* 8026F8EC 0026C82C D0 03 00 1C */ stfs f0, 0x1c(r3)
+/* 8026F8F0 0026C830 C0 05 00 00 */ lfs f0, 0(r5)
+/* 8026F8F4 0026C834 D0 03 00 20 */ stfs f0, 0x20(r3)
+/* 8026F8F8 0026C838 C0 05 00 04 */ lfs f0, 4(r5)
+/* 8026F8FC 0026C83C D0 03 00 24 */ stfs f0, 0x24(r3)
+/* 8026F900 0026C840 C0 05 00 08 */ lfs f0, 8(r5)
+/* 8026F904 0026C844 D0 03 00 28 */ stfs f0, 0x28(r3)
+/* 8026F908 0026C848 C0 06 00 00 */ lfs f0, 0(r6)
+/* 8026F90C 0026C84C D0 03 00 2C */ stfs f0, 0x2c(r3)
+/* 8026F910 0026C850 C0 06 00 04 */ lfs f0, 4(r6)
+/* 8026F914 0026C854 D0 03 00 30 */ stfs f0, 0x30(r3)
+/* 8026F918 0026C858 C0 06 00 08 */ lfs f0, 8(r6)
+/* 8026F91C 0026C85C D0 03 00 34 */ stfs f0, 0x34(r3)
+/* 8026F920 0026C860 7C E4 3B 78 */ mr r4, r7
+/* 8026F924 0026C864 7D 05 43 78 */ mr r5, r8
+/* 8026F928 0026C868 4B FF FC 05 */ bl SetupNP__8cM3dGPlaFRC3VecRC3Vec
+/* 8026F92C 0026C86C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026F930 0026C870 7C 08 03 A6 */ mtlr r0
+/* 8026F934 0026C874 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026F938 0026C878 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_malloc.h b/include/SComponent/c_malloc.h
new file mode 100644
index 0000000000..498b9164a6
--- /dev/null
+++ b/include/SComponent/c_malloc.h
@@ -0,0 +1,15 @@
+#ifndef __C_MALLOC_H_
+#define __C_MALLOC_H_
+
+#include "JSystem/JKernel/JKRHeap/JKRHeap.h"
+#include "global.h"
+
+class cMl {
+ static void init(JKRHeap*);
+ static void* memalignB(int, unsigned long);
+ static void free(void*);
+};
+
+extern JKRHeap* lbl_80451150; // SComponent::cMl::Heap
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_math.h b/include/SComponent/c_math.h
new file mode 100644
index 0000000000..78886d4d36
--- /dev/null
+++ b/include/SComponent/c_math.h
@@ -0,0 +1,19 @@
+#ifndef __C_MATH_H_
+#define __C_MATH_H_
+
+#include "global.h"
+
+s16 cM_rad2s(float);
+u16 U_GetAtanTable(float, float);
+s16 cM_atan2s(float, float);
+float cM_atan2f(float, float);
+void cM_initRnd(int, int, int);
+float cM_rnd(void);
+float cM_rndF(float);
+float cM_rndFX(float);
+void cM_initRnd2(int, int, int);
+float cM_rnd2(void);
+float cM_rndF2(float);
+float cM_rndFX2(float);
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_math/asm/func_802675E4.s b/include/SComponent/c_math/asm/func_802675E4.s
new file mode 100644
index 0000000000..db0bf34781
--- /dev/null
+++ b/include/SComponent/c_math/asm/func_802675E4.s
@@ -0,0 +1,25 @@
+/* 802675E4 00264524 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802675E8 00264528 7C 08 02 A6 */ mflr r0
+/* 802675EC 0026452C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802675F0 00264530 C8 42 B6 A8 */ lfd f2, lbl_804550A8-_SDA2_BASE_(r2)
+/* 802675F4 00264534 48 10 51 6D */ bl func_8036C760
+/* 802675F8 00264538 FC 20 08 18 */ frsp f1, f1
+/* 802675FC 0026453C C0 02 B6 B0 */ lfs f0, lbl_804550B0-_SDA2_BASE_(r2)
+/* 80267600 00264540 EC 00 00 72 */ fmuls f0, f0, f1
+/* 80267604 00264544 FC 00 00 1E */ fctiwz f0, f0
+/* 80267608 00264548 D8 01 00 08 */ stfd f0, 8(r1)
+/* 8026760C 0026454C 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 80267610 00264550 2C 03 80 00 */ cmpwi r3, -32768
+/* 80267614 00264554 40 80 00 0C */ bge lbl_80267620
+/* 80267618 00264558 3C 63 00 01 */ addis r3, r3, 1
+/* 8026761C 0026455C 48 00 00 10 */ b lbl_8026762C
+lbl_80267620:
+/* 80267620 00264560 2C 03 7F FF */ cmpwi r3, 0x7fff
+/* 80267624 00264564 40 81 00 08 */ ble lbl_8026762C
+/* 80267628 00264568 3C 63 FF FF */ addis r3, r3, 0xffff
+lbl_8026762C:
+/* 8026762C 0026456C 7C 63 07 34 */ extsh r3, r3
+/* 80267630 00264570 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80267634 00264574 7C 08 03 A6 */ mtlr r0
+/* 80267638 00264578 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026763C 0026457C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_math/asm/func_80267674.s b/include/SComponent/c_math/asm/func_80267674.s
new file mode 100644
index 0000000000..7f9b38f342
--- /dev/null
+++ b/include/SComponent/c_math/asm/func_80267674.s
@@ -0,0 +1,116 @@
+/* 80267674 002645B4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80267678 002645B8 7C 08 02 A6 */ mflr r0
+/* 8026767C 002645BC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80267680 002645C0 FC 80 08 90 */ fmr f4, f1
+/* 80267684 002645C4 FC 00 22 10 */ fabs f0, f4
+/* 80267688 002645C8 FC 00 00 18 */ frsp f0, f0
+/* 8026768C 002645CC C0 6D 8C 00 */ lfs f3, lbl_80451180-_SDA_BASE_(r13)
+/* 80267690 002645D0 FC 00 18 40 */ fcmpo cr0, f0, f3
+/* 80267694 002645D4 40 80 00 28 */ bge lbl_802676BC
+/* 80267698 002645D8 C0 02 B6 B8 */ lfs f0, lbl_804550B8-_SDA2_BASE_(r2)
+/* 8026769C 002645DC FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 802676A0 002645E0 4C 41 13 82 */ cror 2, 1, 2
+/* 802676A4 002645E4 40 82 00 0C */ bne lbl_802676B0
+/* 802676A8 002645E8 38 60 00 00 */ li r3, 0
+/* 802676AC 002645EC 48 00 01 54 */ b lbl_80267800
+lbl_802676B0:
+/* 802676B0 002645F0 3C 60 00 01 */ lis r3, 0x00008000@ha
+/* 802676B4 002645F4 38 63 80 00 */ addi r3, r3, 0x00008000@l
+/* 802676B8 002645F8 48 00 01 48 */ b lbl_80267800
+lbl_802676BC:
+/* 802676BC 002645FC FC 00 12 10 */ fabs f0, f2
+/* 802676C0 00264600 FC 00 00 18 */ frsp f0, f0
+/* 802676C4 00264604 FC 00 18 40 */ fcmpo cr0, f0, f3
+/* 802676C8 00264608 40 80 00 28 */ bge lbl_802676F0
+/* 802676CC 0026460C C0 02 B6 B8 */ lfs f0, lbl_804550B8-_SDA2_BASE_(r2)
+/* 802676D0 00264610 FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 802676D4 00264614 4C 41 13 82 */ cror 2, 1, 2
+/* 802676D8 00264618 40 82 00 0C */ bne lbl_802676E4
+/* 802676DC 0026461C 38 60 40 00 */ li r3, 0x4000
+/* 802676E0 00264620 48 00 01 20 */ b lbl_80267800
+lbl_802676E4:
+/* 802676E4 00264624 3C 60 00 01 */ lis r3, 0x0000C000@ha
+/* 802676E8 00264628 38 63 C0 00 */ addi r3, r3, 0x0000C000@l
+/* 802676EC 0026462C 48 00 01 14 */ b lbl_80267800
+lbl_802676F0:
+/* 802676F0 00264630 C0 02 B6 B8 */ lfs f0, lbl_804550B8-_SDA2_BASE_(r2)
+/* 802676F4 00264634 FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 802676F8 00264638 4C 41 13 82 */ cror 2, 1, 2
+/* 802676FC 0026463C 40 82 00 7C */ bne lbl_80267778
+/* 80267700 00264640 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 80267704 00264644 4C 41 13 82 */ cror 2, 1, 2
+/* 80267708 00264648 40 82 00 34 */ bne lbl_8026773C
+/* 8026770C 0026464C FC 02 20 40 */ fcmpo cr0, f2, f4
+/* 80267710 00264650 4C 41 13 82 */ cror 2, 1, 2
+/* 80267714 00264654 40 82 00 10 */ bne lbl_80267724
+/* 80267718 00264658 4B FF FF 29 */ bl U_GetAtanTable__Fff
+/* 8026771C 0026465C 54 63 04 3E */ clrlwi r3, r3, 0x10
+/* 80267720 00264660 48 00 00 E0 */ b lbl_80267800
+lbl_80267724:
+/* 80267724 00264664 FC 20 10 90 */ fmr f1, f2
+/* 80267728 00264668 FC 40 20 90 */ fmr f2, f4
+/* 8026772C 0026466C 4B FF FF 15 */ bl U_GetAtanTable__Fff
+/* 80267730 00264670 54 60 04 3E */ clrlwi r0, r3, 0x10
+/* 80267734 00264674 20 60 40 00 */ subfic r3, r0, 0x4000
+/* 80267738 00264678 48 00 00 C8 */ b lbl_80267800
+lbl_8026773C:
+/* 8026773C 0026467C FC 40 10 50 */ fneg f2, f2
+/* 80267740 00264680 FC 02 20 40 */ fcmpo cr0, f2, f4
+/* 80267744 00264684 40 80 00 1C */ bge lbl_80267760
+/* 80267748 00264688 FC 20 10 90 */ fmr f1, f2
+/* 8026774C 0026468C FC 40 20 90 */ fmr f2, f4
+/* 80267750 00264690 4B FF FE F1 */ bl U_GetAtanTable__Fff
+/* 80267754 00264694 54 63 04 3E */ clrlwi r3, r3, 0x10
+/* 80267758 00264698 38 63 40 00 */ addi r3, r3, 0x4000
+/* 8026775C 0026469C 48 00 00 A4 */ b lbl_80267800
+lbl_80267760:
+/* 80267760 002646A0 4B FF FE E1 */ bl U_GetAtanTable__Fff
+/* 80267764 002646A4 54 64 04 3E */ clrlwi r4, r3, 0x10
+/* 80267768 002646A8 3C 60 00 01 */ lis r3, 0x00008000@ha
+/* 8026776C 002646AC 38 03 80 00 */ addi r0, r3, 0x00008000@l
+/* 80267770 002646B0 7C 64 00 50 */ subf r3, r4, r0
+/* 80267774 002646B4 48 00 00 8C */ b lbl_80267800
+lbl_80267778:
+/* 80267778 002646B8 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 8026777C 002646BC 40 80 00 4C */ bge lbl_802677C8
+/* 80267780 002646C0 FC 02 20 40 */ fcmpo cr0, f2, f4
+/* 80267784 002646C4 4C 40 13 82 */ cror 2, 0, 2
+/* 80267788 002646C8 40 82 00 20 */ bne lbl_802677A8
+/* 8026778C 002646CC FC 20 20 50 */ fneg f1, f4
+/* 80267790 002646D0 FC 40 10 50 */ fneg f2, f2
+/* 80267794 002646D4 4B FF FE AD */ bl U_GetAtanTable__Fff
+/* 80267798 002646D8 54 63 04 3E */ clrlwi r3, r3, 0x10
+/* 8026779C 002646DC 3C 63 00 01 */ addis r3, r3, 1
+/* 802677A0 002646E0 38 63 80 00 */ addi r3, r3, -32768
+/* 802677A4 002646E4 48 00 00 5C */ b lbl_80267800
+lbl_802677A8:
+/* 802677A8 002646E8 FC 20 10 50 */ fneg f1, f2
+/* 802677AC 002646EC FC 40 20 50 */ fneg f2, f4
+/* 802677B0 002646F0 4B FF FE 91 */ bl U_GetAtanTable__Fff
+/* 802677B4 002646F4 54 64 04 3E */ clrlwi r4, r3, 0x10
+/* 802677B8 002646F8 3C 60 00 01 */ lis r3, 0x0000C000@ha
+/* 802677BC 002646FC 38 03 C0 00 */ addi r0, r3, 0x0000C000@l
+/* 802677C0 00264700 7C 64 00 50 */ subf r3, r4, r0
+/* 802677C4 00264704 48 00 00 3C */ b lbl_80267800
+lbl_802677C8:
+/* 802677C8 00264708 FC 00 20 50 */ fneg f0, f4
+/* 802677CC 0026470C FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 802677D0 00264710 40 80 00 20 */ bge lbl_802677F0
+/* 802677D4 00264714 FC 20 10 90 */ fmr f1, f2
+/* 802677D8 00264718 FC 40 00 90 */ fmr f2, f0
+/* 802677DC 0026471C 4B FF FE 65 */ bl U_GetAtanTable__Fff
+/* 802677E0 00264720 54 63 04 3E */ clrlwi r3, r3, 0x10
+/* 802677E4 00264724 3C 63 00 01 */ addis r3, r3, 1
+/* 802677E8 00264728 38 63 C0 00 */ addi r3, r3, -16384
+/* 802677EC 0026472C 48 00 00 14 */ b lbl_80267800
+lbl_802677F0:
+/* 802677F0 00264730 FC 20 00 90 */ fmr f1, f0
+/* 802677F4 00264734 4B FF FE 4D */ bl U_GetAtanTable__Fff
+/* 802677F8 00264738 54 60 04 3E */ clrlwi r0, r3, 0x10
+/* 802677FC 0026473C 7C 60 00 D0 */ neg r3, r0
+lbl_80267800:
+/* 80267800 00264740 7C 63 07 34 */ extsh r3, r3
+/* 80267804 00264744 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80267808 00264748 7C 08 03 A6 */ mtlr r0
+/* 8026780C 0026474C 38 21 00 10 */ addi r1, r1, 0x10
+/* 80267810 00264750 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_math/asm/func_80267814.s b/include/SComponent/c_math/asm/func_80267814.s
new file mode 100644
index 0000000000..ebda507897
--- /dev/null
+++ b/include/SComponent/c_math/asm/func_80267814.s
@@ -0,0 +1,18 @@
+/* 80267814 00264754 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80267818 00264758 7C 08 02 A6 */ mflr r0
+/* 8026781C 0026475C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80267820 00264760 4B FF FE 55 */ bl cM_atan2s__Fff
+/* 80267824 00264764 7C 60 07 34 */ extsh r0, r3
+/* 80267828 00264768 C8 22 B6 C0 */ lfd f1, lbl_804550C0-_SDA2_BASE_(r2)
+/* 8026782C 0026476C 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 80267830 00264770 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80267834 00264774 3C 00 43 30 */ lis r0, 0x4330
+/* 80267838 00264778 90 01 00 08 */ stw r0, 8(r1)
+/* 8026783C 0026477C C8 01 00 08 */ lfd f0, 8(r1)
+/* 80267840 00264780 EC 20 08 28 */ fsubs f1, f0, f1
+/* 80267844 00264784 C0 02 B6 BC */ lfs f0, lbl_804550BC-_SDA2_BASE_(r2)
+/* 80267848 00264788 EC 20 00 72 */ fmuls f1, f0, f1
+/* 8026784C 0026478C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80267850 00264790 7C 08 03 A6 */ mtlr r0
+/* 80267854 00264794 38 21 00 10 */ addi r1, r1, 0x10
+/* 80267858 00264798 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_math/asm/func_8026786C.s b/include/SComponent/c_math/asm/func_8026786C.s
new file mode 100644
index 0000000000..839c08684a
--- /dev/null
+++ b/include/SComponent/c_math/asm/func_8026786C.s
@@ -0,0 +1,58 @@
+/* 8026786C 002647AC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80267870 002647B0 7C 08 02 A6 */ mflr r0
+/* 80267874 002647B4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80267878 002647B8 80 0D 8B E8 */ lwz r0, lbl_80451168-_SDA_BASE_(r13)
+/* 8026787C 002647BC 1C 80 00 AB */ mulli r4, r0, 0xab
+/* 80267880 002647C0 38 60 76 3D */ li r3, 0x763d
+/* 80267884 002647C4 7C 04 1B D6 */ divw r0, r4, r3
+/* 80267888 002647C8 7C 00 19 D6 */ mullw r0, r0, r3
+/* 8026788C 002647CC 7C C0 20 50 */ subf r6, r0, r4
+/* 80267890 002647D0 90 CD 8B E8 */ stw r6, lbl_80451168-_SDA_BASE_(r13)
+/* 80267894 002647D4 80 0D 8B EC */ lwz r0, lbl_8045116C-_SDA_BASE_(r13)
+/* 80267898 002647D8 1C 80 00 AC */ mulli r4, r0, 0xac
+/* 8026789C 002647DC 38 60 76 63 */ li r3, 0x7663
+/* 802678A0 002647E0 7C 04 1B D6 */ divw r0, r4, r3
+/* 802678A4 002647E4 7C 00 19 D6 */ mullw r0, r0, r3
+/* 802678A8 002647E8 7C A0 20 50 */ subf r5, r0, r4
+/* 802678AC 002647EC 90 AD 8B EC */ stw r5, lbl_8045116C-_SDA_BASE_(r13)
+/* 802678B0 002647F0 80 0D 8B F0 */ lwz r0, lbl_80451170-_SDA_BASE_(r13)
+/* 802678B4 002647F4 1C 80 00 AA */ mulli r4, r0, 0xaa
+/* 802678B8 002647F8 38 60 76 73 */ li r3, 0x7673
+/* 802678BC 002647FC 7C 04 1B D6 */ divw r0, r4, r3
+/* 802678C0 00264800 7C 00 19 D6 */ mullw r0, r0, r3
+/* 802678C4 00264804 7C 00 20 50 */ subf r0, r0, r4
+/* 802678C8 00264808 90 0D 8B F0 */ stw r0, lbl_80451170-_SDA_BASE_(r13)
+/* 802678CC 0026480C C8 82 B6 C0 */ lfd f4, lbl_804550C0-_SDA2_BASE_(r2)
+/* 802678D0 00264810 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 802678D4 00264814 90 01 00 0C */ stw r0, 0xc(r1)
+/* 802678D8 00264818 3C 60 43 30 */ lis r3, 0x4330
+/* 802678DC 0026481C 90 61 00 08 */ stw r3, 8(r1)
+/* 802678E0 00264820 C8 01 00 08 */ lfd f0, 8(r1)
+/* 802678E4 00264824 EC 20 20 28 */ fsubs f1, f0, f4
+/* 802678E8 00264828 C0 02 B6 C8 */ lfs f0, lbl_804550C8-_SDA2_BASE_(r2)
+/* 802678EC 0026482C EC 61 00 24 */ fdivs f3, f1, f0
+/* 802678F0 00264830 6C C0 80 00 */ xoris r0, r6, 0x8000
+/* 802678F4 00264834 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802678F8 00264838 90 61 00 10 */ stw r3, 0x10(r1)
+/* 802678FC 0026483C C8 01 00 10 */ lfd f0, 0x10(r1)
+/* 80267900 00264840 EC 20 20 28 */ fsubs f1, f0, f4
+/* 80267904 00264844 C0 02 B6 CC */ lfs f0, lbl_804550CC-_SDA2_BASE_(r2)
+/* 80267908 00264848 EC 41 00 24 */ fdivs f2, f1, f0
+/* 8026790C 0026484C 6C A0 80 00 */ xoris r0, r5, 0x8000
+/* 80267910 00264850 90 01 00 1C */ stw r0, 0x1c(r1)
+/* 80267914 00264854 90 61 00 18 */ stw r3, 0x18(r1)
+/* 80267918 00264858 C8 01 00 18 */ lfd f0, 0x18(r1)
+/* 8026791C 0026485C EC 20 20 28 */ fsubs f1, f0, f4
+/* 80267920 00264860 C0 02 B6 D0 */ lfs f0, lbl_804550D0-_SDA2_BASE_(r2)
+/* 80267924 00264864 EC 01 00 24 */ fdivs f0, f1, f0
+/* 80267928 00264868 EC 02 00 2A */ fadds f0, f2, f0
+/* 8026792C 0026486C EC 23 00 2A */ fadds f1, f3, f0
+/* 80267930 00264870 C8 42 B6 D8 */ lfd f2, lbl_804550D8-_SDA2_BASE_(r2)
+/* 80267934 00264874 48 10 4E 2D */ bl func_8036C760
+/* 80267938 00264878 FC 00 08 18 */ frsp f0, f1
+/* 8026793C 0026487C FC 00 02 10 */ fabs f0, f0
+/* 80267940 00264880 FC 20 00 18 */ frsp f1, f0
+/* 80267944 00264884 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80267948 00264888 7C 08 03 A6 */ mtlr r0
+/* 8026794C 0026488C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80267950 00264890 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_math/asm/func_802679E4.s b/include/SComponent/c_math/asm/func_802679E4.s
new file mode 100644
index 0000000000..5789bcc546
--- /dev/null
+++ b/include/SComponent/c_math/asm/func_802679E4.s
@@ -0,0 +1,58 @@
+/* 802679E4 00264924 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802679E8 00264928 7C 08 02 A6 */ mflr r0
+/* 802679EC 0026492C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802679F0 00264930 80 0D 8B F4 */ lwz r0, lbl_80451174-_SDA_BASE_(r13)
+/* 802679F4 00264934 1C 80 00 AB */ mulli r4, r0, 0xab
+/* 802679F8 00264938 38 60 76 3D */ li r3, 0x763d
+/* 802679FC 0026493C 7C 04 1B D6 */ divw r0, r4, r3
+/* 80267A00 00264940 7C 00 19 D6 */ mullw r0, r0, r3
+/* 80267A04 00264944 7C C0 20 50 */ subf r6, r0, r4
+/* 80267A08 00264948 90 CD 8B F4 */ stw r6, lbl_80451174-_SDA_BASE_(r13)
+/* 80267A0C 0026494C 80 0D 8B F8 */ lwz r0, lbl_80451178-_SDA_BASE_(r13)
+/* 80267A10 00264950 1C 80 00 AC */ mulli r4, r0, 0xac
+/* 80267A14 00264954 38 60 76 63 */ li r3, 0x7663
+/* 80267A18 00264958 7C 04 1B D6 */ divw r0, r4, r3
+/* 80267A1C 0026495C 7C 00 19 D6 */ mullw r0, r0, r3
+/* 80267A20 00264960 7C A0 20 50 */ subf r5, r0, r4
+/* 80267A24 00264964 90 AD 8B F8 */ stw r5, lbl_80451178-_SDA_BASE_(r13)
+/* 80267A28 00264968 80 0D 8B FC */ lwz r0, lbl_8045117C-_SDA_BASE_(r13)
+/* 80267A2C 0026496C 1C 80 00 AA */ mulli r4, r0, 0xaa
+/* 80267A30 00264970 38 60 76 73 */ li r3, 0x7673
+/* 80267A34 00264974 7C 04 1B D6 */ divw r0, r4, r3
+/* 80267A38 00264978 7C 00 19 D6 */ mullw r0, r0, r3
+/* 80267A3C 0026497C 7C 00 20 50 */ subf r0, r0, r4
+/* 80267A40 00264980 90 0D 8B FC */ stw r0, lbl_8045117C-_SDA_BASE_(r13)
+/* 80267A44 00264984 C8 82 B6 C0 */ lfd f4, lbl_804550C0-_SDA2_BASE_(r2)
+/* 80267A48 00264988 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 80267A4C 0026498C 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80267A50 00264990 3C 60 43 30 */ lis r3, 0x4330
+/* 80267A54 00264994 90 61 00 08 */ stw r3, 8(r1)
+/* 80267A58 00264998 C8 01 00 08 */ lfd f0, 8(r1)
+/* 80267A5C 0026499C EC 20 20 28 */ fsubs f1, f0, f4
+/* 80267A60 002649A0 C0 02 B6 C8 */ lfs f0, lbl_804550C8-_SDA2_BASE_(r2)
+/* 80267A64 002649A4 EC 61 00 24 */ fdivs f3, f1, f0
+/* 80267A68 002649A8 6C C0 80 00 */ xoris r0, r6, 0x8000
+/* 80267A6C 002649AC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80267A70 002649B0 90 61 00 10 */ stw r3, 0x10(r1)
+/* 80267A74 002649B4 C8 01 00 10 */ lfd f0, 0x10(r1)
+/* 80267A78 002649B8 EC 20 20 28 */ fsubs f1, f0, f4
+/* 80267A7C 002649BC C0 02 B6 CC */ lfs f0, lbl_804550CC-_SDA2_BASE_(r2)
+/* 80267A80 002649C0 EC 41 00 24 */ fdivs f2, f1, f0
+/* 80267A84 002649C4 6C A0 80 00 */ xoris r0, r5, 0x8000
+/* 80267A88 002649C8 90 01 00 1C */ stw r0, 0x1c(r1)
+/* 80267A8C 002649CC 90 61 00 18 */ stw r3, 0x18(r1)
+/* 80267A90 002649D0 C8 01 00 18 */ lfd f0, 0x18(r1)
+/* 80267A94 002649D4 EC 20 20 28 */ fsubs f1, f0, f4
+/* 80267A98 002649D8 C0 02 B6 D0 */ lfs f0, lbl_804550D0-_SDA2_BASE_(r2)
+/* 80267A9C 002649DC EC 01 00 24 */ fdivs f0, f1, f0
+/* 80267AA0 002649E0 EC 02 00 2A */ fadds f0, f2, f0
+/* 80267AA4 002649E4 EC 23 00 2A */ fadds f1, f3, f0
+/* 80267AA8 002649E8 C8 42 B6 D8 */ lfd f2, lbl_804550D8-_SDA2_BASE_(r2)
+/* 80267AAC 002649EC 48 10 4C B5 */ bl func_8036C760
+/* 80267AB0 002649F0 FC 00 08 18 */ frsp f0, f1
+/* 80267AB4 002649F4 FC 00 02 10 */ fabs f0, f0
+/* 80267AB8 002649F8 FC 20 00 18 */ frsp f1, f0
+/* 80267ABC 002649FC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80267AC0 00264A00 7C 08 03 A6 */ mtlr r0
+/* 80267AC4 00264A04 38 21 00 20 */ addi r1, r1, 0x20
+/* 80267AC8 00264A08 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_request.h b/include/SComponent/c_request.h
new file mode 100644
index 0000000000..fbb5c801db
--- /dev/null
+++ b/include/SComponent/c_request.h
@@ -0,0 +1,14 @@
+#ifndef __C_REQUEST_H_
+#define __C_REQUEST_H_
+
+#include "f/f_pc/f_pc_base.h"
+#include "global.h"
+
+struct request_base_class;
+
+int cReq_Is_Done(request_base_class*);
+int cReq_Done(request_base_class*);
+int cReq_Command(request_base_class*, u8);
+int cReq_Create(request_base_class*, u8);
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_request/asm/func_802667D4.s b/include/SComponent/c_request/asm/func_802667D4.s
new file mode 100644
index 0000000000..f19dfd5361
--- /dev/null
+++ b/include/SComponent/c_request/asm/func_802667D4.s
@@ -0,0 +1,12 @@
+/* 802667D4 00263714 88 83 00 00 */ lbz r4, 0(r3)
+/* 802667D8 00263718 54 80 D7 FE */ rlwinm r0, r4, 0x1a, 0x1f, 0x1f
+/* 802667DC 0026371C 28 00 00 01 */ cmplwi r0, 1
+/* 802667E0 00263720 40 82 00 18 */ bne lbl_802667F8
+/* 802667E4 00263724 38 00 00 00 */ li r0, 0
+/* 802667E8 00263728 50 04 36 72 */ rlwimi r4, r0, 6, 0x19, 0x19
+/* 802667EC 0026372C 98 83 00 00 */ stb r4, 0(r3)
+/* 802667F0 00263730 38 60 00 01 */ li r3, 1
+/* 802667F4 00263734 4E 80 00 20 */ blr
+lbl_802667F8:
+/* 802667F8 00263738 38 60 00 00 */ li r3, 0
+/* 802667FC 0026373C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_request/asm/func_80266800.s b/include/SComponent/c_request/asm/func_80266800.s
new file mode 100644
index 0000000000..69dcb5bae1
--- /dev/null
+++ b/include/SComponent/c_request/asm/func_80266800.s
@@ -0,0 +1,12 @@
+/* 80266800 00263740 38 A0 00 00 */ li r5, 0
+/* 80266804 00263744 88 03 00 00 */ lbz r0, 0(r3)
+/* 80266808 00263748 50 A0 3E 30 */ rlwimi r0, r5, 7, 0x18, 0x18
+/* 8026680C 0026374C 98 03 00 00 */ stb r0, 0(r3)
+/* 80266810 00263750 38 80 00 01 */ li r4, 1
+/* 80266814 00263754 88 03 00 00 */ lbz r0, 0(r3)
+/* 80266818 00263758 50 80 36 72 */ rlwimi r0, r4, 6, 0x19, 0x19
+/* 8026681C 0026375C 98 03 00 00 */ stb r0, 0(r3)
+/* 80266820 00263760 88 03 00 00 */ lbz r0, 0(r3)
+/* 80266824 00263764 50 A0 06 BE */ rlwimi r0, r5, 0, 0x1a, 0x1f
+/* 80266828 00263768 98 03 00 00 */ stb r0, 0(r3)
+/* 8026682C 0026376C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_request/asm/func_80266830.s b/include/SComponent/c_request/asm/func_80266830.s
new file mode 100644
index 0000000000..efea6e5006
--- /dev/null
+++ b/include/SComponent/c_request/asm/func_80266830.s
@@ -0,0 +1,8 @@
+/* 80266830 00263770 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80266834 00263774 7C 08 02 A6 */ mflr r0
+/* 80266838 00263778 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026683C 0026377C 48 00 00 15 */ bl cReq_Create__FP18request_base_classUc
+/* 80266840 00263780 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80266844 00263784 7C 08 03 A6 */ mtlr r0
+/* 80266848 00263788 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026684C 0026378C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_request/asm/func_80266850.s b/include/SComponent/c_request/asm/func_80266850.s
new file mode 100644
index 0000000000..39f681bdf3
--- /dev/null
+++ b/include/SComponent/c_request/asm/func_80266850.s
@@ -0,0 +1,12 @@
+/* 80266850 00263790 38 A0 00 01 */ li r5, 1
+/* 80266854 00263794 88 03 00 00 */ lbz r0, 0(r3)
+/* 80266858 00263798 50 A0 3E 30 */ rlwimi r0, r5, 7, 0x18, 0x18
+/* 8026685C 0026379C 98 03 00 00 */ stb r0, 0(r3)
+/* 80266860 002637A0 38 A0 00 00 */ li r5, 0
+/* 80266864 002637A4 88 03 00 00 */ lbz r0, 0(r3)
+/* 80266868 002637A8 50 A0 36 72 */ rlwimi r0, r5, 6, 0x19, 0x19
+/* 8026686C 002637AC 98 03 00 00 */ stb r0, 0(r3)
+/* 80266870 002637B0 88 03 00 00 */ lbz r0, 0(r3)
+/* 80266874 002637B4 50 80 06 BE */ rlwimi r0, r4, 0, 0x1a, 0x1f
+/* 80266878 002637B8 98 03 00 00 */ stb r0, 0(r3)
+/* 8026687C 002637BC 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_sxyz.h b/include/SComponent/c_sxyz.h
new file mode 100644
index 0000000000..d96d57cecb
--- /dev/null
+++ b/include/SComponent/c_sxyz.h
@@ -0,0 +1,20 @@
+#ifndef __C_SXYZ_H_
+#define __C_SXYZ_H_
+
+#include "global.h"
+
+class csXyz {
+private:
+ s16 mX, mY, mZ;
+
+public:
+ csXyz(s16, s16, s16);
+ csXyz operator+(csXyz&);
+ void operator+=(csXyz&);
+ csXyz operator-(csXyz&);
+ csXyz operator*(float);
+};
+
+extern csXyz lbl_80451160; // SComponent::csXyz::Zero
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_sxyz/asm/func_802674E8.s b/include/SComponent/c_sxyz/asm/func_802674E8.s
new file mode 100644
index 0000000000..d3bab83b92
--- /dev/null
+++ b/include/SComponent/c_sxyz/asm/func_802674E8.s
@@ -0,0 +1,41 @@
+/* 802674E8 00264428 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 802674EC 0026442C 7C 08 02 A6 */ mflr r0
+/* 802674F0 00264430 90 01 00 44 */ stw r0, 0x44(r1)
+/* 802674F4 00264434 7C 87 23 78 */ mr r7, r4
+/* 802674F8 00264438 A8 04 00 00 */ lha r0, 0(r4)
+/* 802674FC 0026443C C8 42 B6 A0 */ lfd f2, lbl_804550A0-_SDA2_BASE_(r2)
+/* 80267500 00264440 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 80267504 00264444 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80267508 00264448 3C C0 43 30 */ lis r6, 0x4330
+/* 8026750C 0026444C 90 C1 00 08 */ stw r6, 8(r1)
+/* 80267510 00264450 C8 01 00 08 */ lfd f0, 8(r1)
+/* 80267514 00264454 EC 00 10 28 */ fsubs f0, f0, f2
+/* 80267518 00264458 EC 00 00 72 */ fmuls f0, f0, f1
+/* 8026751C 0026445C FC 00 00 1E */ fctiwz f0, f0
+/* 80267520 00264460 D8 01 00 10 */ stfd f0, 0x10(r1)
+/* 80267524 00264464 80 81 00 14 */ lwz r4, 0x14(r1)
+/* 80267528 00264468 A8 07 00 02 */ lha r0, 2(r7)
+/* 8026752C 0026446C 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 80267530 00264470 90 01 00 1C */ stw r0, 0x1c(r1)
+/* 80267534 00264474 90 C1 00 18 */ stw r6, 0x18(r1)
+/* 80267538 00264478 C8 01 00 18 */ lfd f0, 0x18(r1)
+/* 8026753C 0026447C EC 00 10 28 */ fsubs f0, f0, f2
+/* 80267540 00264480 EC 00 00 72 */ fmuls f0, f0, f1
+/* 80267544 00264484 FC 00 00 1E */ fctiwz f0, f0
+/* 80267548 00264488 D8 01 00 20 */ stfd f0, 0x20(r1)
+/* 8026754C 0026448C 80 A1 00 24 */ lwz r5, 0x24(r1)
+/* 80267550 00264490 A8 07 00 04 */ lha r0, 4(r7)
+/* 80267554 00264494 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 80267558 00264498 90 01 00 2C */ stw r0, 0x2c(r1)
+/* 8026755C 0026449C 90 C1 00 28 */ stw r6, 0x28(r1)
+/* 80267560 002644A0 C8 01 00 28 */ lfd f0, 0x28(r1)
+/* 80267564 002644A4 EC 00 10 28 */ fsubs f0, f0, f2
+/* 80267568 002644A8 EC 00 00 72 */ fmuls f0, f0, f1
+/* 8026756C 002644AC FC 00 00 1E */ fctiwz f0, f0
+/* 80267570 002644B0 D8 01 00 30 */ stfd f0, 0x30(r1)
+/* 80267574 002644B4 80 C1 00 34 */ lwz r6, 0x34(r1)
+/* 80267578 002644B8 4B FF FE 7D */ bl __ct__5csXyzFsss
+/* 8026757C 002644BC 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80267580 002644C0 7C 08 03 A6 */ mtlr r0
+/* 80267584 002644C4 38 21 00 40 */ addi r1, r1, 0x40
+/* 80267588 002644C8 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_sxyz/asm/func_8026758C.s b/include/SComponent/c_sxyz/asm/func_8026758C.s
new file mode 100644
index 0000000000..8923b6c46f
--- /dev/null
+++ b/include/SComponent/c_sxyz/asm/func_8026758C.s
@@ -0,0 +1,24 @@
+/* 8026758C 002644CC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80267590 002644D0 7C 08 02 A6 */ mflr r0
+/* 80267594 002644D4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80267598 002644D8 38 61 00 08 */ addi r3, r1, 8
+/* 8026759C 002644DC 38 80 00 00 */ li r4, 0
+/* 802675A0 002644E0 38 A0 00 00 */ li r5, 0
+/* 802675A4 002644E4 38 C0 00 00 */ li r6, 0
+/* 802675A8 002644E8 4B FF FE 4D */ bl __ct__5csXyzFsss
+/* 802675AC 002644EC 80 01 00 08 */ lwz r0, 8(r1)
+/* 802675B0 002644F0 90 0D 8B E0 */ stw r0, lbl_80451160-_SDA_BASE_(r13)
+/* 802675B4 002644F4 A0 01 00 0C */ lhz r0, 0xc(r1)
+/* 802675B8 002644F8 B0 0D 8B E4 */ sth r0, lbl_80451164-_SDA_BASE_(r13)
+/* 802675BC 002644FC 38 6D 8B E0 */ addi r3, r13, 0x80451160 - 0x80458580 /*SDA HACK; original: lbl_80451160-_SDA_BASE_*/
+/*.global csXyz_NS_dtor*/
+/* 802675C0 00264500 3C 80 80 02 */ lis r4, csXyz_NS_dtor@ha
+/*.global csXyz_NS_dtor*/
+/* 802675C4 00264504 38 84 8B D0 */ addi r4, r4, csXyz_NS_dtor@l
+/* 802675C8 00264508 3C A0 80 43 */ lis r5, lbl_80430DA8@ha
+/* 802675CC 0026450C 38 A5 0D A8 */ addi r5, r5, lbl_80430DA8@l
+/* 802675D0 00264510 48 0F A6 55 */ bl func_80361C24
+/* 802675D4 00264514 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802675D8 00264518 7C 08 03 A6 */ mtlr r0
+/* 802675DC 0026451C 38 21 00 10 */ addi r1, r1, 0x10
+/* 802675E0 00264520 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_xyz.h b/include/SComponent/c_xyz.h
index b011b57b52..57f7a47a89 100644
--- a/include/SComponent/c_xyz.h
+++ b/include/SComponent/c_xyz.h
@@ -1,9 +1,73 @@
#ifndef __C_XYZ_H_
#define __C_XYZ_H_
+#include "SComponent/c_math.h"
#include "global.h"
-class cXyz : public Vec {};
+extern float /* 1.0 */ lbl_80455070;
+extern float /* epsilon */ lbl_80455074;
+extern float lbl_80455078;
+extern float lbl_8045507C;
+extern float lbl_80455080;
+extern float /* 32.0 */ lbl_80455084;
+extern double lbl_80455088;
+extern double lbl_80455090;
+extern double lbl_80455098;
+extern u8 lbl_80430CE8;
+
+class cXyz : public Vec {
+public:
+ ~cXyz(){};
+ cXyz() {}
+ cXyz(float x, float y, float z) {
+ this->x = x;
+ this->y = y;
+ this->z = z;
+ }
+ cXyz(const cXyz& vec) {
+ this->x = vec.x;
+ this->y = vec.y;
+ this->z = vec.z;
+ }
+ cXyz(const Vec& vec) {
+ this->x = vec.x;
+ this->y = vec.y;
+ this->z = vec.z;
+ }
+ cXyz operator=(const Vec& vec) {
+ cXyz ret;
+ ret.x = vec.x;
+ ret.y = vec.y;
+ ret.z = vec.z;
+ return ret;
+ }
+ cXyz operator+(const Vec& vec) const;
+ cXyz operator-(const Vec& vec) const;
+ cXyz operator*(float scale) const;
+ cXyz operator*(const Vec& vec) const;
+ cXyz operator/(float) const;
+ cXyz getCrossProduct(const Vec&) const;
+ cXyz outprod(const Vec&) const;
+ cXyz norm(void) const;
+ cXyz normZP(void) const;
+ cXyz normZC(void) const;
+ cXyz normalize(void);
+ cXyz normalizeZP(void);
+ bool normalizeRS(void);
+ bool operator==(const Vec&) const;
+ bool operator!=(const Vec&) const;
+ bool isZero(void) const;
+ s16 atan2sX_Z(void) const;
+ s16 atan2sY_XZ(void) const;
+
+ void baseZ() {
+ this->x = lbl_80455080;
+ this->y = lbl_80455080;
+ this->z = lbl_80455070;
+ }
+
+ bool checkEpsilon() const { return !(PSVECSquareMag(this) < lbl_80455074); }
+};
extern cXyz lbl_80430CF4; // SComponent::cXyz::Zero
extern cXyz lbl_80430D0C; // SComponent::cXyz::BaseX
diff --git a/include/SComponent/c_xyz/asm/func_80266DC4.s b/include/SComponent/c_xyz/asm/func_80266DC4.s
new file mode 100644
index 0000000000..65188bcd0c
--- /dev/null
+++ b/include/SComponent/c_xyz/asm/func_80266DC4.s
@@ -0,0 +1,78 @@
+/* 80266DC4 00263D04 94 21 FF A0 */ stwu r1, -0x60(r1)
+/* 80266DC8 00263D08 7C 08 02 A6 */ mflr r0
+/* 80266DCC 00263D0C 90 01 00 64 */ stw r0, 0x64(r1)
+/* 80266DD0 00263D10 93 E1 00 5C */ stw r31, 0x5c(r1)
+/* 80266DD4 00263D14 93 C1 00 58 */ stw r30, 0x58(r1)
+/* 80266DD8 00263D18 7C 7E 1B 78 */ mr r30, r3
+/* 80266DDC 00263D1C 7C 9F 23 78 */ mr r31, r4
+/* 80266DE0 00263D20 7F E3 FB 78 */ mr r3, r31
+/* 80266DE4 00263D24 48 0E 03 55 */ bl PSVECSquareMag
+/* 80266DE8 00263D28 C0 02 B6 74 */ lfs f0, lbl_80455074-_SDA2_BASE_(r2)
+/* 80266DEC 00263D2C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80266DF0 00263D30 7C 00 00 26 */ mfcr r0
+/* 80266DF4 00263D34 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
+/* 80266DF8 00263D38 40 82 00 14 */ bne lbl_80266E0C
+/* 80266DFC 00263D3C 7F E3 FB 78 */ mr r3, r31
+/* 80266E00 00263D40 38 81 00 44 */ addi r4, r1, 0x44
+/* 80266E04 00263D44 48 0E 02 F1 */ bl PSVECNormalize
+/* 80266E08 00263D48 48 00 00 BC */ b lbl_80266EC4
+lbl_80266E0C:
+/* 80266E0C 00263D4C 38 61 00 38 */ addi r3, r1, 0x38
+/* 80266E10 00263D50 7F E4 FB 78 */ mr r4, r31
+/* 80266E14 00263D54 C0 22 B6 78 */ lfs f1, lbl_80455078-_SDA2_BASE_(r2)
+/* 80266E18 00263D58 4B FF FD 6D */ bl __ml__4cXyzCFf
+/* 80266E1C 00263D5C 38 61 00 2C */ addi r3, r1, 0x2c
+/* 80266E20 00263D60 38 81 00 38 */ addi r4, r1, 0x38
+/* 80266E24 00263D64 C0 22 B6 7C */ lfs f1, lbl_8045507C-_SDA2_BASE_(r2)
+/* 80266E28 00263D68 4B FF FD 5D */ bl __ml__4cXyzCFf
+/* 80266E2C 00263D6C 38 61 00 20 */ addi r3, r1, 0x20
+/* 80266E30 00263D70 38 81 00 2C */ addi r4, r1, 0x2c
+/* 80266E34 00263D74 4B FF FE FD */ bl normZP__4cXyzCFv
+/* 80266E38 00263D78 C0 41 00 20 */ lfs f2, 0x20(r1)
+/* 80266E3C 00263D7C D0 41 00 44 */ stfs f2, 0x44(r1)
+/* 80266E40 00263D80 C0 21 00 24 */ lfs f1, 0x24(r1)
+/* 80266E44 00263D84 D0 21 00 48 */ stfs f1, 0x48(r1)
+/* 80266E48 00263D88 C0 01 00 28 */ lfs f0, 0x28(r1)
+/* 80266E4C 00263D8C D0 01 00 4C */ stfs f0, 0x4c(r1)
+/* 80266E50 00263D90 D0 41 00 14 */ stfs f2, 0x14(r1)
+/* 80266E54 00263D94 D0 21 00 18 */ stfs f1, 0x18(r1)
+/* 80266E58 00263D98 D0 01 00 1C */ stfs f0, 0x1c(r1)
+/* 80266E5C 00263D9C 38 61 00 14 */ addi r3, r1, 0x14
+/* 80266E60 00263DA0 48 0E 02 D9 */ bl PSVECSquareMag
+/* 80266E64 00263DA4 C0 02 B6 74 */ lfs f0, lbl_80455074-_SDA2_BASE_(r2)
+/* 80266E68 00263DA8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80266E6C 00263DAC 7C 00 00 26 */ mfcr r0
+/* 80266E70 00263DB0 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
+/* 80266E74 00263DB4 41 82 00 50 */ beq lbl_80266EC4
+/* 80266E78 00263DB8 C0 02 B6 80 */ lfs f0, lbl_80455080-_SDA2_BASE_(r2)
+/* 80266E7C 00263DBC D0 01 00 44 */ stfs f0, 0x44(r1)
+/* 80266E80 00263DC0 D0 01 00 48 */ stfs f0, 0x48(r1)
+/* 80266E84 00263DC4 C0 02 B6 70 */ lfs f0, lbl_80455070-_SDA2_BASE_(r2)
+/* 80266E88 00263DC8 D0 01 00 4C */ stfs f0, 0x4c(r1)
+/* 80266E8C 00263DCC 3C 60 80 3A */ lis r3, lbl_8039A868@ha
+/* 80266E90 00263DD0 38 83 A8 68 */ addi r4, r3, lbl_8039A868@l
+/* 80266E94 00263DD4 80 64 00 00 */ lwz r3, 0(r4)
+/* 80266E98 00263DD8 80 04 00 04 */ lwz r0, 4(r4)
+/* 80266E9C 00263DDC 90 61 00 08 */ stw r3, 8(r1)
+/* 80266EA0 00263DE0 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80266EA4 00263DE4 80 04 00 08 */ lwz r0, 8(r4)
+/* 80266EA8 00263DE8 90 01 00 10 */ stw r0, 0x10(r1)
+/* 80266EAC 00263DEC C0 01 00 08 */ lfs f0, 8(r1)
+/* 80266EB0 00263DF0 D0 01 00 44 */ stfs f0, 0x44(r1)
+/* 80266EB4 00263DF4 C0 01 00 0C */ lfs f0, 0xc(r1)
+/* 80266EB8 00263DF8 D0 01 00 48 */ stfs f0, 0x48(r1)
+/* 80266EBC 00263DFC C0 01 00 10 */ lfs f0, 0x10(r1)
+/* 80266EC0 00263E00 D0 01 00 4C */ stfs f0, 0x4c(r1)
+lbl_80266EC4:
+/* 80266EC4 00263E04 C0 01 00 44 */ lfs f0, 0x44(r1)
+/* 80266EC8 00263E08 D0 1E 00 00 */ stfs f0, 0(r30)
+/* 80266ECC 00263E0C C0 01 00 48 */ lfs f0, 0x48(r1)
+/* 80266ED0 00263E10 D0 1E 00 04 */ stfs f0, 4(r30)
+/* 80266ED4 00263E14 C0 01 00 4C */ lfs f0, 0x4c(r1)
+/* 80266ED8 00263E18 D0 1E 00 08 */ stfs f0, 8(r30)
+/* 80266EDC 00263E1C 83 E1 00 5C */ lwz r31, 0x5c(r1)
+/* 80266EE0 00263E20 83 C1 00 58 */ lwz r30, 0x58(r1)
+/* 80266EE4 00263E24 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 80266EE8 00263E28 7C 08 03 A6 */ mtlr r0
+/* 80266EEC 00263E2C 38 21 00 60 */ addi r1, r1, 0x60
+/* 80266EF0 00263E30 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_xyz/asm/func_80267128.s b/include/SComponent/c_xyz/asm/func_80267128.s
new file mode 100644
index 0000000000..6624a48a71
--- /dev/null
+++ b/include/SComponent/c_xyz/asm/func_80267128.s
@@ -0,0 +1,10 @@
+/* 80267128 00264068 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026712C 0026406C 7C 08 02 A6 */ mflr r0
+/* 80267130 00264070 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80267134 00264074 C0 23 00 00 */ lfs f1, 0(r3)
+/* 80267138 00264078 C0 43 00 08 */ lfs f2, 8(r3)
+/* 8026713C 0026407C 48 00 05 39 */ bl cM_atan2s__Fff
+/* 80267140 00264080 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80267144 00264084 7C 08 03 A6 */ mtlr r0
+/* 80267148 00264088 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026714C 0026408C 4E 80 00 20 */ blr
diff --git a/include/SComponent/c_xyz/asm/func_80267150.s b/include/SComponent/c_xyz/asm/func_80267150.s
new file mode 100644
index 0000000000..9069991c8f
--- /dev/null
+++ b/include/SComponent/c_xyz/asm/func_80267150.s
@@ -0,0 +1,90 @@
+/* 80267150 00264090 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80267154 00264094 7C 08 02 A6 */ mflr r0
+/* 80267158 00264098 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026715C 0026409C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80267160 002640A0 7C 7F 1B 78 */ mr r31, r3
+/* 80267164 002640A4 C0 23 00 08 */ lfs f1, 8(r3)
+/* 80267168 002640A8 C0 03 00 00 */ lfs f0, 0(r3)
+/* 8026716C 002640AC D0 01 00 0C */ stfs f0, 0xc(r1)
+/* 80267170 002640B0 C0 02 B6 80 */ lfs f0, lbl_80455080-_SDA2_BASE_(r2)
+/* 80267174 002640B4 D0 01 00 10 */ stfs f0, 0x10(r1)
+/* 80267178 002640B8 D0 21 00 14 */ stfs f1, 0x14(r1)
+/* 8026717C 002640BC 38 61 00 0C */ addi r3, r1, 0xc
+/* 80267180 002640C0 48 0D FF B9 */ bl PSVECSquareMag
+/* 80267184 002640C4 C0 02 B6 80 */ lfs f0, lbl_80455080-_SDA2_BASE_(r2)
+/* 80267188 002640C8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8026718C 002640CC 40 81 00 58 */ ble lbl_802671E4
+/* 80267190 002640D0 FC 00 08 34 */ frsqrte f0, f1
+/* 80267194 002640D4 C8 82 B6 88 */ lfd f4, lbl_80455088-_SDA2_BASE_(r2)
+/* 80267198 002640D8 FC 44 00 32 */ fmul f2, f4, f0
+/* 8026719C 002640DC C8 62 B6 90 */ lfd f3, lbl_80455090-_SDA2_BASE_(r2)
+/* 802671A0 002640E0 FC 00 00 32 */ fmul f0, f0, f0
+/* 802671A4 002640E4 FC 01 00 32 */ fmul f0, f1, f0
+/* 802671A8 002640E8 FC 03 00 28 */ fsub f0, f3, f0
+/* 802671AC 002640EC FC 02 00 32 */ fmul f0, f2, f0
+/* 802671B0 002640F0 FC 44 00 32 */ fmul f2, f4, f0
+/* 802671B4 002640F4 FC 00 00 32 */ fmul f0, f0, f0
+/* 802671B8 002640F8 FC 01 00 32 */ fmul f0, f1, f0
+/* 802671BC 002640FC FC 03 00 28 */ fsub f0, f3, f0
+/* 802671C0 00264100 FC 02 00 32 */ fmul f0, f2, f0
+/* 802671C4 00264104 FC 44 00 32 */ fmul f2, f4, f0
+/* 802671C8 00264108 FC 00 00 32 */ fmul f0, f0, f0
+/* 802671CC 0026410C FC 01 00 32 */ fmul f0, f1, f0
+/* 802671D0 00264110 FC 03 00 28 */ fsub f0, f3, f0
+/* 802671D4 00264114 FC 02 00 32 */ fmul f0, f2, f0
+/* 802671D8 00264118 FC 41 00 32 */ fmul f2, f1, f0
+/* 802671DC 0026411C FC 40 10 18 */ frsp f2, f2
+/* 802671E0 00264120 48 00 00 90 */ b lbl_80267270
+lbl_802671E4:
+/* 802671E4 00264124 C8 02 B6 98 */ lfd f0, lbl_80455098-_SDA2_BASE_(r2)
+/* 802671E8 00264128 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802671EC 0026412C 40 80 00 10 */ bge lbl_802671FC
+/* 802671F0 00264130 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 802671F4 00264134 C0 43 0A E0 */ lfs f2, lbl_80450AE0@l(r3)
+/* 802671F8 00264138 48 00 00 78 */ b lbl_80267270
+lbl_802671FC:
+/* 802671FC 0026413C D0 21 00 08 */ stfs f1, 8(r1)
+/* 80267200 00264140 80 81 00 08 */ lwz r4, 8(r1)
+/* 80267204 00264144 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
+/* 80267208 00264148 3C 00 7F 80 */ lis r0, 0x7f80
+/* 8026720C 0026414C 7C 03 00 00 */ cmpw r3, r0
+/* 80267210 00264150 41 82 00 14 */ beq lbl_80267224
+/* 80267214 00264154 40 80 00 40 */ bge lbl_80267254
+/* 80267218 00264158 2C 03 00 00 */ cmpwi r3, 0
+/* 8026721C 0026415C 41 82 00 20 */ beq lbl_8026723C
+/* 80267220 00264160 48 00 00 34 */ b lbl_80267254
+lbl_80267224:
+/* 80267224 00264164 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 80267228 00264168 41 82 00 0C */ beq lbl_80267234
+/* 8026722C 0026416C 38 00 00 01 */ li r0, 1
+/* 80267230 00264170 48 00 00 28 */ b lbl_80267258
+lbl_80267234:
+/* 80267234 00264174 38 00 00 02 */ li r0, 2
+/* 80267238 00264178 48 00 00 20 */ b lbl_80267258
+lbl_8026723C:
+/* 8026723C 0026417C 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 80267240 00264180 41 82 00 0C */ beq lbl_8026724C
+/* 80267244 00264184 38 00 00 05 */ li r0, 5
+/* 80267248 00264188 48 00 00 10 */ b lbl_80267258
+lbl_8026724C:
+/* 8026724C 0026418C 38 00 00 03 */ li r0, 3
+/* 80267250 00264190 48 00 00 08 */ b lbl_80267258
+lbl_80267254:
+/* 80267254 00264194 38 00 00 04 */ li r0, 4
+lbl_80267258:
+/* 80267258 00264198 2C 00 00 01 */ cmpwi r0, 1
+/* 8026725C 0026419C 40 82 00 10 */ bne lbl_8026726C
+/* 80267260 002641A0 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
+/* 80267264 002641A4 C0 43 0A E0 */ lfs f2, lbl_80450AE0@l(r3)
+/* 80267268 002641A8 48 00 00 08 */ b lbl_80267270
+lbl_8026726C:
+/* 8026726C 002641AC FC 40 08 90 */ fmr f2, f1
+lbl_80267270:
+/* 80267270 002641B0 C0 1F 00 04 */ lfs f0, 4(r31)
+/* 80267274 002641B4 FC 20 00 50 */ fneg f1, f0
+/* 80267278 002641B8 48 00 03 FD */ bl cM_atan2s__Fff
+/* 8026727C 002641BC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80267280 002641C0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80267284 002641C4 7C 08 03 A6 */ mtlr r0
+/* 80267288 002641C8 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026728C 002641CC 4E 80 00 20 */ blr \ No newline at end of file
diff --git a/include/SComponent/c_xyz/asm/func_80267290.s b/include/SComponent/c_xyz/asm/func_80267290.s
new file mode 100644
index 0000000000..77a3ff6923
--- /dev/null
+++ b/include/SComponent/c_xyz/asm/func_80267290.s
@@ -0,0 +1,89 @@
+/* 80267290 002641D0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80267294 002641D4 7C 08 02 A6 */ mflr r0
+/* 80267298 002641D8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026729C 002641DC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802672A0 002641E0 3C 60 80 43 */ lis r3, lbl_80430CE8@ha
+/* 802672A4 002641E4 3B E3 0C E8 */ addi r31, r3, lbl_80430CE8@l
+/* 802672A8 002641E8 C0 02 B6 80 */ lfs f0, lbl_80455080-_SDA2_BASE_(r2)
+/* 802672AC 002641EC D0 1F 00 0C */ stfs f0, 0xc(r31)
+/* 802672B0 002641F0 38 7F 00 0C */ addi r3, r31, 0xc
+/* 802672B4 002641F4 D0 03 00 04 */ stfs f0, 4(r3)
+/* 802672B8 002641F8 D0 03 00 08 */ stfs f0, 8(r3)
+/* 802672BC 002641FC 3C 80 80 01 */ lis r4, cXyz_NS_dtor@ha
+/* 802672C0 00264200 38 84 91 84 */ addi r4, r4, cXyz_NS_dtor@l
+/* 802672C4 00264204 38 BF 00 00 */ addi r5, r31, 0
+/* 802672C8 00264208 48 0F A9 5D */ bl func_80361C24
+/* 802672CC 0026420C C0 02 B6 70 */ lfs f0, lbl_80455070-_SDA2_BASE_(r2)
+/* 802672D0 00264210 D0 1F 00 24 */ stfs f0, 0x24(r31)
+/* 802672D4 00264214 C0 02 B6 80 */ lfs f0, lbl_80455080-_SDA2_BASE_(r2)
+/* 802672D8 00264218 38 7F 00 24 */ addi r3, r31, 0x24
+/* 802672DC 0026421C D0 03 00 04 */ stfs f0, 4(r3)
+/* 802672E0 00264220 D0 03 00 08 */ stfs f0, 8(r3)
+/* 802672E4 00264224 3C 80 80 01 */ lis r4, cXyz_NS_dtor@ha
+/* 802672E8 00264228 38 84 91 84 */ addi r4, r4, cXyz_NS_dtor@l
+/* 802672EC 0026422C 38 BF 00 18 */ addi r5, r31, 0x18
+/* 802672F0 00264230 48 0F A9 35 */ bl func_80361C24
+/* 802672F4 00264234 C0 22 B6 80 */ lfs f1, lbl_80455080-_SDA2_BASE_(r2)
+/* 802672F8 00264238 D0 3F 00 3C */ stfs f1, 0x3c(r31)
+/* 802672FC 0026423C C0 02 B6 70 */ lfs f0, lbl_80455070-_SDA2_BASE_(r2)
+/* 80267300 00264240 38 7F 00 3C */ addi r3, r31, 0x3c
+/* 80267304 00264244 D0 03 00 04 */ stfs f0, 4(r3)
+/* 80267308 00264248 D0 23 00 08 */ stfs f1, 8(r3)
+/* 8026730C 0026424C 3C 80 80 01 */ lis r4, cXyz_NS_dtor@ha
+/* 80267310 00264250 38 84 91 84 */ addi r4, r4, cXyz_NS_dtor@l
+/* 80267314 00264254 38 BF 00 30 */ addi r5, r31, 0x30
+/* 80267318 00264258 48 0F A9 0D */ bl func_80361C24
+/* 8026731C 0026425C C0 02 B6 80 */ lfs f0, lbl_80455080-_SDA2_BASE_(r2)
+/* 80267320 00264260 D0 1F 00 54 */ stfs f0, 0x54(r31)
+/* 80267324 00264264 38 7F 00 54 */ addi r3, r31, 0x54
+/* 80267328 00264268 D0 03 00 04 */ stfs f0, 4(r3)
+/* 8026732C 0026426C C0 02 B6 70 */ lfs f0, lbl_80455070-_SDA2_BASE_(r2)
+/* 80267330 00264270 D0 03 00 08 */ stfs f0, 8(r3)
+/* 80267334 00264274 3C 80 80 01 */ lis r4, cXyz_NS_dtor@ha
+/* 80267338 00264278 38 84 91 84 */ addi r4, r4, cXyz_NS_dtor@l
+/* 8026733C 0026427C 38 BF 00 48 */ addi r5, r31, 0x48
+/* 80267340 00264280 48 0F A8 E5 */ bl func_80361C24
+/* 80267344 00264284 C0 02 B6 70 */ lfs f0, lbl_80455070-_SDA2_BASE_(r2)
+/* 80267348 00264288 D0 1F 00 6C */ stfs f0, 0x6c(r31)
+/* 8026734C 0026428C 38 7F 00 6C */ addi r3, r31, 0x6c
+/* 80267350 00264290 D0 03 00 04 */ stfs f0, 4(r3)
+/* 80267354 00264294 C0 02 B6 80 */ lfs f0, lbl_80455080-_SDA2_BASE_(r2)
+/* 80267358 00264298 D0 03 00 08 */ stfs f0, 8(r3)
+/* 8026735C 0026429C 3C 80 80 01 */ lis r4, cXyz_NS_dtor@ha
+/* 80267360 002642A0 38 84 91 84 */ addi r4, r4, cXyz_NS_dtor@l
+/* 80267364 002642A4 38 BF 00 60 */ addi r5, r31, 0x60
+/* 80267368 002642A8 48 0F A8 BD */ bl func_80361C24
+/* 8026736C 002642AC C0 22 B6 70 */ lfs f1, lbl_80455070-_SDA2_BASE_(r2)
+/* 80267370 002642B0 D0 3F 00 84 */ stfs f1, 0x84(r31)
+/* 80267374 002642B4 C0 02 B6 80 */ lfs f0, lbl_80455080-_SDA2_BASE_(r2)
+/* 80267378 002642B8 38 7F 00 84 */ addi r3, r31, 0x84
+/* 8026737C 002642BC D0 03 00 04 */ stfs f0, 4(r3)
+/* 80267380 002642C0 D0 23 00 08 */ stfs f1, 8(r3)
+/* 80267384 002642C4 3C 80 80 01 */ lis r4, cXyz_NS_dtor@ha
+/* 80267388 002642C8 38 84 91 84 */ addi r4, r4, cXyz_NS_dtor@l
+/* 8026738C 002642CC 38 BF 00 78 */ addi r5, r31, 0x78
+/* 80267390 002642D0 48 0F A8 95 */ bl func_80361C24
+/* 80267394 002642D4 C0 02 B6 80 */ lfs f0, lbl_80455080-_SDA2_BASE_(r2)
+/* 80267398 002642D8 D0 1F 00 9C */ stfs f0, 0x9c(r31)
+/* 8026739C 002642DC C0 02 B6 70 */ lfs f0, lbl_80455070-_SDA2_BASE_(r2)
+/* 802673A0 002642E0 38 7F 00 9C */ addi r3, r31, 0x9c
+/* 802673A4 002642E4 D0 03 00 04 */ stfs f0, 4(r3)
+/* 802673A8 002642E8 D0 03 00 08 */ stfs f0, 8(r3)
+/* 802673AC 002642EC 3C 80 80 01 */ lis r4, cXyz_NS_dtor@ha
+/* 802673B0 002642F0 38 84 91 84 */ addi r4, r4, cXyz_NS_dtor@l
+/* 802673B4 002642F4 38 BF 00 90 */ addi r5, r31, 0x90
+/* 802673B8 002642F8 48 0F A8 6D */ bl func_80361C24
+/* 802673BC 002642FC C0 02 B6 70 */ lfs f0, lbl_80455070-_SDA2_BASE_(r2)
+/* 802673C0 00264300 D0 1F 00 B4 */ stfs f0, 0xb4(r31)
+/* 802673C4 00264304 38 7F 00 B4 */ addi r3, r31, 0xb4
+/* 802673C8 00264308 D0 03 00 04 */ stfs f0, 4(r3)
+/* 802673CC 0026430C D0 03 00 08 */ stfs f0, 8(r3)
+/* 802673D0 00264310 3C 80 80 01 */ lis r4, cXyz_NS_dtor@ha
+/* 802673D4 00264314 38 84 91 84 */ addi r4, r4, cXyz_NS_dtor@l
+/* 802673D8 00264318 38 BF 00 A8 */ addi r5, r31, 0xa8
+/* 802673DC 0026431C 48 0F A8 49 */ bl func_80361C24
+/* 802673E0 00264320 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802673E4 00264324 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802673E8 00264328 7C 08 03 A6 */ mtlr r0
+/* 802673EC 0026432C 38 21 00 10 */ addi r1, r1, 0x10
+/* 802673F0 00264330 4E 80 00 20 */ blr \ No newline at end of file