mirror of https://github.com/zeldaret/oot.git
				
				
				
			
		
			
				
	
	
		
			250 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			250 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
.late_rodata
 | 
						|
glabel jtbl_801495F0
 | 
						|
    .word L800E9034
 | 
						|
    .word L800E9040
 | 
						|
    .word L800E9060
 | 
						|
    .word L800E9070
 | 
						|
    .word L800E91B0
 | 
						|
    .word L800E92A0
 | 
						|
    .word L800E91E8
 | 
						|
    .word L800E91E8
 | 
						|
    .word L800E9278
 | 
						|
 | 
						|
glabel D_80149614
 | 
						|
    .float 32767
 | 
						|
 | 
						|
glabel D_80149618
 | 
						|
    .float 1.0E-5
 | 
						|
 | 
						|
.text
 | 
						|
glabel func_800E9004
 | 
						|
/* B601A4 800E9004 90830000 */  lbu   $v1, ($a0)
 | 
						|
/* B601A8 800E9008 00601025 */  move  $v0, $v1
 | 
						|
/* B601AC 800E900C 3042000F */  andi  $v0, $v0, 0xf
 | 
						|
/* B601B0 800E9010 2C410009 */  sltiu $at, $v0, 9
 | 
						|
/* B601B4 800E9014 102000A2 */  beqz  $at, .L800E92A0
 | 
						|
/* B601B8 800E9018 00402825 */   move  $a1, $v0
 | 
						|
/* B601BC 800E901C 00027080 */  sll   $t6, $v0, 2
 | 
						|
/* B601C0 800E9020 3C018015 */  lui   $at, %hi(jtbl_801495F0)
 | 
						|
/* B601C4 800E9024 002E0821 */  addu  $at, $at, $t6
 | 
						|
/* B601C8 800E9028 8C2E95F0 */  lw    $t6, %lo(jtbl_801495F0)($at)
 | 
						|
/* B601CC 800E902C 01C00008 */  jr    $t6
 | 
						|
/* B601D0 800E9030 00000000 */   nop
 | 
						|
glabel L800E9034
 | 
						|
/* B601D4 800E9034 44800000 */  mtc1  $zero, $f0
 | 
						|
/* B601D8 800E9038 03E00008 */  jr    $ra
 | 
						|
/* B601DC 800E903C 00000000 */   nop
 | 
						|
glabel L800E9040
 | 
						|
/* B601E0 800E9040 8C8F0000 */  lw    $t7, ($a0)
 | 
						|
/* B601E4 800E9044 3068FFF0 */  andi  $t0, $v1, 0xfff0
 | 
						|
/* B601E8 800E9048 35090005 */  ori   $t1, $t0, 5
 | 
						|
/* B601EC 800E904C 000FC840 */  sll   $t9, $t7, 1
 | 
						|
/* B601F0 800E9050 07230004 */  bgezl $t9, .L800E9064
 | 
						|
/* B601F4 800E9054 306AFFF0 */   andi  $t2, $v1, 0xfff0
 | 
						|
/* B601F8 800E9058 10000091 */  b     .L800E92A0
 | 
						|
/* B601FC 800E905C A0890000 */   sb    $t1, ($a0)
 | 
						|
glabel L800E9060
 | 
						|
/* B60200 800E9060 306AFFF0 */  andi  $t2, $v1, 0xfff0
 | 
						|
.L800E9064:
 | 
						|
/* B60204 800E9064 354B0003 */  ori   $t3, $t2, 3
 | 
						|
/* B60208 800E9068 A0800001 */  sb    $zero, 1($a0)
 | 
						|
/* B6020C 800E906C A08B0000 */  sb    $t3, ($a0)
 | 
						|
.L800E9070:
 | 
						|
glabel L800E9070
 | 
						|
/* B60210 800E9070 908D0001 */  lbu   $t5, 1($a0)
 | 
						|
/* B60214 800E9074 8C8C001C */  lw    $t4, 0x1c($a0)
 | 
						|
/* B60218 800E9078 2401FFFD */  li    $at, -3
 | 
						|
/* B6021C 800E907C 000D7080 */  sll   $t6, $t5, 2
 | 
						|
/* B60220 800E9080 018E1021 */  addu  $v0, $t4, $t6
 | 
						|
/* B60224 800E9084 844F0000 */  lh    $t7, ($v0)
 | 
						|
/* B60228 800E9088 A48F0002 */  sh    $t7, 2($a0)
 | 
						|
