.rdata glabel D_80139408 .asciz "camera: demo: player demo set WAIT\n" .balign 4 glabel D_8013942C .asciz "camera: demo: player demo set %d\n" .balign 4 glabel D_80139450 .asciz "\x1B[43;30mcamera: warning: demo C: actor is not valid\n\x1B[m" .balign 4 glabel D_80139488 .asciz "\x1B[43;30mcamera: warning: demo C: actor is not valid\n\x1B[m" .balign 4 glabel D_801394C0 .asciz "\x1B[43;30mcamera: warning: demo C: actor is not valid\n\x1B[m" .balign 4 glabel D_801394F8 .asciz "\x1B[43;30mcamera: warning: demo C: actor is not valid\n\x1B[m" .balign 4 .late_rodata glabel D_8013A230 .float 182.041672 # 32768 / PI glabel D_8013A234 .float 182.041672 # 32768 / PI glabel D_8013A238 .float 182.041672 # 32768 / PI glabel D_8013A23C .float 182.041672 # 32768 / PI glabel D_8013A240 .float 182.041672 # 32768 / PI glabel D_8013A244 .float 182.041672 # 32768 / PI glabel D_8013A248 .float 182.041672 # 32768 / PI glabel D_8013A24C .float 182.041672 # 32768 / PI glabel D_8013A250 .float 182.041672 # 32768 / PI glabel jtbl_8013A254 .word L80053B74 # 1 .word L80053C60 # 2 .word L80053F00 # 3 .word L80053E60 # 4 .word L800541C8 .word L800541C8 .word L800541C8 .word L800541C8 .word L80053D18 # 9 .word L80053D18 # 10 .word L80053F54 # 11 .word L80053F54 # 12 .word L80053FE4 # 13 .word L800541C8 .word L80053A0C # 15 .word L80053AF4 # 16 .word L800541C8 .word L80054180 # 17 .word L80054150 # 18 .word L800541C8 .word L80053A68 # 20 .word L800541C8 .word L800541C8 .word L80054140 # 23 glabel D_8013A2B4 .float 182.041672 # 32768 / PI .text glabel Camera_Unique9 /* AC9FAC 80052E0C 27BDFEE8 */ addiu $sp, $sp, -0x118 /* AC9FB0 80052E10 AFBF001C */ sw $ra, 0x1c($sp) /* AC9FB4 80052E14 AFB10018 */ sw $s1, 0x18($sp) /* AC9FB8 80052E18 AFB00014 */ sw $s0, 0x14($sp) /* AC9FBC 80052E1C 8C8E0090 */ lw $t6, 0x90($a0) /* AC9FC0 80052E20 00808825 */ move $s1, $a0 /* AC9FC4 80052E24 2401000A */ li $at, 10 /* AC9FC8 80052E28 AFAE0088 */ sw $t6, 0x88($sp) /* AC9FCC 80052E2C 8483015E */ lh $v1, 0x15e($a0) /* AC9FD0 80052E30 5060000A */ beql $v1, $zero, .L80052E5C /* AC9FD4 80052E34 86380142 */ lh $t8, 0x142($s1) /* AC9FD8 80052E38 10610007 */ beq $v1, $at, .L80052E58 /* AC9FDC 80052E3C 24010014 */ li $at, 20 /* AC9FE0 80052E40 10610005 */ beq $v1, $at, .L80052E58 /* AC9FE4 80052E44 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 /* AC9FE8 80052E48 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) /* AC9FEC 80052E4C 85E20314 */ lh $v0, 0x314($t7) /* AC9FF0 80052E50 1040000F */ beqz $v0, .L80052E90 /* AC9FF4 80052E54 00000000 */ nop .L80052E58: /* AC9FF8 80052E58 86380142 */ lh $t8, 0x142($s1) .L80052E5C: /* AC9FFC 80052E5C 3C0A8012 */ lui $t2, %hi(sCameraSettings) /* ACA000 80052E60 862B0144 */ lh $t3, 0x144($s1) /* ACA004 80052E64 0018C8C0 */ sll $t9, $t8, 3 /* ACA008 80052E68 01595021 */ addu $t2, $t2, $t9 /* ACA00C 80052E6C 8D4AD068 */ lw $t2, %lo(sCameraSettings+4)($t2) /* ACA010 80052E70 000B60C0 */ sll $t4, $t3, 3 /* ACA014 80052E74 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 /* ACA018 80052E78 014C6821 */ addu $t5, $t2, $t4 /* ACA01C 80052E7C 8DA30004 */ lw $v1, 4($t5) /* ACA020 80052E80 846E0000 */ lh $t6, ($v1) /* ACA024 80052E84 A62E0008 */ sh $t6, 8($s1) /* ACA028 80052E88 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) /* ACA02C 80052E8C 85E20314 */ lh $v0, 0x314($t7) .L80052E90: /* ACA030 80052E90 10400003 */ beqz $v0, .L80052EA0 /* ACA034 80052E94 26300008 */ addiu $s0, $s1, 8 /* ACA038 80052E98 0C011495 */ jal Camera_CopyPREGToModeValues /* ACA03C 80052E9C 02202025 */ move $a0, $s1 .L80052EA0: /* ACA040 80052EA0 86180000 */ lh $t8, ($s0) /* ACA044 80052EA4 3C018012 */ lui $at, %hi(D_8011D3A0) /* ACA048 80052EA8 27A40098 */ addiu $a0, $sp, 0x98 /* ACA04C 80052EAC AC38D3A0 */ sw $t8, %lo(D_8011D3A0)($at) /* ACA050 80052EB0 0C00BBC5 */ jal func_8002EF14 /* ACA054 80052EB4 8E250090 */ lw $a1, 0x90($s1) /* ACA058 80052EB8 8623015E */ lh $v1, 0x15e($s1) /* ACA05C 80052EBC 2630000C */ addiu $s0, $s1, 0xc /* ACA060 80052EC0 240BFFFF */ li $t3, -1 /* ACA064 80052EC4 14600010 */ bnez $v1, .L80052F08 /* ACA068 80052EC8 24790001 */ addiu $t9, $v1, 1 /* ACA06C 80052ECC A639015E */ sh $t9, 0x15e($s1) /* ACA070 80052ED0 240A0001 */ li $t2, 1 /* ACA074 80052ED4 A60B0036 */ sh $t3, 0x36($s0) /* ACA078 80052ED8 A60A003C */ sh $t2, 0x3c($s0) /* ACA07C 80052EDC A6000038 */ sh $zero, 0x38($s0) /* ACA080 80052EE0 C7A40098 */ lwc1 $f4, 0x98($sp) /* ACA084 80052EE4 44805000 */ mtc1 $zero, $f10 /* ACA088 80052EE8 02202025 */ move $a0, $s1 /* ACA08C 80052EEC E604001C */ swc1 $f4, 0x1c($s0) /* ACA090 80052EF0 C7A6009C */ lwc1 $f6, 0x9c($sp) /* ACA094 80052EF4 E6060020 */ swc1 $f6, 0x20($s0) /* ACA098 80052EF8 C7A800A0 */ lwc1 $f8, 0xa0($sp) /* ACA09C 80052EFC E6080024 */ swc1 $f8, 0x24($s0) /* ACA0A0 80052F00 0C010ED8 */ jal func_80043B60 /* ACA0A4 80052F04 E62A0100 */ swc1 $f10, 0x100($s1) .L80052F08: /* ACA0A8 80052F08 2630000C */ addiu $s0, $s1, 0xc /* ACA0AC 80052F0C 860C0038 */ lh $t4, 0x38($s0) /* ACA0B0 80052F10 55800006 */ bnezl $t4, .L80052F2C /* ACA0B4 80052F14 860E003C */ lh $t6, 0x3c($s0) /* ACA0B8 80052F18 8602003C */ lh $v0, 0x3c($s0) /* ACA0BC 80052F1C 18400002 */ blez $v0, .L80052F28 /* ACA0C0 80052F20 244DFFFF */ addiu $t5, $v0, -1 /* ACA0C4 80052F24 A60D003C */ sh $t5, 0x3c($s0) .L80052F28: /* ACA0C8 80052F28 860E003C */ lh $t6, 0x3c($s0) .L80052F2C: /* ACA0CC 80052F2C 55C0004B */ bnezl $t6, .L8005305C /* ACA0D0 80052F30 A600003A */ sh $zero, 0x3a($s0) /* ACA0D4 80052F34 86180036 */ lh $t8, 0x36($s0) /* ACA0D8 80052F38 240F0001 */ li $t7, 1 /* ACA0DC 80052F3C A60F003A */ sh $t7, 0x3a($s0) /* ACA0E0 80052F40 27190001 */ addiu $t9, $t8, 1 /* ACA0E4 80052F44 A6190036 */ sh $t9, 0x36($s0) /* ACA0E8 80052F48 8E2B0000 */ lw $t3, ($s1) /* ACA0EC 80052F4C 86020036 */ lh $v0, 0x36($s0) /* ACA0F0 80052F50 004B082A */ slt $at, $v0, $t3 /* ACA0F4 80052F54 1020003A */ beqz $at, .L80053040 /* ACA0F8 80052F58 00026080 */ sll $t4, $v0, 2 /* ACA0FC 80052F5C 8E2A0004 */ lw $t2, 4($s1) /* ACA100 80052F60 01826021 */ addu $t4, $t4, $v0 /* ACA104 80052F64 000C60C0 */ sll $t4, $t4, 3 /* ACA108 80052F68 014C1821 */ addu $v1, $t2, $t4 /* ACA10C 80052F6C AE030000 */ sw $v1, ($s0) /* ACA110 80052F70 846E0004 */ lh $t6, 4($v1) /* ACA114 80052F74 240100FF */ li $at, 255 /* ACA118 80052F78 A60E003C */ sh $t6, 0x3c($s0) /* ACA11C 80052F7C 90650001 */ lbu $a1, 1($v1) /* ACA120 80052F80 10A10037 */ beq $a1, $at, .L80053060 /* ACA124 80052F84 30A200F0 */ andi $v0, $a1, 0xf0 /* ACA128 80052F88 24010080 */ li $at, 128 /* ACA12C 80052F8C 14410005 */ bne $v0, $at, .L80052FA4 /* ACA130 80052F90 30AF000F */ andi $t7, $a1, 0xf /* ACA134 80052F94 3C018012 */ lui $at, %hi(D_8011D3AC) # $at, 0x8012 /* ACA138 80052F98 AC2FD3AC */ sw $t7, %lo(D_8011D3AC)($at) /* ACA13C 80052F9C 10000030 */ b .L80053060 /* ACA140 80052FA0 8E030000 */ lw $v1, ($s0) .L80052FA4: /* ACA144 80052FA4 240100C0 */ li $at, 192 /* ACA148 80052FA8 14410008 */ bne $v0, $at, .L80052FCC /* ACA14C 80052FAC 30A4000F */ andi $a0, $a1, 0xf /* ACA150 80052FB0 00042200 */ sll $a0, $a0, 8 /* ACA154 80052FB4 3484F000 */ ori $a0, $a0, 0xf000 /* ACA158 80052FB8 00042400 */ sll $a0, $a0, 0x10 /* ACA15C 80052FBC 0C0114D4 */ jal func_80045350 /* ACA160 80052FC0 00042403 */ sra $a0, $a0, 0x10 /* ACA164 80052FC4 10000026 */ b .L80053060 /* ACA168 80052FC8 8E030000 */ lw $v1, ($s0) .L80052FCC: /* ACA16C 80052FCC 8E380090 */ lw $t8, 0x90($s1) /* ACA170 80052FD0 8FAA0088 */ lw $t2, 0x88($sp) /* ACA174 80052FD4 3C048014 */ lui $a0, %hi(D_8013942C) /* ACA178 80052FD8 8F19067C */ lw $t9, 0x67c($t8) /* ACA17C 80052FDC 00195900 */ sll $t3, $t9, 4 /* ACA180 80052FE0 0561000E */ bgez $t3, .L8005301C /* ACA184 80052FE4 00000000 */ nop /* ACA188 80052FE8 814C014F */ lb $t4, 0x14f($t2) /* ACA18C 80052FEC 24010001 */ li $at, 1 /* ACA190 80052FF0 24060008 */ li $a2, 8 /* ACA194 80052FF4 11810009 */ beq $t4, $at, .L8005301C /* ACA198 80052FF8 00000000 */ nop /* ACA19C 80052FFC 8E24008C */ lw $a0, 0x8c($s1) /* ACA1A0 80053000 0C00B7CE */ jal func_8002DF38 /* ACA1A4 80053004 8E2500A8 */ lw $a1, 0xa8($s1) /* ACA1A8 80053008 3C048014 */ lui $a0, %hi(D_80139408) # $a0, 0x8014 /* ACA1AC 8005300C 0C00084C */ jal osSyncPrintf /* ACA1B0 80053010 24849408 */ addiu $a0, %lo(D_80139408) # addiu $a0, $a0, -0x6bf8 /* ACA1B4 80053014 10000012 */ b .L80053060 /* ACA1B8 80053018 8E030000 */ lw $v1, ($s0) .L8005301C: /* ACA1BC 8005301C 0C00084C */ jal osSyncPrintf /* ACA1C0 80053020 2484942C */ addiu $a0, %lo(D_8013942C) /* ACA1C4 80053024 8E0D0000 */ lw $t5, ($s0) /* ACA1C8 80053028 8E24008C */ lw $a0, 0x8c($s1) /* ACA1CC 8005302C 8E2500A8 */ lw $a1, 0xa8($s1) /* ACA1D0 80053030 0C00B7CE */ jal func_8002DF38 /* ACA1D4 80053034 91A60001 */ lbu $a2, 1($t5) /* ACA1D8 80053038 10000009 */ b .L80053060 /* ACA1DC 8005303C 8E030000 */ lw $v1, ($s0) .L80053040: /* ACA1E0 80053040 862E0164 */ lh $t6, 0x164($s1) /* ACA1E4 80053044 11C00002 */ beqz $t6, .L80053050 /* ACA1E8 80053048 00000000 */ nop /* ACA1EC 8005304C A6200160 */ sh $zero, 0x160($s1) .L80053050: /* ACA1F0 80053050 100004AB */ b .L80054300 /* ACA1F4 80053054 24020001 */ li $v0, 1 /* ACA1F8 80053058 A600003A */ sh $zero, 0x3a($s0) .L8005305C: /* ACA1FC 8005305C 8E030000 */ lw $v1, ($s0) .L80053060: /* ACA200 80053060 84640002 */ lh $a0, 2($v1) /* ACA204 80053064 24010001 */ li $at, 1 /* ACA208 80053068 308700FF */ andi $a3, $a0, 0xff /* ACA20C 8005306C 00073C00 */ sll $a3, $a3, 0x10 /* ACA210 80053070 00073C03 */ sra $a3, $a3, 0x10 /* ACA214 80053074 54E1000D */ bnel $a3, $at, .L800530AC /* ACA218 80053078 24010002 */ li $at, 2 /* ACA21C 8005307C 8C780010 */ lw $t8, 0x10($v1) /* ACA220 80053080 26390050 */ addiu $t9, $s1, 0x50 /* ACA224 80053084 AE180004 */ sw $t8, 4($s0) /* ACA228 80053088 8C6F0014 */ lw $t7, 0x14($v1) /* ACA22C 8005308C AE0F0008 */ sw $t7, 8($s0) /* ACA230 80053090 8C780018 */ lw $t8, 0x18($v1) /* ACA234 80053094 AE18000C */ sw $t8, 0xc($s0) /* ACA238 80053098 AFB90030 */ sw $t9, 0x30($sp) /* ACA23C 8005309C 8E030000 */ lw $v1, ($s0) /* ACA240 800530A0 10000102 */ b .L800534AC /* ACA244 800530A4 84640002 */ lh $a0, 2($v1) /* ACA248 800530A8 24010002 */ li $at, 2 .L800530AC: /* ACA24C 800530AC 14E10016 */ bne $a3, $at, .L80053108 /* ACA250 800530B0 262E0050 */ addiu $t6, $s1, 0x50 /* ACA254 800530B4 860B003A */ lh $t3, 0x3a($s0) /* ACA258 800530B8 11600011 */ beqz $t3, .L80053100 /* ACA25C 800530BC 00000000 */ nop /* ACA260 800530C0 8E2A008C */ lw $t2, 0x8c($s1) /* ACA264 800530C4 C4660010 */ lwc1 $f6, 0x10($v1) /* ACA268 800530C8 C54400EC */ lwc1 $f4, 0xec($t2) /* ACA26C 800530CC 46062200 */ add.s $f8, $f4, $f6 /* ACA270 800530D0 E6080004 */ swc1 $f8, 4($s0) /* ACA274 800530D4 8E2C008C */ lw $t4, 0x8c($s1) /* ACA278 800530D8 C4640014 */ lwc1 $f4, 0x14($v1) /* ACA27C 800530DC C58A00F0 */ lwc1 $f10, 0xf0($t4) /* ACA280 800530E0 46045180 */ add.s $f6, $f10, $f4 /* ACA284 800530E4 E6060008 */ swc1 $f6, 8($s0) /* ACA288 800530E8 8E2D008C */ lw $t5, 0x8c($s1) /* ACA28C 800530EC C46A0018 */ lwc1 $f10, 0x18($v1) /* ACA290 800530F0 C5A800F4 */ lwc1 $f8, 0xf4($t5) /* ACA294 800530F4 460A4100 */ add.s $f4, $f8, $f10 /* ACA298 800530F8 E604000C */ swc1 $f4, 0xc($s0) /* ACA29C 800530FC 84640002 */ lh $a0, 2($v1) .L80053100: /* ACA2A0 80053100 100000EA */ b .L800534AC /* ACA2A4 80053104 AFAE0030 */ sw $t6, 0x30($sp) .L80053108: /* ACA2A8 80053108 24010003 */ li $at, 3 /* ACA2AC 8005310C 14E10013 */ bne $a3, $at, .L8005315C /* ACA2B0 80053110 26380050 */ addiu $t8, $s1, 0x50 /* ACA2B4 80053114 860F003A */ lh $t7, 0x3a($s0) /* ACA2B8 80053118 11E0000E */ beqz $t7, .L80053154 /* ACA2BC 8005311C 00000000 */ nop /* ACA2C0 80053120 C6260050 */ lwc1 $f6, 0x50($s1) /* ACA2C4 80053124 C4680010 */ lwc1 $f8, 0x10($v1) /* ACA2C8 80053128 46083280 */ add.s $f10, $f6, $f8 /* ACA2CC 8005312C E60A0004 */ swc1 $f10, 4($s0) /* ACA2D0 80053130 C4660014 */ lwc1 $f6, 0x14($v1) /* ACA2D4 80053134 C6240054 */ lwc1 $f4, 0x54($s1) /* ACA2D8 80053138 46062200 */ add.s $f8, $f4, $f6 /* ACA2DC 8005313C E6080008 */ swc1 $f8, 8($s0) /* ACA2E0 80053140 C4640018 */ lwc1 $f4, 0x18($v1) /* ACA2E4 80053144 C62A0058 */ lwc1 $f10, 0x58($s1) /* ACA2E8 80053148 46045180 */ add.s $f6, $f10, $f4 /* ACA2EC 8005314C E606000C */ swc1 $f6, 0xc($s0) /* ACA2F0 80053150 84640002 */ lh $a0, 2($v1) .L80053154: /* ACA2F4 80053154 100000D5 */ b .L800534AC /* ACA2F8 80053158 AFB80030 */ sw $t8, 0x30($sp) .L8005315C: /* ACA2FC 8005315C 24010004 */ li $at, 4 /* ACA300 80053160 10E10003 */ beq $a3, $at, .L80053170 /* ACA304 80053164 24010084 */ li $at, 132 /* ACA308 80053168 14E10058 */ bne $a3, $at, .L800532CC /* ACA30C 8005316C 30ED6060 */ andi $t5, $a3, 0x6060 .L80053170: /* ACA310 80053170 8E2500A8 */ lw $a1, 0xa8($s1) /* ACA314 80053174 10A00045 */ beqz $a1, .L8005328C /* ACA318 80053178 00000000 */ nop /* ACA31C 8005317C 8CB90130 */ lw $t9, 0x130($a1) /* ACA320 80053180 27A400C0 */ addiu $a0, $sp, 0xc0 /* ACA324 80053184 13200041 */ beqz $t9, .L8005328C /* ACA328 80053188 00000000 */ nop /* ACA32C 8005318C 0C00BBB9 */ jal func_8002EEE4 /* ACA330 80053190 A7A700D8 */ sh $a3, 0xd8($sp) /* ACA334 80053194 27A400AC */ addiu $a0, $sp, 0xac /* ACA338 80053198 0C00BBB9 */ jal func_8002EEE4 /* ACA33C 8005319C 8E250090 */ lw $a1, 0x90($s1) /* ACA340 800531A0 C7A80098 */ lwc1 $f8, 0x98($sp) /* ACA344 800531A4 C7AA00A0 */ lwc1 $f10, 0xa0($sp) /* ACA348 800531A8 27A400DC */ addiu $a0, $sp, 0xdc /* ACA34C 800531AC 27A500C0 */ addiu $a1, $sp, 0xc0 /* ACA350 800531B0 27A600AC */ addiu $a2, $sp, 0xac /* ACA354 800531B4 E7A800AC */ swc1 $f8, 0xac($sp) /* ACA358 800531B8 0C01F124 */ jal OLib_Vec3fDiffToVecSphRot90 /* ACA35C 800531BC E7AA00B4 */ swc1 $f10, 0xb4($sp) /* ACA360 800531C0 87A700D8 */ lh $a3, 0xd8($sp) /* ACA364 800531C4 24018080 */ li $at, -32640 /* ACA368 800531C8 00E15824 */ and $t3, $a3, $at /* ACA36C 800531CC 5160001D */ beql $t3, $zero, .L80053244 /* ACA370 800531D0 8E050000 */ lw $a1, ($s0) /* ACA374 800531D4 8E0A0000 */ lw $t2, ($s0) /* ACA378 800531D8 3C018014 */ lui $at, %hi(D_8013A230) /* ACA37C 800531DC C426A230 */ lwc1 $f6, %lo(D_8013A230)($at) /* ACA380 800531E0 C5440010 */ lwc1 $f4, 0x10($t2) /* ACA384 800531E4 3C013F00 */ li $at, 0x3F000000 # 0.000000 /* ACA388 800531E8 44815000 */ mtc1 $at, $f10 /* ACA38C 800531EC 46062202 */ mul.s $f8, $f4, $f6 /* ACA390 800531F0 3C018014 */ lui $at, %hi(D_8013A234) /* ACA394 800531F4 460A4100 */ add.s $f4, $f8, $f10 /* ACA398 800531F8 C42AA234 */ lwc1 $f10, %lo(D_8013A234)($at) /* ACA39C 800531FC 3C013F00 */ li $at, 0x3F000000 # 0.000000 /* ACA3A0 80053200 4600218D */ trunc.w.s $f6, $f4 /* ACA3A4 80053204 440D3000 */ mfc1 $t5, $f6 /* ACA3A8 80053208 44813000 */ mtc1 $at, $f6 /* ACA3AC 8005320C A7AD00E8 */ sh $t5, 0xe8($sp) /* ACA3B0 80053210 8E0E0000 */ lw $t6, ($s0) /* ACA3B4 80053214 C5C80014 */ lwc1 $f8, 0x14($t6) /* ACA3B8 80053218 460A4102 */ mul.s $f4, $f8, $f10 /* ACA3BC 8005321C 46062200 */ add.s $f8, $f4, $f6 /* ACA3C0 80053220 4600428D */ trunc.w.s $f10, $f8 /* ACA3C4 80053224 44185000 */ mfc1 $t8, $f10 /* ACA3C8 80053228 00000000 */ nop /* ACA3CC 8005322C A7B800EA */ sh $t8, 0xea($sp) /* ACA3D0 80053230 8E190000 */ lw $t9, ($s0) /* ACA3D4 80053234 C7240018 */ lwc1 $f4, 0x18($t9) /* ACA3D8 80053238 10000005 */ b .L80053250 /* ACA3DC 8005323C E7A400E4 */ swc1 $f4, 0xe4($sp) /* ACA3E0 80053240 8E050000 */ lw $a1, ($s0) .L80053244: /* ACA3E4 80053244 27A400E4 */ addiu $a0, $sp, 0xe4 /* ACA3E8 80053248 0C01F0FD */ jal OLib_Vec3fToVecSphRot90 /* ACA3EC 8005324C 24A50010 */ addiu $a1, $a1, 0x10 .L80053250: /* ACA3F0 80053250 87AB00EA */ lh $t3, 0xea($sp) /* ACA3F4 80053254 87AA00E2 */ lh $t2, 0xe2($sp) /* ACA3F8 80053258 87AD00E8 */ lh $t5, 0xe8($sp) /* ACA3FC 8005325C 87AE00E0 */ lh $t6, 0xe0($sp) /* ACA400 80053260 016A6021 */ addu $t4, $t3, $t2 /* ACA404 80053264 A7AC00EA */ sh $t4, 0xea($sp) /* ACA408 80053268 01AE7821 */ addu $t7, $t5, $t6 /* ACA40C 8005326C A7AF00E8 */ sh $t7, 0xe8($sp) /* ACA410 80053270 26040004 */ addiu $a0, $s0, 4 /* ACA414 80053274 27A500C0 */ addiu $a1, $sp, 0xc0 /* ACA418 80053278 0C010F0A */ jal func_80043C28 /* ACA41C 8005327C 27A600E4 */ addiu $a2, $sp, 0xe4 /* ACA420 80053280 26380050 */ addiu $t8, $s1, 0x50 /* ACA424 80053284 1000000E */ b .L800532C0 /* ACA428 80053288 AFB80030 */ sw $t8, 0x30($sp) .L8005328C: /* ACA42C 8005328C 14A00003 */ bnez $a1, .L8005329C /* ACA430 80053290 3C048014 */ lui $a0, %hi(D_80139450) # $a0, 0x8014 /* ACA434 80053294 0C00084C */ jal osSyncPrintf /* ACA438 80053298 24849450 */ addiu $a0, %lo(D_80139450) # addiu $a0, $a0, -0x6bb0 .L8005329C: /* ACA43C 8005329C AE2000A8 */ sw $zero, 0xa8($s1) /* ACA440 800532A0 26390050 */ addiu $t9, $s1, 0x50 /* ACA444 800532A4 AFB90030 */ sw $t9, 0x30($sp) /* ACA448 800532A8 8F2C0000 */ lw $t4, ($t9) /* ACA44C 800532AC AE0C0004 */ sw $t4, 4($s0) /* ACA450 800532B0 8F2A0004 */ lw $t2, 4($t9) /* ACA454 800532B4 AE0A0008 */ sw $t2, 8($s0) /* ACA458 800532B8 8F2C0008 */ lw $t4, 8($t9) /* ACA45C 800532BC AE0C000C */ sw $t4, 0xc($s0) .L800532C0: /* ACA460 800532C0 8E030000 */ lw $v1, ($s0) /* ACA464 800532C4 10000079 */ b .L800534AC /* ACA468 800532C8 84640002 */ lh $a0, 2($v1) .L800532CC: /* ACA46C 800532CC 11A0006E */ beqz $t5, .L80053488 /* ACA470 800532D0 262C0050 */ addiu $t4, $s1, 0x50 /* ACA474 800532D4 30EE0004 */ andi $t6, $a3, 4 /* ACA478 800532D8 11C00004 */ beqz $t6, .L800532EC /* ACA47C 800532DC 30F82020 */ andi $t8, $a3, 0x2020 /* ACA480 800532E0 860F003A */ lh $t7, 0x3a($s0) /* ACA484 800532E4 51E00066 */ beql $t7, $zero, .L80053480 /* ACA488 800532E8 262A0050 */ addiu $t2, $s1, 0x50 .L800532EC: /* ACA48C 800532EC 13000003 */ beqz $t8, .L800532FC /* ACA490 800532F0 30E2000F */ andi $v0, $a3, 0xf /* ACA494 800532F4 1000000B */ b .L80053324 /* ACA498 800532F8 8E260090 */ lw $a2, 0x90($s1) .L800532FC: /* ACA49C 800532FC 8E2500A8 */ lw $a1, 0xa8($s1) /* ACA4A0 80053300 00003025 */ move $a2, $zero /* ACA4A4 80053304 50A00007 */ beql $a1, $zero, .L80053324 /* ACA4A8 80053308 AE2000A8 */ sw $zero, 0xa8($s1) /* ACA4AC 8005330C 8CB90130 */ lw $t9, 0x130($a1) /* ACA4B0 80053310 53200004 */ beql $t9, $zero, .L80053324 /* ACA4B4 80053314 AE2000A8 */ sw $zero, 0xa8($s1) /* ACA4B8 80053318 10000002 */ b .L80053324 /* ACA4BC 8005331C 00A03025 */ move $a2, $a1 /* ACA4C0 80053320 AE2000A8 */ sw $zero, 0xa8($s1) .L80053324: /* ACA4C4 80053324 10C00047 */ beqz $a2, .L80053444 /* ACA4C8 80053328 24010001 */ li $at, 1 /* ACA4CC 8005332C 14410006 */ bne $v0, $at, .L80053348 /* ACA4D0 80053330 27A4006C */ addiu $a0, $sp, 0x6c /* ACA4D4 80053334 00C02825 */ move $a1, $a2 /* ACA4D8 80053338 0C00BBB9 */ jal func_8002EEE4 /* ACA4DC 8005333C A7A700D8 */ sh $a3, 0xd8($sp) /* ACA4E0 80053340 1000000E */ b .L8005337C /* ACA4E4 80053344 87A700D8 */ lh $a3, 0xd8($sp) .L80053348: /* ACA4E8 80053348 24010002 */ li $at, 2 /* ACA4EC 8005334C 14410007 */ bne $v0, $at, .L8005336C /* ACA4F0 80053350 27A4006C */ addiu $a0, $sp, 0x6c /* ACA4F4 80053354 27A4006C */ addiu $a0, $sp, 0x6c /* ACA4F8 80053358 00C02825 */ move $a1, $a2 /* ACA4FC 8005335C 0C00BBC5 */ jal func_8002EF14 /* ACA500 80053360 A7A700D8 */ sh $a3, 0xd8($sp) /* ACA504 80053364 10000005 */ b .L8005337C /* ACA508 80053368 87A700D8 */ lh $a3, 0xd8($sp) .L8005336C: /* ACA50C 8005336C 00C02825 */ move $a1, $a2 /* ACA510 80053370 0C00BBD1 */ jal func_8002EF44 /* ACA514 80053374 A7A700D8 */ sh $a3, 0xd8($sp) /* ACA518 80053378 87A700D8 */ lh $a3, 0xd8($sp) .L8005337C: /* ACA51C 8005337C 24018080 */ li $at, -32640 /* ACA520 80053380 00E15824 */ and $t3, $a3, $at /* ACA524 80053384 5160001D */ beql $t3, $zero, .L800533FC /* ACA528 80053388 8E050000 */ lw $a1, ($s0) /* ACA52C 8005338C 8E0A0000 */ lw $t2, ($s0) /* ACA530 80053390 3C018014 */ lui $at, %hi(D_8013A238) /* ACA534 80053394 C428A238 */ lwc1 $f8, %lo(D_8013A238)($at) /* ACA538 80053398 C5460010 */ lwc1 $f6, 0x10($t2) /* ACA53C 8005339C 3C013F00 */ li $at, 0x3F000000 # 0.000000 /* ACA540 800533A0 44812000 */ mtc1 $at, $f4 /* ACA544 800533A4 46083282 */ mul.s $f10, $f6, $f8 /* ACA548 800533A8 3C018014 */ lui $at, %hi(D_8013A23C) /* ACA54C 800533AC 46045180 */ add.s $f6, $f10, $f4 /* ACA550 800533B0 C424A23C */ lwc1 $f4, %lo(D_8013A23C)($at) /* ACA554 800533B4 3C013F00 */ li $at, 0x3F000000 # 0.000000 /* ACA558 800533B8 4600320D */ trunc.w.s $f8, $f6 /* ACA55C 800533BC 440D4000 */ mfc1 $t5, $f8 /* ACA560 800533C0 44814000 */ mtc1 $at, $f8 /* ACA564 800533C4 A7AD00E8 */ sh $t5, 0xe8($sp) /* ACA568 800533C8 8E0E0000 */ lw $t6, ($s0) /* ACA56C 800533CC C5CA0014 */ lwc1 $f10, 0x14($t6) /* ACA570 800533D0 46045182 */ mul.s $f6, $f10, $f4 /* ACA574 800533D4 46083280 */ add.s $f10, $f6, $f8 /* ACA578 800533D8 4600510D */ trunc.w.s $f4, $f10 /* ACA57C 800533DC 44182000 */ mfc1 $t8, $f4 /* ACA580 800533E0 00000000 */ nop /* ACA584 800533E4 A7B800EA */ sh $t8, 0xea($sp) /* ACA588 800533E8 8E190000 */ lw $t9, ($s0) /* ACA58C 800533EC C7260018 */ lwc1 $f6, 0x18($t9) /* ACA590 800533F0 10000005 */ b .L80053408 /* ACA594 800533F4 E7A600E4 */ swc1 $f6, 0xe4($sp) /* ACA598 800533F8 8E050000 */ lw $a1, ($s0) .L800533FC: /* ACA59C 800533FC 27A400E4 */ addiu $a0, $sp, 0xe4 /* ACA5A0 80053400 0C01F0FD */ jal OLib_Vec3fToVecSphRot90 /* ACA5A4 80053404 24A50010 */ addiu $a1, $a1, 0x10 .L80053408: /* ACA5A8 80053408 87AB00EA */ lh $t3, 0xea($sp) /* ACA5AC 8005340C 87AA007A */ lh $t2, 0x7a($sp) /* ACA5B0 80053410 87AD00E8 */ lh $t5, 0xe8($sp) /* ACA5B4 80053414 87AE0078 */ lh $t6, 0x78($sp) /* ACA5B8 80053418 016A6021 */ addu $t4, $t3, $t2 /* ACA5BC 8005341C A7AC00EA */ sh $t4, 0xea($sp) /* ACA5C0 80053420 01AE7823 */ subu $t7, $t5, $t6 /* ACA5C4 80053424 A7AF00E8 */ sh $t7, 0xe8($sp) /* ACA5C8 80053428 26040004 */ addiu $a0, $s0, 4 /* ACA5CC 8005342C 27A5006C */ addiu $a1, $sp, 0x6c /* ACA5D0 80053430 0C010F0A */ jal func_80043C28 /* ACA5D4 80053434 27A600E4 */ addiu $a2, $sp, 0xe4 /* ACA5D8 80053438 8E030000 */ lw $v1, ($s0) /* ACA5DC 8005343C 1000000F */ b .L8005347C /* ACA5E0 80053440 84640002 */ lh $a0, 2($v1) .L80053444: /* ACA5E4 80053444 8E3800A8 */ lw $t8, 0xa8($s1) /* ACA5E8 80053448 3C048014 */ lui $a0, %hi(D_80139488) # $a0, 0x8014 /* ACA5EC 8005344C 57000004 */ bnezl $t8, .L80053460 /* ACA5F0 80053450 8E2B0050 */ lw $t3, 0x50($s1) /* ACA5F4 80053454 0C00084C */ jal osSyncPrintf /* ACA5F8 80053458 24849488 */ addiu $a0, %lo(D_80139488) # addiu $a0, $a0, -0x6b78 /* ACA5FC 8005345C 8E2B0050 */ lw $t3, 0x50($s1) .L80053460: /* ACA600 80053460 8E030000 */ lw $v1, ($s0) /* ACA604 80053464 AE0B0004 */ sw $t3, 4($s0) /* ACA608 80053468 8E390054 */ lw $t9, 0x54($s1) /* ACA60C 8005346C AE190008 */ sw $t9, 8($s0) /* ACA610 80053470 8E2B0058 */ lw $t3, 0x58($s1) /* ACA614 80053474 AE0B000C */ sw $t3, 0xc($s0) /* ACA618 80053478 84640002 */ lh $a0, 2($v1) .L8005347C: /* ACA61C 8005347C 262A0050 */ addiu $t2, $s1, 0x50 .L80053480: /* ACA620 80053480 1000000A */ b .L800534AC /* ACA624 80053484 AFAA0030 */ sw $t2, 0x30($sp) .L80053488: /* ACA628 80053488 AFAC0030 */ sw $t4, 0x30($sp) /* ACA62C 8005348C 8D8F0000 */ lw $t7, ($t4) /* ACA630 80053490 8E030000 */ lw $v1, ($s0) /* ACA634 80053494 AE0F0004 */ sw $t7, 4($s0) /* ACA638 80053498 8D8E0004 */ lw $t6, 4($t4) /* ACA63C 8005349C AE0E0008 */ sw $t6, 8($s0) /* ACA640 800534A0 8D8F0008 */ lw $t7, 8($t4) /* ACA644 800534A4 AE0F000C */ sw $t7, 0xc($s0) /* ACA648 800534A8 84640002 */ lh $a0, 2($v1) .L800534AC: /* ACA64C 800534AC 3087FF00 */ andi $a3, $a0, 0xff00 /* ACA650 800534B0 00073C00 */ sll $a3, $a3, 0x10 /* ACA654 800534B4 24080100 */ li $t0, 256 /* ACA658 800534B8 00073C03 */ sra $a3, $a3, 0x10 /* ACA65C 800534BC 14E8000C */ bne $a3, $t0, .L800534F0 /* ACA660 800534C0 24090200 */ li $t1, 512 /* ACA664 800534C4 8C79001C */ lw $t9, 0x1c($v1) /* ACA668 800534C8 262B0074 */ addiu $t3, $s1, 0x74 /* ACA66C 800534CC AE190010 */ sw $t9, 0x10($s0) /* ACA670 800534D0 8C780020 */ lw $t8, 0x20($v1) /* ACA674 800534D4 AE180014 */ sw $t8, 0x14($s0) /* ACA678 800534D8 8C790024 */ lw $t9, 0x24($v1) /* ACA67C 800534DC AE190018 */ sw $t9, 0x18($s0) /* ACA680 800534E0 AFAB0034 */ sw $t3, 0x34($sp) /* ACA684 800534E4 8E030000 */ lw $v1, ($s0) /* ACA688 800534E8 1000011A */ b .L80053954 /* ACA68C 800534EC 84640002 */ lh $a0, 2($v1) .L800534F0: /* ACA690 800534F0 14E90017 */ bne $a3, $t1, .L80053550 /* ACA694 800534F4 24010300 */ li $at, 768 /* ACA698 800534F8 860A003A */ lh $t2, 0x3a($s0) /* ACA69C 800534FC 262F0074 */ addiu $t7, $s1, 0x74 /* ACA6A0 80053500 11400011 */ beqz $t2, .L80053548 /* ACA6A4 80053504 00000000 */ nop /* ACA6A8 80053508 8E2C008C */ lw $t4, 0x8c($s1) /* ACA6AC 8005350C C46A001C */ lwc1 $f10, 0x1c($v1) /* ACA6B0 80053510 C58800E0 */ lwc1 $f8, 0xe0($t4) /* ACA6B4 80053514 460A4100 */ add.s $f4, $f8, $f10 /* ACA6B8 80053518 E6040010 */ swc1 $f4, 0x10($s0) /* ACA6BC 8005351C 8E2D008C */ lw $t5, 0x8c($s1) /* ACA6C0 80053520 C4680020 */ lwc1 $f8, 0x20($v1) /* ACA6C4 80053524 C5A600E4 */ lwc1 $f6, 0xe4($t5) /* ACA6C8 80053528 46083280 */ add.s $f10, $f6, $f8 /* ACA6CC 8005352C E60A0014 */ swc1 $f10, 0x14($s0) /* ACA6D0 80053530 8E2E008C */ lw $t6, 0x8c($s1) /* ACA6D4 80053534 C4660024 */ lwc1 $f6, 0x24($v1) /* ACA6D8 80053538 C5C400E8 */ lwc1 $f4, 0xe8($t6) /* ACA6DC 8005353C 46062200 */ add.s $f8, $f4, $f6 /* ACA6E0 80053540 E6080018 */ swc1 $f8, 0x18($s0) /* ACA6E4 80053544 84640002 */ lh $a0, 2($v1) .L80053548: /* ACA6E8 80053548 10000102 */ b .L80053954 /* ACA6EC 8005354C AFAF0034 */ sw $t7, 0x34($sp) .L80053550: /* ACA6F0 80053550 14E10013 */ bne $a3, $at, .L800535A0 /* ACA6F4 80053554 26390074 */ addiu $t9, $s1, 0x74 /* ACA6F8 80053558 8618003A */ lh $t8, 0x3a($s0) /* ACA6FC 8005355C 1300000E */ beqz $t8, .L80053598 /* ACA700 80053560 00000000 */ nop /* ACA704 80053564 C62A0074 */ lwc1 $f10, 0x74($s1) /* ACA708 80053568 C464001C */ lwc1 $f4, 0x1c($v1) /* ACA70C 8005356C 46045180 */ add.s $f6, $f10, $f4 /* ACA710 80053570 E6060010 */ swc1 $f6, 0x10($s0) /* ACA714 80053574 C46A0020 */ lwc1 $f10, 0x20($v1) /* ACA718 80053578 C6280078 */ lwc1 $f8, 0x78($s1) /* ACA71C 8005357C 460A4100 */ add.s $f4, $f8, $f10 /* ACA720 80053580 E6040014 */ swc1 $f4, 0x14($s0) /* ACA724 80053584 C4680024 */ lwc1 $f8, 0x24($v1) /* ACA728 80053588 C626007C */ lwc1 $f6, 0x7c($s1) /* ACA72C 8005358C 46083280 */ add.s $f10, $f6, $f8 /* ACA730 80053590 E60A0018 */ swc1 $f10, 0x18($s0) /* ACA734 80053594 84640002 */ lh $a0, 2($v1) .L80053598: /* ACA738 80053598 100000EE */ b .L80053954 /* ACA73C 8005359C AFB90034 */ sw $t9, 0x34($sp) .L800535A0: /* ACA740 800535A0 24010400 */ li $at, 1024 /* ACA744 800535A4 10E10007 */ beq $a3, $at, .L800535C4 /* ACA748 800535A8 24018400 */ li $at, -31744 /* ACA74C 800535AC 10E10005 */ beq $a3, $at, .L800535C4 /* ACA750 800535B0 24010500 */ li $at, 1280 /* ACA754 800535B4 10E10003 */ beq $a3, $at, .L800535C4 /* ACA758 800535B8 24018500 */ li $at, -31488 /* ACA75C 800535BC 14E1006D */ bne $a3, $at, .L80053774 /* ACA760 800535C0 30ED6060 */ andi $t5, $a3, 0x6060 .L800535C4: /* ACA764 800535C4 8E2500A8 */ lw $a1, 0xa8($s1) /* ACA768 800535C8 10A0005A */ beqz $a1, .L80053734 /* ACA76C 800535CC 00000000 */ nop /* ACA770 800535D0 8CAB0130 */ lw $t3, 0x130($a1) /* ACA774 800535D4 27A400C0 */ addiu $a0, $sp, 0xc0 /* ACA778 800535D8 11600056 */ beqz $t3, .L80053734 /* ACA77C 800535DC 00000000 */ nop /* ACA780 800535E0 0C00BBB9 */ jal func_8002EEE4 /* ACA784 800535E4 A7A700D6 */ sh $a3, 0xd6($sp) /* ACA788 800535E8 27A400AC */ addiu $a0, $sp, 0xac /* ACA78C 800535EC 0C00BBB9 */ jal func_8002EEE4 /* ACA790 800535F0 8E250090 */ lw $a1, 0x90($s1) /* ACA794 800535F4 C7A40098 */ lwc1 $f4, 0x98($sp) /* ACA798 800535F8 C7A600A0 */ lwc1 $f6, 0xa0($sp) /* ACA79C 800535FC 27A400DC */ addiu $a0, $sp, 0xdc /* ACA7A0 80053600 27A500C0 */ addiu $a1, $sp, 0xc0 /* ACA7A4 80053604 27A600AC */ addiu $a2, $sp, 0xac /* ACA7A8 80053608 E7A400AC */ swc1 $f4, 0xac($sp) /* ACA7AC 8005360C 0C01F124 */ jal OLib_Vec3fDiffToVecSphRot90 /* ACA7B0 80053610 E7A600B4 */ swc1 $f6, 0xb4($sp) /* ACA7B4 80053614 87A700D6 */ lh $a3, 0xd6($sp) /* ACA7B8 80053618 24010400 */ li $at, 1024 /* ACA7BC 8005361C 27AC00C0 */ addiu $t4, $sp, 0xc0 /* ACA7C0 80053620 10E10003 */ beq $a3, $at, .L80053630 /* ACA7C4 80053624 24018400 */ li $at, -31744 /* ACA7C8 80053628 54E1000A */ bnel $a3, $at, .L80053654 /* ACA7CC 8005362C 8E190004 */ lw $t9, 4($s0) .L80053630: /* ACA7D0 80053630 8D8E0000 */ lw $t6, ($t4) /* ACA7D4 80053634 27AA0060 */ addiu $t2, $sp, 0x60 /* ACA7D8 80053638 AD4E0000 */ sw $t6, ($t2) /* ACA7DC 8005363C 8D8D0004 */ lw $t5, 4($t4) /* ACA7E0 80053640 AD4D0004 */ sw $t5, 4($t2) /* ACA7E4 80053644 8D8E0008 */ lw $t6, 8($t4) /* ACA7E8 80053648 10000008 */ b .L8005366C /* ACA7EC 8005364C AD4E0008 */ sw $t6, 8($t2) /* ACA7F0 80053650 8E190004 */ lw $t9, 4($s0) .L80053654: /* ACA7F4 80053654 27AF0060 */ addiu $t7, $sp, 0x60 /* ACA7F8 80053658 ADF90000 */ sw $t9, ($t7) /* ACA7FC 8005365C 8E180008 */ lw $t8, 8($s0) /* ACA800 80053660 ADF80004 */ sw $t8, 4($t7) /* ACA804 80053664 8E19000C */ lw $t9, 0xc($s0) /* ACA808 80053668 ADF90008 */ sw $t9, 8($t7) .L8005366C: /* ACA80C 8005366C 24018080 */ li $at, -32640 /* ACA810 80053670 00E15824 */ and $t3, $a3, $at /* ACA814 80053674 5160001D */ beql $t3, $zero, .L800536EC /* ACA818 80053678 8E050000 */ lw $a1, ($s0) /* ACA81C 8005367C 8E0A0000 */ lw $t2, ($s0) /* ACA820 80053680 3C018014 */ lui $at, %hi(D_8013A240) /* ACA824 80053684 C42AA240 */ lwc1 $f10, %lo(D_8013A240)($at) /* ACA828 80053688 C548001C */ lwc1 $f8, 0x1c($t2) /* ACA82C 8005368C 3C013F00 */ li $at, 0x3F000000 # 0.000000 /* ACA830 80053690 44813000 */ mtc1 $at, $f6 /* ACA834 80053694 460A4102 */ mul.s $f4, $f8, $f10 /* ACA838 80053698 3C018014 */ lui $at, %hi(D_8013A244) /* ACA83C 8005369C 46062200 */ add.s $f8, $f4, $f6 /* ACA840 800536A0 C426A244 */ lwc1 $f6, %lo(D_8013A244)($at) /* ACA844 800536A4 3C013F00 */ li $at, 0x3F000000 # 0.000000 /* ACA848 800536A8 4600428D */ trunc.w.s $f10, $f8 /* ACA84C 800536AC 440D5000 */ mfc1 $t5, $f10 /* ACA850 800536B0 44815000 */ mtc1 $at, $f10 /* ACA854 800536B4 A7AD00E8 */ sh $t5, 0xe8($sp) /* ACA858 800536B8 8E0E0000 */ lw $t6, ($s0) /* ACA85C 800536BC C5C40020 */ lwc1 $f4, 0x20($t6) /* ACA860 800536C0 46062202 */ mul.s $f8, $f4, $f6 /* ACA864 800536C4 460A4100 */ add.s $f4, $f8, $f10 /* ACA868 800536C8 4600218D */ trunc.w.s $f6, $f4 /* ACA86C 800536CC 44183000 */ mfc1 $t8, $f6 /* ACA870 800536D0 00000000 */ nop /* ACA874 800536D4 A7B800EA */ sh $t8, 0xea($sp) /* ACA878 800536D8 8E190000 */ lw $t9, ($s0) /* ACA87C 800536DC C7280024 */ lwc1 $f8, 0x24($t9) /* ACA880 800536E0 10000005 */ b .L800536F8 /* ACA884 800536E4 E7A800E4 */ swc1 $f8, 0xe4($sp) /* ACA888 800536E8 8E050000 */ lw $a1, ($s0) .L800536EC: /* ACA88C 800536EC 27A400E4 */ addiu $a0, $sp, 0xe4 /* ACA890 800536F0 0C01F0FD */ jal OLib_Vec3fToVecSphRot90 /* ACA894 800536F4 24A5001C */ addiu $a1, $a1, 0x1c .L800536F8: /* ACA898 800536F8 87AB00EA */ lh $t3, 0xea($sp) /* ACA89C 800536FC 87AA00E2 */ lh $t2, 0xe2($sp) /* ACA8A0 80053700 87AD00E8 */ lh $t5, 0xe8($sp) /* ACA8A4 80053704 87AE00E0 */ lh $t6, 0xe0($sp) /* ACA8A8 80053708 016A6021 */ addu $t4, $t3, $t2 /* ACA8AC 8005370C A7AC00EA */ sh $t4, 0xea($sp) /* ACA8B0 80053710 01AE7821 */ addu $t7, $t5, $t6 /* ACA8B4 80053714 A7AF00E8 */ sh $t7, 0xe8($sp) /* ACA8B8 80053718 26040010 */ addiu $a0, $s0, 0x10 /* ACA8BC 8005371C 27A50060 */ addiu $a1, $sp, 0x60 /* ACA8C0 80053720 0C010F0A */ jal func_80043C28 /* ACA8C4 80053724 27A600E4 */ addiu $a2, $sp, 0xe4 /* ACA8C8 80053728 26380074 */ addiu $t8, $s1, 0x74 /* ACA8CC 8005372C 1000000E */ b .L80053768 /* ACA8D0 80053730 AFB80034 */ sw $t8, 0x34($sp) .L80053734: /* ACA8D4 80053734 14A00003 */ bnez $a1, .L80053744 /* ACA8D8 80053738 3C048014 */ lui $a0, %hi(D_801394C0) # $a0, 0x8014 /* ACA8DC 8005373C 0C00084C */ jal osSyncPrintf /* ACA8E0 80053740 248494C0 */ addiu $a0, %lo(D_801394C0) # addiu $a0, $a0, -0x6b40 .L80053744: /* ACA8E4 80053744 AE2000A8 */ sw $zero, 0xa8($s1) /* ACA8E8 80053748 26390074 */ addiu $t9, $s1, 0x74 /* ACA8EC 8005374C AFB90034 */ sw $t9, 0x34($sp) /* ACA8F0 80053750 8F2C0000 */ lw $t4, ($t9) /* ACA8F4 80053754 AE0C0010 */ sw $t4, 0x10($s0) /* ACA8F8 80053758 8F2A0004 */ lw $t2, 4($t9) /* ACA8FC 8005375C AE0A0014 */ sw $t2, 0x14($s0) /* ACA900 80053760 8F2C0008 */ lw $t4, 8($t9) /* ACA904 80053764 AE0C0018 */ sw $t4, 0x18($s0) .L80053768: /* ACA908 80053768 8E030000 */ lw $v1, ($s0) /* ACA90C 8005376C 10000079 */ b .L80053954 /* ACA910 80053770 84640002 */ lh $a0, 2($v1) .L80053774: /* ACA914 80053774 11A0006E */ beqz $t5, .L80053930 /* ACA918 80053778 262C0074 */ addiu $t4, $s1, 0x74 /* ACA91C 8005377C 30EE0400 */ andi $t6, $a3, 0x400 /* ACA920 80053780 11C00004 */ beqz $t6, .L80053794 /* ACA924 80053784 30F82020 */ andi $t8, $a3, 0x2020 /* ACA928 80053788 860F003A */ lh $t7, 0x3a($s0) /* ACA92C 8005378C 51E00066 */ beql $t7, $zero, .L80053928 /* ACA930 80053790 262A0074 */ addiu $t2, $s1, 0x74 .L80053794: /* ACA934 80053794 13000003 */ beqz $t8, .L800537A4 /* ACA938 80053798 30E20F00 */ andi $v0, $a3, 0xf00 /* ACA93C 8005379C 1000000B */ b .L800537CC /* ACA940 800537A0 8E260090 */ lw $a2, 0x90($s1) .L800537A4: /* ACA944 800537A4 8E2500A8 */ lw $a1, 0xa8($s1) /* ACA948 800537A8 00003025 */ move $a2, $zero /* ACA94C 800537AC 50A00007 */ beql $a1, $zero, .L800537CC /* ACA950 800537B0 AE2000A8 */ sw $zero, 0xa8($s1) /* ACA954 800537B4 8CB90130 */ lw $t9, 0x130($a1) /* ACA958 800537B8 53200004 */ beql $t9, $zero, .L800537CC /* ACA95C 800537BC AE2000A8 */ sw $zero, 0xa8($s1) /* ACA960 800537C0 10000002 */ b .L800537CC /* ACA964 800537C4 00A03025 */ move $a2, $a1 /* ACA968 800537C8 AE2000A8 */ sw $zero, 0xa8($s1) .L800537CC: /* ACA96C 800537CC 50C00047 */ beql $a2, $zero, .L800538EC /* ACA970 800537D0 8E3800A8 */ lw $t8, 0xa8($s1) /* ACA974 800537D4 15020006 */ bne $t0, $v0, .L800537F0 /* ACA978 800537D8 27A40048 */ addiu $a0, $sp, 0x48 /* ACA97C 800537DC 00C02825 */ move $a1, $a2 /* ACA980 800537E0 0C00BBB9 */ jal func_8002EEE4 /* ACA984 800537E4 A7A700D6 */ sh $a3, 0xd6($sp) /* ACA988 800537E8 1000000D */ b .L80053820 /* ACA98C 800537EC 87A700D6 */ lh $a3, 0xd6($sp) .L800537F0: /* ACA990 800537F0 15220007 */ bne $t1, $v0, .L80053810 /* ACA994 800537F4 27A40048 */ addiu $a0, $sp, 0x48 /* ACA998 800537F8 27A40048 */ addiu $a0, $sp, 0x48 /* ACA99C 800537FC 00C02825 */ move $a1, $a2 /* ACA9A0 80053800 0C00BBC5 */ jal func_8002EF14 /* ACA9A4 80053804 A7A700D6 */ sh $a3, 0xd6($sp) /* ACA9A8 80053808 10000005 */ b .L80053820 /* ACA9AC 8005380C 87A700D6 */ lh $a3, 0xd6($sp) .L80053810: /* ACA9B0 80053810 00C02825 */ move $a1, $a2 /* ACA9B4 80053814 0C00BBD1 */ jal func_8002EF44 /* ACA9B8 80053818 A7A700D6 */ sh $a3, 0xd6($sp) /* ACA9BC 8005381C 87A700D6 */ lh $a3, 0xd6($sp) .L80053820: /* ACA9C0 80053820 24018080 */ li $at, -32640 /* ACA9C4 80053824 00E15824 */ and $t3, $a3, $at /* ACA9C8 80053828 5160001D */ beql $t3, $zero, .L800538A0 /* ACA9CC 8005382C 8E050000 */ lw $a1, ($s0) /* ACA9D0 80053830 8E0A0000 */ lw $t2, ($s0) /* ACA9D4 80053834 3C018014 */ lui $at, %hi(D_8013A248) /* ACA9D8 80053838 C424A248 */ lwc1 $f4, %lo(D_8013A248)($at) /* ACA9DC 8005383C C54A001C */ lwc1 $f10, 0x1c($t2) /* ACA9E0 80053840 3C013F00 */ li $at, 0x3F000000 # 0.000000 /* ACA9E4 80053844 44814000 */ mtc1 $at, $f8 /* ACA9E8 80053848 46045182 */ mul.s $f6, $f10, $f4 /* ACA9EC 8005384C 3C018014 */ lui $at, %hi(D_8013A24C) /* ACA9F0 80053850 46083280 */ add.s $f10, $f6, $f8 /* ACA9F4 80053854 C428A24C */ lwc1 $f8, %lo(D_8013A24C)($at) /* ACA9F8 80053858 3C013F00 */ li $at, 0x3F000000 # 0.000000 /* ACA9FC 8005385C 4600510D */ trunc.w.s $f4, $f10 /* ACAA00 80053860 440D2000 */ mfc1 $t5, $f4 /* ACAA04 80053864 44812000 */ mtc1 $at, $f4 /* ACAA08 80053868 A7AD00E8 */ sh $t5, 0xe8($sp) /* ACAA0C 8005386C 8E0E0000 */ lw $t6, ($s0) /* ACAA10 80053870 C5C60020 */ lwc1 $f6, 0x20($t6) /* ACAA14 80053874 46083282 */ mul.s $f10, $f6, $f8 /* ACAA18 80053878 46045180 */ add.s $f6, $f10, $f4 /* ACAA1C 8005387C 4600320D */ trunc.w.s $f8, $f6 /* ACAA20 80053880 44184000 */ mfc1 $t8, $f8 /* ACAA24 80053884 00000000 */ nop /* ACAA28 80053888 A7B800EA */ sh $t8, 0xea($sp) /* ACAA2C 8005388C 8E190000 */ lw $t9, ($s0) /* ACAA30 80053890 C72A0024 */ lwc1 $f10, 0x24($t9) /* ACAA34 80053894 10000005 */ b .L800538AC /* ACAA38 80053898 E7AA00E4 */ swc1 $f10, 0xe4($sp) /* ACAA3C 8005389C 8E050000 */ lw $a1, ($s0) .L800538A0: /* ACAA40 800538A0 27A400E4 */ addiu $a0, $sp, 0xe4 /* ACAA44 800538A4 0C01F0FD */ jal OLib_Vec3fToVecSphRot90 /* ACAA48 800538A8 24A5001C */ addiu $a1, $a1, 0x1c .L800538AC: /* ACAA4C 800538AC 87AB00EA */ lh $t3, 0xea($sp) /* ACAA50 800538B0 87AA0056 */ lh $t2, 0x56($sp) /* ACAA54 800538B4 87AD00E8 */ lh $t5, 0xe8($sp) /* ACAA58 800538B8 87AE0054 */ lh $t6, 0x54($sp) /* ACAA5C 800538BC 016A6021 */ addu $t4, $t3, $t2 /* ACAA60 800538C0 A7AC00EA */ sh $t4, 0xea($sp) /* ACAA64 800538C4 01AE7823 */ subu $t7, $t5, $t6 /* ACAA68 800538C8 A7AF00E8 */ sh $t7, 0xe8($sp) /* ACAA6C 800538CC 26040010 */ addiu $a0, $s0, 0x10 /* ACAA70 800538D0 27A50048 */ addiu $a1, $sp, 0x48 /* ACAA74 800538D4 0C010F0A */ jal func_80043C28 /* ACAA78 800538D8 27A600E4 */ addiu $a2, $sp, 0xe4 /* ACAA7C 800538DC 8E030000 */ lw $v1, ($s0) /* ACAA80 800538E0 10000010 */ b .L80053924 /* ACAA84 800538E4 84640002 */ lh $a0, 2($v1) /* ACAA88 800538E8 8E3800A8 */ lw $t8, 0xa8($s1) .L800538EC: /* ACAA8C 800538EC 3C048014 */ lui $a0, %hi(D_801394F8) # $a0, 0x8014 /* ACAA90 800538F0 57000004 */ bnezl $t8, .L80053904 /* ACAA94 800538F4 8E2B0074 */ lw $t3, 0x74($s1) /* ACAA98 800538F8 0C00084C */ jal osSyncPrintf /* ACAA9C 800538FC 248494F8 */ addiu $a0, %lo(D_801394F8) # addiu $a0, $a0, -0x6b08 /* ACAAA0 80053900 8E2B0074 */ lw $t3, 0x74($s1) .L80053904: /* ACAAA4 80053904 AE2000A8 */ sw $zero, 0xa8($s1) /* ACAAA8 80053908 8E030000 */ lw $v1, ($s0) /* ACAAAC 8005390C AE0B0010 */ sw $t3, 0x10($s0) /* ACAAB0 80053910 8E390078 */ lw $t9, 0x78($s1) /* ACAAB4 80053914 AE190014 */ sw $t9, 0x14($s0) /* ACAAB8 80053918 8E2B007C */ lw $t3, 0x7c($s1) /* ACAABC 8005391C AE0B0018 */ sw $t3, 0x18($s0) /* ACAAC0 80053920 84640002 */ lh $a0, 2($v1) .L80053924: /* ACAAC4 80053924 262A0074 */ addiu $t2, $s1, 0x74 .L80053928: /* ACAAC8 80053928 1000000A */ b .L80053954 /* ACAACC 8005392C AFAA0034 */ sw $t2, 0x34($sp) .L80053930: /* ACAAD0 80053930 AFAC0034 */ sw $t4, 0x34($sp) /* ACAAD4 80053934 8D8F0000 */ lw $t7, ($t4) /* ACAAD8 80053938 8E030000 */ lw $v1, ($s0) /* ACAADC 8005393C AE0F0010 */ sw $t7, 0x10($s0) /* ACAAE0 80053940 8D8E0004 */ lw $t6, 4($t4) /* ACAAE4 80053944 AE0E0014 */ sw $t6, 0x14($s0) /* ACAAE8 80053948 8D8F0008 */ lw $t7, 8($t4) /* ACAAEC 8005394C AE0F0018 */ sw $t7, 0x18($s0) /* ACAAF0 80053950 84640002 */ lh $a0, 2($v1) .L80053954: /* ACAAF4 80053954 24010002 */ li $at, 2 /* ACAAF8 80053958 14810007 */ bne $a0, $at, .L80053978 /* ACAAFC 8005395C 00000000 */ nop /* ACAB00 80053960 8E38008C */ lw $t8, 0x8c($s1) /* ACAB04 80053964 8E030000 */ lw $v1, ($s0) /* ACAB08 80053968 C70400D0 */ lwc1 $f4, 0xd0($t8) /* ACAB0C 8005396C A6000034 */ sh $zero, 0x34($s0) /* ACAB10 80053970 10000019 */ b .L800539D8 /* ACAB14 80053974 E6040028 */ swc1 $f4, 0x28($s0) .L80053978: /* ACAB18 80053978 54800008 */ bnezl $a0, .L8005399C /* ACAB1C 8005397C C4680008 */ lwc1 $f8, 8($v1) /* ACAB20 80053980 C62600FC */ lwc1 $f6, 0xfc($s1) /* ACAB24 80053984 8E030000 */ lw $v1, ($s0) /* ACAB28 80053988 E6060028 */ swc1 $f6, 0x28($s0) /* ACAB2C 8005398C 8639015A */ lh $t9, 0x15a($s1) /* ACAB30 80053990 10000011 */ b .L800539D8 /* ACAB34 80053994 A6190034 */ sh $t9, 0x34($s0) /* ACAB38 80053998 C4680008 */ lwc1 $f8, 8($v1) .L8005399C: /* ACAB3C 8005399C 3C018014 */ lui $at, %hi(D_8013A250) /* ACAB40 800539A0 E6080028 */ swc1 $f8, 0x28($s0) /* ACAB44 800539A4 846B0006 */ lh $t3, 6($v1) /* ACAB48 800539A8 C426A250 */ lwc1 $f6, %lo(D_8013A250)($at) /* ACAB4C 800539AC 3C013F00 */ li $at, 0x3F000000 # 0.000000 /* ACAB50 800539B0 448B5000 */ mtc1 $t3, $f10 /* ACAB54 800539B4 00000000 */ nop /* ACAB58 800539B8 46805120 */ cvt.s.w $f4, $f10 /* ACAB5C 800539BC 44815000 */ mtc1 $at, $f10 /* ACAB60 800539C0 46062202 */ mul.s $f8, $f4, $f6 /* ACAB64 800539C4 460A4100 */ add.s $f4, $f8, $f10 /* ACAB68 800539C8 4600218D */ trunc.w.s $f6, $f4 /* ACAB6C 800539CC 440C3000 */ mfc1 $t4, $f6 /* ACAB70 800539D0 00000000 */ nop /* ACAB74 800539D4 A60C0034 */ sh $t4, 0x34($s0) .L800539D8: /* ACAB78 800539D8 90620000 */ lbu $v0, ($v1) /* ACAB7C 800539DC 3042001F */ andi $v0, $v0, 0x1f /* ACAB80 800539E0 00021400 */ sll $v0, $v0, 0x10 /* ACAB84 800539E4 00021403 */ sra $v0, $v0, 0x10 /* ACAB88 800539E8 244DFFFF */ addiu $t5, $v0, -1 /* ACAB8C 800539EC 2DA10018 */ sltiu $at, $t5, 0x18 /* ACAB90 800539F0 102001F5 */ beqz $at, .L800541C8 /* ACAB94 800539F4 000D6880 */ sll $t5, $t5, 2 /* ACAB98 800539F8 3C018014 */ lui $at, %hi(jtbl_8013A254) /* ACAB9C 800539FC 002D0821 */ addu $at, $at, $t5 /* ACABA0 80053A00 8C2DA254 */ lw $t5, %lo(jtbl_8013A254)($at) /* ACABA4 80053A04 01A00008 */ jr $t5 /* ACABA8 80053A08 00000000 */ nop glabel L80053A0C /* ACABAC 80053A0C 8FAE0030 */ lw $t6, 0x30($sp) /* ACABB0 80053A10 8E180004 */ lw $t8, 4($s0) /* ACABB4 80053A14 2626005C */ addiu $a2, $s1, 0x5c /* ACABB8 80053A18 ADD80000 */ sw $t8, ($t6) /* ACABBC 80053A1C 8E0F0008 */ lw $t7, 8($s0) /* ACABC0 80053A20 ADCF0004 */ sw $t7, 4($t6) /* ACABC4 80053A24 8E18000C */ lw $t8, 0xc($s0) /* ACABC8 80053A28 ADD80008 */ sw $t8, 8($t6) /* ACABCC 80053A2C 8E0A0010 */ lw $t2, 0x10($s0) /* ACABD0 80053A30 8FB90034 */ lw $t9, 0x34($sp) /* ACABD4 80053A34 AF2A0000 */ sw $t2, ($t9) /* ACABD8 80053A38 8E0B0014 */ lw $t3, 0x14($s0) /* ACABDC 80053A3C AF2B0004 */ sw $t3, 4($t9) /* ACABE0 80053A40 8E0A0018 */ lw $t2, 0x18($s0) /* ACABE4 80053A44 AF2A0008 */ sw $t2, 8($t9) /* ACABE8 80053A48 C6080028 */ lwc1 $f8, 0x28($s0) /* ACABEC 80053A4C 862D014C */ lh $t5, 0x14c($s1) /* ACABF0 80053A50 E62800FC */ swc1 $f8, 0xfc($s1) /* ACABF4 80053A54 860C0034 */ lh $t4, 0x34($s0) /* ACABF8 80053A58 35AE0400 */ ori $t6, $t5, 0x400 /* ACABFC 80053A5C A62E014C */ sh $t6, 0x14c($s1) /* ACAC00 80053A60 100001DE */ b .L800541DC /* ACAC04 80053A64 A62C015A */ sh $t4, 0x15a($s1) glabel L80053A68 /* ACAC08 80053A68 860F0038 */ lh $t7, 0x38($s0) /* ACAC0C 80053A6C 26070004 */ addiu $a3, $s0, 4 /* ACAC10 80053A70 26020010 */ addiu $v0, $s0, 0x10 /* ACAC14 80053A74 15E00003 */ bnez $t7, .L80053A84 /* ACAC18 80053A78 24180001 */ li $t8, 1 /* ACAC1C 80053A7C 10000009 */ b .L80053AA4 /* ACAC20 80053A80 A6180038 */ sh $t8, 0x38($s0) .L80053A84: /* ACAC24 80053A84 8639014C */ lh $t9, 0x14c($s1) /* ACAC28 80053A88 332B0008 */ andi $t3, $t9, 8 /* ACAC2C 80053A8C 51600006 */ beql $t3, $zero, .L80053AA8 /* ACAC30 80053A90 8FAD0030 */ lw $t5, 0x30($sp) /* ACAC34 80053A94 A6000038 */ sh $zero, 0x38($s0) /* ACAC38 80053A98 862A014C */ lh $t2, 0x14c($s1) /* ACAC3C 80053A9C 314CFFF7 */ andi $t4, $t2, 0xfff7 /* ACAC40 80053AA0 A62C014C */ sh $t4, 0x14c($s1) .L80053AA4: /* ACAC44 80053AA4 8FAD0030 */ lw $t5, 0x30($sp) .L80053AA8: /* ACAC48 80053AA8 8CEF0000 */ lw $t7, ($a3) /* ACAC4C 80053AAC 2626005C */ addiu $a2, $s1, 0x5c /* ACAC50 80053AB0 ADAF0000 */ sw $t7, ($t5) /* ACAC54 80053AB4 8CEE0004 */ lw $t6, 4($a3) /* ACAC58 80053AB8 ADAE0004 */ sw $t6, 4($t5) /* ACAC5C 80053ABC 8CEF0008 */ lw $t7, 8($a3) /* ACAC60 80053AC0 ADAF0008 */ sw $t7, 8($t5) /* ACAC64 80053AC4 8C4B0000 */ lw $t3, ($v0) /* ACAC68 80053AC8 8FB80034 */ lw $t8, 0x34($sp) /* ACAC6C 80053ACC AF0B0000 */ sw $t3, ($t8) /* ACAC70 80053AD0 8C590004 */ lw $t9, 4($v0) /* ACAC74 80053AD4 AF190004 */ sw $t9, 4($t8) /* ACAC78 80053AD8 8C4B0008 */ lw $t3, 8($v0) /* ACAC7C 80053ADC AF0B0008 */ sw $t3, 8($t8) /* ACAC80 80053AE0 C60A0028 */ lwc1 $f10, 0x28($s0) /* ACAC84 80053AE4 E62A00FC */ swc1 $f10, 0xfc($s1) /* ACAC88 80053AE8 860A0034 */ lh $t2, 0x34($s0) /* ACAC8C 80053AEC 100001BB */ b .L800541DC /* ACAC90 80053AF0 A62A015A */ sh $t2, 0x15a($s1) glabel L80053AF4 /* ACAC94 80053AF4 860C0038 */ lh $t4, 0x38($s0) /* ACAC98 80053AF8 26070004 */ addiu $a3, $s0, 4 /* ACAC9C 80053AFC 26020010 */ addiu $v0, $s0, 0x10 /* ACACA0 80053B00 15800003 */ bnez $t4, .L80053B10 /* ACACA4 80053B04 240D0001 */ li $t5, 1 /* ACACA8 80053B08 10000006 */ b .L80053B24 /* ACACAC 80053B0C A60D0038 */ sh $t5, 0x38($s0) .L80053B10: /* ACACB0 80053B10 862E014C */ lh $t6, 0x14c($s1) /* ACACB4 80053B14 31CF0008 */ andi $t7, $t6, 8 /* ACACB8 80053B18 51E00003 */ beql $t7, $zero, .L80053B28 /* ACACBC 80053B1C 8FB80030 */ lw $t8, 0x30($sp) /* ACACC0 80053B20 A6000038 */ sh $zero, 0x38($s0) .L80053B24: /* ACACC4 80053B24 8FB80030 */ lw $t8, 0x30($sp) .L80053B28: /* ACACC8 80053B28 8CEB0000 */ lw $t3, ($a3) /* ACACCC 80053B2C 2626005C */ addiu $a2, $s1, 0x5c /* ACACD0 80053B30 AF0B0000 */ sw $t3, ($t8) /* ACACD4 80053B34 8CF90004 */ lw $t9, 4($a3) /* ACACD8 80053B38 AF190004 */ sw $t9, 4($t8) /* ACACDC 80053B3C 8CEB0008 */ lw $t3, 8($a3) /* ACACE0 80053B40 AF0B0008 */ sw $t3, 8($t8) /* ACACE4 80053B44 8C4D0000 */ lw $t5, ($v0) /* ACACE8 80053B48 8FAA0034 */ lw $t2, 0x34($sp) /* ACACEC 80053B4C AD4D0000 */ sw $t5, ($t2) /* ACACF0 80053B50 8C4C0004 */ lw $t4, 4($v0) /* ACACF4 80053B54 AD4C0004 */ sw $t4, 4($t2) /* ACACF8 80053B58 8C4D0008 */ lw $t5, 8($v0) /* ACACFC 80053B5C AD4D0008 */ sw $t5, 8($t2) /* ACAD00 80053B60 C6040028 */ lwc1 $f4, 0x28($s0) /* ACAD04 80053B64 E62400FC */ swc1 $f4, 0xfc($s1) /* ACAD08 80053B68 860E0034 */ lh $t6, 0x34($s0) /* ACAD0C 80053B6C 1000019B */ b .L800541DC /* ACAD10 80053B70 A62E015A */ sh $t6, 0x15a($s1) glabel L80053B74 /* ACAD14 80053B74 26070004 */ addiu $a3, $s0, 4 /* ACAD18 80053B78 260F0010 */ addiu $t7, $s0, 0x10 /* ACAD1C 80053B7C AFAF0024 */ sw $t7, 0x24($sp) /* ACAD20 80053B80 AFA70028 */ sw $a3, 0x28($sp) /* ACAD24 80053B84 27A400EC */ addiu $a0, $sp, 0xec /* ACAD28 80053B88 8FA50030 */ lw $a1, 0x30($sp) /* ACAD2C 80053B8C 0C01F124 */ jal OLib_Vec3fDiffToVecSphRot90 /* ACAD30 80053B90 8FA60034 */ lw $a2, 0x34($sp) /* ACAD34 80053B94 8FA50028 */ lw $a1, 0x28($sp) /* ACAD38 80053B98 2604002C */ addiu $a0, $s0, 0x2c /* ACAD3C 80053B9C 0C01F124 */ jal OLib_Vec3fDiffToVecSphRot90 /* ACAD40 80053BA0 8FA60024 */ lw $a2, 0x24($sp) /* ACAD44 80053BA4 8618003C */ lh $t8, 0x3c($s0) /* ACAD48 80053BA8 3C013F80 */ li $at, 0x3F800000 # 0.000000 /* ACAD4C 80053BAC 44813000 */ mtc1 $at, $f6 /* ACAD50 80053BB0 44984000 */ mtc1 $t8, $f8 /* ACAD54 80053BB4 C604002C */ lwc1 $f4, 0x2c($s0) /* ACAD58 80053BB8 87AB00F0 */ lh $t3, 0xf0($sp) /* ACAD5C 80053BBC 468042A0 */ cvt.s.w $f10, $f8 /* ACAD60 80053BC0 C7A800EC */ lwc1 $f8, 0xec($sp) /* ACAD64 80053BC4 27A40100 */ addiu $a0, $sp, 0x100 /* ACAD68 80053BC8 8FA50030 */ lw $a1, 0x30($sp) /* ACAD6C 80053BCC 27A600E4 */ addiu $a2, $sp, 0xe4 /* ACAD70 80053BD0 460A3083 */ div.s $f2, $f6, $f10 /* ACAD74 80053BD4 46082181 */ sub.s $f6, $f4, $f8 /* ACAD78 80053BD8 46023282 */ mul.s $f10, $f6, $f2 /* ACAD7C 80053BDC 46085100 */ add.s $f4, $f10, $f8 /* ACAD80 80053BE0 E7A400E4 */ swc1 $f4, 0xe4($sp) /* ACAD84 80053BE4 86190030 */ lh $t9, 0x30($s0) /* ACAD88 80053BE8 448B2000 */ mtc1 $t3, $f4 /* ACAD8C 80053BEC 032B5023 */ subu $t2, $t9, $t3 /* ACAD90 80053BF0 000A6400 */ sll $t4, $t2, 0x10 /* ACAD94 80053BF4 000C6C03 */ sra $t5, $t4, 0x10 /* ACAD98 80053BF8 448D3000 */ mtc1 $t5, $f6 /* ACAD9C 80053BFC 87B900F2 */ lh $t9, 0xf2($sp) /* ACADA0 80053C00 468032A0 */ cvt.s.w $f10, $f6 /* ACADA4 80053C04 468021A0 */ cvt.s.w $f6, $f4 /* ACADA8 80053C08 46025202 */ mul.s $f8, $f10, $f2 /* ACADAC 80053C0C 46083280 */ add.s $f10, $f6, $f8 /* ACADB0 80053C10 4600510D */ trunc.w.s $f4, $f10 /* ACADB4 80053C14 440F2000 */ mfc1 $t7, $f4 /* ACADB8 80053C18 44992000 */ mtc1 $t9, $f4 /* ACADBC 80053C1C A7AF00E8 */ sh $t7, 0xe8($sp) /* ACADC0 80053C20 86180032 */ lh $t8, 0x32($s0) /* ACADC4 80053C24 03195023 */ subu $t2, $t8, $t9 /* ACADC8 80053C28 000A6400 */ sll $t4, $t2, 0x10 /* ACADCC 80053C2C 000C6C03 */ sra $t5, $t4, 0x10 /* ACADD0 80053C30 448D3000 */ mtc1 $t5, $f6 /* ACADD4 80053C34 00000000 */ nop /* ACADD8 80053C38 46803220 */ cvt.s.w $f8, $f6 /* ACADDC 80053C3C 468021A0 */ cvt.s.w $f6, $f4 /* ACADE0 80053C40 46024282 */ mul.s $f10, $f8, $f2 /* ACADE4 80053C44 460A3200 */ add.s $f8, $f6, $f10 /* ACADE8 80053C48 4600410D */ trunc.w.s $f4, $f8 /* ACADEC 80053C4C 440E2000 */ mfc1 $t6, $f4 /* ACADF0 80053C50 0C010F0A */ jal func_80043C28 /* ACADF4 80053C54 A7AE00EA */ sh $t6, 0xea($sp) /* ACADF8 80053C58 1000001A */ b .L80053CC4 /* ACADFC 80053C5C 8E180000 */ lw $t8, ($s0) glabel L80053C60 /* ACAE00 80053C60 860F003C */ lh $t7, 0x3c($s0) /* ACAE04 80053C64 3C013F80 */ li $at, 0x3F800000 # 0.000000 /* ACAE08 80053C68 44813000 */ mtc1 $at, $f6 /* ACAE0C 80053C6C 448F5000 */ mtc1 $t7, $f10 /* ACAE10 80053C70 C6200074 */ lwc1 $f0, 0x74($s1) /* ACAE14 80053C74 C6040010 */ lwc1 $f4, 0x10($s0) /* ACAE18 80053C78 46805220 */ cvt.s.w $f8, $f10 /* ACAE1C 80053C7C 46002281 */ sub.s $f10, $f4, $f0 /* ACAE20 80053C80 46083083 */ div.s $f2, $f6, $f8 /* ACAE24 80053C84 46025182 */ mul.s $f6, $f10, $f2 /* ACAE28 80053C88 46060200 */ add.s $f8, $f0, $f6 /* ACAE2C 80053C8C E7A80100 */ swc1 $f8, 0x100($sp) /* ACAE30 80053C90 C6040014 */ lwc1 $f4, 0x14($s0) /* ACAE34 80053C94 C62C0078 */ lwc1 $f12, 0x78($s1) /* ACAE38 80053C98 460C2281 */ sub.s $f10, $f4, $f12 /* ACAE3C 80053C9C 46025182 */ mul.s $f6, $f10, $f2 /* ACAE40 80053CA0 46066200 */ add.s $f8, $f12, $f6 /* ACAE44 80053CA4 E7A80104 */ swc1 $f8, 0x104($sp) /* ACAE48 80053CA8 C6040018 */ lwc1 $f4, 0x18($s0) /* ACAE4C 80053CAC C62E007C */ lwc1 $f14, 0x7c($s1) /* ACAE50 80053CB0 460E2281 */ sub.s $f10, $f4, $f14 /* ACAE54 80053CB4 46025182 */ mul.s $f6, $f10, $f2 /* ACAE58 80053CB8 46067200 */ add.s $f8, $f14, $f6 /* ACAE5C 80053CBC E7A80108 */ swc1 $f8, 0x108($sp) /* ACAE60 80053CC0 8E180000 */ lw $t8, ($s0) .L80053CC4: /* ACAE64 80053CC4 C7AC0100 */ lwc1 $f12, 0x100($sp) /* ACAE68 80053CC8 C62E0074 */ lwc1 $f14, 0x74($s1) /* ACAE6C 80053CCC 3C073F80 */ lui $a3, 0x3f80 /* ACAE70 80053CD0 0C010E37 */ jal func_800438DC /* ACAE74 80053CD4 8F06000C */ lw $a2, 0xc($t8) /* ACAE78 80053CD8 E6200074 */ swc1 $f0, 0x74($s1) /* ACAE7C 80053CDC 8E0A0000 */ lw $t2, ($s0) /* ACAE80 80053CE0 C7AC0104 */ lwc1 $f12, 0x104($sp) /* ACAE84 80053CE4 C62E0078 */ lwc1 $f14, 0x78($s1) /* ACAE88 80053CE8 3C073F80 */ lui $a3, 0x3f80 /* ACAE8C 80053CEC 0C010E37 */ jal func_800438DC /* ACAE90 80053CF0 8D46000C */ lw $a2, 0xc($t2) /* ACAE94 80053CF4 E6200078 */ swc1 $f0, 0x78($s1) /* ACAE98 80053CF8 8E0C0000 */ lw $t4, ($s0) /* ACAE9C 80053CFC C7AC0108 */ lwc1 $f12, 0x108($sp) /* ACAEA0 80053D00 C62E007C */ lwc1 $f14, 0x7c($s1) /* ACAEA4 80053D04 3C073F80 */ lui $a3, 0x3f80 /* ACAEA8 80053D08 0C010E37 */ jal func_800438DC /* ACAEAC 80053D0C 8D86000C */ lw $a2, 0xc($t4) /* ACAEB0 80053D10 E620007C */ swc1 $f0, 0x7c($s1) /* ACAEB4 80053D14 8E030000 */ lw $v1, ($s0) glabel L80053D18 /* ACAEB8 80053D18 860D003C */ lh $t5, 0x3c($s0) /* ACAEBC 80053D1C 3C013F80 */ li $at, 0x3F800000 # 0.000000 /* ACAEC0 80053D20 44819000 */ mtc1 $at, $f18 /* ACAEC4 80053D24 448D2000 */ mtc1 $t5, $f4 /* ACAEC8 80053D28 C62E0050 */ lwc1 $f14, 0x50($s1) /* ACAECC 80053D2C C6060004 */ lwc1 $f6, 4($s0) /* ACAED0 80053D30 468022A0 */ cvt.s.w $f10, $f4 /* ACAED4 80053D34 C6200054 */ lwc1 $f0, 0x54($s1) /* ACAED8 80053D38 44079000 */ mfc1 $a3, $f18 /* ACAEDC 80053D3C 460E3201 */ sub.s $f8, $f6, $f14 /* ACAEE0 80053D40 460A9083 */ div.s $f2, $f18, $f10 /* ACAEE4 80053D44 C60A0008 */ lwc1 $f10, 8($s0) /* ACAEE8 80053D48 46005181 */ sub.s $f6, $f10, $f0 /* ACAEEC 80053D4C 46024102 */ mul.s $f4, $f8, $f2 /* ACAEF0 80053D50 00000000 */ nop /* ACAEF4 80053D54 46023202 */ mul.s $f8, $f6, $f2 /* ACAEF8 80053D58 46047300 */ add.s $f12, $f14, $f4 /* ACAEFC 80053D5C 46080100 */ add.s $f4, $f0, $f8 /* ACAF00 80053D60 E7A40110 */ swc1 $f4, 0x110($sp) /* ACAF04 80053D64 C60A000C */ lwc1 $f10, 0xc($s0) /* ACAF08 80053D68 C6300058 */ lwc1 $f16, 0x58($s1) /* ACAF0C 80053D6C 46105181 */ sub.s $f6, $f10, $f16 /* ACAF10 80053D70 46023202 */ mul.s $f8, $f6, $f2 /* ACAF14 80053D74 46088100 */ add.s $f4, $f16, $f8 /* ACAF18 80053D78 E7A40114 */ swc1 $f4, 0x114($sp) /* ACAF1C 80053D7C 8C66000C */ lw $a2, 0xc($v1) /* ACAF20 80053D80 0C010E37 */ jal func_800438DC /* ACAF24 80053D84 E7A200F4 */ swc1 $f2, 0xf4($sp) /* ACAF28 80053D88 E6200050 */ swc1 $f0, 0x50($s1) /* ACAF2C 80053D8C 8E190000 */ lw $t9, ($s0) /* ACAF30 80053D90 C7AC0110 */ lwc1 $f12, 0x110($sp) /* ACAF34 80053D94 C62E0054 */ lwc1 $f14, 0x54($s1) /* ACAF38 80053D98 3C073F80 */ lui $a3, 0x3f80 /* ACAF3C 80053D9C 0C010E37 */ jal func_800438DC /* ACAF40 80053DA0 8F26000C */ lw $a2, 0xc($t9) /* ACAF44 80053DA4 E6200054 */ swc1 $f0, 0x54($s1) /* ACAF48 80053DA8 8E0B0000 */ lw $t3, ($s0) /* ACAF4C 80053DAC C7AC0114 */ lwc1 $f12, 0x114($sp) /* ACAF50 80053DB0 C62E0058 */ lwc1 $f14, 0x58($s1) /* ACAF54 80053DB4 3C073F80 */ lui $a3, 0x3f80 /* ACAF58 80053DB8 0C010E37 */ jal func_800438DC /* ACAF5C 80053DBC 8D66000C */ lw $a2, 0xc($t3) /* ACAF60 80053DC0 C7A200F4 */ lwc1 $f2, 0xf4($sp) /* ACAF64 80053DC4 E6200058 */ swc1 $f0, 0x58($s1) /* ACAF68 80053DC8 C60A0028 */ lwc1 $f10, 0x28($s0) /* ACAF6C 80053DCC C62E00FC */ lwc1 $f14, 0xfc($s1) /* ACAF70 80053DD0 8E0E0000 */ lw $t6, ($s0) /* ACAF74 80053DD4 3C073C23 */ lui $a3, (0x3C23D70A >> 16) # lui $a3, 0x3c23 /* ACAF78 80053DD8 460E5181 */ sub.s $f6, $f10, $f14 /* ACAF7C 80053DDC 34E7D70A */ ori $a3, (0x3C23D70A & 0xFFFF) # ori $a3, $a3, 0xd70a /* ACAF80 80053DE0 8DC6000C */ lw $a2, 0xc($t6) /* ACAF84 80053DE4 46023202 */ mul.s $f8, $f6, $f2 /* ACAF88 80053DE8 0C010E37 */ jal func_800438DC /* ACAF8C 80053DEC 46087300 */ add.s $f12, $f14, $f8 /* ACAF90 80053DF0 E62000FC */ swc1 $f0, 0xfc($s1) /* ACAF94 80053DF4 860F0034 */ lh $t7, 0x34($s0) /* ACAF98 80053DF8 8625015A */ lh $a1, 0x15a($s1) /* ACAF9C 80053DFC 860D003C */ lh $t5, 0x3c($s0) /* ACAFA0 80053E00 8E0B0000 */ lw $t3, ($s0) /* ACAFA4 80053E04 01E5C023 */ subu $t8, $t7, $a1 /* ACAFA8 80053E08 00185400 */ sll $t2, $t8, 0x10 /* ACAFAC 80053E0C 000A6403 */ sra $t4, $t2, 0x10 /* ACAFB0 80053E10 018D001A */ div $zero, $t4, $t5 /* ACAFB4 80053E14 0000C812 */ mflo $t9 /* ACAFB8 80053E18 00B92021 */ addu $a0, $a1, $t9 /* ACAFBC 80053E1C 00042400 */ sll $a0, $a0, 0x10 /* ACAFC0 80053E20 15A00002 */ bnez $t5, .L80053E2C /* ACAFC4 80053E24 00000000 */ nop /* ACAFC8 80053E28 0007000D */ break 7 .L80053E2C: /* ACAFCC 80053E2C 2401FFFF */ li $at, -1 /* ACAFD0 80053E30 15A10004 */ bne $t5, $at, .L80053E44 /* ACAFD4 80053E34 3C018000 */ lui $at, 0x8000 /* ACAFD8 80053E38 15810002 */ bne $t4, $at, .L80053E44 /* ACAFDC 80053E3C 00000000 */ nop /* ACAFE0 80053E40 0006000D */ break 6 .L80053E44: /* ACAFE4 80053E44 00042403 */ sra $a0, $a0, 0x10 /* ACAFE8 80053E48 2407000A */ li $a3, 10 /* ACAFEC 80053E4C 0C010E6B */ jal func_800439AC /* ACAFF0 80053E50 8D66000C */ lw $a2, 0xc($t3) /* ACAFF4 80053E54 A622015A */ sh $v0, 0x15a($s1) /* ACAFF8 80053E58 100000E0 */ b .L800541DC /* ACAFFC 80053E5C 2626005C */ addiu $a2, $s1, 0x5c glabel L80053E60 /* ACB000 80053E60 26070004 */ addiu $a3, $s0, 4 /* ACB004 80053E64 260E0010 */ addiu $t6, $s0, 0x10 /* ACB008 80053E68 AFAE0024 */ sw $t6, 0x24($sp) /* ACB00C 80053E6C AFA70028 */ sw $a3, 0x28($sp) /* ACB010 80053E70 27A400EC */ addiu $a0, $sp, 0xec /* ACB014 80053E74 8FA50030 */ lw $a1, 0x30($sp) /* ACB018 80053E78 0C01F124 */ jal OLib_Vec3fDiffToVecSphRot90 /* ACB01C 80053E7C 8FA60034 */ lw $a2, 0x34($sp) /* ACB020 80053E80 8FA50028 */ lw $a1, 0x28($sp) /* ACB024 80053E84 2604002C */ addiu $a0, $s0, 0x2c /* ACB028 80053E88 0C01F124 */ jal OLib_Vec3fDiffToVecSphRot90 /* ACB02C 80053E8C 8FA60024 */ lw $a2, 0x24($sp) /* ACB030 80053E90 8E0F0000 */ lw $t7, ($s0) /* ACB034 80053E94 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc /* ACB038 80053E98 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd /* ACB03C 80053E9C C60C002C */ lwc1 $f12, 0x2c($s0) /* ACB040 80053EA0 C7AE00EC */ lwc1 $f14, 0xec($sp) /* ACB044 80053EA4 0C010E27 */ jal func_8004389C /* ACB048 80053EA8 8DE6000C */ lw $a2, 0xc($t7) /* ACB04C 80053EAC E7A000E4 */ swc1 $f0, 0xe4($sp) /* ACB050 80053EB0 8E180000 */ lw $t8, ($s0) /* ACB054 80053EB4 86040030 */ lh $a0, 0x30($s0) /* ACB058 80053EB8 87A500F0 */ lh $a1, 0xf0($sp) /* ACB05C 80053EBC 24070001 */ li $a3, 1 /* ACB060 80053EC0 0C010E47 */ jal func_8004391C /* ACB064 80053EC4 8F06000C */ lw $a2, 0xc($t8) /* ACB068 80053EC8 A7A200E8 */ sh $v0, 0xe8($sp) /* ACB06C 80053ECC 8E0A0000 */ lw $t2, ($s0) /* ACB070 80053ED0 86040032 */ lh $a0, 0x32($s0) /* ACB074 80053ED4 87A500F2 */ lh $a1, 0xf2($sp) /* ACB078 80053ED8 24070001 */ li $a3, 1 /* ACB07C 80053EDC 0C010E47 */ jal func_8004391C /* ACB080 80053EE0 8D46000C */ lw $a2, 0xc($t2) /* ACB084 80053EE4 A7A200EA */ sh $v0, 0xea($sp) /* ACB088 80053EE8 8FA40034 */ lw $a0, 0x34($sp) /* ACB08C 80053EEC 8FA50030 */ lw $a1, 0x30($sp) /* ACB090 80053EF0 0C010F0A */ jal func_80043C28 /* ACB094 80053EF4 27A600E4 */ addiu $a2, $sp, 0xe4 /* ACB098 80053EF8 10000016 */ b .L80053F54 /* ACB09C 80053EFC 8E030000 */ lw $v1, ($s0) glabel L80053F00 /* ACB0A0 80053F00 C60C0010 */ lwc1 $f12, 0x10($s0) /* ACB0A4 80053F04 C62E0074 */ lwc1 $f14, 0x74($s1) /* ACB0A8 80053F08 8C66000C */ lw $a2, 0xc($v1) /* ACB0AC 80053F0C 0C010E27 */ jal func_8004389C /* ACB0B0 80053F10 3C073F80 */ lui $a3, 0x3f80 /* ACB0B4 80053F14 E6200074 */ swc1 $f0, 0x74($s1) /* ACB0B8 80053F18 8E0C0000 */ lw $t4, ($s0) /* ACB0BC 80053F1C C60C0014 */ lwc1 $f12, 0x14($s0) /* ACB0C0 80053F20 C62E0078 */ lwc1 $f14, 0x78($s1) /* ACB0C4 80053F24 3C073F80 */ lui $a3, 0x3f80 /* ACB0C8 80053F28 0C010E27 */ jal func_8004389C /* ACB0CC 80053F2C 8D86000C */ lw $a2, 0xc($t4) /* ACB0D0 80053F30 E6200078 */ swc1 $f0, 0x78($s1) /* ACB0D4 80053F34 8E0D0000 */ lw $t5, ($s0) /* ACB0D8 80053F38 C60C0018 */ lwc1 $f12, 0x18($s0) /* ACB0DC 80053F3C C62E007C */ lwc1 $f14, 0x7c($s1) /* ACB0E0 80053F40 3C073F80 */ lui $a3, 0x3f80 /* ACB0E4 80053F44 0C010E27 */ jal func_8004389C /* ACB0E8 80053F48 8DA6000C */ lw $a2, 0xc($t5) /* ACB0EC 80053F4C E620007C */ swc1 $f0, 0x7c($s1) /* ACB0F0 80053F50 8E030000 */ lw $v1, ($s0) glabel L80053F54 .L80053F54: /* ACB0F4 80053F54 C60C0004 */ lwc1 $f12, 4($s0) /* ACB0F8 80053F58 C62E0050 */ lwc1 $f14, 0x50($s1) /* ACB0FC 80053F5C 8C66000C */ lw $a2, 0xc($v1) /* ACB100 80053F60 0C010E27 */ jal func_8004389C /* ACB104 80053F64 3C073F80 */ lui $a3, 0x3f80 /* ACB108 80053F68 E6200050 */ swc1 $f0, 0x50($s1) /* ACB10C 80053F6C 8E190000 */ lw $t9, ($s0) /* ACB110 80053F70 C60C0008 */ lwc1 $f12, 8($s0) /* ACB114 80053F74 C62E0054 */ lwc1 $f14, 0x54($s1) /* ACB118 80053F78 3C073F80 */ lui $a3, 0x3f80 /* ACB11C 80053F7C 0C010E27 */ jal func_8004389C /* ACB120 80053F80 8F26000C */ lw $a2, 0xc($t9) /* ACB124 80053F84 E6200054 */ swc1 $f0, 0x54($s1) /* ACB128 80053F88 8E0B0000 */ lw $t3, ($s0) /* ACB12C 80053F8C C60C000C */ lwc1 $f12, 0xc($s0) /* ACB130 80053F90 C62E0058 */ lwc1 $f14, 0x58($s1) /* ACB134 80053F94 3C073F80 */ lui $a3, 0x3f80 /* ACB138 80053F98 0C010E27 */ jal func_8004389C /* ACB13C 80053F9C 8D66000C */ lw $a2, 0xc($t3) /* ACB140 80053FA0 E6200058 */ swc1 $f0, 0x58($s1) /* ACB144 80053FA4 8E0E0000 */ lw $t6, ($s0) /* ACB148 80053FA8 C60C0028 */ lwc1 $f12, 0x28($s0) /* ACB14C 80053FAC C62E00FC */ lwc1 $f14, 0xfc($s1) /* ACB150 80053FB0 3C073F80 */ lui $a3, 0x3f80 /* ACB154 80053FB4 0C010E27 */ jal func_8004389C /* ACB158 80053FB8 8DC6000C */ lw $a2, 0xc($t6) /* ACB15C 80053FBC E62000FC */ swc1 $f0, 0xfc($s1) /* ACB160 80053FC0 8E0F0000 */ lw $t7, ($s0) /* ACB164 80053FC4 86040034 */ lh $a0, 0x34($s0) /* ACB168 80053FC8 8625015A */ lh $a1, 0x15a($s1) /* ACB16C 80053FCC 24070001 */ li $a3, 1 /* ACB170 80053FD0 0C010E47 */ jal func_8004391C /* ACB174 80053FD4 8DE6000C */ lw $a2, 0xc($t7) /* ACB178 80053FD8 A622015A */ sh $v0, 0x15a($s1) /* ACB17C 80053FDC 1000007F */ b .L800541DC /* ACB180 80053FE0 2626005C */ addiu $a2, $s1, 0x5c glabel L80053FE4 /* ACB184 80053FE4 C60C0004 */ lwc1 $f12, 4($s0) /* ACB188 80053FE8 C62E0050 */ lwc1 $f14, 0x50($s1) /* ACB18C 80053FEC 8C66000C */ lw $a2, 0xc($v1) /* ACB190 80053FF0 0C010E27 */ jal func_8004389C /* ACB194 80053FF4 3C073F80 */ lui $a3, 0x3f80 /* ACB198 80053FF8 E6200050 */ swc1 $f0, 0x50($s1) /* ACB19C 80053FFC 8E180000 */ lw $t8, ($s0) /* ACB1A0 80054000 C62400F4 */ lwc1 $f4, 0xf4($s1) /* ACB1A4 80054004 C6280054 */ lwc1 $f8, 0x54($s1) /* ACB1A8 80054008 C70A000C */ lwc1 $f10, 0xc($t8) /* ACB1AC 8005400C C62E0058 */ lwc1 $f14, 0x58($s1) /* ACB1B0 80054010 3C073F80 */ lui $a3, 0x3f80 /* ACB1B4 80054014 460A2182 */ mul.s $f6, $f4, $f10 /* ACB1B8 80054018 46064100 */ add.s $f4, $f8, $f6 /* ACB1BC 8005401C E6240054 */ swc1 $f4, 0x54($s1) /* ACB1C0 80054020 8E0A0000 */ lw $t2, ($s0) /* ACB1C4 80054024 C60C000C */ lwc1 $f12, 0xc($s0) /* ACB1C8 80054028 0C010E27 */ jal func_8004389C /* ACB1CC 8005402C 8D46000C */ lw $a2, 0xc($t2) /* ACB1D0 80054030 E6200058 */ swc1 $f0, 0x58($s1) /* ACB1D4 80054034 8FA60034 */ lw $a2, 0x34($sp) /* ACB1D8 80054038 8FA50030 */ lw $a1, 0x30($sp) /* ACB1DC 8005403C 0C01F124 */ jal OLib_Vec3fDiffToVecSphRot90 /* ACB1E0 80054040 27A400E4 */ addiu $a0, $sp, 0xe4 /* ACB1E4 80054044 8E0C0000 */ lw $t4, ($s0) /* ACB1E8 80054048 3C018014 */ lui $at, %hi(D_8013A2B4) /* ACB1EC 8005404C C428A2B4 */ lwc1 $f8, %lo(D_8013A2B4)($at) /* ACB1F0 80054050 C58A0020 */ lwc1 $f10, 0x20($t4) /* ACB1F4 80054054 3C013F00 */ li $at, 0x3F000000 # 0.000000 /* ACB1F8 80054058 44812000 */ mtc1 $at, $f4 /* ACB1FC 8005405C 46085182 */ mul.s $f6, $f10, $f8 /* ACB200 80054060 87AF00EA */ lh $t7, 0xea($sp) /* ACB204 80054064 87AA00E8 */ lh $t2, 0xe8($sp) /* ACB208 80054068 240C3A98 */ li $t4, 15000 /* ACB20C 8005406C 2419C568 */ li $t9, -15000 /* ACB210 80054070 29413A99 */ slti $at, $t2, 0x3a99 /* ACB214 80054074 3C073F80 */ lui $a3, 0x3f80 /* ACB218 80054078 46043280 */ add.s $f10, $f6, $f4 /* ACB21C 8005407C 4600520D */ trunc.w.s $f8, $f10 /* ACB220 80054080 440E4000 */ mfc1 $t6, $f8 /* ACB224 80054084 00000000 */ nop /* ACB228 80054088 01EEC021 */ addu $t8, $t7, $t6 /* ACB22C 8005408C 14200002 */ bnez $at, .L80054098 /* ACB230 80054090 A7B800EA */ sh $t8, 0xea($sp) /* ACB234 80054094 A7AC00E8 */ sh $t4, 0xe8($sp) .L80054098: /* ACB238 80054098 87AD00E8 */ lh $t5, 0xe8($sp) /* ACB23C 8005409C 29A1C568 */ slti $at, $t5, -0x3a98 /* ACB240 800540A0 50200003 */ beql $at, $zero, .L800540B0 /* ACB244 800540A4 8E030000 */ lw $v1, ($s0) /* ACB248 800540A8 A7B900E8 */ sh $t9, 0xe8($sp) /* ACB24C 800540AC 8E030000 */ lw $v1, ($s0) .L800540B0: /* ACB250 800540B0 C7A600E4 */ lwc1 $f6, 0xe4($sp) /* ACB254 800540B4 C7AE00E4 */ lwc1 $f14, 0xe4($sp) /* ACB258 800540B8 C46C0024 */ lwc1 $f12, 0x24($v1) /* ACB25C 800540BC 460C303C */ c.lt.s $f6, $f12 /* ACB260 800540C0 00000000 */ nop /* ACB264 800540C4 45030005 */ bc1tl .L800540DC /* ACB268 800540C8 8FA40034 */ lw $a0, 0x34($sp) /* ACB26C 800540CC 0C010E27 */ jal func_8004389C /* ACB270 800540D0 8C66000C */ lw $a2, 0xc($v1) /* ACB274 800540D4 E7A000E4 */ swc1 $f0, 0xe4($sp) /* ACB278 800540D8 8FA40034 */ lw $a0, 0x34($sp) .L800540DC: /* ACB27C 800540DC 8FA50030 */ lw $a1, 0x30($sp) /* ACB280 800540E0 0C010F0A */ jal func_80043C28 /* ACB284 800540E4 27A600E4 */ addiu $a2, $sp, 0xe4 /* ACB288 800540E8 860B003C */ lh $t3, 0x3c($s0) /* ACB28C 800540EC 8E030000 */ lw $v1, ($s0) /* ACB290 800540F0 C62E00FC */ lwc1 $f14, 0xfc($s1) /* ACB294 800540F4 448B4000 */ mtc1 $t3, $f8 /* ACB298 800540F8 C4640008 */ lwc1 $f4, 8($v1) /* ACB29C 800540FC 3C073F80 */ lui $a3, 0x3f80 /* ACB2A0 80054100 468041A0 */ cvt.s.w $f6, $f8 /* ACB2A4 80054104 8C66000C */ lw $a2, 0xc($v1) /* ACB2A8 80054108 460E2281 */ sub.s $f10, $f4, $f14 /* ACB2AC 8005410C 46065103 */ div.s $f4, $f10, $f6 /* ACB2B0 80054110 0C010E27 */ jal func_8004389C /* ACB2B4 80054114 46047300 */ add.s $f12, $f14, $f4 /* ACB2B8 80054118 E62000FC */ swc1 $f0, 0xfc($s1) /* ACB2BC 8005411C 8E0F0000 */ lw $t7, ($s0) /* ACB2C0 80054120 86040034 */ lh $a0, 0x34($s0) /* ACB2C4 80054124 8625015A */ lh $a1, 0x15a($s1) /* ACB2C8 80054128 24070001 */ li $a3, 1 /* ACB2CC 8005412C 0C010E47 */ jal func_8004391C /* ACB2D0 80054130 8DE6000C */ lw $a2, 0xc($t7) /* ACB2D4 80054134 A622015A */ sh $v0, 0x15a($s1) /* ACB2D8 80054138 10000028 */ b .L800541DC /* ACB2DC 8005413C 2626005C */ addiu $a2, $s1, 0x5c glabel L80054140 /* ACB2E0 80054140 860E0034 */ lh $t6, 0x34($s0) /* ACB2E4 80054144 2626005C */ addiu $a2, $s1, 0x5c /* ACB2E8 80054148 10000024 */ b .L800541DC /* ACB2EC 8005414C A60E0036 */ sh $t6, 0x36($s0) glabel L80054150 /* ACB2F0 80054150 86220162 */ lh $v0, 0x162($s1) /* ACB2F4 80054154 00002825 */ move $a1, $zero /* ACB2F8 80054158 04410003 */ bgez $v0, .L80054168 /* ACB2FC 8005415C 00401825 */ move $v1, $v0 /* ACB300 80054160 10000001 */ b .L80054168 /* ACB304 80054164 00001825 */ move $v1, $zero .L80054168: /* ACB308 80054168 8E38008C */ lw $t8, 0x8c($s1) /* ACB30C 8005416C 00035080 */ sll $t2, $v1, 2 /* ACB310 80054170 24060001 */ li $a2, 1 /* ACB314 80054174 030A6021 */ addu $t4, $t8, $t2 /* ACB318 80054178 0C016813 */ jal Camera_ChangeMode /* ACB31C 8005417C 8D840790 */ lw $a0, 0x790($t4) glabel L80054180 /* ACB320 80054180 86220162 */ lh $v0, 0x162($s1) /* ACB324 80054184 8FAF0034 */ lw $t7, 0x34($sp) /* ACB328 80054188 04410003 */ bgez $v0, .L80054198 /* ACB32C 8005418C 00401825 */ move $v1, $v0 /* ACB330 80054190 10000001 */ b .L80054198 /* ACB334 80054194 00001825 */ move $v1, $zero .L80054198: /* ACB338 80054198 8E2D008C */ lw $t5, 0x8c($s1) /* ACB33C 8005419C 8DF80000 */ lw $t8, ($t7) /* ACB340 800541A0 0003C880 */ sll $t9, $v1, 2 /* ACB344 800541A4 01B95821 */ addu $t3, $t5, $t9 /* ACB348 800541A8 8D640790 */ lw $a0, 0x790($t3) /* ACB34C 800541AC AE38005C */ sw $t8, 0x5c($s1) /* ACB350 800541B0 8DEE0004 */ lw $t6, 4($t7) /* ACB354 800541B4 02202825 */ move $a1, $s1 /* ACB358 800541B8 AE2E0060 */ sw $t6, 0x60($s1) /* ACB35C 800541BC 8DF80008 */ lw $t8, 8($t7) /* ACB360 800541C0 0C016B99 */ jal func_8005AE64 /* ACB364 800541C4 AE380064 */ sw $t8, 0x64($s1) glabel L800541C8 .L800541C8: /* ACB368 800541C8 862A0164 */ lh $t2, 0x164($s1) /* ACB36C 800541CC 2626005C */ addiu $a2, $s1, 0x5c /* ACB370 800541D0 51400003 */ beql $t2, $zero, .L800541E0 /* ACB374 800541D4 8FAC0034 */ lw $t4, 0x34($sp) /* ACB378 800541D8 A6200160 */ sh $zero, 0x160($s1) .L800541DC: /* ACB37C 800541DC 8FAC0034 */ lw $t4, 0x34($sp) .L800541E0: /* ACB380 800541E0 02202025 */ move $a0, $s1 /* ACB384 800541E4 8D990000 */ lw $t9, ($t4) /* ACB388 800541E8 ACD90000 */ sw $t9, ($a2) /* ACB38C 800541EC 8D8D0004 */ lw $t5, 4($t4) /* ACB390 800541F0 ACCD0004 */ sw $t5, 4($a2) /* ACB394 800541F4 8D990008 */ lw $t9, 8($t4) /* ACB398 800541F8 ACD90008 */ sw $t9, 8($a2) /* ACB39C 800541FC 8E0B0000 */ lw $t3, ($s0) /* ACB3A0 80054200 8FA50030 */ lw $a1, 0x30($sp) /* ACB3A4 80054204 91630000 */ lbu $v1, ($t3) /* ACB3A8 80054208 306F0080 */ andi $t7, $v1, 0x80 /* ACB3AC 8005420C 51E00007 */ beql $t7, $zero, .L8005422C /* ACB3B0 80054210 30780040 */ andi $t8, $v1, 0x40 /* ACB3B4 80054214 0C010FCD */ jal func_80043F34 /* ACB3B8 80054218 AFA6002C */ sw $a2, 0x2c($sp) /* ACB3BC 8005421C 8E0E0000 */ lw $t6, ($s0) /* ACB3C0 80054220 8FA6002C */ lw $a2, 0x2c($sp) /* ACB3C4 80054224 91C30000 */ lbu $v1, ($t6) /* ACB3C8 80054228 30780040 */ andi $t8, $v1, 0x40 .L8005422C: /* ACB3CC 8005422C 13000014 */ beqz $t8, .L80054280 /* ACB3D0 80054230 00C02825 */ move $a1, $a2 /* ACB3D4 80054234 C608001C */ lwc1 $f8, 0x1c($s0) /* ACB3D8 80054238 8E2A0090 */ lw $t2, 0x90($s1) /* ACB3DC 8005423C E5480024 */ swc1 $f8, 0x24($t2) /* ACB3E0 80054240 8E2C0090 */ lw $t4, 0x90($s1) /* ACB3E4 80054244 C60A0024 */ lwc1 $f10, 0x24($s0) /* ACB3E8 80054248 E58A002C */ swc1 $f10, 0x2c($t4) /* ACB3EC 8005424C 8E220090 */ lw $v0, 0x90($s1) /* ACB3F0 80054250 8FAB0088 */ lw $t3, 0x88($sp) /* ACB3F4 80054254 8C4D067C */ lw $t5, 0x67c($v0) /* ACB3F8 80054258 000DC900 */ sll $t9, $t5, 4 /* ACB3FC 8005425C 0723000F */ bgezl $t9, .L8005429C /* ACB400 80054260 860E0038 */ lh $t6, 0x38($s0) /* ACB404 80054264 816F014F */ lb $t7, 0x14f($t3) /* ACB408 80054268 24010001 */ li $at, 1 /* ACB40C 8005426C 51E1000B */ beql $t7, $at, .L8005429C /* ACB410 80054270 860E0038 */ lh $t6, 0x38($s0) /* ACB414 80054274 C6060020 */ lwc1 $f6, 0x20($s0) /* ACB418 80054278 10000007 */ b .L80054298 /* ACB41C 8005427C E4460028 */ swc1 $f6, 0x28($v0) .L80054280: /* ACB420 80054280 C7A40098 */ lwc1 $f4, 0x98($sp) /* ACB424 80054284 E604001C */ swc1 $f4, 0x1c($s0) /* ACB428 80054288 C7A8009C */ lwc1 $f8, 0x9c($sp) /* ACB42C 8005428C E6080020 */ swc1 $f8, 0x20($s0) /* ACB430 80054290 C7AA00A0 */ lwc1 $f10, 0xa0($sp) /* ACB434 80054294 E60A0024 */ swc1 $f10, 0x24($s0) .L80054298: /* ACB438 80054298 860E0038 */ lh $t6, 0x38($s0) .L8005429C: /* ACB43C 8005429C 55C00006 */ bnezl $t6, .L800542B8 /* ACB440 800542A0 8E2A0090 */ lw $t2, 0x90($s1) /* ACB444 800542A4 86220160 */ lh $v0, 0x160($s1) /* ACB448 800542A8 18400002 */ blez $v0, .L800542B4 /* ACB44C 800542AC 2458FFFF */ addiu $t8, $v0, -1 /* ACB450 800542B0 A6380160 */ sh $t8, 0x160($s1) .L800542B4: /* ACB454 800542B4 8E2A0090 */ lw $t2, 0x90($s1) .L800542B8: /* ACB458 800542B8 1140000D */ beqz $t2, .L800542F0 /* ACB45C 800542BC 00000000 */ nop /* ACB460 800542C0 C6260050 */ lwc1 $f6, 0x50($s1) /* ACB464 800542C4 C6240094 */ lwc1 $f4, 0x94($s1) /* ACB468 800542C8 C62A0054 */ lwc1 $f10, 0x54($s1) /* ACB46C 800542CC 46043201 */ sub.s $f8, $f6, $f4 /* ACB470 800542D0 C6260098 */ lwc1 $f6, 0x98($s1) /* ACB474 800542D4 46065101 */ sub.s $f4, $f10, $f6 /* ACB478 800542D8 E62800E4 */ swc1 $f8, 0xe4($s1) /* ACB47C 800542DC C6280058 */ lwc1 $f8, 0x58($s1) /* ACB480 800542E0 C62A009C */ lwc1 $f10, 0x9c($s1) /* ACB484 800542E4 E62400E8 */ swc1 $f4, 0xe8($s1) /* ACB488 800542E8 460A4181 */ sub.s $f6, $f8, $f10 /* ACB48C 800542EC E62600EC */ swc1 $f6, 0xec($s1) .L800542F0: /* ACB490 800542F0 0C01EFE4 */ jal OLib_Vec3fDist /* ACB494 800542F4 8FA40030 */ lw $a0, 0x30($sp) /* ACB498 800542F8 E62000DC */ swc1 $f0, 0xdc($s1) /* ACB49C 800542FC 24020001 */ li $v0, 1 .L80054300: /* ACB4A0 80054300 8FBF001C */ lw $ra, 0x1c($sp) /* ACB4A4 80054304 8FB00014 */ lw $s0, 0x14($sp) /* ACB4A8 80054308 8FB10018 */ lw $s1, 0x18($sp) /* ACB4AC 8005430C 03E00008 */ jr $ra /* ACB4B0 80054310 27BD0118 */ addiu $sp, $sp, 0x118