### RAW ASSEMBLY INSTRUCTIONS:

glabel func_80249804
/* 1780E4 80249804 27BDFF88 */  addiu     $sp, $sp, -0x78
/* 1780E8 80249808 AFB1003C */  sw        $s1, 0x3C($sp)
.L8024980C:
/* 1780EC 8024980C 00A0882D */  daddu     $s1, $a1, $zero
/* 1780F0 80249810 AFB00038 */  sw        $s0, 0x38($sp)
/* 1780F4 80249814 3C10800B */  lui       $s0, %hi(gCameras + 0x558)
/* 1780F8 80249818 261022D8 */  addiu     $s0, $s0, %lo(gCameras + 0x558)
D_8024981C:
/* 1780FC 8024981C 3C02802A */  lui       $v0, %hi(BattleCam_TargetActor)
/* 178100 80249820 9442F27C */  lhu       $v0, %lo(BattleCam_TargetActor)($v0)
/* 178104 80249824 3C04800E */  lui       $a0, %hi(gBattleStatus)
glabel func_80249828
/* 178108 80249828 2484C070 */  addiu     $a0, $a0, %lo(gBattleStatus)
/* 17810C 8024982C AFBF0040 */  sw        $ra, 0x40($sp)
/* 178110 80249830 F7BE0070 */  sdc1      $f30, 0x70($sp)
/* 178114 80249834 F7BC0068 */  sdc1      $f28, 0x68($sp)
/* 178118 80249838 F7BA0060 */  sdc1      $f26, 0x60($sp)
/* 17811C 8024983C F7B80058 */  sdc1      $f24, 0x58($sp)
/* 178120 80249840 F7B60050 */  sdc1      $f22, 0x50($sp)
/* 178124 80249844 F7B40048 */  sdc1      $f20, 0x48($sp)
/* 178128 80249848 30430700 */  andi      $v1, $v0, 0x700
/* 17812C 8024984C 304500FF */  andi      $a1, $v0, 0xFF
.L80249850:
/* 178130 80249850 24020100 */  addiu     $v0, $zero, 0x100
D_80249854:
/* 178134 80249854 10620065 */  beq       $v1, $v0, .L802499EC
/* 178138 80249858 28620101 */   slti     $v0, $v1, 0x101
/* 17813C 8024985C 10400005 */  beqz      $v0, .L80249874
/* 178140 80249860 24020200 */   addiu    $v0, $zero, 0x200
/* 178144 80249864 10600007 */  beqz      $v1, .L80249884
.L80249868:
/* 178148 80249868 0000102D */   daddu    $v0, $zero, $zero
/* 17814C 8024986C 0809287A */  j         .L8024A1E8
dgb_01_img2_gfx:
/* 178150 80249870 00000000 */   nop
.L80249874:
/* 178154 80249874 106200B8 */  beq       $v1, $v0, .L80249B58
/* 178158 80249878 0000102D */   daddu    $v0, $zero, $zero
D_8024987C:
/* 17815C 8024987C 0809287A */  j         .L8024A1E8
/* 178160 80249880 00000000 */   nop
.L80249884:
/* 178164 80249884 8C8400D8 */  lw        $a0, 0xD8($a0)
/* 178168 80249888 10800257 */  beqz      $a0, .L8024A1E8
/* 17816C 8024988C 00000000 */   nop
/* 178170 80249890 C4980144 */  lwc1      $f24, 0x144($a0)
/* 178174 80249894 90830191 */  lbu       $v1, 0x191($a0)
glabel func_80249898
/* 178178 80249898 C490014C */  lwc1      $f16, 0x14C($a0)
/* 17817C 8024989C 00031042 */  srl       $v0, $v1, 1
/* 178180 802498A0 44820000 */  mtc1      $v0, $f0
/* 178184 802498A4 00000000 */  nop
D_802498A8:
/* 178188 802498A8 46800020 */  cvt.s.w   $f0, $f0
/* 17818C 802498AC E7B00018 */  swc1      $f16, 0x18($sp)
/* 178190 802498B0 C4820148 */  lwc1      $f2, 0x148($a0)
/* 178194 802498B4 00031082 */  srl       $v0, $v1, 2
/* 178198 802498B8 46001080 */  add.s     $f2, $f2, $f0
.L802498BC:
/* 17819C 802498BC 44820000 */  mtc1      $v0, $f0
/* 1781A0 802498C0 00000000 */  nop
D_802498C4:
/* 1781A4 802498C4 46800020 */  cvt.s.w   $f0, $f0
/* 1781A8 802498C8 90820190 */  lbu       $v0, 0x190($a0)
/* 1781AC 802498CC 46001500 */  add.s     $f20, $f2, $f0
D_802498D0:
/* 1781B0 802498D0 4483D000 */  mtc1      $v1, $f26
D_802498D4:
/* 1781B4 802498D4 00000000 */  nop
D_802498D8:
/* 1781B8 802498D8 4680D6A0 */  cvt.s.w   $f26, $f26
D_802498DC:
/* 1781BC 802498DC 4482B000 */  mtc1      $v0, $f22
D_802498E0:
/* 1781C0 802498E0 00000000 */  nop
D_802498E4:
/* 1781C4 802498E4 4680B5A0 */  cvt.s.w   $f22, $f22
D_802498E8:
/* 1781C8 802498E8 4616D000 */  add.s     $f0, $f26, $f22
D_802498EC:
/* 1781CC 802498EC 3C013F00 */  lui       $at, (0x3F000000 >> 16)
dgb_01_img3_png:
/* 1781D0 802498F0 4481E000 */  mtc1      $at, $f28
D_802498F4:
/* 1781D4 802498F4 00000000 */  nop
D_802498F8:
/* 1781D8 802498F8 461C0002 */  mul.s     $f0, $f0, $f28
D_802498FC:
/* 1781DC 802498FC 00000000 */  nop
D_80249900:
/* 1781E0 80249900 84840428 */  lh        $a0, 0x428($a0)
D_80249904:
/* 1781E4 80249904 0C09A75B */  jal       get_actor
D_80249908:
/* 1781E8 80249908 E7A0002C */   swc1     $f0, 0x2C($sp)
D_8024990C:
/* 1781EC 8024990C 0040202D */  daddu     $a0, $v0, $zero
D_80249910:
/* 1781F0 80249910 10800235 */  beqz      $a0, .L8024A1E8
D_80249914:
/* 1781F4 80249914 0000102D */   daddu    $v0, $zero, $zero
/* 1781F8 80249918 90830191 */  lbu       $v1, 0x191($a0)
/* 1781FC 8024991C C4820148 */  lwc1      $f2, 0x148($a0)
.L80249920:
/* 178200 80249920 00031042 */  srl       $v0, $v1, 1
/* 178204 80249924 44820000 */  mtc1      $v0, $f0
/* 178208 80249928 00000000 */  nop
/* 17820C 8024992C 46800020 */  cvt.s.w   $f0, $f0
glabel func_80249930
/* 178210 80249930 46001080 */  add.s     $f2, $f2, $f0
D_80249934:
/* 178214 80249934 00031082 */  srl       $v0, $v1, 2
.L80249938:
/* 178218 80249938 44820000 */  mtc1      $v0, $f0
/* 17821C 8024993C 00000000 */  nop
.L80249940:
/* 178220 80249940 46800020 */  cvt.s.w   $f0, $f0
/* 178224 80249944 46001080 */  add.s     $f2, $f2, $f0
.L80249948:
/* 178228 80249948 E7A20024 */  swc1      $f2, 0x24($sp)
.L8024994C:
/* 17822C 8024994C C4920144 */  lwc1      $f18, 0x144($a0)
.L80249950:
/* 178230 80249950 E7B20020 */  swc1      $f18, 0x20($sp)
.L80249954:
/* 178234 80249954 C490014C */  lwc1      $f16, 0x14C($a0)
glabel func_80249958
/* 178238 80249958 E7B00028 */  swc1      $f16, 0x28($sp)
D_8024995C:
/* 17823C 8024995C 90820190 */  lbu       $v0, 0x190($a0)
D_80249960:
/* 178240 80249960 46189001 */  sub.s     $f0, $f18, $f24
/* 178244 80249964 00621821 */  addu      $v1, $v1, $v0
glabel func_80249968
/* 178248 80249968 00031843 */  sra       $v1, $v1, 1
/* 17824C 8024996C 461C0002 */  mul.s     $f0, $f0, $f28
glabel func_80249970
/* 178250 80249970 00000000 */  nop
/* 178254 80249974 44839000 */  mtc1      $v1, $f18
/* 178258 80249978 00000000 */  nop
glabel func_8024997C
/* 17825C 8024997C 468094A0 */  cvt.s.w   $f18, $f18
D_80249980:
/* 178260 80249980 3C03802A */  lui       $v1, %hi(BattleCam_ModeY)
D_80249984:
/* 178264 80249984 8063F2A2 */  lb        $v1, %lo(BattleCam_ModeY)($v1)
D_80249988:
/* 178268 80249988 E7B20030 */  swc1      $f18, 0x30($sp)
/* 17826C 8024998C 0460000B */  bltz      $v1, .L802499BC
/* 178270 80249990 4600C780 */   add.s    $f30, $f24, $f0
/* 178274 80249994 506000C6 */  beql      $v1, $zero, .L80249CB0
/* 178278 80249998 4600A706 */   mov.s    $f28, $f20
/* 17827C 8024999C 4602A001 */  sub.s     $f0, $f20, $f2
/* 178280 802499A0 461C0082 */  mul.s     $f2, $f0, $f28
/* 178284 802499A4 00000000 */  nop
D_802499A8:
/* 178288 802499A8 C7B00024 */  lwc1      $f16, 0x24($sp)
/* 17828C 802499AC 3C0140C0 */  lui       $at, (0x40C00000 >> 16)
/* 178290 802499B0 44812000 */  mtc1      $at, $f4
/* 178294 802499B4 08092725 */  j         .L80249C94
/* 178298 802499B8 46028080 */   add.s    $f2, $f16, $f2
.L802499BC:
/* 17829C 802499BC 2402FFFF */  addiu     $v0, $zero, -0x1
/* 1782A0 802499C0 106200BA */  beq       $v1, $v0, .L80249CAC
/* 1782A4 802499C4 00000000 */   nop
/* 1782A8 802499C8 C7B20024 */  lwc1      $f18, 0x24($sp)
.L802499CC:
/* 1782AC 802499CC 46149001 */  sub.s     $f0, $f18, $f20
/* 1782B0 802499D0 3C013E80 */  lui       $at, (0x3E800000 >> 16)
/* 1782B4 802499D4 44811000 */  mtc1      $at, $f2
/* 1782B8 802499D8 00000000 */  nop
/* 1782BC 802499DC 46020002 */  mul.s     $f0, $f0, $f2
/* 1782C0 802499E0 00000000 */  nop
/* 1782C4 802499E4 0809272C */  j         .L80249CB0
/* 1782C8 802499E8 4600A700 */   add.s    $f28, $f20, $f0
.L802499EC:
/* 1782CC 802499EC 8C8400DC */  lw        $a0, 0xDC($a0)
/* 1782D0 802499F0 108001FD */  beqz      $a0, .L8024A1E8
/* 1782D4 802499F4 0000102D */   daddu    $v0, $zero, $zero
/* 1782D8 802499F8 C4980144 */  lwc1      $f24, 0x144($a0)
D_802499FC:
/* 1782DC 802499FC 90830191 */  lbu       $v1, 0x191($a0)
/* 1782E0 80249A00 C490014C */  lwc1      $f16, 0x14C($a0)
/* 1782E4 80249A04 00031042 */  srl       $v0, $v1, 1
.L80249A08:
/* 1782E8 80249A08 44820000 */  mtc1      $v0, $f0
/* 1782EC 80249A0C 00000000 */  nop
/* 1782F0 80249A10 46800020 */  cvt.s.w   $f0, $f0
/* 1782F4 80249A14 E7B00018 */  swc1      $f16, 0x18($sp)
/* 1782F8 80249A18 C4820148 */  lwc1      $f2, 0x148($a0)
/* 1782FC 80249A1C 00031082 */  srl       $v0, $v1, 2
.L80249A20:
/* 178300 80249A20 46001080 */  add.s     $f2, $f2, $f0
/* 178304 80249A24 44820000 */  mtc1      $v0, $f0
/* 178308 80249A28 00000000 */  nop
/* 17830C 80249A2C 46800020 */  cvt.s.w   $f0, $f0
/* 178310 80249A30 90820190 */  lbu       $v0, 0x190($a0)
/* 178314 80249A34 46001500 */  add.s     $f20, $f2, $f0
/* 178318 80249A38 4483D000 */  mtc1      $v1, $f26
.L80249A3C:
/* 17831C 80249A3C 00000000 */  nop
/* 178320 80249A40 4680D6A0 */  cvt.s.w   $f26, $f26
/* 178324 80249A44 4482B000 */  mtc1      $v0, $f22
D_80249A48:
/* 178328 80249A48 00000000 */  nop
D_80249A4C:
/* 17832C 80249A4C 4680B5A0 */  cvt.s.w   $f22, $f22
.L80249A50:
/* 178330 80249A50 4616D000 */  add.s     $f0, $f26, $f22
.L80249A54:
/* 178334 80249A54 3C013F00 */  lui       $at, (0x3F000000 >> 16)
/* 178338 80249A58 4481E000 */  mtc1      $at, $f28
D_80249A5C:
/* 17833C 80249A5C 00000000 */  nop
/* 178340 80249A60 461C0002 */  mul.s     $f0, $f0, $f28
/* 178344 80249A64 00000000 */  nop
/* 178348 80249A68 84840428 */  lh        $a0, 0x428($a0)
D_80249A6C:
/* 17834C 80249A6C 0C09A75B */  jal       get_actor
D_80249A70:
/* 178350 80249A70 E7A0002C */   swc1     $f0, 0x2C($sp)
D_80249A74:
/* 178354 80249A74 0040202D */  daddu     $a0, $v0, $zero
D_80249A78:
/* 178358 80249A78 108001DB */  beqz      $a0, .L8024A1E8
D_80249A7C:
/* 17835C 80249A7C 0000102D */   daddu    $v0, $zero, $zero
D_80249A80:
/* 178360 80249A80 90830191 */  lbu       $v1, 0x191($a0)
D_80249A84:
/* 178364 80249A84 C4820148 */  lwc1      $f2, 0x148($a0)
D_80249A88:
/* 178368 80249A88 00031042 */  srl       $v0, $v1, 1
D_80249A8C:
/* 17836C 80249A8C 44820000 */  mtc1      $v0, $f0
D_80249A90:
/* 178370 80249A90 00000000 */  nop
D_80249A94:
/* 178374 80249A94 46800020 */  cvt.s.w   $f0, $f0
D_80249A98:
/* 178378 80249A98 46001080 */  add.s     $f2, $f2, $f0
D_80249A9C:
/* 17837C 80249A9C 00031082 */  srl       $v0, $v1, 2
D_80249AA0:
/* 178380 80249AA0 44820000 */  mtc1      $v0, $f0
D_80249AA4:
/* 178384 80249AA4 00000000 */  nop
/* 178388 80249AA8 46800020 */  cvt.s.w   $f0, $f0
/* 17838C 80249AAC 46001080 */  add.s     $f2, $f2, $f0
/* 178390 80249AB0 E7A20024 */  swc1      $f2, 0x24($sp)
/* 178394 80249AB4 C4920144 */  lwc1      $f18, 0x144($a0)
glabel func_80249AB8
/* 178398 80249AB8 E7B20020 */  swc1      $f18, 0x20($sp)
D_80249ABC:
/* 17839C 80249ABC C490014C */  lwc1      $f16, 0x14C($a0)
/* 1783A0 80249AC0 46189001 */  sub.s     $f0, $f18, $f24
.L80249AC4:
/* 1783A4 80249AC4 E7B00028 */  swc1      $f16, 0x28($sp)
/* 1783A8 80249AC8 90820190 */  lbu       $v0, 0x190($a0)
.L80249ACC:
/* 1783AC 80249ACC 00621821 */  addu      $v1, $v1, $v0
/* 1783B0 80249AD0 461C0002 */  mul.s     $f0, $f0, $f28
/* 1783B4 80249AD4 00000000 */  nop
/* 1783B8 80249AD8 00031843 */  sra       $v1, $v1, 1
/* 1783BC 80249ADC 3C02802A */  lui       $v0, %hi(BattleCam_ModeY)
D_80249AE0:
/* 1783C0 80249AE0 8042F2A2 */  lb        $v0, %lo(BattleCam_ModeY)($v0)
/* 1783C4 80249AE4 44839000 */  mtc1      $v1, $f18
/* 1783C8 80249AE8 00000000 */  nop
/* 1783CC 80249AEC 468094A0 */  cvt.s.w   $f18, $f18
/* 1783D0 80249AF0 E7B20030 */  swc1      $f18, 0x30($sp)
.L80249AF4:
/* 1783D4 80249AF4 0440000D */  bltz      $v0, .L80249B2C
/* 1783D8 80249AF8 4600C780 */   add.s    $f30, $f24, $f0
/* 1783DC 80249AFC 5040000C */  beql      $v0, $zero, .L80249B30
.L80249B00:
/* 1783E0 80249B00 4600A706 */   mov.s    $f28, $f20
/* 1783E4 80249B04 4602A001 */  sub.s     $f0, $f20, $f2
/* 1783E8 80249B08 461C0082 */  mul.s     $f2, $f0, $f28
/* 1783EC 80249B0C 00000000 */  nop
D_80249B10:
/* 1783F0 80249B10 C7B00024 */  lwc1      $f16, 0x24($sp)
.L80249B14:
/* 1783F4 80249B14 3C0140C0 */  lui       $at, (0x40C00000 >> 16)
/* 1783F8 80249B18 44812000 */  mtc1      $at, $f4
/* 1783FC 80249B1C 46028080 */  add.s     $f2, $f16, $f2
/* 178400 80249B20 46040003 */  div.s     $f0, $f0, $f4
/* 178404 80249B24 080926CC */  j         .L80249B30
/* 178408 80249B28 46001700 */   add.s    $f28, $f2, $f0
.L80249B2C:
/* 17840C 80249B2C C7BC0024 */  lwc1      $f28, 0x24($sp)
.L80249B30:
/* 178410 80249B30 C7B20028 */  lwc1      $f18, 0x28($sp)
D_80249B34:
/* 178414 80249B34 C7B00018 */  lwc1      $f16, 0x18($sp)
.L80249B38:
/* 178418 80249B38 46109001 */  sub.s     $f0, $f18, $f16
/* 17841C 80249B3C 3C013F00 */  lui       $at, (0x3F000000 >> 16)
/* 178420 80249B40 44811000 */  mtc1      $at, $f2
/* 178424 80249B44 00000000 */  nop
.L80249B48:
/* 178428 80249B48 46020002 */  mul.s     $f0, $f0, $f2
/* 17842C 80249B4C 00000000 */  nop
/* 178430 80249B50 08092735 */  j         .L80249CD4
/* 178434 80249B54 46008000 */   add.s    $f0, $f16, $f0
.L80249B58:
/* 178438 80249B58 00051080 */  sll       $v0, $a1, 2
/* 17843C 80249B5C 00441021 */  addu      $v0, $v0, $a0
/* 178440 80249B60 8C4400E0 */  lw        $a0, 0xE0($v0)
/* 178444 80249B64 108001A0 */  beqz      $a0, .L8024A1E8
/* 178448 80249B68 0000102D */   daddu    $v0, $zero, $zero
/* 17844C 80249B6C C4980144 */  lwc1      $f24, 0x144($a0)
/* 178450 80249B70 90830191 */  lbu       $v1, 0x191($a0)
/* 178454 80249B74 C492014C */  lwc1      $f18, 0x14C($a0)
/* 178458 80249B78 00031042 */  srl       $v0, $v1, 1
/* 17845C 80249B7C 44820000 */  mtc1      $v0, $f0
D_80249B80:
/* 178460 80249B80 00000000 */  nop
D_80249B84:
/* 178464 80249B84 46800020 */  cvt.s.w   $f0, $f0
D_80249B88:
/* 178468 80249B88 E7B20018 */  swc1      $f18, 0x18($sp)
D_80249B8C:
/* 17846C 80249B8C C4820148 */  lwc1      $f2, 0x148($a0)
D_80249B90:
/* 178470 80249B90 00031082 */  srl       $v0, $v1, 2
D_80249B94:
/* 178474 80249B94 46001080 */  add.s     $f2, $f2, $f0
D_80249B98:
/* 178478 80249B98 44820000 */  mtc1      $v0, $f0
D_80249B9C:
/* 17847C 80249B9C 00000000 */  nop
D_80249BA0:
/* 178480 80249BA0 46800020 */  cvt.s.w   $f0, $f0
D_80249BA4:
/* 178484 80249BA4 90820190 */  lbu       $v0, 0x190($a0)
D_80249BA8:
/* 178488 80249BA8 46001500 */  add.s     $f20, $f2, $f0
D_80249BAC:
/* 17848C 80249BAC 4483D000 */  mtc1      $v1, $f26
D_80249BB0:
/* 178490 80249BB0 00000000 */  nop
/* 178494 80249BB4 4680D6A0 */  cvt.s.w   $f26, $f26
D_80249BB8:
/* 178498 80249BB8 4482B000 */  mtc1      $v0, $f22
D_80249BBC:
/* 17849C 80249BBC 00000000 */  nop
/* 1784A0 80249BC0 4680B5A0 */  cvt.s.w   $f22, $f22
/* 1784A4 80249BC4 4616D000 */  add.s     $f0, $f26, $f22
/* 1784A8 80249BC8 3C013F00 */  lui       $at, (0x3F000000 >> 16)
/* 1784AC 80249BCC 4481E000 */  mtc1      $at, $f28
/* 1784B0 80249BD0 00000000 */  nop
/* 1784B4 80249BD4 461C0002 */  mul.s     $f0, $f0, $f28
/* 1784B8 80249BD8 00000000 */  nop
D_80249BDC:
/* 1784BC 80249BDC 84840428 */  lh        $a0, 0x428($a0)
/* 1784C0 80249BE0 0C09A75B */  jal       get_actor
/* 1784C4 80249BE4 E7A0002C */   swc1     $f0, 0x2C($sp)
/* 1784C8 80249BE8 0040202D */  daddu     $a0, $v0, $zero
.L80249BEC:
/* 1784CC 80249BEC 1080017E */  beqz      $a0, .L8024A1E8
/* 1784D0 80249BF0 0000102D */   daddu    $v0, $zero, $zero
/* 1784D4 80249BF4 90830191 */  lbu       $v1, 0x191($a0)
/* 1784D8 80249BF8 C4820148 */  lwc1      $f2, 0x148($a0)
D_80249BFC:
/* 1784DC 80249BFC 00031042 */  srl       $v0, $v1, 1
/* 1784E0 80249C00 44820000 */  mtc1      $v0, $f0
/* 1784E4 80249C04 00000000 */  nop
/* 1784E8 80249C08 46800020 */  cvt.s.w   $f0, $f0
/* 1784EC 80249C0C 46001080 */  add.s     $f2, $f2, $f0
/* 1784F0 80249C10 00031082 */  srl       $v0, $v1, 2
/* 1784F4 80249C14 44820000 */  mtc1      $v0, $f0
/* 1784F8 80249C18 00000000 */  nop
D_80249C1C:
/* 1784FC 80249C1C 46800020 */  cvt.s.w   $f0, $f0
/* 178500 80249C20 46001080 */  add.s     $f2, $f2, $f0
/* 178504 80249C24 E7A20024 */  swc1      $f2, 0x24($sp)
/* 178508 80249C28 C4900144 */  lwc1      $f16, 0x144($a0)
/* 17850C 80249C2C E7B00020 */  swc1      $f16, 0x20($sp)
/* 178510 80249C30 C492014C */  lwc1      $f18, 0x14C($a0)
/* 178514 80249C34 E7B20028 */  swc1      $f18, 0x28($sp)
/* 178518 80249C38 90820190 */  lbu       $v0, 0x190($a0)
D_80249C3C:
/* 17851C 80249C3C 46188001 */  sub.s     $f0, $f16, $f24
.L80249C40:
/* 178520 80249C40 00621821 */  addu      $v1, $v1, $v0
/* 178524 80249C44 00031843 */  sra       $v1, $v1, 1
/* 178528 80249C48 461C0002 */  mul.s     $f0, $f0, $f28
/* 17852C 80249C4C 00000000 */  nop
/* 178530 80249C50 44838000 */  mtc1      $v1, $f16
/* 178534 80249C54 00000000 */  nop
/* 178538 80249C58 46808420 */  cvt.s.w   $f16, $f16
D_80249C5C:
/* 17853C 80249C5C 3C03802A */  lui       $v1, %hi(BattleCam_ModeY)
/* 178540 80249C60 8063F2A2 */  lb        $v1, %lo(BattleCam_ModeY)($v1)
/* 178544 80249C64 E7B00030 */  swc1      $f16, 0x30($sp)
/* 178548 80249C68 0460000D */  bltz      $v1, .L80249CA0
/* 17854C 80249C6C 4600C780 */   add.s    $f30, $f24, $f0
/* 178550 80249C70 5060000F */  beql      $v1, $zero, .L80249CB0
/* 178554 80249C74 4600A706 */   mov.s    $f28, $f20
/* 178558 80249C78 4602A001 */  sub.s     $f0, $f20, $f2
D_80249C7C:
/* 17855C 80249C7C 461C0082 */  mul.s     $f2, $f0, $f28
/* 178560 80249C80 00000000 */  nop
/* 178564 80249C84 C7B20024 */  lwc1      $f18, 0x24($sp)
/* 178568 80249C88 3C0140C0 */  lui       $at, (0x40C00000 >> 16)
/* 17856C 80249C8C 44812000 */  mtc1      $at, $f4
D_80249C90:
/* 178570 80249C90 46029080 */  add.s     $f2, $f18, $f2
.L80249C94:
/* 178574 80249C94 46040003 */  div.s     $f0, $f0, $f4
/* 178578 80249C98 0809272C */  j         .L80249CB0
/* 17857C 80249C9C 46001700 */   add.s    $f28, $f2, $f0
.L80249CA0:
/* 178580 80249CA0 2402FFFF */  addiu     $v0, $zero, -0x1
D_80249CA4:
/* 178584 80249CA4 14620002 */  bne       $v1, $v0, .L80249CB0
/* 178588 80249CA8 4600A706 */   mov.s    $f28, $f20
.L80249CAC:
/* 17858C 80249CAC C7BC0024 */  lwc1      $f28, 0x24($sp)
.L80249CB0:
/* 178590 80249CB0 C7B00028 */  lwc1      $f16, 0x28($sp)
/* 178594 80249CB4 C7B20018 */  lwc1      $f18, 0x18($sp)
D_80249CB8:
/* 178598 80249CB8 46128001 */  sub.s     $f0, $f16, $f18
/* 17859C 80249CBC 3C013F00 */  lui       $at, (0x3F000000 >> 16)
/* 1785A0 80249CC0 44811000 */  mtc1      $at, $f2
/* 1785A4 80249CC4 00000000 */  nop
/* 1785A8 80249CC8 46020002 */  mul.s     $f0, $f0, $f2
D_80249CCC:
/* 1785AC 80249CCC 00000000 */  nop
/* 1785B0 80249CD0 46009000 */  add.s     $f0, $f18, $f0
.L80249CD4:
/* 1785B4 80249CD4 E7A0001C */  swc1      $f0, 0x1C($sp)
/* 1785B8 80249CD8 3C02802A */  lui       $v0, %hi(D_8029F2A6)
/* 1785BC 80249CDC 8042F2A6 */  lb        $v0, %lo(D_8029F2A6)($v0)
D_80249CE0:
/* 1785C0 80249CE0 10400029 */  beqz      $v0, .L80249D88
/* 1785C4 80249CE4 00000000 */   nop
/* 1785C8 80249CE8 3C01802A */  lui       $at, %hi(BattleCam_InitialBoomLength)
/* 1785CC 80249CEC C422F28C */  lwc1      $f2, %lo(BattleCam_InitialBoomLength)($at)
dgb_01_img3_gfx:
/* 1785D0 80249CF0 3C0143FA */  lui       $at, (0x43FA0000 >> 16)
D_80249CF4:
/* 1785D4 80249CF4 44810000 */  mtc1      $at, $f0
/* 1785D8 80249CF8 00000000 */  nop
/* 1785DC 80249CFC 46020001 */  sub.s     $f0, $f0, $f2
/* 1785E0 80249D00 3C01802A */  lui       $at, %hi(D_8029CC08)
.L80249D04:
/* 1785E4 80249D04 D422CC08 */  ldc1      $f2, %lo(D_8029CC08)($at)
/* 1785E8 80249D08 46000021 */  cvt.d.s   $f0, $f0
/* 1785EC 80249D0C 46220002 */  mul.d     $f0, $f0, $f2
/* 1785F0 80249D10 00000000 */  nop
D_80249D14:
/* 1785F4 80249D14 3C01403E */  lui       $at, (0x403E0000 >> 16)
/* 1785F8 80249D18 44811800 */  mtc1      $at, $f3
/* 1785FC 80249D1C 44801000 */  mtc1      $zero, $f2
/* 178600 80249D20 00000000 */  nop
/* 178604 80249D24 46220000 */  add.d     $f0, $f0, $f2
.L80249D28:
/* 178608 80249D28 46200120 */  cvt.s.d   $f4, $f0
/* 17860C 80249D2C 46002007 */  neg.s     $f0, $f4
D_80249D30:
/* 178610 80249D30 4600F03C */  c.lt.s    $f30, $f0
D_80249D34:
/* 178614 80249D34 00000000 */  nop
D_80249D38:
/* 178618 80249D38 45000008 */  bc1f      D_80249D5C
/* 17861C 80249D3C 00000000 */   nop
jtbl_80249D40:
/* 178620 80249D40 461E0001 */  sub.s     $f0, $f0, $f30
/* 178624 80249D44 3C013F00 */  lui       $at, (0x3F000000 >> 16)
D_80249D48:
/* 178628 80249D48 44811000 */  mtc1      $at, $f2
/* 17862C 80249D4C 00000000 */  nop
/* 178630 80249D50 46020002 */  mul.s     $f0, $f0, $f2
/* 178634 80249D54 00000000 */  nop
/* 178638 80249D58 4600F780 */  add.s     $f30, $f30, $f0
D_80249D5C:
/* 17863C 80249D5C 461E203C */  c.lt.s    $f4, $f30
end_00_D_80249D60_E00760:
/* 178640 80249D60 00000000 */  nop
/* 178644 80249D64 45000008 */  bc1f      .L80249D88
/* 178648 80249D68 00000000 */   nop
/* 17864C 80249D6C 461E2001 */  sub.s     $f0, $f4, $f30
dgb_01_img4_png:
/* 178650 80249D70 3C013F00 */  lui       $at, (0x3F000000 >> 16)
/* 178654 80249D74 44811000 */  mtc1      $at, $f2
/* 178658 80249D78 00000000 */  nop
/* 17865C 80249D7C 46020002 */  mul.s     $f0, $f0, $f2
/* 178660 80249D80 00000000 */  nop
/* 178664 80249D84 4600F780 */  add.s     $f30, $f30, $f0
.L80249D88:
/* 178668 80249D88 12200055 */  beqz      $s1, .L80249EE0
/* 17866C 80249D8C 00000000 */   nop
/* 178670 80249D90 3C0141C0 */  lui       $at, (0x41C00000 >> 16)
/* 178674 80249D94 44810000 */  mtc1      $at, $f0
/* 178678 80249D98 00000000 */  nop
/* 17867C 80249D9C 4600B581 */  sub.s     $f22, $f22, $f0
/* 178680 80249DA0 4600D681 */  sub.s     $f26, $f26, $f0
.L80249DA4:
/* 178684 80249DA4 44800000 */  mtc1      $zero, $f0
/* 178688 80249DA8 00000000 */  nop
D_80249DAC:
/* 17868C 80249DAC 4600B03C */  c.lt.s    $f22, $f0
/* 178690 80249DB0 00000000 */  nop
/* 178694 80249DB4 45030001 */  bc1tl     .L80249DBC
/* 178698 80249DB8 46000586 */   mov.s    $f22, $f0
.L80249DBC:
/* 17869C 80249DBC 4600D03C */  c.lt.s    $f26, $f0
/* 1786A0 80249DC0 00000000 */  nop
/* 1786A4 80249DC4 45030001 */  bc1tl     D_80249DCC
/* 1786A8 80249DC8 46000686 */   mov.s    $f26, $f0
D_80249DCC:
/* 1786AC 80249DCC 3C03802A */  lui       $v1, %hi(BattleCam_BoomLength)
D_80249DD0:
/* 1786B0 80249DD0 2463F280 */  addiu     $v1, $v1, %lo(BattleCam_BoomLength)
/* 1786B4 80249DD4 84620000 */  lh        $v0, 0x0($v1)
/* 1786B8 80249DD8 461AB080 */  add.s     $f2, $f22, $f26
/* 1786BC 80249DDC 44820000 */  mtc1      $v0, $f0
/* 1786C0 80249DE0 00000000 */  nop
/* 1786C4 80249DE4 46800020 */  cvt.s.w   $f0, $f0
/* 1786C8 80249DE8 46020000 */  add.s     $f0, $f0, $f2
/* 1786CC 80249DEC 3C02802A */  lui       $v0, %hi(BattleCam_SetImmediately)
/* 1786D0 80249DF0 8042F2A4 */  lb        $v0, %lo(BattleCam_SetImmediately)($v0)
/* 1786D4 80249DF4 4600040D */  trunc.w.s $f16, $f0
/* 1786D8 80249DF8 44048000 */  mfc1      $a0, $f16
/* 1786DC 80249DFC 10400010 */  beqz      $v0, .L80249E40
/* 1786E0 80249E00 A4640000 */   sh       $a0, 0x0($v1)
/* 1786E4 80249E04 E61E0054 */  swc1      $f30, 0x54($s0)
/* 1786E8 80249E08 E61C0058 */  swc1      $f28, 0x58($s0)
.L80249E0C:
/* 1786EC 80249E0C C7B0001C */  lwc1      $f16, 0x1C($sp)
/* 1786F0 80249E10 3C02802A */  lui       $v0, %hi(BattleCam_BoomZOffset)
.L80249E14:
/* 1786F4 80249E14 8442F286 */  lh        $v0, %lo(BattleCam_BoomZOffset)($v0)
/* 1786F8 80249E18 3C03802A */  lui       $v1, %hi(BattleCam_BoomYaw)
/* 1786FC 80249E1C 9463F282 */  lhu       $v1, %lo(BattleCam_BoomYaw)($v1)
D_80249E20:
/* 178700 80249E20 A604001E */  sh        $a0, 0x1E($s0)
/* 178704 80249E24 3C04802A */  lui       $a0, %hi(BattleCam_BoomPitch)
/* 178708 80249E28 9484F284 */  lhu       $a0, %lo(BattleCam_BoomPitch)($a0)
/* 17870C 80249E2C 00021200 */  sll       $v0, $v0, 8
/* 178710 80249E30 E610005C */  swc1      $f16, 0x5C($s0)
/* 178714 80249E34 A6020026 */  sh        $v0, 0x26($s0)
/* 178718 80249E38 A6030024 */  sh        $v1, 0x24($s0)
/* 17871C 80249E3C A6040022 */  sh        $a0, 0x22($s0)
.L80249E40:
/* 178720 80249E40 8602001E */  lh        $v0, 0x1E($s0)
/* 178724 80249E44 86040026 */  lh        $a0, 0x26($s0)
/* 178728 80249E48 86030024 */  lh        $v1, 0x24($s0)
/* 17872C 80249E4C 44820000 */  mtc1      $v0, $f0
/* 178730 80249E50 00000000 */  nop
/* 178734 80249E54 46800020 */  cvt.s.w   $f0, $f0
/* 178738 80249E58 86020022 */  lh        $v0, 0x22($s0)
.L80249E5C:
/* 17873C 80249E5C 3C01802A */  lui       $at, %hi(BattleCam_InitialBoomLength)
/* 178740 80249E60 E420F28C */  swc1      $f0, %lo(BattleCam_InitialBoomLength)($at)
/* 178744 80249E64 44820000 */  mtc1      $v0, $f0
/* 178748 80249E68 00000000 */  nop
/* 17874C 80249E6C 46800020 */  cvt.s.w   $f0, $f0
D_80249E70:
/* 178750 80249E70 3C01802A */  lui       $at, %hi(BattleCam_InitialBoomPitch)
/* 178754 80249E74 E420F294 */  swc1      $f0, %lo(BattleCam_InitialBoomPitch)($at)
/* 178758 80249E78 44830000 */  mtc1      $v1, $f0
/* 17875C 80249E7C 00000000 */  nop
/* 178760 80249E80 46800020 */  cvt.s.w   $f0, $f0
/* 178764 80249E84 3C01802A */  lui       $at, %hi(BattleCam_InitialBoomYaw)
/* 178768 80249E88 E420F290 */  swc1      $f0, %lo(BattleCam_InitialBoomYaw)($at)
/* 17876C 80249E8C 04820001 */  bltzl     $a0, .L80249E94
/* 178770 80249E90 248400FF */   addiu    $a0, $a0, 0xFF
.L80249E94:
/* 178774 80249E94 00041203 */  sra       $v0, $a0, 8
/* 178778 80249E98 C6020054 */  lwc1      $f2, 0x54($s0)
/* 17877C 80249E9C C6040058 */  lwc1      $f4, 0x58($s0)
.L80249EA0:
/* 178780 80249EA0 C606005C */  lwc1      $f6, 0x5C($s0)
/* 178784 80249EA4 3C03802A */  lui       $v1, %hi(BattleCam_MoveTimeLeft)
/* 178788 80249EA8 9463F29E */  lhu       $v1, %lo(BattleCam_MoveTimeLeft)($v1)
/* 17878C 80249EAC 44820000 */  mtc1      $v0, $f0
/* 178790 80249EB0 00000000 */  nop
/* 178794 80249EB4 46800020 */  cvt.s.w   $f0, $f0
/* 178798 80249EB8 3C01802A */  lui       $at, %hi(BattleCam_InitialBoomZOffset)
/* 17879C 80249EBC E420F298 */  swc1      $f0, %lo(BattleCam_InitialBoomZOffset)($at)
/* 1787A0 80249EC0 3C01802A */  lui       $at, %hi(BattleCam_InitialPosX)
/* 1787A4 80249EC4 E422F2A8 */  swc1      $f2, %lo(BattleCam_InitialPosX)($at)
/* 1787A8 80249EC8 3C01802A */  lui       $at, %hi(BattleCam_InitialPosY)
/* 1787AC 80249ECC E424F2AC */  swc1      $f4, %lo(BattleCam_InitialPosY)($at)
/* 1787B0 80249ED0 3C01802A */  lui       $at, %hi(BattleCam_InitialPosZ)
/* 1787B4 80249ED4 E426F2B0 */  swc1      $f6, %lo(BattleCam_InitialPosZ)($at)
/* 1787B8 80249ED8 3C01802A */  lui       $at, %hi(BattleCam_MoveTimeTotal)
/* 1787BC 80249EDC A423F2A0 */  sh        $v1, %lo(BattleCam_MoveTimeTotal)($at)
.L80249EE0:
/* 1787C0 80249EE0 3C02802A */  lui       $v0, %hi(BattleCam_UseLinearInterp)
.L80249EE4:
/* 1787C4 80249EE4 8042F2A5 */  lb        $v0, %lo(BattleCam_UseLinearInterp)($v0)
/* 1787C8 80249EE8 14400027 */  bnez      $v0, .L80249F88
/* 1787CC 80249EEC 00000000 */   nop
/* 1787D0 80249EF0 3C02802A */  lui       $v0, %hi(BattleCam_MoveTimeLeft)
/* 1787D4 80249EF4 8442F29E */  lh        $v0, %lo(BattleCam_MoveTimeLeft)($v0)
/* 1787D8 80249EF8 3C03802A */  lui       $v1, %hi(BattleCam_MoveTimeTotal)
D_80249EFC:
/* 1787DC 80249EFC 8463F2A0 */  lh        $v1, %lo(BattleCam_MoveTimeTotal)($v1)
/* 1787E0 80249F00 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* 1787E4 80249F04 4481C000 */  mtc1      $at, $f24
/* 1787E8 80249F08 4482D000 */  mtc1      $v0, $f26
/* 1787EC 80249F0C 00000000 */  nop
/* 1787F0 80249F10 4680D6A0 */  cvt.s.w   $f26, $f26
/* 1787F4 80249F14 44830000 */  mtc1      $v1, $f0
/* 1787F8 80249F18 00000000 */  nop
/* 1787FC 80249F1C 46800020 */  cvt.s.w   $f0, $f0
/* 178800 80249F20 4600D683 */  div.s     $f26, $f26, $f0
/* 178804 80249F24 461AC301 */  sub.s     $f12, $f24, $f26
/* 178808 80249F28 3C014049 */  lui       $at, (0x40490FD0 >> 16)
/* 17880C 80249F2C 34210FD0 */  ori       $at, $at, (0x40490FD0 & 0xFFFF)
/* 178810 80249F30 4481B000 */  mtc1      $at, $f22
/* 178814 80249F34 00000000 */  nop
/* 178818 80249F38 46166302 */  mul.s     $f12, $f12, $f22
/* 17881C 80249F3C 00000000 */  nop
.L80249F40:
/* 178820 80249F40 3C013F00 */  lui       $at, (0x3F000000 >> 16)
/* 178824 80249F44 4481A000 */  mtc1      $at, $f20
.L80249F48:
/* 178828 80249F48 00000000 */  nop
/* 17882C 80249F4C 46146302 */  mul.s     $f12, $f12, $f20
/* 178830 80249F50 0C00A85B */  jal       sin_rad
/* 178834 80249F54 00000000 */   nop
/* 178838 80249F58 46160002 */  mul.s     $f0, $f0, $f22
/* 17883C 80249F5C 00000000 */  nop
.L80249F60:
/* 178840 80249F60 46140302 */  mul.s     $f12, $f0, $f20
/* 178844 80249F64 0C00A85B */  jal       sin_rad
/* 178848 80249F68 00000000 */   nop
/* 17884C 80249F6C 46160002 */  mul.s     $f0, $f0, $f22
/* 178850 80249F70 00000000 */  nop
/* 178854 80249F74 46140302 */  mul.s     $f12, $f0, $f20
.L80249F78:
/* 178858 80249F78 0C00A85B */  jal       sin_rad
/* 17885C 80249F7C 00000000 */   nop
/* 178860 80249F80 080927ED */  j         .L80249FB4
/* 178864 80249F84 4600C681 */   sub.s    $f26, $f24, $f0
.L80249F88:
/* 178868 80249F88 3C02802A */  lui       $v0, %hi(BattleCam_MoveTimeLeft)
/* 17886C 80249F8C 8442F29E */  lh        $v0, %lo(BattleCam_MoveTimeLeft)($v0)
.L80249F90:
/* 178870 80249F90 3C03802A */  lui       $v1, %hi(BattleCam_MoveTimeTotal)
/* 178874 80249F94 8463F2A0 */  lh        $v1, %lo(BattleCam_MoveTimeTotal)($v1)
/* 178878 80249F98 4482D000 */  mtc1      $v0, $f26
/* 17887C 80249F9C 00000000 */  nop
/* 178880 80249FA0 4680D6A0 */  cvt.s.w   $f26, $f26
/* 178884 80249FA4 44830000 */  mtc1      $v1, $f0
/* 178888 80249FA8 00000000 */  nop
/* 17888C 80249FAC 46800020 */  cvt.s.w   $f0, $f0
/* 178890 80249FB0 4600D683 */  div.s     $f26, $f26, $f0
.L80249FB4:
/* 178894 80249FB4 3C01802A */  lui       $at, %hi(BattleCam_InitialPosX)
/* 178898 80249FB8 C426F2A8 */  lwc1      $f6, %lo(BattleCam_InitialPosX)($at)
/* 17889C 80249FBC 461A3182 */  mul.s     $f6, $f6, $f26
/* 1788A0 80249FC0 00000000 */  nop
/* 1788A4 80249FC4 3C01802A */  lui       $at, %hi(BattleCam_InitialPosY)
/* 1788A8 80249FC8 C428F2AC */  lwc1      $f8, %lo(BattleCam_InitialPosY)($at)
/* 1788AC 80249FCC 461A4202 */  mul.s     $f8, $f8, $f26
/* 1788B0 80249FD0 00000000 */  nop
/* 1788B4 80249FD4 3C01802A */  lui       $at, %hi(BattleCam_InitialPosZ)
/* 1788B8 80249FD8 C424F2B0 */  lwc1      $f4, %lo(BattleCam_InitialPosZ)($at)
/* 1788BC 80249FDC 461A2102 */  mul.s     $f4, $f4, $f26
/* 1788C0 80249FE0 00000000 */  nop
D_80249FE4:
/* 1788C4 80249FE4 3C01802A */  lui       $at, %hi(BattleCam_InitialBoomZOffset)
/* 1788C8 80249FE8 C422F298 */  lwc1      $f2, %lo(BattleCam_InitialBoomZOffset)($at)
/* 1788CC 80249FEC 461A1082 */  mul.s     $f2, $f2, $f26
/* 1788D0 80249FF0 00000000 */  nop
/* 1788D4 80249FF4 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* 1788D8 80249FF8 4481B000 */  mtc1      $at, $f22
.L80249FFC:
/* 1788DC 80249FFC 00000000 */  nop
/* 1788E0 8024A000 461AB581 */  sub.s     $f22, $f22, $f26
.L8024A004:
/* 1788E4 8024A004 4616F302 */  mul.s     $f12, $f30, $f22
/* 1788E8 8024A008 00000000 */  nop
/* 1788EC 8024A00C 4616E382 */  mul.s     $f14, $f28, $f22
/* 1788F0 8024A010 00000000 */  nop
/* 1788F4 8024A014 3C02802A */  lui       $v0, %hi(BattleCam_BoomZOffset)
/* 1788F8 8024A018 8442F286 */  lh        $v0, %lo(BattleCam_BoomZOffset)($v0)
/* 1788FC 8024A01C 44820000 */  mtc1      $v0, $f0
/* 178900 8024A020 00000000 */  nop
/* 178904 8024A024 46800020 */  cvt.s.w   $f0, $f0
/* 178908 8024A028 46160002 */  mul.s     $f0, $f0, $f22
.L8024A02C:
/* 17890C 8024A02C 00000000 */  nop
/* 178910 8024A030 C7B2001C */  lwc1      $f18, 0x1C($sp)
/* 178914 8024A034 46169282 */  mul.s     $f10, $f18, $f22
.L8024A038:
/* 178918 8024A038 00000000 */  nop
/* 17891C 8024A03C 46001080 */  add.s     $f2, $f2, $f0
/* 178920 8024A040 C6180054 */  lwc1      $f24, 0x54($s0)
/* 178924 8024A044 C6140058 */  lwc1      $f20, 0x58($s0)
/* 178928 8024A048 460C3180 */  add.s     $f6, $f6, $f12
/* 17892C 8024A04C C610005C */  lwc1      $f16, 0x5C($s0)
/* 178930 8024A050 4406F000 */  mfc1      $a2, $f30
/* 178934 8024A054 460A2100 */  add.s     $f4, $f4, $f10
/* 178938 8024A058 44079000 */  mfc1      $a3, $f18
/* 17893C 8024A05C 3C014380 */  lui       $at, (0x43800000 >> 16)
/* 178940 8024A060 44810000 */  mtc1      $at, $f0
/* 178944 8024A064 460E4200 */  add.s     $f8, $f8, $f14
/* 178948 8024A068 E7B00018 */  swc1      $f16, 0x18($sp)
/* 17894C 8024A06C E6060054 */  swc1      $f6, 0x54($s0)
/* 178950 8024A070 46001082 */  mul.s     $f2, $f2, $f0
D_8024A074:
/* 178954 8024A074 00000000 */  nop
/* 178958 8024A078 46003306 */  mov.s     $f12, $f6
/* 17895C 8024A07C E604005C */  swc1      $f4, 0x5C($s0)
/* 178960 8024A080 46002386 */  mov.s     $f14, $f4
/* 178964 8024A084 E6080058 */  swc1      $f8, 0x58($s0)
/* 178968 8024A088 4600148D */  trunc.w.s $f18, $f2
/* 17896C 8024A08C 44029000 */  mfc1      $v0, $f18
/* 178970 8024A090 0C00A7B5 */  jal       dist2D
/* 178974 8024A094 A6020026 */   sh       $v0, 0x26($s0)
D_8024A098:
/* 178978 8024A098 4600A386 */  mov.s     $f14, $f20
/* 17897C 8024A09C 8FA60018 */  lw        $a2, 0x18($sp)
/* 178980 8024A0A0 C7B0002C */  lwc1      $f16, 0x2C($sp)
/* 178984 8024A0A4 8FA70020 */  lw        $a3, 0x20($sp)
/* 178988 8024A0A8 C7B20030 */  lwc1      $f18, 0x30($sp)
/* 17898C 8024A0AC 46100500 */  add.s     $f20, $f0, $f16
/* 178990 8024A0B0 3C014280 */  lui       $at, (0x42800000 >> 16)
/* 178994 8024A0B4 44810000 */  mtc1      $at, $f0
/* 178998 8024A0B8 C7B00024 */  lwc1      $f16, 0x24($sp)
/* 17899C 8024A0BC 4612A500 */  add.s     $f20, $f20, $f18
D_8024A0C0:
/* 1789A0 8024A0C0 C7B20028 */  lwc1      $f18, 0x28($sp)
/* 1789A4 8024A0C4 4600C306 */  mov.s     $f12, $f24
/* 1789A8 8024A0C8 E7B00010 */  swc1      $f16, 0x10($sp)
D_8024A0CC:
/* 1789AC 8024A0CC E7B20014 */  swc1      $f18, 0x14($sp)
/* 1789B0 8024A0D0 0C00A7CB */  jal       dist3D
/* 1789B4 8024A0D4 4600A501 */   sub.s    $f20, $f20, $f0
/* 1789B8 8024A0D8 3C013F00 */  lui       $at, (0x3F000000 >> 16)
/* 1789BC 8024A0DC 44811000 */  mtc1      $at, $f2
/* 1789C0 8024A0E0 00000000 */  nop
/* 1789C4 8024A0E4 46020002 */  mul.s     $f0, $f0, $f2
/* 1789C8 8024A0E8 00000000 */  nop
/* 1789CC 8024A0EC 3C01802A */  lui       $at, %hi(BattleCam_InitialBoomLength)
D_8024A0F0:
/* 1789D0 8024A0F0 C42AF28C */  lwc1      $f10, %lo(BattleCam_InitialBoomLength)($at)
D_8024A0F4:
/* 1789D4 8024A0F4 461A5282 */  mul.s     $f10, $f10, $f26
/* 1789D8 8024A0F8 00000000 */  nop
/* 1789DC 8024A0FC 3C01802A */  lui       $at, %hi(BattleCam_InitialBoomYaw)
/* 1789E0 8024A100 C428F290 */  lwc1      $f8, %lo(BattleCam_InitialBoomYaw)($at)
/* 1789E4 8024A104 461A4202 */  mul.s     $f8, $f8, $f26
/* 1789E8 8024A108 00000000 */  nop
/* 1789EC 8024A10C 3C01802A */  lui       $at, %hi(BattleCam_InitialBoomPitch)
/* 1789F0 8024A110 C424F294 */  lwc1      $f4, %lo(BattleCam_InitialBoomPitch)($at)
D_8024A114:
/* 1789F4 8024A114 3C02802A */  lui       $v0, %hi(BattleCam_BoomLength)
/* 1789F8 8024A118 8442F280 */  lh        $v0, %lo(BattleCam_BoomLength)($v0)
/* 1789FC 8024A11C 461A2102 */  mul.s     $f4, $f4, $f26
/* 178A00 8024A120 00000000 */  nop
/* 178A04 8024A124 44821000 */  mtc1      $v0, $f2
/* 178A08 8024A128 00000000 */  nop
/* 178A0C 8024A12C 468010A0 */  cvt.s.w   $f2, $f2
D_8024A130:
/* 178A10 8024A130 3C02802A */  lui       $v0, %hi(BattleCam_BoomYaw)
D_8024A134:
/* 178A14 8024A134 8442F282 */  lh        $v0, %lo(BattleCam_BoomYaw)($v0)
/* 178A18 8024A138 44823000 */  mtc1      $v0, $f6
/* 178A1C 8024A13C 00000000 */  nop
/* 178A20 8024A140 468031A0 */  cvt.s.w   $f6, $f6
/* 178A24 8024A144 46163182 */  mul.s     $f6, $f6, $f22
/* 178A28 8024A148 00000000 */  nop
/* 178A2C 8024A14C 46141080 */  add.s     $f2, $f2, $f20
/* 178A30 8024A150 3C02802A */  lui       $v0, %hi(BattleCam_BoomPitch)
/* 178A34 8024A154 8442F284 */  lh        $v0, %lo(BattleCam_BoomPitch)($v0)
D_8024A158:
/* 178A38 8024A158 46001080 */  add.s     $f2, $f2, $f0
/* 178A3C 8024A15C 44820000 */  mtc1      $v0, $f0
.L8024A160:
/* 178A40 8024A160 00000000 */  nop
/* 178A44 8024A164 46800020 */  cvt.s.w   $f0, $f0
/* 178A48 8024A168 46160002 */  mul.s     $f0, $f0, $f22
/* 178A4C 8024A16C 00000000 */  nop
dgb_01_img4_gfx:
/* 178A50 8024A170 46161082 */  mul.s     $f2, $f2, $f22
/* 178A54 8024A174 00000000 */  nop
/* 178A58 8024A178 46064200 */  add.s     $f8, $f8, $f6
/* 178A5C 8024A17C 3C04802A */  lui       $a0, %hi(BattleCam_MoveTimeLeft)
D_8024A180:
/* 178A60 8024A180 2484F29E */  addiu     $a0, $a0, %lo(BattleCam_MoveTimeLeft)
/* 178A64 8024A184 46002100 */  add.s     $f4, $f4, $f0
/* 178A68 8024A188 4600440D */  trunc.w.s $f16, $f8
D_8024A18C:
/* 178A6C 8024A18C 44028000 */  mfc1      $v0, $f16
D_8024A190:
/* 178A70 8024A190 00000000 */  nop
/* 178A74 8024A194 A6020024 */  sh        $v0, 0x24($s0)
/* 178A78 8024A198 46025280 */  add.s     $f10, $f10, $f2
/* 178A7C 8024A19C 4600240D */  trunc.w.s $f16, $f4
/* 178A80 8024A1A0 44028000 */  mfc1      $v0, $f16
/* 178A84 8024A1A4 00000000 */  nop
/* 178A88 8024A1A8 A6020022 */  sh        $v0, 0x22($s0)
.L8024A1AC:
/* 178A8C 8024A1AC 4600540D */  trunc.w.s $f16, $f10
/* 178A90 8024A1B0 44028000 */  mfc1      $v0, $f16
D_8024A1B4:
/* 178A94 8024A1B4 00000000 */  nop
/* 178A98 8024A1B8 A602001E */  sh        $v0, 0x1E($s0)
/* 178A9C 8024A1BC 84820000 */  lh        $v0, 0x0($a0)
.L8024A1C0:
/* 178AA0 8024A1C0 94830000 */  lhu       $v1, 0x0($a0)
/* 178AA4 8024A1C4 14400006 */  bnez      $v0, .L8024A1E0
/* 178AA8 8024A1C8 2462FFFF */   addiu    $v0, $v1, -0x1
/* 178AAC 8024A1CC 24020001 */  addiu     $v0, $zero, 0x1
/* 178AB0 8024A1D0 3C01802A */  lui       $at, %hi(BattleCam_DoneMoving)
/* 178AB4 8024A1D4 A022F29C */  sb        $v0, %lo(BattleCam_DoneMoving)($at)
D_8024A1D8:
/* 178AB8 8024A1D8 0809287A */  j         .L8024A1E8
/* 178ABC 8024A1DC 0000102D */   daddu    $v0, $zero, $zero
.L8024A1E0:
/* 178AC0 8024A1E0 A4820000 */  sh        $v0, 0x0($a0)
/* 178AC4 8024A1E4 0000102D */  daddu     $v0, $zero, $zero
.L8024A1E8:
/* 178AC8 8024A1E8 8FBF0040 */  lw        $ra, 0x40($sp)
/* 178ACC 8024A1EC 8FB1003C */  lw        $s1, 0x3C($sp)
dgb_01_img5_png:
/* 178AD0 8024A1F0 8FB00038 */  lw        $s0, 0x38($sp)
/* 178AD4 8024A1F4 D7BE0070 */  ldc1      $f30, 0x70($sp)
.L8024A1F8:
/* 178AD8 8024A1F8 D7BC0068 */  ldc1      $f28, 0x68($sp)
.L8024A1FC:
/* 178ADC 8024A1FC D7BA0060 */  ldc1      $f26, 0x60($sp)
D_8024A200:
/* 178AE0 8024A200 D7B80058 */  ldc1      $f24, 0x58($sp)
/* 178AE4 8024A204 D7B60050 */  ldc1      $f22, 0x50($sp)
/* 178AE8 8024A208 D7B40048 */  ldc1      $f20, 0x48($sp)
/* 178AEC 8024A20C 03E00008 */  jr        $ra
D_8024A210:
/* 178AF0 8024A210 27BD0078 */   addiu    $sp, $sp, 0x78