/* B6022C 800E908C 84850002 */  lh    $a1, 2($a0)
 | 
						|
/* B60230 800E9090 10A10013 */  beq   $a1, $at, .L800E90E0
 | 
						|
/* B60234 800E9094 2401FFFE */   li    $at, -2
 | 
						|
/* B60238 800E9098 10A1000E */  beq   $a1, $at, .L800E90D4
 | 
						|
/* B6023C 800E909C 2401FFFF */   li    $at, -1
 | 
						|
/* B60240 800E90A0 50A10008 */  beql  $a1, $at, .L800E90C4
 | 
						|
/* B60244 800E90A4 90880000 */   lbu   $t0, ($a0)
 | 
						|
/* B60248 800E90A8 54A00013 */  bnezl $a1, .L800E90F8
 | 
						|
/* B6024C 800E90AC 44852000 */   mtc1  $a1, $f4
 | 
						|
/* B60250 800E90B0 90980000 */  lbu   $t8, ($a0)
 | 
						|
/* B60254 800E90B4 3319FFF0 */  andi  $t9, $t8, 0xfff0
 | 
						|
/* B60258 800E90B8 10000038 */  b     .L800E919C
 | 
						|
/* B6025C 800E90BC A0990000 */   sb    $t9, ($a0)
 | 
						|
/* B60260 800E90C0 90880000 */  lbu   $t0, ($a0)
 | 
						|
.L800E90C4:
 | 
						|
/* B60264 800E90C4 3109FFF0 */  andi  $t1, $t0, 0xfff0
 | 
						|
/* B60268 800E90C8 352A0005 */  ori   $t2, $t1, 5
 | 
						|
/* B6026C 800E90CC 10000033 */  b     .L800E919C
 | 
						|
/* B60270 800E90D0 A08A0000 */   sb    $t2, ($a0)
 | 
						|
.L800E90D4:
 | 
						|
/* B60274 800E90D4 844B0002 */  lh    $t3, 2($v0)
 | 
						|
/* B60278 800E90D8 1000FFE5 */  b     .L800E9070
 | 
						|
/* B6027C 800E90DC A08B0001 */   sb    $t3, 1($a0)
 | 
						|
.L800E90E0:
 | 
						|
/* B60280 800E90E0 908D0000 */  lbu   $t5, ($a0)
 | 
						|
/* B60284 800E90E4 31ACFFF0 */  andi  $t4, $t5, 0xfff0
 | 
						|
/* B60288 800E90E8 358E0001 */  ori   $t6, $t4, 1
 | 
						|
/* B6028C 800E90EC 1000002B */  b     .L800E919C
 | 
						|
/* B60290 800E90F0 A08E0000 */   sb    $t6, ($a0)
 | 
						|
/* B60294 800E90F4 44852000 */  mtc1  $a1, $f4
 | 
						|
.L800E90F8:
 | 
						|
/* B60298 800E90F8 3C018017 */  lui   $at, %hi(D_801719EC)
 | 
						|
/* B6029C 800E90FC C42819EC */  lwc1  $f8, %lo(D_801719EC)($at)
 | 
						|
/* B602A0 800E9100 468021A0 */  cvt.s.w $f6, $f4
 | 
						|
/* B602A4 800E9104 24190001 */  li    $t9, 1
 | 
						|
/* B602A8 800E9108 46083282 */  mul.s $f10, $f6, $f8
 | 
						|
/* B602AC 800E910C 4600540D */  trunc.w.s $f16, $f10
 | 
						|
/* B602B0 800E9110 44188000 */  mfc1  $t8, $f16
 | 
						|
/* B602B4 800E9114 00000000 */  nop
 | 
						|
/* B602B8 800E9118 A4980002 */  sh    $t8, 2($a0)
 | 
						|
/* B602BC 800E911C 84850002 */  lh    $a1, 2($a0)
 | 
						|
/* B602C0 800E9120 54A00004 */  bnezl $a1, .L800E9134
 | 
						|
/* B602C4 800E9124 90820001 */   lbu   $v0, 1($a0)
 | 
						|
/* B602C8 800E9128 A4990002 */  sh    $t9, 2($a0)
 | 
						|
/* B602CC 800E912C 84850002 */  lh    $a1, 2($a0)
 | 
						|
/* B602D0 800E9130 90820001 */  lbu   $v0, 1($a0)
 | 
						|
.L800E9134:
 | 
						|
/* B602D4 800E9134 8C88001C */  lw    $t0, 0x1c($a0)
 | 
						|
