.late_rodata glabel jtbl_8013A370 .word L80056098 .word L800560E4 .word L800563F4 .word L80056374 .word L8005641C glabel D_8013A384 .float 0.1 .text glabel Camera_Demo9 /* ACD158 80055FB8 27BDFF48 */ addiu $sp, $sp, -0xb8 /* ACD15C 80055FBC AFB00020 */ sw $s0, 0x20($sp) /* ACD160 80055FC0 00808025 */ move $s0, $a0 /* ACD164 80055FC4 AFBF0024 */ sw $ra, 0x24($sp) /* ACD168 80055FC8 8C84008C */ lw $a0, 0x8c($a0) /* ACD16C 80055FCC 0C030129 */ jal Gameplay_GetCamera /* ACD170 80055FD0 00002825 */ move $a1, $zero /* ACD174 80055FD4 244E0094 */ addiu $t6, $v0, 0x94 /* ACD178 80055FD8 AFAE0064 */ sw $t6, 0x64($sp) /* ACD17C 80055FDC 8603015E */ lh $v1, 0x15e($s0) /* ACD180 80055FE0 00403025 */ move $a2, $v0 /* ACD184 80055FE4 2401000A */ li $at, 10 /* ACD188 80055FE8 5060000A */ beql $v1, $zero, .L80056014 /* ACD18C 80055FEC 86180142 */ lh $t8, 0x142($s0) /* ACD190 80055FF0 10610007 */ beq $v1, $at, .L80056010 /* ACD194 80055FF4 24010014 */ li $at, 20 /* ACD198 80055FF8 10610005 */ beq $v1, $at, .L80056010 /* ACD19C 80055FFC 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 /* ACD1A0 80056000 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) /* ACD1A4 80056004 85E20314 */ lh $v0, 0x314($t7) /* ACD1A8 80056008 1040000F */ beqz $v0, .L80056048 /* ACD1AC 8005600C 00000000 */ nop .L80056010: /* ACD1B0 80056010 86180142 */ lh $t8, 0x142($s0) .L80056014: /* ACD1B4 80056014 3C098012 */ lui $t1, %hi(sCameraSettings+4) /* ACD1B8 80056018 860A0144 */ lh $t2, 0x144($s0) /* ACD1BC 8005601C 0018C8C0 */ sll $t9, $t8, 3 /* ACD1C0 80056020 01394821 */ addu $t1, $t1, $t9 /* ACD1C4 80056024 8D29D068 */ lw $t1, %lo(sCameraSettings+4)($t1) /* ACD1C8 80056028 000A58C0 */ sll $t3, $t2, 3 /* ACD1CC 8005602C 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 /* ACD1D0 80056030 012B6021 */ addu $t4, $t1, $t3 /* ACD1D4 80056034 8D830004 */ lw $v1, 4($t4) /* ACD1D8 80056038 846D0000 */ lh $t5, ($v1) /* ACD1DC 8005603C A60D000C */ sh $t5, 0xc($s0) /* ACD1E0 80056040 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) /* ACD1E4 80056044 85C20314 */ lh $v0, 0x314($t6) .L80056048: /* ACD1E8 80056048 10400007 */ beqz $v0, .L80056068 /* ACD1EC 8005604C 2603000C */ addiu $v1, $s0, 0xc /* ACD1F0 80056050 02002025 */ move $a0, $s0 /* ACD1F4 80056054 AFA30034 */ sw $v1, 0x34($sp) /* ACD1F8 80056058 0C011495 */ jal Camera_CopyPREGToModeValues /* ACD1FC 8005605C AFA6006C */ sw $a2, 0x6c($sp) /* ACD200 80056060 8FA30034 */ lw $v1, 0x34($sp) /* ACD204 80056064 8FA6006C */ lw $a2, 0x6c($sp) .L80056068: /* ACD208 80056068 846F0000 */ lh $t7, ($v1) /* ACD20C 8005606C 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 /* ACD210 80056070 AC2FD3A0 */ sw $t7, %lo(D_8011D3A0)($at) /* ACD214 80056074 9618015E */ lhu $t8, 0x15e($s0) /* ACD218 80056078 2F010005 */ sltiu $at, $t8, 5 /* ACD21C 8005607C 102000E7 */ beqz $at, .L8005641C /* ACD220 80056080 0018C080 */ sll $t8, $t8, 2 /* ACD224 80056084 3C018014 */ lui $at, %hi(jtbl_8013A370) /* ACD228 80056088 00380821 */ addu $at, $at, $t8 /* ACD22C 8005608C 8C38A370 */ lw $t8, %lo(jtbl_8013A370)($at) /* ACD230 80056090 03000008 */ jr $t8 /* ACD234 80056094 00000000 */ nop glabel L80056098 /* ACD238 80056098 44802000 */ mtc1 $zero, $f4 /* ACD23C 8005609C 26080010 */ addiu $t0, $s0, 0x10 /* ACD240 800560A0 A5000004 */ sh $zero, 4($t0) /* ACD244 800560A4 A5000008 */ sh $zero, 8($t0) /* ACD248 800560A8 E5040000 */ swc1 $f4, ($t0) /* ACD24C 800560AC 8619015E */ lh $t9, 0x15e($s0) /* ACD250 800560B0 272A0001 */ addiu $t2, $t9, 1 /* ACD254 800560B4 A60A015E */ sh $t2, 0x15e($s0) /* ACD258 800560B8 A5000006 */ sh $zero, 6($t0) /* ACD25C 800560BC 86020008 */ lh $v0, 8($s0) /* ACD260 800560C0 3042F000 */ andi $v0, $v0, 0xf000 /* ACD264 800560C4 50400006 */ beql $v0, $zero, .L800560E0 /* ACD268 800560C8 860C000A */ lh $t4, 0xa($s0) /* ACD26C 800560CC A5020008 */ sh $v0, 8($t0) /* ACD270 800560D0 86090008 */ lh $t1, 8($s0) /* ACD274 800560D4 312B0FFF */ andi $t3, $t1, 0xfff /* ACD278 800560D8 A60B0008 */ sh $t3, 8($s0) /* ACD27C 800560DC 860C000A */ lh $t4, 0xa($s0) .L800560E0: /* ACD280 800560E0 A50C000A */ sh $t4, 0xa($t0) glabel L800560E4 /* ACD284 800560E4 26080010 */ addiu $t0, $s0, 0x10 /* ACD288 800560E8 850D000A */ lh $t5, 0xa($t0) /* ACD28C 800560EC 25030004 */ addiu $v1, $t0, 4 /* ACD290 800560F0 27A4009C */ addiu $a0, $sp, 0x9c /* ACD294 800560F4 19A0009F */ blez $t5, .L80056374 /* ACD298 800560F8 27A50074 */ addiu $a1, $sp, 0x74 /* ACD29C 800560FC 8E070004 */ lw $a3, 4($s0) /* ACD2A0 80056100 260600FC */ addiu $a2, $s0, 0xfc /* ACD2A4 80056104 AFA60034 */ sw $a2, 0x34($sp) /* ACD2A8 80056108 AFA8002C */ sw $t0, 0x2c($sp) /* ACD2AC 8005610C AFA30030 */ sw $v1, 0x30($sp) /* ACD2B0 80056110 AFA80014 */ sw $t0, 0x14($sp) /* ACD2B4 80056114 0C02ECAD */ jal func_800BB2B4 /* ACD2B8 80056118 AFA30010 */ sw $v1, 0x10($sp) /* ACD2BC 8005611C 8FA30030 */ lw $v1, 0x30($sp) /* ACD2C0 80056120 8FA60034 */ lw $a2, 0x34($sp) /* ACD2C4 80056124 1440000A */ bnez $v0, .L80056150 /* ACD2C8 80056128 8FA8002C */ lw $t0, 0x2c($sp) /* ACD2CC 8005612C 8E070000 */ lw $a3, ($s0) /* ACD2D0 80056130 AFA8002C */ sw $t0, 0x2c($sp) /* ACD2D4 80056134 AFA80014 */ sw $t0, 0x14($sp) /* ACD2D8 80056138 AFA30010 */ sw $v1, 0x10($sp) /* ACD2DC 8005613C 27A40090 */ addiu $a0, $sp, 0x90 /* ACD2E0 80056140 0C02ECAD */ jal func_800BB2B4 /* ACD2E4 80056144 27A50074 */ addiu $a1, $sp, 0x74 /* ACD2E8 80056148 10400003 */ beqz $v0, .L80056158 /* ACD2EC 8005614C 8FA8002C */ lw $t0, 0x2c($sp) .L80056150: /* ACD2F0 80056150 240E0002 */ li $t6, 2 /* ACD2F4 80056154 A60E015E */ sh $t6, 0x15e($s0) .L80056158: /* ACD2F8 80056158 86020008 */ lh $v0, 8($s0) /* ACD2FC 8005615C 24010001 */ li $at, 1 /* ACD300 80056160 8FA40064 */ lw $a0, 0x64($sp) /* ACD304 80056164 1441000C */ bne $v0, $at, .L80056198 /* ACD308 80056168 27A5009C */ addiu $a1, $sp, 0x9c /* ACD30C 8005616C 27A60084 */ addiu $a2, $sp, 0x84 /* ACD310 80056170 0C01511E */ jal func_80054478 /* ACD314 80056174 AFA8002C */ sw $t0, 0x2c($sp) /* ACD318 80056178 8FA40064 */ lw $a0, 0x64($sp) /* ACD31C 8005617C 27A50090 */ addiu $a1, $sp, 0x90 /* ACD320 80056180 0C01511E */ jal func_80054478 /* ACD324 80056184 27A60078 */ addiu $a2, $sp, 0x78 /* ACD328 80056188 8FA8002C */ lw $t0, 0x2c($sp) /* ACD32C 8005618C 2603005C */ addiu $v1, $s0, 0x5c /* ACD330 80056190 10000046 */ b .L800562AC /* ACD334 80056194 26050050 */ addiu $a1, $s0, 0x50 .L80056198: /* ACD338 80056198 24010004 */ li $at, 4 /* ACD33C 8005619C 14410010 */ bne $v0, $at, .L800561E0 /* ACD340 800561A0 27A40050 */ addiu $a0, $sp, 0x50 /* ACD344 800561A4 8E050090 */ lw $a1, 0x90($s0) /* ACD348 800561A8 0C00BBC5 */ jal func_8002EF14 /* ACD34C 800561AC AFA8002C */ sw $t0, 0x2c($sp) /* ACD350 800561B0 27A40050 */ addiu $a0, $sp, 0x50 /* ACD354 800561B4 27A5009C */ addiu $a1, $sp, 0x9c /* ACD358 800561B8 0C01511E */ jal func_80054478 /* ACD35C 800561BC 27A60084 */ addiu $a2, $sp, 0x84 /* ACD360 800561C0 27A40050 */ addiu $a0, $sp, 0x50 /* ACD364 800561C4 27A50090 */ addiu $a1, $sp, 0x90 /* ACD368 800561C8 0C01511E */ jal func_80054478 /* ACD36C 800561CC 27A60078 */ addiu $a2, $sp, 0x78 /* ACD370 800561D0 8FA8002C */ lw $t0, 0x2c($sp) /* ACD374 800561D4 2603005C */ addiu $v1, $s0, 0x5c /* ACD378 800561D8 10000034 */ b .L800562AC /* ACD37C 800561DC 26050050 */ addiu $a1, $s0, 0x50 .L800561E0: /* ACD380 800561E0 24010008 */ li $at, 8 /* ACD384 800561E4 14410028 */ bne $v0, $at, .L80056288 /* ACD388 800561E8 27A4009C */ addiu $a0, $sp, 0x9c /* ACD38C 800561EC 8E0500A8 */ lw $a1, 0xa8($s0) /* ACD390 800561F0 2603005C */ addiu $v1, $s0, 0x5c /* ACD394 800561F4 50A00014 */ beql $a1, $zero, .L80056248 /* ACD398 800561F8 AE0000A8 */ sw $zero, 0xa8($s0) /* ACD39C 800561FC 8CAF0130 */ lw $t7, 0x130($a1) /* ACD3A0 80056200 27A40050 */ addiu $a0, $sp, 0x50 /* ACD3A4 80056204 51E00010 */ beql $t7, $zero, .L80056248 /* ACD3A8 80056208 AE0000A8 */ sw $zero, 0xa8($s0) /* ACD3AC 8005620C 0C00BBC5 */ jal func_8002EF14 /* ACD3B0 80056210 AFA8002C */ sw $t0, 0x2c($sp) /* ACD3B4 80056214 27A40050 */ addiu $a0, $sp, 0x50 /* ACD3B8 80056218 27A5009C */ addiu $a1, $sp, 0x9c /* ACD3BC 8005621C 0C01511E */ jal func_80054478 /* ACD3C0 80056220 27A60084 */ addiu $a2, $sp, 0x84 /* ACD3C4 80056224 27A40050 */ addiu $a0, $sp, 0x50 /* ACD3C8 80056228 27A50090 */ addiu $a1, $sp, 0x90 /* ACD3CC 8005622C 0C01511E */ jal func_80054478 /* ACD3D0 80056230 27A60078 */ addiu $a2, $sp, 0x78 /* ACD3D4 80056234 8FA8002C */ lw $t0, 0x2c($sp) /* ACD3D8 80056238 2603005C */ addiu $v1, $s0, 0x5c /* ACD3DC 8005623C 1000001B */ b .L800562AC /* ACD3E0 80056240 26050050 */ addiu $a1, $s0, 0x50 /* ACD3E4 80056244 AE0000A8 */ sw $zero, 0xa8($s0) .L80056248: /* ACD3E8 80056248 8C6A0000 */ lw $t2, ($v1) /* ACD3EC 8005624C 27B80084 */ addiu $t8, $sp, 0x84 /* ACD3F0 80056250 26050050 */ addiu $a1, $s0, 0x50 /* ACD3F4 80056254 AF0A0000 */ sw $t2, ($t8) /* ACD3F8 80056258 8C790004 */ lw $t9, 4($v1) /* ACD3FC 8005625C 27A90078 */ addiu $t1, $sp, 0x78 /* ACD400 80056260 AF190004 */ sw $t9, 4($t8) /* ACD404 80056264 8C6A0008 */ lw $t2, 8($v1) /* ACD408 80056268 AF0A0008 */ sw $t2, 8($t8) /* ACD40C 8005626C 8CAC0000 */ lw $t4, ($a1) /* ACD410 80056270 AD2C0000 */ sw $t4, ($t1) /* ACD414 80056274 8CAB0004 */ lw $t3, 4($a1) /* ACD418 80056278 AD2B0004 */ sw $t3, 4($t1) /* ACD41C 8005627C 8CAC0008 */ lw $t4, 8($a1) /* ACD420 80056280 1000000A */ b .L800562AC /* ACD424 80056284 AD2C0008 */ sw $t4, 8($t1) .L80056288: /* ACD428 80056288 27A50084 */ addiu $a1, $sp, 0x84 /* ACD42C 8005628C 0C015117 */ jal Camera_Vec3fCopy /* ACD430 80056290 AFA8002C */ sw $t0, 0x2c($sp) /* ACD434 80056294 27A40090 */ addiu $a0, $sp, 0x90 /* ACD438 80056298 0C015117 */ jal Camera_Vec3fCopy /* ACD43C 8005629C 27A50078 */ addiu $a1, $sp, 0x78 /* ACD440 800562A0 8FA8002C */ lw $t0, 0x2c($sp) /* ACD444 800562A4 2603005C */ addiu $v1, $s0, 0x5c /* ACD448 800562A8 26050050 */ addiu $a1, $s0, 0x50 .L800562AC: /* ACD44C 800562AC 27AD0084 */ addiu $t5, $sp, 0x84 /* ACD450 800562B0 8DAF0000 */ lw $t7, ($t5) /* ACD454 800562B4 26020074 */ addiu $v0, $s0, 0x74 /* ACD458 800562B8 3C013F00 */ li $at, 0x3F000000 # 0.000000 /* ACD45C 800562BC AC4F0000 */ sw $t7, ($v0) /* ACD460 800562C0 8DAE0004 */ lw $t6, 4($t5) /* ACD464 800562C4 8C590000 */ lw $t9, ($v0) /* ACD468 800562C8 27A40078 */ addiu $a0, $sp, 0x78 /* ACD46C 800562CC AC4E0004 */ sw $t6, 4($v0) /* ACD470 800562D0 8DAF0008 */ lw $t7, 8($t5) /* ACD474 800562D4 27A90078 */ addiu $t1, $sp, 0x78 /* ACD478 800562D8 AC4F0008 */ sw $t7, 8($v0) /* ACD47C 800562DC AC790000 */ sw $t9, ($v1) /* ACD480 800562E0 8C580004 */ lw $t8, 4($v0) /* ACD484 800562E4 AC780004 */ sw $t8, 4($v1) /* ACD488 800562E8 8C590008 */ lw $t9, 8($v0) /* ACD48C 800562EC AC790008 */ sw $t9, 8($v1) /* ACD490 800562F0 850A0006 */ lh $t2, 6($t0) /* ACD494 800562F4 5140000C */ beql $t2, $zero, .L80056328 /* ACD498 800562F8 8D2C0000 */ lw $t4, ($t1) /* ACD49C 800562FC 44810000 */ mtc1 $at, $f0 /* ACD4A0 80056300 3C018014 */ lui $at, %hi(D_8013A384) /* ACD4A4 80056304 C426A384 */ lwc1 $f6, %lo(D_8013A384)($at) /* ACD4A8 80056308 44060000 */ mfc1 $a2, $f0 /* ACD4AC 8005630C 44070000 */ mfc1 $a3, $f0 /* ACD4B0 80056310 AFA8002C */ sw $t0, 0x2c($sp) /* ACD4B4 80056314 0C010E8F */ jal func_80043A3C /* ACD4B8 80056318 E7A60010 */ swc1 $f6, 0x10($sp) /* ACD4BC 8005631C 10000009 */ b .L80056344 /* ACD4C0 80056320 8FA8002C */ lw $t0, 0x2c($sp) /* ACD4C4 80056324 8D2C0000 */ lw $t4, ($t1) .L80056328: /* ACD4C8 80056328 240D0001 */ li $t5, 1 /* ACD4CC 8005632C ACAC0000 */ sw $t4, ($a1) /* ACD4D0 80056330 8D2B0004 */ lw $t3, 4($t1) /* ACD4D4 80056334 ACAB0004 */ sw $t3, 4($a1) /* ACD4D8 80056338 8D2C0008 */ lw $t4, 8($t1) /* ACD4DC 8005633C ACAC0008 */ sw $t4, 8($a1) /* ACD4E0 80056340 A50D0006 */ sh $t5, 6($t0) .L80056344: /* ACD4E4 80056344 3C014380 */ li $at, 0x43800000 # 0.000000 /* ACD4E8 80056348 44815000 */ mtc1 $at, $f10 /* ACD4EC 8005634C C7A80074 */ lwc1 $f8, 0x74($sp) /* ACD4F0 80056350 460A4402 */ mul.s $f16, $f8, $f10 /* ACD4F4 80056354 4600848D */ trunc.w.s $f18, $f16 /* ACD4F8 80056358 440F9000 */ mfc1 $t7, $f18 /* ACD4FC 8005635C 00000000 */ nop /* ACD500 80056360 A60F015A */ sh $t7, 0x15a($s0) /* ACD504 80056364 8518000A */ lh $t8, 0xa($t0) /* ACD508 80056368 2719FFFF */ addiu $t9, $t8, -1 /* ACD50C 8005636C 1000002B */ b .L8005641C /* ACD510 80056370 A519000A */ sh $t9, 0xa($t0) .L80056374: glabel L80056374 /* ACD514 80056374 86020018 */ lh $v0, 0x18($s0) /* ACD518 80056378 A6000160 */ sh $zero, 0x160($s0) /* ACD51C 8005637C 24011000 */ li $at, 4096 /* ACD520 80056380 50400027 */ beql $v0, $zero, .L80056420 /* ACD524 80056384 8FBF0024 */ lw $ra, 0x24($sp) /* ACD528 80056388 10410016 */ beq $v0, $at, .L800563E4 /* ACD52C 8005638C 00C02025 */ move $a0, $a2 /* ACD530 80056390 24012000 */ li $at, 8192 /* ACD534 80056394 14410021 */ bne $v0, $at, .L8005641C /* ACD538 80056398 240503FC */ li $a1, 1020 /* ACD53C 8005639C 8602000A */ lh $v0, 0xa($s0) /* ACD540 800563A0 00003825 */ move $a3, $zero /* ACD544 800563A4 28410032 */ slti $at, $v0, 0x32 /* ACD548 800563A8 50200004 */ beql $at, $zero, .L800563BC /* ACD54C 800563AC 24010005 */ li $at, 5 /* ACD550 800563B0 10000006 */ b .L800563CC /* ACD554 800563B4 24060005 */ li $a2, 5 /* ACD558 800563B8 24010005 */ li $at, 5 .L800563BC: /* ACD55C 800563BC 0041001A */ div $zero, $v0, $at /* ACD560 800563C0 00003012 */ mflo $a2 /* ACD564 800563C4 00063400 */ sll $a2, $a2, 0x10 /* ACD568 800563C8 00063403 */ sra $a2, $a2, 0x10 .L800563CC: /* ACD56C 800563CC 860A0162 */ lh $t2, 0x162($s0) /* ACD570 800563D0 8E04008C */ lw $a0, 0x8c($s0) /* ACD574 800563D4 0C02003E */ jal func_800800F8 /* ACD578 800563D8 AFAA0010 */ sw $t2, 0x10($sp) /* ACD57C 800563DC 10000010 */ b .L80056420 /* ACD580 800563E0 8FBF0024 */ lw $ra, 0x24($sp) .L800563E4: /* ACD584 800563E4 0C016B99 */ jal func_8005AE64 /* ACD588 800563E8 02002825 */ move $a1, $s0 /* ACD58C 800563EC 1000000C */ b .L80056420 /* ACD590 800563F0 8FBF0024 */ lw $ra, 0x24($sp) glabel L800563F4 /* ACD594 800563F4 26080010 */ addiu $t0, $s0, 0x10 /* ACD598 800563F8 8509000A */ lh $t1, 0xa($t0) /* ACD59C 800563FC 252BFFFF */ addiu $t3, $t1, -1 /* ACD5A0 80056400 A50B000A */ sh $t3, 0xa($t0) /* ACD5A4 80056404 850C000A */ lh $t4, 0xa($t0) /* ACD5A8 80056408 05830005 */ bgezl $t4, .L80056420 /* ACD5AC 8005640C 8FBF0024 */ lw $ra, 0x24($sp) /* ACD5B0 80056410 860D015E */ lh $t5, 0x15e($s0) /* ACD5B4 80056414 25AE0001 */ addiu $t6, $t5, 1 /* ACD5B8 80056418 A60E015E */ sh $t6, 0x15e($s0) .L8005641C: glabel L8005641C /* ACD5BC 8005641C 8FBF0024 */ lw $ra, 0x24($sp) .L80056420: /* ACD5C0 80056420 8FB00020 */ lw $s0, 0x20($sp) /* ACD5C4 80056424 27BD00B8 */ addiu $sp, $sp, 0xb8 /* ACD5C8 80056428 03E00008 */ jr $ra /* ACD5CC 8005642C 24020001 */ li $v0, 1