### DECOMPILED C INSTRUCTIONS:

s32 CamPresetUpdate_M(Evt* script, s32 isInitialCall) {
    Actor* actor;
    Actor* targetActor;
    Camera* camera = &gCameras[CAM_BATTLE];
    BattleStatus* battleStatus = &gBattleStatus;
    f32 x, y, z;
    f32 middlePosX, middlePosY, middlePosZ;
    f32 targetX, targetY, targetZ;
    f32 sizeX, sizeY;
    f32 averageSize, targetAverageSize;
    f32 alpha;
    f32 distToTarget;
    f32 boomLength;
    f32 extraLength;
    f32 dist;
    s32 actorClass = BattleCam_TargetActor & ACTOR_CLASS_MASK;
    s32 actorID = BattleCam_TargetActor & 0xFF;

    switch (actorClass) {
        case ACTOR_CLASS_PLAYER:
            actor = battleStatus->playerActor;
            if (actor == NULL) {
                return ApiStatus_BLOCK;
            }
            x = actor->currentPos.x;
            y = actor->currentPos.y + actor->size.y / 2 + actor->size.y / 4;
            z = actor->currentPos.z;

            sizeY = actor->size.y;
            sizeX = actor->size.x;
            averageSize = (sizeY + sizeX) / 2;

            targetActor = get_actor(actor->targetActorID);
            if (targetActor == NULL) {
                return ApiStatus_BLOCK;
            }

            targetX = targetActor->currentPos.x;
            targetY = targetActor->currentPos.y + targetActor->size.y / 2 + targetActor->size.y / 4;
            targetZ = targetActor->currentPos.z;
            targetAverageSize = (targetActor->size.y + targetActor->size.x) / 2;

            middlePosX = x + (targetX - x) / 2;
            if (BattleCam_ModeY > BTL_CAM_MODEY_MINUS_1) {
                if (BattleCam_ModeY != BTL_CAM_MODEY_0) {
                    middlePosY = targetY + (y - targetY) * 0.5f + (y - targetY) / 6.0f;
                } else {
                    middlePosY = y;
                }
            } else {
                if (BattleCam_ModeY != BTL_CAM_MODEY_MINUS_1) {
                    middlePosY = y + (targetY - y) / 4;
                } else {
                    middlePosY = targetY;
                }
            }
            middlePosZ = z + (targetZ - z) / 2;
            break;
        case ACTOR_CLASS_PARTNER:
            actor = battleStatus->partnerActor;
            if (actor == NULL) {
                return ApiStatus_BLOCK;
            }
            x = actor->currentPos.x;
            y = actor->currentPos.y + actor->size.y / 2 + actor->size.y / 4;
            z = actor->currentPos.z;

            sizeY = actor->size.y;
            sizeX = actor->size.x;
            averageSize = (sizeY + sizeX) / 2;

            targetActor = get_actor(actor->targetActorID);
            if (targetActor == NULL) {
                return ApiStatus_BLOCK;
            }

            targetX = targetActor->currentPos.x;
            targetY = targetActor->currentPos.y + targetActor->size.y / 2 + targetActor->size.y / 4;
            targetZ = targetActor->currentPos.z;
            targetAverageSize = (targetActor->size.y + targetActor->size.x) /2;

            middlePosX = x + (targetX - x) / 2;
            if (BattleCam_ModeY > BTL_CAM_MODEY_MINUS_1) {
                if (BattleCam_ModeY != BTL_CAM_MODEY_0) {
                    middlePosY = targetY + (y - targetY) * 0.5f + (y - targetY) / 6.0f;
                } else {
                    middlePosY = y;
                }
            } else {
                middlePosY = targetY;
            }
            middlePosZ = z + (targetZ - z) / 2;
            break;
        case ACTOR_CLASS_ENEMY:
            actor = battleStatus->enemyActors[actorID];
            if (actor == NULL) {
                return ApiStatus_BLOCK;
            }
            x = actor->currentPos.x;
            y = actor->currentPos.y + actor->size.y / 2 + actor->size.y / 4;
            z = actor->currentPos.z;

            sizeY = actor->size.y;
            sizeX = actor->size.x;
            averageSize = (sizeY + sizeX) * 0.5f;

            targetActor = get_actor(actor->targetActorID);
            if (targetActor == NULL) {
                return ApiStatus_BLOCK;
            }

            targetX = targetActor->currentPos.x;
            targetY = targetActor->currentPos.y + targetActor->size.y / 2 + targetActor->size.y / 4;
            targetZ = targetActor->currentPos.z;
            targetAverageSize = (targetActor->size.y + targetActor->size.x) / 2;

            middlePosX = x + (targetX - x) / 2;
            if (BattleCam_ModeY > BTL_CAM_MODEY_MINUS_1) {
                if (BattleCam_ModeY != BTL_CAM_MODEY_0) {
                    middlePosY = targetY + (y - targetY) * 0.5f + (y - targetY) / 6.0f;
                } else {
                    middlePosY = y;
                }
            } else {
                if (BattleCam_ModeY == BTL_CAM_MODEY_MINUS_1) {
                    middlePosY = targetY;
                } else {
                    middlePosY = y;
                }
            }
            middlePosZ = z + (targetZ - z) / 2;
            break;
        default:
            return ApiStatus_BLOCK;
    }

    if (D_8029F2A6) {
        f32 upperBound = (500.0f - BattleCam_InitialBoomLength) * 0.4 + 30.0;
        f32 lowerBound = -upperBound;

        if (middlePosX < lowerBound) {
            middlePosX += (lowerBound - middlePosX) / 2;
        }
        if (middlePosX > upperBound) {
            middlePosX += (upperBound - middlePosX) / 2;
        }
    }
    if (isInitialCall) {
        sizeX -= 24.0f;
        sizeY -= 24.0f;
        if (sizeX < 0.0f) {
            sizeX = 0.0f;
        }
        if (sizeY < 0.0f) {
            sizeY = 0.0f;
        }
        BattleCam_BoomLength += sizeX + sizeY;
        if (BattleCam_SetImmediately) {
            camera->lookAt_obj_target.x = middlePosX;
            camera->lookAt_obj_target.y = middlePosY;
            camera->lookAt_obj_target.z = middlePosZ;
            camera->auxBoomLength = BattleCam_BoomLength;
            camera->auxBoomZOffset = BattleCam_BoomZOffset * 256;
            camera->auxBoomYaw = BattleCam_BoomYaw;
            camera->auxBoomPitch = BattleCam_BoomPitch;
        }

        BattleCam_InitialBoomLength = camera->auxBoomLength;
        BattleCam_InitialBoomPitch = camera->auxBoomPitch;
        BattleCam_InitialBoomYaw = camera->auxBoomYaw;
        BattleCam_InitialBoomZOffset = camera->auxBoomZOffset / 256;
        BattleCam_InitialPosX = camera->lookAt_obj_target.x;
        BattleCam_InitialPosY = camera->lookAt_obj_target.y;
        BattleCam_InitialPosZ = camera->lookAt_obj_target.z;
        BattleCam_MoveTimeTotal = BattleCam_MoveTimeLeft;
    }

    if (!BattleCam_UseLinearInterp) {
        alpha = BattleCam_MoveTimeLeft;
        alpha /= BattleCam_MoveTimeTotal;
        alpha = 1.0f - sin_rad(sin_rad(sin_rad((1.0f - alpha) * PI_S / 2) * PI_S / 2) * PI_S / 2);
    } else {
        alpha = BattleCam_MoveTimeLeft;
        alpha /= BattleCam_MoveTimeTotal;
    }

    x = camera->lookAt_obj_target.x;
    y = camera->lookAt_obj_target.y;
    z = camera->lookAt_obj_target.z;

    camera->lookAt_obj_target.x = LERP(BattleCam_InitialPosX, middlePosX, alpha);
    camera->lookAt_obj_target.y = LERP(BattleCam_InitialPosY, middlePosY, alpha);
    camera->lookAt_obj_target.z = LERP(BattleCam_InitialPosZ, middlePosZ, alpha);
    camera->auxBoomZOffset = LERP(BattleCam_InitialBoomZOffset, BattleCam_BoomZOffset, alpha) * 256.0f;

    dist = dist2D(camera->lookAt_obj_target.x, camera->lookAt_obj_target.z, middlePosX, middlePosZ);
    extraLength = dist + averageSize + targetAverageSize - 64.0f;
    distToTarget = dist3D(x, y, z, targetX, targetY, targetZ);
    boomLength = BattleCam_BoomLength + extraLength + distToTarget * 0.5f;

    camera->auxBoomLength = LERP(BattleCam_InitialBoomLength, boomLength, alpha);
    camera->auxBoomYaw = LERP(BattleCam_InitialBoomYaw, BattleCam_BoomYaw, alpha);
    camera->auxBoomPitch = LERP(BattleCam_InitialBoomPitch, BattleCam_BoomPitch, alpha);

    if (BattleCam_MoveTimeLeft == 0) {
        BattleCam_DoneMoving = TRUE;
    } else {
        BattleCam_MoveTimeLeft--;
    }

    return ApiStatus_BLOCK;
}