/* B602D8 800E9138 3C018015 */  lui   $at, %hi(D_80149614)
 | 
						|
/* B602DC 800E913C 00024880 */  sll   $t1, $v0, 2
 | 
						|
/* B602E0 800E9140 01095021 */  addu  $t2, $t0, $t1
 | 
						|
/* B602E4 800E9144 854B0002 */  lh    $t3, 2($t2)
 | 
						|
/* B602E8 800E9148 C4269614 */  lwc1  $f6, %lo(D_80149614)($at)
 | 
						|
/* B602EC 800E914C 908D0000 */  lbu   $t5, ($a0)
 | 
						|
/* B602F0 800E9150 448B9000 */  mtc1  $t3, $f18
 | 
						|
/* B602F4 800E9154 244F0001 */  addiu $t7, $v0, 1
 | 
						|
/* B602F8 800E9158 31ACFFF0 */  andi  $t4, $t5, 0xfff0
 | 
						|
/* B602FC 800E915C 46809120 */  cvt.s.w $f4, $f18
 | 
						|
/* B60300 800E9160 C4920010 */  lwc1  $f18, 0x10($a0)
 | 
						|
/* B60304 800E9164 358E0004 */  ori   $t6, $t4, 4
 | 
						|
/* B60308 800E9168 A08E0000 */  sb    $t6, ($a0)
 | 
						|
/* B6030C 800E916C A08F0001 */  sb    $t7, 1($a0)
 | 
						|
/* B60310 800E9170 46062203 */  div.s $f8, $f4, $f6
 | 
						|
/* B60314 800E9174 44853000 */  mtc1  $a1, $f6
 | 
						|
/* B60318 800E9178 E4880014 */  swc1  $f8, 0x14($a0)
 | 
						|
/* B6031C 800E917C C4800014 */  lwc1  $f0, 0x14($a0)
 | 
						|
/* B60320 800E9180 46803220 */  cvt.s.w $f8, $f6
 | 
						|
/* B60324 800E9184 46000282 */  mul.s $f10, $f0, $f0
 | 
						|
/* B60328 800E9188 E48A0014 */  swc1  $f10, 0x14($a0)
 | 
						|
/* B6032C 800E918C C4900014 */  lwc1  $f16, 0x14($a0)
 | 
						|
/* B60330 800E9190 46128101 */  sub.s $f4, $f16, $f18
 | 
						|
/* B60334 800E9194 46082283 */  div.s $f10, $f4, $f8
 | 
						|
/* B60338 800E9198 E48A0008 */  swc1  $f10, 8($a0)
 | 
						|
.L800E919C:
 | 
						|
/* B6033C 800E919C 90980000 */  lbu   $t8, ($a0)
 | 
						|
/* B60340 800E91A0 24010004 */  li    $at, 4
 | 
						|
/* B60344 800E91A4 3319000F */  andi  $t9, $t8, 0xf
 | 
						|
/* B60348 800E91A8 5721003E */  bnel  $t9, $at, .L800E92A4
 | 
						|
/* B6034C 800E91AC 8C820000 */   lw    $v0, ($a0)
 | 
						|
glabel L800E91B0
 | 
						|
/* B60350 800E91B0 84880002 */  lh    $t0, 2($a0)
 | 
						|
/* B60354 800E91B4 C4900010 */  lwc1  $f16, 0x10($a0)
 | 
						|
/* B60358 800E91B8 C4920008 */  lwc1  $f18, 8($a0)
 | 
						|
/* B6035C 800E91BC 2509FFFF */  addiu $t1, $t0, -1
 | 
						|
/* B60360 800E91C0 A4890002 */  sh    $t1, 2($a0)
 | 
						|
/* B60364 800E91C4 46128180 */  add.s $f6, $f16, $f18
 | 
						|
/* B60368 800E91C8 848A0002 */  lh    $t2, 2($a0)
 | 
						|
/* B6036C 800E91CC 1D400034 */  bgtz  $t2, .L800E92A0
 | 
						|
/* B60370 800E91D0 E4860010 */   swc1  $f6, 0x10($a0)
 | 
						|
/* B60374 800E91D4 908B0000 */  lbu   $t3, ($a0)
 | 
						|
/* B60378 800E91D8 316DFFF0 */  andi  $t5, $t3, 0xfff0
 | 
						|
/* B6037C 800E91DC 35AC0003 */  ori   $t4, $t5, 3
 | 
						|
/* B60380 800E91E0 1000002F */  b     .L800E92A0
 | 
						|
