.set noat # allow manual use of $at .set noreorder # don't insert nops after branches glabel func_80059F94 /* 35394 80059F94 27BDFFC8 */ addiu $sp, $sp, -0x38 /* 35398 80059F98 F7B40030 */ sdc1 $f20, 0x30($sp) /* 3539C 80059F9C 3C014080 */ lui $at, 0x4080 /* 353A0 80059FA0 4481A000 */ mtc1 $at, $f20 /* 353A4 80059FA4 AFB10014 */ sw $s1, 0x14($sp) /* 353A8 80059FA8 24110001 */ addiu $s1, $zero, 1 /* 353AC 80059FAC AFB20018 */ sw $s2, 0x18($sp) /* 353B0 80059FB0 0000902D */ daddu $s2, $zero, $zero /* 353B4 80059FB4 AFB50024 */ sw $s5, 0x24($sp) /* 353B8 80059FB8 3C15800B */ lui $s5, %hi(gCameras) /* 353BC 80059FBC 26B51D80 */ addiu $s5, $s5, %lo(gCameras) /* 353C0 80059FC0 AFB00010 */ sw $s0, 0x10($sp) /* 353C4 80059FC4 3C10800A */ lui $s0, 0x800a /* 353C8 80059FC8 2610A66C */ addiu $s0, $s0, -0x5994 /* 353CC 80059FCC AFB40020 */ sw $s4, 0x20($sp) /* 353D0 80059FD0 24140002 */ addiu $s4, $zero, 2 /* 353D4 80059FD4 AFB3001C */ sw $s3, 0x1c($sp) /* 353D8 80059FD8 3413FFFE */ ori $s3, $zero, 0xfffe /* 353DC 80059FDC AFBF0028 */ sw $ra, 0x28($sp) /* 353E0 80059FE0 00121080 */ sll $v0, $s2, 2 .L80059FE4: /* 353E4 80059FE4 3C0E800B */ lui $t6, 0x800b /* 353E8 80059FE8 01C27021 */ addu $t6, $t6, $v0 /* 353EC 80059FEC 8DCE4398 */ lw $t6, 0x4398($t6) /* 353F0 80059FF0 51C000A5 */ beql $t6, $zero, .L8005A288 /* 353F4 80059FF4 26520001 */ addiu $s2, $s2, 1 /* 353F8 80059FF8 8DC30000 */ lw $v1, ($t6) /* 353FC 80059FFC 30620001 */ andi $v0, $v1, 1 /* 35400 8005A000 504000A1 */ beql $v0, $zero, .L8005A288 /* 35404 8005A004 26520001 */ addiu $s2, $s2, 1 /* 35408 8005A008 30620008 */ andi $v0, $v1, 8 /* 3540C 8005A00C 5040009E */ beql $v0, $zero, .L8005A288 /* 35410 8005A010 26520001 */ addiu $s2, $s2, 1 /* 35414 8005A014 3C028007 */ lui $v0, %hi(gGameStatusPtr) /* 35418 8005A018 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) /* 3541C 8005A01C 80420070 */ lb $v0, 0x70($v0) /* 35420 8005A020 10400005 */ beqz $v0, .L8005A038 /* 35424 8005A024 30620004 */ andi $v0, $v1, 4 /* 35428 8005A028 50400097 */ beql $v0, $zero, .L8005A288 /* 3542C 8005A02C 26520001 */ addiu $s2, $s2, 1 /* 35430 8005A030 08016810 */ j .L8005A040 /* 35434 8005A034 00000000 */ nop .L8005A038: /* 35438 8005A038 54400093 */ bnel $v0, $zero, .L8005A288 /* 3543C 8005A03C 26520001 */ addiu $s2, $s2, 1 .L8005A040: /* 35440 8005A040 8DC20010 */ lw $v0, 0x10($t6) /* 35444 8005A044 8C4F0018 */ lw $t7, 0x18($v0) /* 35448 8005A048 3C028006 */ lui $v0, 0x8006 /* 3544C 8005A04C 24429C80 */ addiu $v0, $v0, -0x6380 /* 35450 8005A050 51E2008D */ beql $t7, $v0, .L8005A288 /* 35454 8005A054 26520001 */ addiu $s2, $s2, 1 /* 35458 8005A058 12200088 */ beqz $s1, .L8005A27C /* 3545C 8005A05C 3C04DC08 */ lui $a0, 0xdc08 /* 35460 8005A060 34840008 */ ori $a0, $a0, 8 /* 35464 8005A064 3C06D9FF */ lui $a2, 0xd9ff /* 35468 8005A068 34C6FFFF */ ori $a2, $a2, 0xffff /* 3546C 8005A06C 3C050020 */ lui $a1, 0x20 /* 35470 8005A070 34A50405 */ ori $a1, $a1, 0x405 /* 35474 8005A074 3C07DB04 */ lui $a3, 0xdb04 /* 35478 8005A078 34E70004 */ ori $a3, $a3, 4 /* 3547C 8005A07C 3C08DB04 */ lui $t0, 0xdb04 /* 35480 8005A080 3508000C */ ori $t0, $t0, 0xc /* 35484 8005A084 3C09DB04 */ lui $t1, 0xdb04 /* 35488 8005A088 35290014 */ ori $t1, $t1, 0x14 /* 3548C 8005A08C 3C0ADB04 */ lui $t2, 0xdb04 /* 35490 8005A090 8E0B0000 */ lw $t3, ($s0) /* 35494 8005A094 354A001C */ ori $t2, $t2, 0x1c /* 35498 8005A098 0160182D */ daddu $v1, $t3, $zero /* 3549C 8005A09C 256B0008 */ addiu $t3, $t3, 8 /* 354A0 8005A0A0 AE0B0000 */ sw $t3, ($s0) /* 354A4 8005A0A4 3C0D8007 */ lui $t5, %hi(gCurrentCameraID) /* 354A8 8005A0A8 8DAD7410 */ lw $t5, %lo(gCurrentCameraID)($t5) /* 354AC 8005A0AC 3C02E700 */ lui $v0, 0xe700 /* 354B0 8005A0B0 AC620000 */ sw $v0, ($v1) /* 354B4 8005A0B4 25620008 */ addiu $v0, $t3, 8 /* 354B8 8005A0B8 AC600004 */ sw $zero, 4($v1) /* 354BC 8005A0BC AE020000 */ sw $v0, ($s0) /* 354C0 8005A0C0 AD640000 */ sw $a0, ($t3) /* 354C4 8005A0C4 3C04ED00 */ lui $a0, 0xed00 /* 354C8 8005A0C8 000D1080 */ sll $v0, $t5, 2 /* 354CC 8005A0CC 004D1021 */ addu $v0, $v0, $t5 /* 354D0 8005A0D0 00021080 */ sll $v0, $v0, 2 /* 354D4 8005A0D4 004D1023 */ subu $v0, $v0, $t5 /* 354D8 8005A0D8 000218C0 */ sll $v1, $v0, 3 /* 354DC 8005A0DC 00431021 */ addu $v0, $v0, $v1 /* 354E0 8005A0E0 000210C0 */ sll $v0, $v0, 3 /* 354E4 8005A0E4 00556021 */ addu $t4, $v0, $s5 /* 354E8 8005A0E8 258200A0 */ addiu $v0, $t4, 0xa0 /* 354EC 8005A0EC AD620004 */ sw $v0, 4($t3) /* 354F0 8005A0F0 25620010 */ addiu $v0, $t3, 0x10 /* 354F4 8005A0F4 AE020000 */ sw $v0, ($s0) /* 354F8 8005A0F8 3C02D900 */ lui $v0, 0xd900 /* 354FC 8005A0FC AD620008 */ sw $v0, 8($t3) /* 35500 8005A100 25620018 */ addiu $v0, $t3, 0x18 /* 35504 8005A104 AD60000C */ sw $zero, 0xc($t3) /* 35508 8005A108 AE020000 */ sw $v0, ($s0) /* 3550C 8005A10C 25620020 */ addiu $v0, $t3, 0x20 /* 35510 8005A110 AD660010 */ sw $a2, 0x10($t3) /* 35514 8005A114 AD650014 */ sw $a1, 0x14($t3) /* 35518 8005A118 AE020000 */ sw $v0, ($s0) /* 3551C 8005A11C 8583000E */ lh $v1, 0xe($t4) /* 35520 8005A120 25620028 */ addiu $v0, $t3, 0x28 /* 35524 8005A124 AE020000 */ sw $v0, ($s0) /* 35528 8005A128 44831000 */ mtc1 $v1, $f2 /* 3552C 8005A12C 00000000 */ nop /* 35530 8005A130 468010A0 */ cvt.s.w $f2, $f2 /* 35534 8005A134 46141082 */ mul.s $f2, $f2, $f20 /* 35538 8005A138 00000000 */ nop /* 3553C 8005A13C 85830010 */ lh $v1, 0x10($t4) /* 35540 8005A140 25620030 */ addiu $v0, $t3, 0x30 /* 35544 8005A144 AE020000 */ sw $v0, ($s0) /* 35548 8005A148 25620038 */ addiu $v0, $t3, 0x38 /* 3554C 8005A14C 44830000 */ mtc1 $v1, $f0 /* 35550 8005A150 00000000 */ nop /* 35554 8005A154 46800020 */ cvt.s.w $f0, $f0 /* 35558 8005A158 46140002 */ mul.s $f0, $f0, $f20 /* 3555C 8005A15C 00000000 */ nop /* 35560 8005A160 AE020000 */ sw $v0, ($s0) /* 35564 8005A164 4600110D */ trunc.w.s $f4, $f2 /* 35568 8005A168 44032000 */ mfc1 $v1, $f4 /* 3556C 8005A16C 00000000 */ nop /* 35570 8005A170 30630FFF */ andi $v1, $v1, 0xfff /* 35574 8005A174 00031B00 */ sll $v1, $v1, 0xc /* 35578 8005A178 4600010D */ trunc.w.s $f4, $f0 /* 3557C 8005A17C 44022000 */ mfc1 $v0, $f4 /* 35580 8005A180 00000000 */ nop /* 35584 8005A184 30420FFF */ andi $v0, $v0, 0xfff /* 35588 8005A188 00441025 */ or $v0, $v0, $a0 /* 3558C 8005A18C 00621825 */ or $v1, $v1, $v0 /* 35590 8005A190 AD630018 */ sw $v1, 0x18($t3) /* 35594 8005A194 8583000E */ lh $v1, 0xe($t4) /* 35598 8005A198 8585000A */ lh $a1, 0xa($t4) /* 3559C 8005A19C 85840010 */ lh $a0, 0x10($t4) /* 355A0 8005A1A0 8586000C */ lh $a2, 0xc($t4) /* 355A4 8005A1A4 25620040 */ addiu $v0, $t3, 0x40 /* 355A8 8005A1A8 AE020000 */ sw $v0, ($s0) /* 355AC 8005A1AC AD670020 */ sw $a3, 0x20($t3) /* 355B0 8005A1B0 AD740024 */ sw $s4, 0x24($t3) /* 355B4 8005A1B4 AD680028 */ sw $t0, 0x28($t3) /* 355B8 8005A1B8 00651821 */ addu $v1, $v1, $a1 /* 355BC 8005A1BC 44831000 */ mtc1 $v1, $f2 /* 355C0 8005A1C0 00000000 */ nop /* 355C4 8005A1C4 468010A0 */ cvt.s.w $f2, $f2 /* 355C8 8005A1C8 46141082 */ mul.s $f2, $f2, $f20 /* 355CC 8005A1CC 00000000 */ nop /* 355D0 8005A1D0 AD74002C */ sw $s4, 0x2c($t3) /* 355D4 8005A1D4 AD690030 */ sw $t1, 0x30($t3) /* 355D8 8005A1D8 00862021 */ addu $a0, $a0, $a2 /* 355DC 8005A1DC 44840000 */ mtc1 $a0, $f0 /* 355E0 8005A1E0 00000000 */ nop /* 355E4 8005A1E4 46800020 */ cvt.s.w $f0, $f0 /* 355E8 8005A1E8 46140002 */ mul.s $f0, $f0, $f20 /* 355EC 8005A1EC 00000000 */ nop /* 355F0 8005A1F0 AD730034 */ sw $s3, 0x34($t3) /* 355F4 8005A1F4 4600110D */ trunc.w.s $f4, $f2 /* 355F8 8005A1F8 44032000 */ mfc1 $v1, $f4 /* 355FC 8005A1FC 00000000 */ nop /* 35600 8005A200 30630FFF */ andi $v1, $v1, 0xfff /* 35604 8005A204 00031B00 */ sll $v1, $v1, 0xc /* 35608 8005A208 4600010D */ trunc.w.s $f4, $f0 /* 3560C 8005A20C 44022000 */ mfc1 $v0, $f4 /* 35610 8005A210 00000000 */ nop /* 35614 8005A214 30420FFF */ andi $v0, $v0, 0xfff /* 35618 8005A218 00621825 */ or $v1, $v1, $v0 /* 3561C 8005A21C AD63001C */ sw $v1, 0x1c($t3) /* 35620 8005A220 AD6A0038 */ sw $t2, 0x38($t3) /* 35624 8005A224 AD73003C */ sw $s3, 0x3c($t3) /* 35628 8005A228 95820000 */ lhu $v0, ($t4) /* 3562C 8005A22C 30420010 */ andi $v0, $v0, 0x10 /* 35630 8005A230 14400012 */ bnez $v0, .L8005A27C /* 35634 8005A234 0000882D */ daddu $s1, $zero, $zero /* 35638 8005A238 3C04DA38 */ lui $a0, 0xda38 /* 3563C 8005A23C 34840007 */ ori $a0, $a0, 7 /* 35640 8005A240 25620048 */ addiu $v0, $t3, 0x48 /* 35644 8005A244 AE020000 */ sw $v0, ($s0) /* 35648 8005A248 3C02DB0E */ lui $v0, 0xdb0e /* 3564C 8005A24C AD620040 */ sw $v0, 0x40($t3) /* 35650 8005A250 95830038 */ lhu $v1, 0x38($t4) /* 35654 8005A254 25620050 */ addiu $v0, $t3, 0x50 /* 35658 8005A258 AE020000 */ sw $v0, ($s0) /* 3565C 8005A25C 000D1180 */ sll $v0, $t5, 6 /* 35660 8005A260 AD630044 */ sw $v1, 0x44($t3) /* 35664 8005A264 3C03800A */ lui $v1, 0x800a /* 35668 8005A268 8C63A674 */ lw $v1, -0x598c($v1) /* 3566C 8005A26C 24420030 */ addiu $v0, $v0, 0x30 /* 35670 8005A270 AD640048 */ sw $a0, 0x48($t3) /* 35674 8005A274 00621821 */ addu $v1, $v1, $v0 /* 35678 8005A278 AD63004C */ sw $v1, 0x4c($t3) .L8005A27C: /* 3567C 8005A27C 01E0F809 */ jalr $t7 /* 35680 8005A280 01C0202D */ daddu $a0, $t6, $zero /* 35684 8005A284 26520001 */ addiu $s2, $s2, 1 .L8005A288: /* 35688 8005A288 2A420060 */ slti $v0, $s2, 0x60 /* 3568C 8005A28C 5440FF55 */ bnel $v0, $zero, .L80059FE4 /* 35690 8005A290 00121080 */ sll $v0, $s2, 2 /* 35694 8005A294 8FBF0028 */ lw $ra, 0x28($sp) /* 35698 8005A298 8FB50024 */ lw $s5, 0x24($sp) /* 3569C 8005A29C 8FB40020 */ lw $s4, 0x20($sp) /* 356A0 8005A2A0 8FB3001C */ lw $s3, 0x1c($sp) /* 356A4 8005A2A4 8FB20018 */ lw $s2, 0x18($sp) /* 356A8 8005A2A8 8FB10014 */ lw $s1, 0x14($sp) /* 356AC 8005A2AC 8FB00010 */ lw $s0, 0x10($sp) /* 356B0 8005A2B0 D7B40030 */ ldc1 $f20, 0x30($sp) /* 356B4 8005A2B4 03E00008 */ jr $ra /* 356B8 8005A2B8 27BD0038 */ addiu $sp, $sp, 0x38