### RAW ASSEMBLY INSTRUCTIONS:

glabel func_80248DE4
/* 1776C4 80248DE4 27BDFF88 */  addiu     $sp, $sp, -0x78
/* 1776C8 80248DE8 AFB1003C */  sw        $s1, 0x3C($sp)
.L80248DEC:
/* 1776CC 80248DEC 00A0882D */  daddu     $s1, $a1, $zero
/* 1776D0 80248DF0 AFB00038 */  sw        $s0, 0x38($sp)
/* 1776D4 80248DF4 3C10800B */  lui       $s0, %hi(gCameras + 0x558)
.L80248DF8:
/* 1776D8 80248DF8 261022D8 */  addiu     $s0, $s0, %lo(gCameras + 0x558)
/* 1776DC 80248DFC 3C02802A */  lui       $v0, %hi(BattleCam_TargetActor)
.L80248E00:
/* 1776E0 80248E00 9442F27C */  lhu       $v0, %lo(BattleCam_TargetActor)($v0)
/* 1776E4 80248E04 3C04800E */  lui       $a0, %hi(gBattleStatus)
/* 1776E8 80248E08 2484C070 */  addiu     $a0, $a0, %lo(gBattleStatus)
/* 1776EC 80248E0C AFBF0040 */  sw        $ra, 0x40($sp)
/* 1776F0 80248E10 F7BE0070 */  sdc1      $f30, 0x70($sp)
/* 1776F4 80248E14 F7BC0068 */  sdc1      $f28, 0x68($sp)
.L80248E18:
/* 1776F8 80248E18 F7BA0060 */  sdc1      $f26, 0x60($sp)
/* 1776FC 80248E1C F7B80058 */  sdc1      $f24, 0x58($sp)
/* 177700 80248E20 F7B60050 */  sdc1      $f22, 0x50($sp)
/* 177704 80248E24 F7B40048 */  sdc1      $f20, 0x48($sp)
/* 177708 80248E28 30430700 */  andi      $v1, $v0, 0x700
/* 17770C 80248E2C 304500FF */  andi      $a1, $v0, 0xFF
D_80248E30:
/* 177710 80248E30 24020100 */  addiu     $v0, $zero, 0x100
glabel .L80248E34
/* 177714 80248E34 10620065 */  beq       $v1, $v0, .L80248FCC
/* 177718 80248E38 28620101 */   slti     $v0, $v1, 0x101
/* 17771C 80248E3C 10400005 */  beqz      $v0, .L80248E54
.L80248E40:
/* 177720 80248E40 24020200 */   addiu    $v0, $zero, 0x200
/* 177724 80248E44 10600007 */  beqz      $v1, .L80248E64
/* 177728 80248E48 0000102D */   daddu    $v0, $zero, $zero
/* 17772C 80248E4C 080925F6 */  j         .L802497D8
/* 177730 80248E50 00000000 */   nop
.L80248E54:
/* 177734 80248E54 106200B8 */  beq       $v1, $v0, .L80249138
.L80248E58:
/* 177738 80248E58 0000102D */   daddu    $v0, $zero, $zero
/* 17773C 80248E5C 080925F6 */  j         .L802497D8
/* 177740 80248E60 00000000 */   nop
glabel .L80248E64
/* 177744 80248E64 8C8400D8 */  lw        $a0, 0xD8($a0)
/* 177748 80248E68 1080025B */  beqz      $a0, .L802497D8
/* 17774C 80248E6C 00000000 */   nop
/* 177750 80248E70 C4980144 */  lwc1      $f24, 0x144($a0)
/* 177754 80248E74 90830191 */  lbu       $v1, 0x191($a0)
/* 177758 80248E78 C490014C */  lwc1      $f16, 0x14C($a0)
.L80248E7C:
/* 17775C 80248E7C 00031042 */  srl       $v0, $v1, 1
/* 177760 80248E80 44820000 */  mtc1      $v0, $f0
/* 177764 80248E84 00000000 */  nop
/* 177768 80248E88 46800020 */  cvt.s.w   $f0, $f0
/* 17776C 80248E8C E7B00018 */  swc1      $f16, 0x18($sp)
glabel .L80248E90
/* 177770 80248E90 C4820148 */  lwc1      $f2, 0x148($a0)
/* 177774 80248E94 00031082 */  srl       $v0, $v1, 2
/* 177778 80248E98 46001080 */  add.s     $f2, $f2, $f0
/* 17777C 80248E9C 44820000 */  mtc1      $v0, $f0
/* 177780 80248EA0 00000000 */  nop
/* 177784 80248EA4 46800020 */  cvt.s.w   $f0, $f0
/* 177788 80248EA8 90820190 */  lbu       $v0, 0x190($a0)
/* 17778C 80248EAC 46001500 */  add.s     $f20, $f2, $f0
/* 177790 80248EB0 4483D000 */  mtc1      $v1, $f26
.L80248EB4:
/* 177794 80248EB4 00000000 */  nop
/* 177798 80248EB8 4680D6A0 */  cvt.s.w   $f26, $f26
D_80248EBC:
/* 17779C 80248EBC 4482B000 */  mtc1      $v0, $f22
/* 1777A0 80248EC0 00000000 */  nop
/* 1777A4 80248EC4 4680B5A0 */  cvt.s.w   $f22, $f22
/* 1777A8 80248EC8 4616D000 */  add.s     $f0, $f26, $f22
/* 1777AC 80248ECC 3C013F00 */  lui       $at, (0x3F000000 >> 16)
/* 1777B0 80248ED0 4481E000 */  mtc1      $at, $f28
glabel .L80248ED4
/* 1777B4 80248ED4 00000000 */  nop
/* 1777B8 80248ED8 461C0002 */  mul.s     $f0, $f0, $f28
.L80248EDC:
/* 1777BC 80248EDC 00000000 */  nop
/* 1777C0 80248EE0 84840428 */  lh        $a0, 0x428($a0)
/* 1777C4 80248EE4 0C09A75B */  jal       get_actor
.L80248EE8:
/* 1777C8 80248EE8 E7A0002C */   swc1     $f0, 0x2C($sp)
/* 1777CC 80248EEC 0040202D */  daddu     $a0, $v0, $zero
/* 1777D0 80248EF0 10800239 */  beqz      $a0, .L802497D8
/* 1777D4 80248EF4 0000102D */   daddu    $v0, $zero, $zero
/* 1777D8 80248EF8 90830191 */  lbu       $v1, 0x191($a0)
/* 1777DC 80248EFC C4820148 */  lwc1      $f2, 0x148($a0)
/* 1777E0 80248F00 00031042 */  srl       $v0, $v1, 1
/* 1777E4 80248F04 44820000 */  mtc1      $v0, $f0
.L80248F08:
/* 1777E8 80248F08 00000000 */  nop
/* 1777EC 80248F0C 46800020 */  cvt.s.w   $f0, $f0
/* 1777F0 80248F10 46001080 */  add.s     $f2, $f2, $f0
/* 1777F4 80248F14 00031082 */  srl       $v0, $v1, 2
D_80248F18:
/* 1777F8 80248F18 44820000 */  mtc1      $v0, $f0
/* 1777FC 80248F1C 00000000 */  nop
D_80248F20:
/* 177800 80248F20 46800020 */  cvt.s.w   $f0, $f0
/* 177804 80248F24 46001080 */  add.s     $f2, $f2, $f0
D_80248F28:
/* 177808 80248F28 E7A20024 */  swc1      $f2, 0x24($sp)
/* 17780C 80248F2C C4920144 */  lwc1      $f18, 0x144($a0)
/* 177810 80248F30 E7B20020 */  swc1      $f18, 0x20($sp)
/* 177814 80248F34 C490014C */  lwc1      $f16, 0x14C($a0)
/* 177818 80248F38 E7B00028 */  swc1      $f16, 0x28($sp)
/* 17781C 80248F3C 90820190 */  lbu       $v0, 0x190($a0)
/* 177820 80248F40 46189001 */  sub.s     $f0, $f18, $f24
/* 177824 80248F44 00621821 */  addu      $v1, $v1, $v0
D_80248F48:
/* 177828 80248F48 00031843 */  sra       $v1, $v1, 1
/* 17782C 80248F4C 461C0002 */  mul.s     $f0, $f0, $f28
/* 177830 80248F50 00000000 */  nop
.L80248F54:
/* 177834 80248F54 44839000 */  mtc1      $v1, $f18
/* 177838 80248F58 00000000 */  nop
/* 17783C 80248F5C 468094A0 */  cvt.s.w   $f18, $f18
D_80248F60:
/* 177840 80248F60 3C03802A */  lui       $v1, %hi(BattleCam_ModeY)
/* 177844 80248F64 8063F2A2 */  lb        $v1, %lo(BattleCam_ModeY)($v1)
/* 177848 80248F68 E7B20030 */  swc1      $f18, 0x30($sp)
/* 17784C 80248F6C 0460000B */  bltz      $v1, .L80248F9C
D_80248F70:
/* 177850 80248F70 4600C780 */   add.s    $f30, $f24, $f0
/* 177854 80248F74 506000C6 */  beql      $v1, $zero, .L80249290
/* 177858 80248F78 4600A706 */   mov.s    $f28, $f20
.L80248F7C:
/* 17785C 80248F7C 4602A001 */  sub.s     $f0, $f20, $f2
.L80248F80:
/* 177860 80248F80 461C0082 */  mul.s     $f2, $f0, $f28
.L80248F84:
/* 177864 80248F84 00000000 */  nop
/* 177868 80248F88 C7B00024 */  lwc1      $f16, 0x24($sp)
/* 17786C 80248F8C 3C0140C0 */  lui       $at, (0x40C00000 >> 16)
D_80248F90:
/* 177870 80248F90 44812000 */  mtc1      $at, $f4
/* 177874 80248F94 0809249D */  j         .L80249274
/* 177878 80248F98 46028080 */   add.s    $f2, $f16, $f2
.L80248F9C:
/* 17787C 80248F9C 2402FFFF */  addiu     $v0, $zero, -0x1
/* 177880 80248FA0 106200BA */  beq       $v1, $v0, .L8024928C
/* 177884 80248FA4 00000000 */   nop
/* 177888 80248FA8 C7B20024 */  lwc1      $f18, 0x24($sp)
/* 17788C 80248FAC 46149001 */  sub.s     $f0, $f18, $f20
/* 177890 80248FB0 3C013E80 */  lui       $at, (0x3E800000 >> 16)
/* 177894 80248FB4 44811000 */  mtc1      $at, $f2
/* 177898 80248FB8 00000000 */  nop
/* 17789C 80248FBC 46020002 */  mul.s     $f0, $f0, $f2
glabel func_80248FC0
/* 1778A0 80248FC0 00000000 */  nop
/* 1778A4 80248FC4 080924A4 */  j         .L80249290
/* 1778A8 80248FC8 4600A700 */   add.s    $f28, $f20, $f0
.L80248FCC:
/* 1778AC 80248FCC 8C8400DC */  lw        $a0, 0xDC($a0)
.L80248FD0:
/* 1778B0 80248FD0 10800201 */  beqz      $a0, .L802497D8
/* 1778B4 80248FD4 0000102D */   daddu    $v0, $zero, $zero
/* 1778B8 80248FD8 C4980144 */  lwc1      $f24, 0x144($a0)
/* 1778BC 80248FDC 90830191 */  lbu       $v1, 0x191($a0)
/* 1778C0 80248FE0 C490014C */  lwc1      $f16, 0x14C($a0)
/* 1778C4 80248FE4 00031042 */  srl       $v0, $v1, 1
/* 1778C8 80248FE8 44820000 */  mtc1      $v0, $f0
/* 1778CC 80248FEC 00000000 */  nop
dgb_01_img1_gfx:
/* 1778D0 80248FF0 46800020 */  cvt.s.w   $f0, $f0
/* 1778D4 80248FF4 E7B00018 */  swc1      $f16, 0x18($sp)
/* 1778D8 80248FF8 C4820148 */  lwc1      $f2, 0x148($a0)
/* 1778DC 80248FFC 00031082 */  srl       $v0, $v1, 2
/* 1778E0 80249000 46001080 */  add.s     $f2, $f2, $f0
.L80249004:
/* 1778E4 80249004 44820000 */  mtc1      $v0, $f0
.L80249008:
/* 1778E8 80249008 00000000 */  nop
/* 1778EC 8024900C 46800020 */  cvt.s.w   $f0, $f0
/* 1778F0 80249010 90820190 */  lbu       $v0, 0x190($a0)
/* 1778F4 80249014 46001500 */  add.s     $f20, $f2, $f0
/* 1778F8 80249018 4483D000 */  mtc1      $v1, $f26
.L8024901C:
/* 1778FC 8024901C 00000000 */  nop
/* 177900 80249020 4680D6A0 */  cvt.s.w   $f26, $f26
/* 177904 80249024 4482B000 */  mtc1      $v0, $f22
/* 177908 80249028 00000000 */  nop
.L8024902C:
/* 17790C 8024902C 4680B5A0 */  cvt.s.w   $f22, $f22
/* 177910 80249030 4616D000 */  add.s     $f0, $f26, $f22
glabel .L80249034
/* 177914 80249034 3C013F00 */  lui       $at, (0x3F000000 >> 16)
/* 177918 80249038 4481E000 */  mtc1      $at, $f28
D_8024903C:
/* 17791C 8024903C 00000000 */  nop
/* 177920 80249040 461C0002 */  mul.s     $f0, $f0, $f28
/* 177924 80249044 00000000 */  nop
/* 177928 80249048 84840428 */  lh        $a0, 0x428($a0)
/* 17792C 8024904C 0C09A75B */  jal       get_actor
/* 177930 80249050 E7A0002C */   swc1     $f0, 0x2C($sp)
/* 177934 80249054 0040202D */  daddu     $a0, $v0, $zero
/* 177938 80249058 108001DF */  beqz      $a0, .L802497D8
/* 17793C 8024905C 0000102D */   daddu    $v0, $zero, $zero
/* 177940 80249060 90830191 */  lbu       $v1, 0x191($a0)
.L80249064:
/* 177944 80249064 C4820148 */  lwc1      $f2, 0x148($a0)
/* 177948 80249068 00031042 */  srl       $v0, $v1, 1
D_8024906C:
/* 17794C 8024906C 44820000 */  mtc1      $v0, $f0
dgb_01_img2_png:
/* 177950 80249070 00000000 */  nop
/* 177954 80249074 46800020 */  cvt.s.w   $f0, $f0
/* 177958 80249078 46001080 */  add.s     $f2, $f2, $f0
/* 17795C 8024907C 00031082 */  srl       $v0, $v1, 2
/* 177960 80249080 44820000 */  mtc1      $v0, $f0
/* 177964 80249084 00000000 */  nop
/* 177968 80249088 46800020 */  cvt.s.w   $f0, $f0
.L8024908C:
/* 17796C 8024908C 46001080 */  add.s     $f2, $f2, $f0
/* 177970 80249090 E7A20024 */  swc1      $f2, 0x24($sp)
/* 177974 80249094 C4920144 */  lwc1      $f18, 0x144($a0)
.L80249098:
/* 177978 80249098 E7B20020 */  swc1      $f18, 0x20($sp)
D_8024909C:
/* 17797C 8024909C C490014C */  lwc1      $f16, 0x14C($a0)
/* 177980 802490A0 46189001 */  sub.s     $f0, $f18, $f24
/* 177984 802490A4 E7B00028 */  swc1      $f16, 0x28($sp)
glabel func_802490A8
/* 177988 802490A8 90820190 */  lbu       $v0, 0x190($a0)
/* 17798C 802490AC 00621821 */  addu      $v1, $v1, $v0
/* 177990 802490B0 461C0002 */  mul.s     $f0, $f0, $f28
/* 177994 802490B4 00000000 */  nop
/* 177998 802490B8 00031843 */  sra       $v1, $v1, 1
/* 17799C 802490BC 3C02802A */  lui       $v0, %hi(BattleCam_ModeY)
/* 1779A0 802490C0 8042F2A2 */  lb        $v0, %lo(BattleCam_ModeY)($v0)
/* 1779A4 802490C4 44839000 */  mtc1      $v1, $f18
/* 1779A8 802490C8 00000000 */  nop
/* 1779AC 802490CC 468094A0 */  cvt.s.w   $f18, $f18
/* 1779B0 802490D0 E7B20030 */  swc1      $f18, 0x30($sp)
/* 1779B4 802490D4 0440000D */  bltz      $v0, .L8024910C
/* 1779B8 802490D8 4600C780 */   add.s    $f30, $f24, $f0
/* 1779BC 802490DC 5040000C */  beql      $v0, $zero, .L80249110
/* 1779C0 802490E0 4600A706 */   mov.s    $f28, $f20
/* 1779C4 802490E4 4602A001 */  sub.s     $f0, $f20, $f2
/* 1779C8 802490E8 461C0082 */  mul.s     $f2, $f0, $f28
/* 1779CC 802490EC 00000000 */  nop
/* 1779D0 802490F0 C7B00024 */  lwc1      $f16, 0x24($sp)
/* 1779D4 802490F4 3C0140C0 */  lui       $at, (0x40C00000 >> 16)
.L802490F8:
/* 1779D8 802490F8 44812000 */  mtc1      $at, $f4
/* 1779DC 802490FC 46028080 */  add.s     $f2, $f16, $f2
/* 1779E0 80249100 46040003 */  div.s     $f0, $f0, $f4
/* 1779E4 80249104 08092444 */  j         .L80249110
/* 1779E8 80249108 46001700 */   add.s    $f28, $f2, $f0
.L8024910C:
/* 1779EC 8024910C C7BC0024 */  lwc1      $f28, 0x24($sp)
.L80249110:
/* 1779F0 80249110 C7B20028 */  lwc1      $f18, 0x28($sp)
/* 1779F4 80249114 C7B00018 */  lwc1      $f16, 0x18($sp)
/* 1779F8 80249118 46109001 */  sub.s     $f0, $f18, $f16
/* 1779FC 8024911C 3C013F00 */  lui       $at, (0x3F000000 >> 16)
/* 177A00 80249120 44811000 */  mtc1      $at, $f2
/* 177A04 80249124 00000000 */  nop
flo_00_pad_9128:
/* 177A08 80249128 46020002 */  mul.s     $f0, $f0, $f2
/* 177A0C 8024912C 00000000 */  nop
D_80249130:
/* 177A10 80249130 080924AD */  j         .L802492B4
/* 177A14 80249134 46008000 */   add.s    $f0, $f16, $f0
.L80249138:
/* 177A18 80249138 00051080 */  sll       $v0, $a1, 2
/* 177A1C 8024913C 00441021 */  addu      $v0, $v0, $a0
.L80249140:
/* 177A20 80249140 8C4400E0 */  lw        $a0, 0xE0($v0)
/* 177A24 80249144 108001A4 */  beqz      $a0, .L802497D8
/* 177A28 80249148 0000102D */   daddu    $v0, $zero, $zero
/* 177A2C 8024914C C4980144 */  lwc1      $f24, 0x144($a0)
/* 177A30 80249150 90830191 */  lbu       $v1, 0x191($a0)
/* 177A34 80249154 C492014C */  lwc1      $f18, 0x14C($a0)
D_80249158:
/* 177A38 80249158 00031042 */  srl       $v0, $v1, 1
/* 177A3C 8024915C 44820000 */  mtc1      $v0, $f0
/* 177A40 80249160 00000000 */  nop
/* 177A44 80249164 46800020 */  cvt.s.w   $f0, $f0
D_80249168:
/* 177A48 80249168 E7B20018 */  swc1      $f18, 0x18($sp)
/* 177A4C 8024916C C4820148 */  lwc1      $f2, 0x148($a0)
/* 177A50 80249170 00031082 */  srl       $v0, $v1, 2
/* 177A54 80249174 46001080 */  add.s     $f2, $f2, $f0
/* 177A58 80249178 44820000 */  mtc1      $v0, $f0
.L8024917C:
/* 177A5C 8024917C 00000000 */  nop
/* 177A60 80249180 46800020 */  cvt.s.w   $f0, $f0
.L80249184:
/* 177A64 80249184 90820190 */  lbu       $v0, 0x190($a0)
/* 177A68 80249188 46001500 */  add.s     $f20, $f2, $f0
D_8024918C:
/* 177A6C 8024918C 4483D000 */  mtc1      $v1, $f26
.L80249190:
/* 177A70 80249190 00000000 */  nop
/* 177A74 80249194 4680D6A0 */  cvt.s.w   $f26, $f26
/* 177A78 80249198 4482B000 */  mtc1      $v0, $f22
D_8024919C:
/* 177A7C 8024919C 00000000 */  nop
.L802491A0:
/* 177A80 802491A0 4680B5A0 */  cvt.s.w   $f22, $f22
/* 177A84 802491A4 4616D000 */  add.s     $f0, $f26, $f22
/* 177A88 802491A8 3C013F00 */  lui       $at, (0x3F000000 >> 16)
/* 177A8C 802491AC 4481E000 */  mtc1      $at, $f28
D_802491B0:
/* 177A90 802491B0 00000000 */  nop
.L802491B4:
/* 177A94 802491B4 461C0002 */  mul.s     $f0, $f0, $f28
D_802491B8:
/* 177A98 802491B8 00000000 */  nop
/* 177A9C 802491BC 84840428 */  lh        $a0, 0x428($a0)
D_802491C0:
/* 177AA0 802491C0 0C09A75B */  jal       get_actor
/* 177AA4 802491C4 E7A0002C */   swc1     $f0, 0x2C($sp)
D_802491C8:
/* 177AA8 802491C8 0040202D */  daddu     $a0, $v0, $zero
.L802491CC:
/* 177AAC 802491CC 10800182 */  beqz      $a0, .L802497D8
D_802491D0:
/* 177AB0 802491D0 0000102D */   daddu    $v0, $zero, $zero
/* 177AB4 802491D4 90830191 */  lbu       $v1, 0x191($a0)
D_802491D8:
/* 177AB8 802491D8 C4820148 */  lwc1      $f2, 0x148($a0)
/* 177ABC 802491DC 00031042 */  srl       $v0, $v1, 1
D_802491E0:
/* 177AC0 802491E0 44820000 */  mtc1      $v0, $f0
.L802491E4:
/* 177AC4 802491E4 00000000 */  nop
/* 177AC8 802491E8 46800020 */  cvt.s.w   $f0, $f0
/* 177ACC 802491EC 46001080 */  add.s     $f2, $f2, $f0
D_802491F0_EC2040:
/* 177AD0 802491F0 00031082 */  srl       $v0, $v1, 2
/* 177AD4 802491F4 44820000 */  mtc1      $v0, $f0
D_802491F8_EC2048:
/* 177AD8 802491F8 00000000 */  nop
.L802491FC:
/* 177ADC 802491FC 46800020 */  cvt.s.w   $f0, $f0
jtbl_80249200:
/* 177AE0 80249200 46001080 */  add.s     $f2, $f2, $f0
/* 177AE4 80249204 E7A20024 */  swc1      $f2, 0x24($sp)
/* 177AE8 80249208 C4900144 */  lwc1      $f16, 0x144($a0)
.L8024920C:
/* 177AEC 8024920C E7B00020 */  swc1      $f16, 0x20($sp)
.L80249210:
/* 177AF0 80249210 C492014C */  lwc1      $f18, 0x14C($a0)
/* 177AF4 80249214 E7B20028 */  swc1      $f18, 0x28($sp)
/* 177AF8 80249218 90820190 */  lbu       $v0, 0x190($a0)
.L8024921C:
/* 177AFC 8024921C 46188001 */  sub.s     $f0, $f16, $f24
/* 177B00 80249220 00621821 */  addu      $v1, $v1, $v0
/* 177B04 80249224 00031843 */  sra       $v1, $v1, 1
/* 177B08 80249228 461C0002 */  mul.s     $f0, $f0, $f28
/* 177B0C 8024922C 00000000 */  nop
/* 177B10 80249230 44838000 */  mtc1      $v1, $f16
.L80249234:
/* 177B14 80249234 00000000 */  nop
/* 177B18 80249238 46808420 */  cvt.s.w   $f16, $f16
.L8024923C:
/* 177B1C 8024923C 3C03802A */  lui       $v1, %hi(BattleCam_ModeY)
/* 177B20 80249240 8063F2A2 */  lb        $v1, %lo(BattleCam_ModeY)($v1)
/* 177B24 80249244 E7B00030 */  swc1      $f16, 0x30($sp)
/* 177B28 80249248 0460000D */  bltz      $v1, .L80249280
/* 177B2C 8024924C 4600C780 */   add.s    $f30, $f24, $f0
/* 177B30 80249250 5060000F */  beql      $v1, $zero, .L80249290
/* 177B34 80249254 4600A706 */   mov.s    $f28, $f20
D_80249258:
/* 177B38 80249258 4602A001 */  sub.s     $f0, $f20, $f2
/* 177B3C 8024925C 461C0082 */  mul.s     $f2, $f0, $f28
/* 177B40 80249260 00000000 */  nop
/* 177B44 80249264 C7B20024 */  lwc1      $f18, 0x24($sp)
/* 177B48 80249268 3C0140C0 */  lui       $at, (0x40C00000 >> 16)
/* 177B4C 8024926C 44812000 */  mtc1      $at, $f4
/* 177B50 80249270 46029080 */  add.s     $f2, $f18, $f2
.L80249274:
/* 177B54 80249274 46040003 */  div.s     $f0, $f0, $f4
/* 177B58 80249278 080924A4 */  j         .L80249290
/* 177B5C 8024927C 46001700 */   add.s    $f28, $f2, $f0
.L80249280:
/* 177B60 80249280 2402FFFF */  addiu     $v0, $zero, -0x1
.L80249284:
/* 177B64 80249284 14620002 */  bne       $v1, $v0, .L80249290
/* 177B68 80249288 4600A706 */   mov.s    $f28, $f20
.L8024928C:
/* 177B6C 8024928C C7BC0024 */  lwc1      $f28, 0x24($sp)
.L80249290:
/* 177B70 80249290 C7B00028 */  lwc1      $f16, 0x28($sp)
/* 177B74 80249294 C7B20018 */  lwc1      $f18, 0x18($sp)
/* 177B78 80249298 46128001 */  sub.s     $f0, $f16, $f18
/* 177B7C 8024929C 3C013F00 */  lui       $at, (0x3F000000 >> 16)
/* 177B80 802492A0 44811000 */  mtc1      $at, $f2
/* 177B84 802492A4 00000000 */  nop
/* 177B88 802492A8 46020002 */  mul.s     $f0, $f0, $f2
.L802492AC:
/* 177B8C 802492AC 00000000 */  nop
/* 177B90 802492B0 46009000 */  add.s     $f0, $f18, $f0
.L802492B4:
/* 177B94 802492B4 E7A0001C */  swc1      $f0, 0x1C($sp)
.L802492B8:
/* 177B98 802492B8 3C02802A */  lui       $v0, %hi(D_8029F2A6)
/* 177B9C 802492BC 8042F2A6 */  lb        $v0, %lo(D_8029F2A6)($v0)
/* 177BA0 802492C0 10400029 */  beqz      $v0, D_80249368
/* 177BA4 802492C4 00000000 */   nop
/* 177BA8 802492C8 3C01802A */  lui       $at, %hi(BattleCam_InitialBoomLength)
/* 177BAC 802492CC C422F28C */  lwc1      $f2, %lo(BattleCam_InitialBoomLength)($at)
/* 177BB0 802492D0 3C0143FA */  lui       $at, (0x43FA0000 >> 16)
/* 177BB4 802492D4 44810000 */  mtc1      $at, $f0
.L802492D8:
/* 177BB8 802492D8 00000000 */  nop
/* 177BBC 802492DC 46020001 */  sub.s     $f0, $f0, $f2
.L802492E0:
/* 177BC0 802492E0 3C01802A */  lui       $at, %hi(D_8029CC00)
.L802492E4:
/* 177BC4 802492E4 D422CC00 */  ldc1      $f2, %lo(D_8029CC00)($at)
/* 177BC8 802492E8 46000021 */  cvt.d.s   $f0, $f0
/* 177BCC 802492EC 46220002 */  mul.d     $f0, $f0, $f2
/* 177BD0 802492F0 00000000 */  nop
/* 177BD4 802492F4 3C01403E */  lui       $at, (0x403E0000 >> 16)
/* 177BD8 802492F8 44811800 */  mtc1      $at, $f3
/* 177BDC 802492FC 44801000 */  mtc1      $zero, $f2
/* 177BE0 80249300 00000000 */  nop
/* 177BE4 80249304 46220000 */  add.d     $f0, $f0, $f2
/* 177BE8 80249308 46200120 */  cvt.s.d   $f4, $f0
/* 177BEC 8024930C 46002007 */  neg.s     $f0, $f4
.L80249310:
/* 177BF0 80249310 4600F03C */  c.lt.s    $f30, $f0
/* 177BF4 80249314 00000000 */  nop
/* 177BF8 80249318 45000008 */  bc1f      .L8024933C
/* 177BFC 8024931C 00000000 */   nop
/* 177C00 80249320 461E0001 */  sub.s     $f0, $f0, $f30
glabel func_80249324
/* 177C04 80249324 3C013F00 */  lui       $at, (0x3F000000 >> 16)
/* 177C08 80249328 44811000 */  mtc1      $at, $f2
glabel func_8024932C
/* 177C0C 8024932C 00000000 */  nop
/* 177C10 80249330 46020002 */  mul.s     $f0, $f0, $f2
/* 177C14 80249334 00000000 */  nop
/* 177C18 80249338 4600F780 */  add.s     $f30, $f30, $f0
.L8024933C:
/* 177C1C 8024933C 461E203C */  c.lt.s    $f4, $f30
/* 177C20 80249340 00000000 */  nop
/* 177C24 80249344 45000008 */  bc1f      D_80249368
.L80249348:
/* 177C28 80249348 00000000 */   nop
/* 177C2C 8024934C 461E2001 */  sub.s     $f0, $f4, $f30
/* 177C30 80249350 3C013F00 */  lui       $at, (0x3F000000 >> 16)
/* 177C34 80249354 44811000 */  mtc1      $at, $f2
/* 177C38 80249358 00000000 */  nop
/* 177C3C 8024935C 46020002 */  mul.s     $f0, $f0, $f2
D_80249360:
/* 177C40 80249360 00000000 */  nop
/* 177C44 80249364 4600F780 */  add.s     $f30, $f30, $f0
D_80249368:
/* 177C48 80249368 12200055 */  beqz      $s1, .L802494C0
/* 177C4C 8024936C 00000000 */   nop
D_80249370:
/* 177C50 80249370 3C0141C0 */  lui       $at, (0x41C00000 >> 16)
/* 177C54 80249374 44810000 */  mtc1      $at, $f0
D_80249378:
/* 177C58 80249378 00000000 */  nop
/* 177C5C 8024937C 4600B581 */  sub.s     $f22, $f22, $f0
glabel func_80249380
/* 177C60 80249380 4600D681 */  sub.s     $f26, $f26, $f0
/* 177C64 80249384 44800000 */  mtc1      $zero, $f0
/* 177C68 80249388 00000000 */  nop
/* 177C6C 8024938C 4600B03C */  c.lt.s    $f22, $f0
/* 177C70 80249390 00000000 */  nop
/* 177C74 80249394 45030001 */  bc1tl     .L8024939C
/* 177C78 80249398 46000586 */   mov.s    $f22, $f0
.L8024939C:
/* 177C7C 8024939C 4600D03C */  c.lt.s    $f26, $f0
end_01_D_802493A0_E0E700:
/* 177C80 802493A0 00000000 */  nop
/* 177C84 802493A4 45030001 */  bc1tl     .L802493AC
/* 177C88 802493A8 46000686 */   mov.s    $f26, $f0
.L802493AC:
/* 177C8C 802493AC 3C03802A */  lui       $v1, %hi(BattleCam_BoomLength)
/* 177C90 802493B0 2463F280 */  addiu     $v1, $v1, %lo(BattleCam_BoomLength)
/* 177C94 802493B4 84620000 */  lh        $v0, 0x0($v1)
/* 177C98 802493B8 461AB080 */  add.s     $f2, $f22, $f26
/* 177C9C 802493BC 44820000 */  mtc1      $v0, $f0
/* 177CA0 802493C0 00000000 */  nop
/* 177CA4 802493C4 46800020 */  cvt.s.w   $f0, $f0
/* 177CA8 802493C8 46020000 */  add.s     $f0, $f0, $f2
/* 177CAC 802493CC 3C02802A */  lui       $v0, %hi(BattleCam_SetImmediately)
/* 177CB0 802493D0 8042F2A4 */  lb        $v0, %lo(BattleCam_SetImmediately)($v0)
.L802493D4:
/* 177CB4 802493D4 4600040D */  trunc.w.s $f16, $f0
/* 177CB8 802493D8 44048000 */  mfc1      $a0, $f16
.L802493DC:
/* 177CBC 802493DC 10400010 */  beqz      $v0, jtbl_80249420
jtbl_802493E0:
/* 177CC0 802493E0 A4640000 */   sh       $a0, 0x0($v1)
/* 177CC4 802493E4 E61E0054 */  swc1      $f30, 0x54($s0)
/* 177CC8 802493E8 E61C0058 */  swc1      $f28, 0x58($s0)
/* 177CCC 802493EC C7B0001C */  lwc1      $f16, 0x1C($sp)
/* 177CD0 802493F0 3C02802A */  lui       $v0, %hi(BattleCam_BoomZOffset)
/* 177CD4 802493F4 8442F286 */  lh        $v0, %lo(BattleCam_BoomZOffset)($v0)
/* 177CD8 802493F8 3C03802A */  lui       $v1, %hi(BattleCam_BoomYaw)
/* 177CDC 802493FC 9463F282 */  lhu       $v1, %lo(BattleCam_BoomYaw)($v1)
/* 177CE0 80249400 A604001E */  sh        $a0, 0x1E($s0)
/* 177CE4 80249404 3C04802A */  lui       $a0, %hi(BattleCam_BoomPitch)
/* 177CE8 80249408 9484F284 */  lhu       $a0, %lo(BattleCam_BoomPitch)($a0)
/* 177CEC 8024940C 00021200 */  sll       $v0, $v0, 8
/* 177CF0 80249410 E610005C */  swc1      $f16, 0x5C($s0)
/* 177CF4 80249414 A6020026 */  sh        $v0, 0x26($s0)
/* 177CF8 80249418 A6030024 */  sh        $v1, 0x24($s0)
.L8024941C:
/* 177CFC 8024941C A6040022 */  sh        $a0, 0x22($s0)
jtbl_80249420:
/* 177D00 80249420 8602001E */  lh        $v0, 0x1E($s0)
/* 177D04 80249424 86040026 */  lh        $a0, 0x26($s0)
/* 177D08 80249428 86030024 */  lh        $v1, 0x24($s0)
/* 177D0C 8024942C 44820000 */  mtc1      $v0, $f0
/* 177D10 80249430 00000000 */  nop
/* 177D14 80249434 46800020 */  cvt.s.w   $f0, $f0
/* 177D18 80249438 86020022 */  lh        $v0, 0x22($s0)
/* 177D1C 8024943C 3C01802A */  lui       $at, %hi(BattleCam_InitialBoomLength)
end_01_CreditsData:
/* 177D20 80249440 E420F28C */  swc1      $f0, %lo(BattleCam_InitialBoomLength)($at)
/* 177D24 80249444 44820000 */  mtc1      $v0, $f0
/* 177D28 80249448 00000000 */  nop
/* 177D2C 8024944C 46800020 */  cvt.s.w   $f0, $f0
/* 177D30 80249450 3C01802A */  lui       $at, %hi(BattleCam_InitialBoomPitch)
/* 177D34 80249454 E420F294 */  swc1      $f0, %lo(BattleCam_InitialBoomPitch)($at)
/* 177D38 80249458 44830000 */  mtc1      $v1, $f0
/* 177D3C 8024945C 00000000 */  nop
/* 177D40 80249460 46800020 */  cvt.s.w   $f0, $f0
/* 177D44 80249464 3C01802A */  lui       $at, %hi(BattleCam_InitialBoomYaw)
/* 177D48 80249468 E420F290 */  swc1      $f0, %lo(BattleCam_InitialBoomYaw)($at)
/* 177D4C 8024946C 04820001 */  bltzl     $a0, .L80249474
/* 177D50 80249470 248400FF */   addiu    $a0, $a0, 0xFF
.L80249474:
/* 177D54 80249474 00041203 */  sra       $v0, $a0, 8
/* 177D58 80249478 C6020054 */  lwc1      $f2, 0x54($s0)
/* 177D5C 8024947C C6040058 */  lwc1      $f4, 0x58($s0)
/* 177D60 80249480 C606005C */  lwc1      $f6, 0x5C($s0)
D_80249484:
/* 177D64 80249484 3C03802A */  lui       $v1, %hi(BattleCam_MoveTimeLeft)
/* 177D68 80249488 9463F29E */  lhu       $v1, %lo(BattleCam_MoveTimeLeft)($v1)
.L8024948C:
/* 177D6C 8024948C 44820000 */  mtc1      $v0, $f0
/* 177D70 80249490 00000000 */  nop
/* 177D74 80249494 46800020 */  cvt.s.w   $f0, $f0
/* 177D78 80249498 3C01802A */  lui       $at, %hi(BattleCam_InitialBoomZOffset)
/* 177D7C 8024949C E420F298 */  swc1      $f0, %lo(BattleCam_InitialBoomZOffset)($at)
/* 177D80 802494A0 3C01802A */  lui       $at, %hi(BattleCam_InitialPosX)
/* 177D84 802494A4 E422F2A8 */  swc1      $f2, %lo(BattleCam_InitialPosX)($at)
.L802494A8:
/* 177D88 802494A8 3C01802A */  lui       $at, %hi(BattleCam_InitialPosY)
.L802494AC:
/* 177D8C 802494AC E424F2AC */  swc1      $f4, %lo(BattleCam_InitialPosY)($at)
/* 177D90 802494B0 3C01802A */  lui       $at, %hi(BattleCam_InitialPosZ)
/* 177D94 802494B4 E426F2B0 */  swc1      $f6, %lo(BattleCam_InitialPosZ)($at)
/* 177D98 802494B8 3C01802A */  lui       $at, %hi(BattleCam_MoveTimeTotal)
/* 177D9C 802494BC A423F2A0 */  sh        $v1, %lo(BattleCam_MoveTimeTotal)($at)
.L802494C0:
/* 177DA0 802494C0 3C02802A */  lui       $v0, %hi(BattleCam_UseLinearInterp)
/* 177DA4 802494C4 8042F2A5 */  lb        $v0, %lo(BattleCam_UseLinearInterp)($v0)
/* 177DA8 802494C8 14400027 */  bnez      $v0, .L80249568
/* 177DAC 802494CC 00000000 */   nop
/* 177DB0 802494D0 3C02802A */  lui       $v0, %hi(BattleCam_MoveTimeLeft)
/* 177DB4 802494D4 8442F29E */  lh        $v0, %lo(BattleCam_MoveTimeLeft)($v0)
/* 177DB8 802494D8 3C03802A */  lui       $v1, %hi(BattleCam_MoveTimeTotal)
/* 177DBC 802494DC 8463F2A0 */  lh        $v1, %lo(BattleCam_MoveTimeTotal)($v1)
/* 177DC0 802494E0 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* 177DC4 802494E4 4481C000 */  mtc1      $at, $f24
/* 177DC8 802494E8 4482D000 */  mtc1      $v0, $f26
/* 177DCC 802494EC 00000000 */  nop
.L802494F0:
/* 177DD0 802494F0 4680D6A0 */  cvt.s.w   $f26, $f26
/* 177DD4 802494F4 44830000 */  mtc1      $v1, $f0
/* 177DD8 802494F8 00000000 */  nop
D_802494FC:
/* 177DDC 802494FC 46800020 */  cvt.s.w   $f0, $f0
/* 177DE0 80249500 4600D683 */  div.s     $f26, $f26, $f0
/* 177DE4 80249504 461AC301 */  sub.s     $f12, $f24, $f26
/* 177DE8 80249508 3C014049 */  lui       $at, (0x40490FD0 >> 16)
.L8024950C:
/* 177DEC 8024950C 34210FD0 */  ori       $at, $at, (0x40490FD0 & 0xFFFF)
/* 177DF0 80249510 4481B000 */  mtc1      $at, $f22
/* 177DF4 80249514 00000000 */  nop
/* 177DF8 80249518 46166302 */  mul.s     $f12, $f12, $f22
/* 177DFC 8024951C 00000000 */  nop
/* 177E00 80249520 3C013F00 */  lui       $at, (0x3F000000 >> 16)
/* 177E04 80249524 4481A000 */  mtc1      $at, $f20
.L80249528:
/* 177E08 80249528 00000000 */  nop
/* 177E0C 8024952C 46146302 */  mul.s     $f12, $f12, $f20
/* 177E10 80249530 0C00A85B */  jal       sin_rad
/* 177E14 80249534 00000000 */   nop
/* 177E18 80249538 46160002 */  mul.s     $f0, $f0, $f22
/* 177E1C 8024953C 00000000 */  nop
/* 177E20 80249540 46140302 */  mul.s     $f12, $f0, $f20
D_80249544:
/* 177E24 80249544 0C00A85B */  jal       sin_rad
/* 177E28 80249548 00000000 */   nop
/* 177E2C 8024954C 46160002 */  mul.s     $f0, $f0, $f22
/* 177E30 80249550 00000000 */  nop
/* 177E34 80249554 46140302 */  mul.s     $f12, $f0, $f20
/* 177E38 80249558 0C00A85B */  jal       sin_rad
.L8024955C:
/* 177E3C 8024955C 00000000 */   nop
/* 177E40 80249560 08092565 */  j         .L80249594
/* 177E44 80249564 4600C681 */   sub.s    $f26, $f24, $f0
.L80249568:
/* 177E48 80249568 3C02802A */  lui       $v0, %hi(BattleCam_MoveTimeLeft)
.L8024956C:
/* 177E4C 8024956C 8442F29E */  lh        $v0, %lo(BattleCam_MoveTimeLeft)($v0)
D_80249570:
/* 177E50 80249570 3C03802A */  lui       $v1, %hi(BattleCam_MoveTimeTotal)
/* 177E54 80249574 8463F2A0 */  lh        $v1, %lo(BattleCam_MoveTimeTotal)($v1)
/* 177E58 80249578 4482D000 */  mtc1      $v0, $f26
/* 177E5C 8024957C 00000000 */  nop
.L80249580:
/* 177E60 80249580 4680D6A0 */  cvt.s.w   $f26, $f26
/* 177E64 80249584 44830000 */  mtc1      $v1, $f0
/* 177E68 80249588 00000000 */  nop
/* 177E6C 8024958C 46800020 */  cvt.s.w   $f0, $f0
.L80249590:
/* 177E70 80249590 4600D683 */  div.s     $f26, $f26, $f0
.L80249594:
/* 177E74 80249594 3C01802A */  lui       $at, %hi(BattleCam_InitialPosX)
.L80249598:
/* 177E78 80249598 C426F2A8 */  lwc1      $f6, %lo(BattleCam_InitialPosX)($at)
/* 177E7C 8024959C 461A3182 */  mul.s     $f6, $f6, $f26
/* 177E80 802495A0 00000000 */  nop
/* 177E84 802495A4 3C01802A */  lui       $at, %hi(BattleCam_InitialPosY)
.L802495A8:
/* 177E88 802495A8 C428F2AC */  lwc1      $f8, %lo(BattleCam_InitialPosY)($at)
D_802495AC:
/* 177E8C 802495AC 461A4202 */  mul.s     $f8, $f8, $f26
/* 177E90 802495B0 00000000 */  nop
/* 177E94 802495B4 3C01802A */  lui       $at, %hi(BattleCam_InitialPosZ)
.L802495B8:
/* 177E98 802495B8 C424F2B0 */  lwc1      $f4, %lo(BattleCam_InitialPosZ)($at)
/* 177E9C 802495BC 461A2102 */  mul.s     $f4, $f4, $f26
/* 177EA0 802495C0 00000000 */  nop
/* 177EA4 802495C4 3C01802A */  lui       $at, %hi(BattleCam_InitialBoomZOffset)
/* 177EA8 802495C8 C422F298 */  lwc1      $f2, %lo(BattleCam_InitialBoomZOffset)($at)
/* 177EAC 802495CC 461A1082 */  mul.s     $f2, $f2, $f26
/* 177EB0 802495D0 00000000 */  nop
/* 177EB4 802495D4 3C013F80 */  lui       $at, (0x3F800000 >> 16)
.L802495D8:
/* 177EB8 802495D8 4481B000 */  mtc1      $at, $f22
D_802495DC:
/* 177EBC 802495DC 00000000 */  nop
D_802495E0:
/* 177EC0 802495E0 461AB581 */  sub.s     $f22, $f22, $f26
/* 177EC4 802495E4 4616F302 */  mul.s     $f12, $f30, $f22
/* 177EC8 802495E8 00000000 */  nop
/* 177ECC 802495EC 4616E382 */  mul.s     $f14, $f28, $f22
/* 177ED0 802495F0 00000000 */  nop
.L802495F4:
/* 177ED4 802495F4 3C02802A */  lui       $v0, %hi(BattleCam_BoomZOffset)
/* 177ED8 802495F8 8442F286 */  lh        $v0, %lo(BattleCam_BoomZOffset)($v0)
/* 177EDC 802495FC 44820000 */  mtc1      $v0, $f0
/* 177EE0 80249600 00000000 */  nop
.L80249604:
/* 177EE4 80249604 46800020 */  cvt.s.w   $f0, $f0
/* 177EE8 80249608 46160002 */  mul.s     $f0, $f0, $f22
.L8024960C:
/* 177EEC 8024960C 00000000 */  nop
/* 177EF0 80249610 C7B2001C */  lwc1      $f18, 0x1C($sp)
/* 177EF4 80249614 46169282 */  mul.s     $f10, $f18, $f22
.L80249618:
/* 177EF8 80249618 00000000 */  nop
glabel func_8024961C
/* 177EFC 8024961C 46001080 */  add.s     $f2, $f2, $f0
/* 177F00 80249620 C6180054 */  lwc1      $f24, 0x54($s0)
/* 177F04 80249624 C6140058 */  lwc1      $f20, 0x58($s0)
/* 177F08 80249628 460C3180 */  add.s     $f6, $f6, $f12
/* 177F0C 8024962C C610005C */  lwc1      $f16, 0x5C($s0)
/* 177F10 80249630 4406F000 */  mfc1      $a2, $f30
/* 177F14 80249634 460A2100 */  add.s     $f4, $f4, $f10
/* 177F18 80249638 44079000 */  mfc1      $a3, $f18
D_8024963C:
/* 177F1C 8024963C 3C014380 */  lui       $at, (0x43800000 >> 16)
/* 177F20 80249640 44810000 */  mtc1      $at, $f0
/* 177F24 80249644 460E4200 */  add.s     $f8, $f8, $f14
/* 177F28 80249648 E7B00018 */  swc1      $f16, 0x18($sp)
/* 177F2C 8024964C E6060054 */  swc1      $f6, 0x54($s0)
/* 177F30 80249650 46001082 */  mul.s     $f2, $f2, $f0
/* 177F34 80249654 00000000 */  nop
/* 177F38 80249658 46003306 */  mov.s     $f12, $f6
/* 177F3C 8024965C E604005C */  swc1      $f4, 0x5C($s0)
.L80249660:
/* 177F40 80249660 46002386 */  mov.s     $f14, $f4
/* 177F44 80249664 E6080058 */  swc1      $f8, 0x58($s0)
/* 177F48 80249668 4600148D */  trunc.w.s $f18, $f2
/* 177F4C 8024966C 44029000 */  mfc1      $v0, $f18
/* 177F50 80249670 0C00A7B5 */  jal       dist2D
/* 177F54 80249674 A6020026 */   sh       $v0, 0x26($s0)
.L80249678:
/* 177F58 80249678 4600C306 */  mov.s     $f12, $f24
/* 177F5C 8024967C C7B0002C */  lwc1      $f16, 0x2C($sp)
/* 177F60 80249680 C7B20030 */  lwc1      $f18, 0x30($sp)
/* 177F64 80249684 4600A386 */  mov.s     $f14, $f20
/* 177F68 80249688 46128080 */  add.s     $f2, $f16, $f18
/* 177F6C 8024968C 3C013E00 */  lui       $at, (0x3E000000 >> 16)
/* 177F70 80249690 44812000 */  mtc1      $at, $f4
D_80249694:
/* 177F74 80249694 8FA60018 */  lw        $a2, 0x18($sp)
/* 177F78 80249698 46041082 */  mul.s     $f2, $f2, $f4
/* 177F7C 8024969C 00000000 */  nop
.L802496A0:
/* 177F80 802496A0 8FA70020 */  lw        $a3, 0x20($sp)
/* 177F84 802496A4 C7B00024 */  lwc1      $f16, 0x24($sp)
.L802496A8:
/* 177F88 802496A8 C7B20028 */  lwc1      $f18, 0x28($sp)
/* 177F8C 802496AC 3C014280 */  lui       $at, (0x42800000 >> 16)
.L802496B0:
/* 177F90 802496B0 44812000 */  mtc1      $at, $f4
/* 177F94 802496B4 46020500 */  add.s     $f20, $f0, $f2
/* 177F98 802496B8 E7B00010 */  swc1      $f16, 0x10($sp)
/* 177F9C 802496BC E7B20014 */  swc1      $f18, 0x14($sp)
/* 177FA0 802496C0 0C00A7CB */  jal       dist3D
/* 177FA4 802496C4 4604A501 */   sub.s    $f20, $f20, $f4
/* 177FA8 802496C8 3C013F00 */  lui       $at, (0x3F000000 >> 16)
/* 177FAC 802496CC 44811000 */  mtc1      $at, $f2
/* 177FB0 802496D0 00000000 */  nop
.L802496D4:
/* 177FB4 802496D4 46020002 */  mul.s     $f0, $f0, $f2
/* 177FB8 802496D8 00000000 */  nop
/* 177FBC 802496DC 3C01802A */  lui       $at, %hi(BattleCam_InitialBoomLength)
/* 177FC0 802496E0 C42AF28C */  lwc1      $f10, %lo(BattleCam_InitialBoomLength)($at)
/* 177FC4 802496E4 461A5282 */  mul.s     $f10, $f10, $f26
/* 177FC8 802496E8 00000000 */  nop
/* 177FCC 802496EC 3C01802A */  lui       $at, %hi(BattleCam_InitialBoomYaw)
D_802496F0:
/* 177FD0 802496F0 C428F290 */  lwc1      $f8, %lo(BattleCam_InitialBoomYaw)($at)
D_802496F4:
/* 177FD4 802496F4 461A4202 */  mul.s     $f8, $f8, $f26
.L802496F8:
/* 177FD8 802496F8 00000000 */  nop
.L802496FC:
/* 177FDC 802496FC 3C01802A */  lui       $at, %hi(BattleCam_InitialBoomPitch)
/* 177FE0 80249700 C424F294 */  lwc1      $f4, %lo(BattleCam_InitialBoomPitch)($at)
/* 177FE4 80249704 3C02802A */  lui       $v0, %hi(BattleCam_BoomLength)
/* 177FE8 80249708 8442F280 */  lh        $v0, %lo(BattleCam_BoomLength)($v0)
/* 177FEC 8024970C 461A2102 */  mul.s     $f4, $f4, $f26
/* 177FF0 80249710 00000000 */  nop
/* 177FF4 80249714 44821000 */  mtc1      $v0, $f2
/* 177FF8 80249718 00000000 */  nop
/* 177FFC 8024971C 468010A0 */  cvt.s.w   $f2, $f2
/* 178000 80249720 3C02802A */  lui       $v0, %hi(BattleCam_BoomYaw)
/* 178004 80249724 8442F282 */  lh        $v0, %lo(BattleCam_BoomYaw)($v0)
/* 178008 80249728 44823000 */  mtc1      $v0, $f6
/* 17800C 8024972C 00000000 */  nop
/* 178010 80249730 468031A0 */  cvt.s.w   $f6, $f6
/* 178014 80249734 46163182 */  mul.s     $f6, $f6, $f22
/* 178018 80249738 00000000 */  nop
/* 17801C 8024973C 46141080 */  add.s     $f2, $f2, $f20
/* 178020 80249740 3C02802A */  lui       $v0, %hi(BattleCam_BoomPitch)
/* 178024 80249744 8442F284 */  lh        $v0, %lo(BattleCam_BoomPitch)($v0)
/* 178028 80249748 46001080 */  add.s     $f2, $f2, $f0
/* 17802C 8024974C 44820000 */  mtc1      $v0, $f0
D_80249750:
/* 178030 80249750 00000000 */  nop
/* 178034 80249754 46800020 */  cvt.s.w   $f0, $f0
glabel func_80249758
/* 178038 80249758 46160002 */  mul.s     $f0, $f0, $f22
/* 17803C 8024975C 00000000 */  nop
/* 178040 80249760 46161082 */  mul.s     $f2, $f2, $f22
/* 178044 80249764 00000000 */  nop
/* 178048 80249768 46064200 */  add.s     $f8, $f8, $f6
/* 17804C 8024976C 3C04802A */  lui       $a0, %hi(BattleCam_MoveTimeLeft)
/* 178050 80249770 2484F29E */  addiu     $a0, $a0, %lo(BattleCam_MoveTimeLeft)
.L80249774:
/* 178054 80249774 46002100 */  add.s     $f4, $f4, $f0
/* 178058 80249778 4600440D */  trunc.w.s $f16, $f8
/* 17805C 8024977C 44028000 */  mfc1      $v0, $f16
/* 178060 80249780 00000000 */  nop
/* 178064 80249784 A6020024 */  sh        $v0, 0x24($s0)
/* 178068 80249788 46025280 */  add.s     $f10, $f10, $f2
/* 17806C 8024978C 4600240D */  trunc.w.s $f16, $f4
/* 178070 80249790 44028000 */  mfc1      $v0, $f16
/* 178074 80249794 00000000 */  nop
/* 178078 80249798 A6020022 */  sh        $v0, 0x22($s0)
/* 17807C 8024979C 4600540D */  trunc.w.s $f16, $f10
/* 178080 802497A0 44028000 */  mfc1      $v0, $f16
/* 178084 802497A4 00000000 */  nop
/* 178088 802497A8 A602001E */  sh        $v0, 0x1E($s0)
.L802497AC:
/* 17808C 802497AC 84820000 */  lh        $v0, 0x0($a0)
glabel func_802497B0
/* 178090 802497B0 94830000 */  lhu       $v1, 0x0($a0)
/* 178094 802497B4 14400006 */  bnez      $v0, func_802497D0
/* 178098 802497B8 2462FFFF */   addiu    $v0, $v1, -0x1
/* 17809C 802497BC 24020001 */  addiu     $v0, $zero, 0x1
/* 1780A0 802497C0 3C01802A */  lui       $at, %hi(BattleCam_DoneMoving)
/* 1780A4 802497C4 A022F29C */  sb        $v0, %lo(BattleCam_DoneMoving)($at)
.L802497C8:
/* 1780A8 802497C8 080925F6 */  j         .L802497D8
/* 1780AC 802497CC 0000102D */   daddu    $v0, $zero, $zero
glabel func_802497D0
/* 1780B0 802497D0 A4820000 */  sh        $v0, 0x0($a0)
/* 1780B4 802497D4 0000102D */  daddu     $v0, $zero, $zero
.L802497D8:
/* 1780B8 802497D8 8FBF0040 */  lw        $ra, 0x40($sp)
/* 1780BC 802497DC 8FB1003C */  lw        $s1, 0x3C($sp)
/* 1780C0 802497E0 8FB00038 */  lw        $s0, 0x38($sp)
/* 1780C4 802497E4 D7BE0070 */  ldc1      $f30, 0x70($sp)
/* 1780C8 802497E8 D7BC0068 */  ldc1      $f28, 0x68($sp)
/* 1780CC 802497EC D7BA0060 */  ldc1      $f26, 0x60($sp)
/* 1780D0 802497F0 D7B80058 */  ldc1      $f24, 0x58($sp)
.L802497F4:
/* 1780D4 802497F4 D7B60050 */  ldc1      $f22, 0x50($sp)
/* 1780D8 802497F8 D7B40048 */  ldc1      $f20, 0x48($sp)
/* 1780DC 802497FC 03E00008 */  jr        $ra
/* 1780E0 80249800 27BD0078 */   addiu    $sp, $sp, 0x78