/* B60384 800E91E4 A08C0000 */   sb    $t4, ($a0)
 | 
						|
glabel L800E91E8
 | 
						|
/* B60388 800E91E8 44806000 */  mtc1  $zero, $f12
 | 
						|
/* B6038C 800E91EC C4800004 */  lwc1  $f0, 4($a0)
 | 
						|
/* B60390 800E91F0 C4840010 */  lwc1  $f4, 0x10($a0)
 | 
						|
/* B60394 800E91F4 C488000C */  lwc1  $f8, 0xc($a0)
 | 
						|
/* B60398 800E91F8 46006032 */  c.eq.s $f12, $f0
 | 
						|
/* B6039C 800E91FC 24010006 */  li    $at, 6
 | 
						|
/* B603A0 800E9200 46082281 */  sub.s $f10, $f4, $f8
 | 
						|
/* B603A4 800E9204 45010010 */  bc1t  .L800E9248
 | 
						|
/* B603A8 800E9208 E48A0010 */   swc1  $f10, 0x10($a0)
 | 
						|
/* B603AC 800E920C 14A1000E */  bne   $a1, $at, .L800E9248
 | 
						|
/* B603B0 800E9210 00000000 */   nop
 | 
						|
/* B603B4 800E9214 C4900010 */  lwc1  $f16, 0x10($a0)
 | 
						|
/* B603B8 800E9218 240E0080 */  li    $t6, 128
 | 
						|
/* B603BC 800E921C 4600803C */  c.lt.s $f16, $f0
 | 
						|
/* B603C0 800E9220 00000000 */  nop
 | 
						|
/* B603C4 800E9224 4502001F */  bc1fl .L800E92A4
 | 
						|
/* B603C8 800E9228 8C820000 */   lw    $v0, ($a0)
 | 
						|
/* B603CC 800E922C 908F0000 */  lbu   $t7, ($a0)
 | 
						|
/* B603D0 800E9230 E4800010 */  swc1  $f0, 0x10($a0)
 | 
						|
/* B603D4 800E9234 A48E0002 */  sh    $t6, 2($a0)
 | 
						|
/* B603D8 800E9238 31F8FFF0 */  andi  $t8, $t7, 0xfff0
 | 
						|
/* B603DC 800E923C 37190008 */  ori   $t9, $t8, 8
 | 
						|
/* B603E0 800E9240 10000017 */  b     .L800E92A0
 | 
						|
/* B603E4 800E9244 A0990000 */   sb    $t9, ($a0)
 | 
						|
.L800E9248:
 | 
						|
/* B603E8 800E9248 3C018015 */  lui   $at, %hi(D_80149618)
 | 
						|
/* B603EC 800E924C C4269618 */  lwc1  $f6, %lo(D_80149618)($at)
 | 
						|
/* B603F0 800E9250 C4920010 */  lwc1  $f18, 0x10($a0)
 | 
						|
/* B603F4 800E9254 4606903C */  c.lt.s $f18, $f6
 | 
						|
/* B603F8 800E9258 00000000 */  nop
 | 
						|
/* B603FC 800E925C 45020011 */  bc1fl .L800E92A4
 | 
						|
/* B60400 800E9260 8C820000 */   lw    $v0, ($a0)
 | 
						|
/* B60404 800E9264 90880000 */  lbu   $t0, ($a0)
 | 
						|
/* B60408 800E9268 E48C0010 */  swc1  $f12, 0x10($a0)
 | 
						|
/* B6040C 800E926C 3109FFF0 */  andi  $t1, $t0, 0xfff0
 | 
						|
/* B60410 800E9270 1000000B */  b     .L800E92A0
 | 
						|
/* B60414 800E9274 A0890000 */   sb    $t1, ($a0)
 | 
						|
glabel L800E9278
 | 
						|
/* B60418 800E9278 848A0002 */  lh    $t2, 2($a0)
 | 
						|
/* B6041C 800E927C 254BFFFF */  addiu $t3, $t2, -1
 | 
						|
/* B60420 800E9280 A48B0002 */  sh    $t3, 2($a0)
 | 
						|
/* B60424 800E9284 848D0002 */  lh    $t5, 2($a0)
 | 
						|
/* B60428 800E9288 55A00006 */  bnezl $t5, .L800E92A4
 | 
						|
/* B6042C 800E928C 8C820000 */   lw    $v0, ($a0)
 | 
						|
/* B60430 800E9290 908C0000 */  lbu   $t4, ($a0)
 | 
						|