### DECOMPILED C INSTRUCTIONS:

s32 CamPresetUpdate_F(Evt* script, s32 isInitialCall) {
    Actor* actor;
    Actor* targetActor;
    Camera* camera = &gCameras[CAM_BATTLE];
    BattleStatus* battleStatus = &gBattleStatus;
    f32 x, y, z;
    f32 middlePosX, middlePosY, middlePosZ;
    f32 targetX, targetY, targetZ;
    f32 sizeX, sizeY;
    f32 averageSize, targetAverageSize;
    f32 alpha;
    f32 distToTarget;
    f32 adjustedSize;
    f32 boomLength;
    f32 extraLength;
    f32 dist;
    s32 actorClass = BattleCam_TargetActor & ACTOR_CLASS_MASK;
    s32 actorID = BattleCam_TargetActor & 0xFF;

    switch (actorClass) {
        case ACTOR_CLASS_PLAYER:
            actor = battleStatus->playerActor;
            if (actor == NULL) {
                return ApiStatus_BLOCK;
            }
            x = actor->currentPos.x;
            y = actor->currentPos.y + actor->size.y / 2 + actor->size.y / 4;
            z = actor->currentPos.z;

            sizeY = actor->size.y;
            sizeX = actor->size.x;
            averageSize = (sizeY + sizeX) / 2;

            targetActor = get_actor(actor->targetActorID);
            if (targetActor == NULL) {
                return ApiStatus_BLOCK;
            }

            targetX = targetActor->currentPos.x;
            targetY = targetActor->currentPos.y + targetActor->size.y / 2 + targetActor->size.y / 4;
            targetZ = targetActor->currentPos.z;
            targetAverageSize = (targetActor->size.y + targetActor->size.x) / 2;

            middlePosX = x + (targetX - x) / 2;
            if (BattleCam_ModeY > BTL_CAM_MODEY_MINUS_1) {
                if (BattleCam_ModeY != BTL_CAM_MODEY_0) {
                    middlePosY = targetY + (y - targetY) * 0.5f + (y - targetY) / 6.0f;
                } else {
                    middlePosY = y;
                }
            } else {
                if (BattleCam_ModeY != BTL_CAM_MODEY_MINUS_1) {
                    middlePosY = y + (targetY - y) / 4;
                } else {
                    middlePosY = targetY;
                }
            }
            middlePosZ = z + (targetZ - z) / 2;
            break;
        case ACTOR_CLASS_PARTNER:
            actor = battleStatus->partnerActor;
            if (actor == NULL) {
                return ApiStatus_BLOCK;
            }
            x = actor->currentPos.x;
            y = actor->currentPos.y + actor->size.y / 2 + actor->size.y / 4;
            z = actor->currentPos.z;

            sizeY = actor->size.y;
            sizeX = actor->size.x;
            averageSize = (sizeY + sizeX) / 2;

            targetActor = get_actor(actor->targetActorID);
            if (targetActor == NULL) {
                return ApiStatus_BLOCK;
            }

            targetX = targetActor->currentPos.x;
            targetY = targetActor->currentPos.y + targetActor->size.y / 2 + targetActor->size.y / 4;
            targetZ = targetActor->currentPos.z;
            targetAverageSize = (targetActor->size.y + targetActor->size.x) /2;

            middlePosX = x + (targetX - x) / 2;
            if (BattleCam_ModeY > BTL_CAM_MODEY_MINUS_1) {
                if (BattleCam_ModeY != BTL_CAM_MODEY_0) {
                    middlePosY = targetY + (y - targetY) * 0.5f + (y - targetY) / 6.0f;
                } else {
                    middlePosY = y;
                }
            } else {
                middlePosY = targetY;
            }
            middlePosZ = z + (targetZ - z) / 2;
            break;
        case ACTOR_CLASS_ENEMY:
            actor = battleStatus->enemyActors[actorID];
            if (actor == NULL) {
                return ApiStatus_BLOCK;
            }
            x = actor->currentPos.x;
            y = actor->currentPos.y + actor->size.y / 2 + actor->size.y / 4;
            z = actor->currentPos.z;

            sizeY = actor->size.y;
            sizeX = actor->size.x;
            averageSize = (sizeY + sizeX) * 0.5f;

            targetActor = get_actor(actor->targetActorID);
            if (targetActor == NULL) {
                return ApiStatus_BLOCK;
            }

            targetX = targetActor->currentPos.x;
            targetY = targetActor->currentPos.y + targetActor->size.y / 2 + targetActor->size.y / 4;
            targetZ = targetActor->currentPos.z;
            targetAverageSize = (targetActor->size.y + targetActor->size.x) / 2;

            middlePosX = x + (targetX - x) / 2;
            if (BattleCam_ModeY > BTL_CAM_MODEY_MINUS_1) {
                if (BattleCam_ModeY != BTL_CAM_MODEY_0) {
                    middlePosY = targetY + (y - targetY) * 0.5f + (y - targetY) / 6.0f;
                } else {
                    middlePosY = y;
                }
            } else {
                if (BattleCam_ModeY == BTL_CAM_MODEY_MINUS_1) {
                    middlePosY = targetY;
                } else {
                    middlePosY = y;
                }
            }
            middlePosZ = z + (targetZ - z) / 2;
            break;
        default:
            return ApiStatus_BLOCK;
    }

    if (D_8029F2A6) {
        f32 upperBound = (500.0f - BattleCam_InitialBoomLength) * 0.4 + 30.0;
        f32 lowerBound = -upperBound;

        if (middlePosX < lowerBound) {
            middlePosX += (lowerBound - middlePosX) / 2;
        }
        if (middlePosX > upperBound) {
            middlePosX += (upperBound - middlePosX) / 2;
        }
    }
    if (isInitialCall) {
        sizeX -= 24.0f;
        sizeY -= 24.0f;
        if (sizeX < 0.0f) {
            sizeX = 0.0f;
        }
        if (sizeY < 0.0f) {
            sizeY = 0.0f;
        }
        BattleCam_BoomLength += sizeX + sizeY;
        if (BattleCam_SetImmediately) {
            camera->lookAt_obj_target.x = middlePosX;
            camera->lookAt_obj_target.y = middlePosY;
            camera->lookAt_obj_target.z = middlePosZ;
            camera->auxBoomLength = BattleCam_BoomLength;
            camera->auxBoomZOffset = BattleCam_BoomZOffset * 256;
            camera->auxBoomYaw = BattleCam_BoomYaw;
            camera->auxBoomPitch = BattleCam_BoomPitch;
        }

        BattleCam_InitialBoomLength = camera->auxBoomLength;
        BattleCam_InitialBoomPitch = camera->auxBoomPitch;
        BattleCam_InitialBoomYaw = camera->auxBoomYaw;
        BattleCam_InitialBoomZOffset = camera->auxBoomZOffset / 256;
        BattleCam_InitialPosX = camera->lookAt_obj_target.x;
        BattleCam_InitialPosY = camera->lookAt_obj_target.y;
        BattleCam_InitialPosZ = camera->lookAt_obj_target.z;
        BattleCam_MoveTimeTotal = BattleCam_MoveTimeLeft;
    }

    if (!BattleCam_UseLinearInterp) {
        alpha = BattleCam_MoveTimeLeft;
        alpha /= BattleCam_MoveTimeTotal;
        alpha = 1.0f - sin_rad(sin_rad(sin_rad((1.0f - alpha) * PI_S / 2) * PI_S / 2) * PI_S / 2);
    } else {
        alpha = BattleCam_MoveTimeLeft;
        alpha /= BattleCam_MoveTimeTotal;
    }

    x = camera->lookAt_obj_target.x;
    y = camera->lookAt_obj_target.y;
    z = camera->lookAt_obj_target.z;

    camera->lookAt_obj_target.x = LERP(BattleCam_InitialPosX, middlePosX, alpha);
    camera->lookAt_obj_target.y = LERP(BattleCam_InitialPosY, middlePosY, alpha);
    camera->lookAt_obj_target.z = LERP(BattleCam_InitialPosZ, middlePosZ, alpha);
    camera->auxBoomZOffset = LERP(BattleCam_InitialBoomZOffset, BattleCam_BoomZOffset, alpha) * 256.0f;

    dist = dist2D(camera->lookAt_obj_target.x, camera->lookAt_obj_target.z, middlePosX, middlePosZ);
    adjustedSize = (averageSize + targetAverageSize) / 8;
    extraLength = dist + adjustedSize - 64.0f;
    distToTarget = dist3D(x, y, z, targetX, targetY, targetZ);
    boomLength = BattleCam_BoomLength + extraLength + distToTarget * 0.5f;

    camera->auxBoomLength = LERP(BattleCam_InitialBoomLength, boomLength, alpha);
    camera->auxBoomYaw = LERP(BattleCam_InitialBoomYaw, BattleCam_BoomYaw, alpha);
    camera->auxBoomPitch = LERP(BattleCam_InitialBoomPitch, BattleCam_BoomPitch, alpha);

    if (BattleCam_MoveTimeLeft == 0) {
        BattleCam_DoneMoving = TRUE;
    } else {
        BattleCam_MoveTimeLeft--;
    }

    return ApiStatus_BLOCK;
}