/* B60434 800E9294 318EFFF0 */  andi  $t6, $t4, 0xfff0
 | 
						|
/* B60438 800E9298 35CF0007 */  ori   $t7, $t6, 7
 | 
						|
/* B6043C 800E929C A08F0000 */  sb    $t7, ($a0)
 | 
						|
.L800E92A0:
 | 
						|
glabel L800E92A0
 | 
						|
/* B60440 800E92A0 8C820000 */  lw    $v0, ($a0)
 | 
						|
.L800E92A4:
 | 
						|
/* B60444 800E92A4 44806000 */  mtc1  $zero, $f12
 | 
						|
/* B60448 800E92A8 3C013F80 */  li    $at, 0x3F800000 # 0.000000
 | 
						|
/* B6044C 800E92AC 0002C880 */  sll   $t9, $v0, 2
 | 
						|
/* B60450 800E92B0 07230009 */  bgezl $t9, .L800E92D8
 | 
						|
/* B60454 800E92B4 000270C0 */   sll   $t6, $v0, 3
 | 
						|
/* B60458 800E92B8 90880000 */  lbu   $t0, ($a0)
 | 
						|
/* B6045C 800E92BC 3109FFF0 */  andi  $t1, $t0, 0xfff0
 | 
						|
/* B60460 800E92C0 352B0006 */  ori   $t3, $t1, 6
 | 
						|
/* B60464 800E92C4 A08B0000 */  sb    $t3, ($a0)
 | 
						|
/* B60468 800E92C8 316D00DF */  andi  $t5, $t3, 0xdf
 | 
						|
/* B6046C 800E92CC A08D0000 */  sb    $t5, ($a0)
 | 
						|
/* B60470 800E92D0 8C820000 */  lw    $v0, ($a0)
 | 
						|
/* B60474 800E92D4 000270C0 */  sll   $t6, $v0, 3
 | 
						|
.L800E92D8:
 | 
						|
/* B60478 800E92D8 05C30008 */  bgezl $t6, .L800E92FC
 | 
						|
/* B6047C 800E92DC C4820010 */   lwc1  $f2, 0x10($a0)
 | 
						|
/* B60480 800E92E0 908F0000 */  lbu   $t7, ($a0)
 | 
						|
/* B60484 800E92E4 31F8FFF0 */  andi  $t8, $t7, 0xfff0
 | 
						|
/* B60488 800E92E8 37080007 */  ori   $t0, $t8, 7
 | 
						|
/* B6048C 800E92EC A0880000 */  sb    $t0, ($a0)
 | 
						|
/* B60490 800E92F0 310900EF */  andi  $t1, $t0, 0xef
 | 
						|
/* B60494 800E92F4 A0890000 */  sb    $t1, ($a0)
 | 
						|
/* B60498 800E92F8 C4820010 */  lwc1  $f2, 0x10($a0)
 | 
						|
.L800E92FC:
 | 
						|
/* B6049C 800E92FC 460C103C */  c.lt.s $f2, $f12
 | 
						|
/* B604A0 800E9300 00000000 */  nop
 | 
						|
/* B604A4 800E9304 45020004 */  bc1fl .L800E9318
 | 
						|
/* B604A8 800E9308 44816000 */   mtc1  $at, $f12
 | 
						|
/* B604AC 800E930C 03E00008 */  jr    $ra
 | 
						|
/* B604B0 800E9310 46006006 */   mov.s $f0, $f12
 | 
						|
/* B604B4 800E9314 44816000 */  mtc1  $at, $f12
 | 
						|
.L800E9318:
 | 
						|
/* B604B8 800E9318 00000000 */  nop
 | 
						|
/* B604BC 800E931C 4602603C */  c.lt.s $f12, $f2
 | 
						|
/* B604C0 800E9320 00000000 */  nop
 | 
						|
/* B604C4 800E9324 45020004 */  bc1fl .L800E9338
 | 
						|
/* B604C8 800E9328 46001006 */   mov.s $f0, $f2
 | 
						|
/* B604CC 800E932C 03E00008 */  jr    $ra
 | 
						|
/* B604D0 800E9330 46006006 */   mov.s $f0, $f12
 | 
						|
/* B604D4 800E9334 46001006 */  mov.s $f0, $f2
 | 
						|
.L800E9338:
 | 
						|
/* B604D8 800E9338 03E00008 */  jr    $ra
 | 
						|
/* B604DC 800E933C 00000000 */   nop |