mirror of https://github.com/zeldaret/oot.git
145 lines
6.2 KiB
ArmAsm
145 lines
6.2 KiB
ArmAsm
glabel func_8006BF1C
|
|
/* AE30BC 8006BF1C 27BDFF90 */ addiu $sp, $sp, -0x70
|
|
/* AE30C0 8006BF20 AFB30020 */ sw $s3, 0x20($sp)
|
|
/* AE30C4 8006BF24 AFB2001C */ sw $s2, 0x1c($sp)
|
|
/* AE30C8 8006BF28 AFB10018 */ sw $s1, 0x18($sp)
|
|
/* AE30CC 8006BF2C AFBF0024 */ sw $ra, 0x24($sp)
|
|
/* AE30D0 8006BF30 AFB00014 */ sw $s0, 0x14($sp)
|
|
/* AE30D4 8006BF34 00808825 */ move $s1, $a0
|
|
/* AE30D8 8006BF38 8C900000 */ lw $s0, ($a0)
|
|
/* AE30DC 8006BF3C 00009025 */ move $s2, $zero
|
|
/* AE30E0 8006BF40 00009825 */ move $s3, $zero
|
|
/* AE30E4 8006BF44 27A30044 */ addiu $v1, $sp, 0x44
|
|
.L8006BF48:
|
|
/* AE30E8 8006BF48 02002025 */ move $a0, $s0
|
|
/* AE30EC 8006BF4C 0C01AEF0 */ jal func_8006BBC0
|
|
/* AE30F0 8006BF50 AFA30030 */ sw $v1, 0x30($sp)
|
|
/* AE30F4 8006BF54 8FA30030 */ lw $v1, 0x30($sp)
|
|
/* AE30F8 8006BF58 24010040 */ li $at, 64
|
|
/* AE30FC 8006BF5C 02429021 */ addu $s2, $s2, $v0
|
|
/* AE3100 8006BF60 AC620000 */ sw $v0, ($v1)
|
|
/* AE3104 8006BF64 920E0004 */ lbu $t6, 4($s0)
|
|
/* AE3108 8006BF68 26730001 */ addiu $s3, $s3, 1
|
|
/* AE310C 8006BF6C 26100004 */ addiu $s0, $s0, 4
|
|
/* AE3110 8006BF70 31CF00E0 */ andi $t7, $t6, 0xe0
|
|
/* AE3114 8006BF74 11E1FFF4 */ beq $t7, $at, .L8006BF48
|
|
/* AE3118 8006BF78 24630004 */ addiu $v1, $v1, 4
|
|
/* AE311C 8006BF7C 56400004 */ bnezl $s2, .L8006BF90
|
|
/* AE3120 8006BF80 44922000 */ mtc1 $s2, $f4
|
|
/* AE3124 8006BF84 10000056 */ b .L8006C0E0
|
|
/* AE3128 8006BF88 00001025 */ move $v0, $zero
|
|
/* AE312C 8006BF8C 44922000 */ mtc1 $s2, $f4
|
|
.L8006BF90:
|
|
/* AE3130 8006BF90 0C00CFBE */ jal Math_Rand_ZeroFloat
|
|
/* AE3134 8006BF94 46802320 */ cvt.s.w $f12, $f4
|
|
/* AE3138 8006BF98 4600018D */ trunc.w.s $f6, $f0
|
|
/* AE313C 8006BF9C 00009025 */ move $s2, $zero
|
|
/* AE3140 8006BFA0 32650003 */ andi $a1, $s3, 3
|
|
/* AE3144 8006BFA4 44023000 */ mfc1 $v0, $f6
|
|
/* AE3148 8006BFA8 5A60004D */ blezl $s3, .L8006C0E0
|
|
/* AE314C 8006BFAC 00001025 */ move $v0, $zero
|
|
/* AE3150 8006BFB0 10A00014 */ beqz $a1, .L8006C004
|
|
/* AE3154 8006BFB4 00A02025 */ move $a0, $a1
|
|
/* AE3158 8006BFB8 0000C880 */ sll $t9, $zero, 2
|
|
/* AE315C 8006BFBC 27A80044 */ addiu $t0, $sp, 0x44
|
|
/* AE3160 8006BFC0 03281821 */ addu $v1, $t9, $t0
|
|
.L8006BFC4:
|
|
/* AE3164 8006BFC4 8C690000 */ lw $t1, ($v1)
|
|
/* AE3168 8006BFC8 51200008 */ beql $t1, $zero, .L8006BFEC
|
|
/* AE316C 8006BFCC 8E2A0000 */ lw $t2, ($s1)
|
|
/* AE3170 8006BFD0 18400003 */ blez $v0, .L8006BFE0
|
|
/* AE3174 8006BFD4 00000000 */ nop
|
|
/* AE3178 8006BFD8 10000003 */ b .L8006BFE8
|
|
/* AE317C 8006BFDC 2442FFFF */ addiu $v0, $v0, -1
|
|
.L8006BFE0:
|
|
/* AE3180 8006BFE0 1000003F */ b .L8006C0E0
|
|
/* AE3184 8006BFE4 24020001 */ li $v0, 1
|
|
.L8006BFE8:
|
|
/* AE3188 8006BFE8 8E2A0000 */ lw $t2, ($s1)
|
|
.L8006BFEC:
|
|
/* AE318C 8006BFEC 26520001 */ addiu $s2, $s2, 1
|
|
/* AE3190 8006BFF0 24630004 */ addiu $v1, $v1, 4
|
|
/* AE3194 8006BFF4 254B0004 */ addiu $t3, $t2, 4
|
|
/* AE3198 8006BFF8 1492FFF2 */ bne $a0, $s2, .L8006BFC4
|
|
/* AE319C 8006BFFC AE2B0000 */ sw $t3, ($s1)
|
|
/* AE31A0 8006C000 12530036 */ beq $s2, $s3, .L8006C0DC
|
|
.L8006C004:
|
|
/* AE31A4 8006C004 00126080 */ sll $t4, $s2, 2
|
|
/* AE31A8 8006C008 27AD0044 */ addiu $t5, $sp, 0x44
|
|
/* AE31AC 8006C00C 018D1821 */ addu $v1, $t4, $t5
|
|
.L8006C010:
|
|
/* AE31B0 8006C010 8C6E0000 */ lw $t6, ($v1)
|
|
/* AE31B4 8006C014 51C00008 */ beql $t6, $zero, .L8006C038
|
|
/* AE31B8 8006C018 8E2F0000 */ lw $t7, ($s1)
|
|
/* AE31BC 8006C01C 18400003 */ blez $v0, .L8006C02C
|
|
/* AE31C0 8006C020 00000000 */ nop
|
|
/* AE31C4 8006C024 10000003 */ b .L8006C034
|
|
/* AE31C8 8006C028 2442FFFF */ addiu $v0, $v0, -1
|
|
.L8006C02C:
|
|
/* AE31CC 8006C02C 1000002C */ b .L8006C0E0
|
|
/* AE31D0 8006C030 24020001 */ li $v0, 1
|
|
.L8006C034:
|
|
/* AE31D4 8006C034 8E2F0000 */ lw $t7, ($s1)
|
|
.L8006C038:
|
|
/* AE31D8 8006C038 25F80004 */ addiu $t8, $t7, 4
|
|
/* AE31DC 8006C03C AE380000 */ sw $t8, ($s1)
|
|
/* AE31E0 8006C040 8C790004 */ lw $t9, 4($v1)
|
|
/* AE31E4 8006C044 53200008 */ beql $t9, $zero, .L8006C068
|
|
/* AE31E8 8006C048 8E280000 */ lw $t0, ($s1)
|
|
/* AE31EC 8006C04C 18400003 */ blez $v0, .L8006C05C
|
|
/* AE31F0 8006C050 00000000 */ nop
|
|
/* AE31F4 8006C054 10000003 */ b .L8006C064
|
|
/* AE31F8 8006C058 2442FFFF */ addiu $v0, $v0, -1
|
|
.L8006C05C:
|
|
/* AE31FC 8006C05C 10000020 */ b .L8006C0E0
|
|
/* AE3200 8006C060 24020001 */ li $v0, 1
|
|
.L8006C064:
|
|
/* AE3204 8006C064 8E280000 */ lw $t0, ($s1)
|
|
.L8006C068:
|
|
/* AE3208 8006C068 25090004 */ addiu $t1, $t0, 4
|
|
/* AE320C 8006C06C AE290000 */ sw $t1, ($s1)
|
|
/* AE3210 8006C070 8C6A0008 */ lw $t2, 8($v1)
|
|
/* AE3214 8006C074 51400008 */ beql $t2, $zero, .L8006C098
|
|
/* AE3218 8006C078 8E2B0000 */ lw $t3, ($s1)
|
|
/* AE321C 8006C07C 18400003 */ blez $v0, .L8006C08C
|
|
/* AE3220 8006C080 00000000 */ nop
|
|
/* AE3224 8006C084 10000003 */ b .L8006C094
|
|
/* AE3228 8006C088 2442FFFF */ addiu $v0, $v0, -1
|
|
.L8006C08C:
|
|
/* AE322C 8006C08C 10000014 */ b .L8006C0E0
|
|
/* AE3230 8006C090 24020001 */ li $v0, 1
|
|
.L8006C094:
|
|
/* AE3234 8006C094 8E2B0000 */ lw $t3, ($s1)
|
|
.L8006C098:
|
|
/* AE3238 8006C098 256C0004 */ addiu $t4, $t3, 4
|
|
/* AE323C 8006C09C AE2C0000 */ sw $t4, ($s1)
|
|
/* AE3240 8006C0A0 8C6D000C */ lw $t5, 0xc($v1)
|
|
/* AE3244 8006C0A4 51A00008 */ beql $t5, $zero, .L8006C0C8
|
|
/* AE3248 8006C0A8 8E2E0000 */ lw $t6, ($s1)
|
|
/* AE324C 8006C0AC 18400003 */ blez $v0, .L8006C0BC
|
|
/* AE3250 8006C0B0 00000000 */ nop
|
|
/* AE3254 8006C0B4 10000003 */ b .L8006C0C4
|
|
/* AE3258 8006C0B8 2442FFFF */ addiu $v0, $v0, -1
|
|
.L8006C0BC:
|
|
/* AE325C 8006C0BC 10000008 */ b .L8006C0E0
|
|
/* AE3260 8006C0C0 24020001 */ li $v0, 1
|
|
.L8006C0C4:
|
|
/* AE3264 8006C0C4 8E2E0000 */ lw $t6, ($s1)
|
|
.L8006C0C8:
|
|
/* AE3268 8006C0C8 26520004 */ addiu $s2, $s2, 4
|
|
/* AE326C 8006C0CC 24630010 */ addiu $v1, $v1, 0x10
|
|
/* AE3270 8006C0D0 25CF0004 */ addiu $t7, $t6, 4
|
|
/* AE3274 8006C0D4 1653FFCE */ bne $s2, $s3, .L8006C010
|
|
/* AE3278 8006C0D8 AE2F0000 */ sw $t7, ($s1)
|
|
.L8006C0DC:
|
|
/* AE327C 8006C0DC 00001025 */ move $v0, $zero
|
|
.L8006C0E0:
|
|
/* AE3280 8006C0E0 8FBF0024 */ lw $ra, 0x24($sp)
|
|
/* AE3284 8006C0E4 8FB00014 */ lw $s0, 0x14($sp)
|
|
/* AE3288 8006C0E8 8FB10018 */ lw $s1, 0x18($sp)
|
|
/* AE328C 8006C0EC 8FB2001C */ lw $s2, 0x1c($sp)
|
|
/* AE3290 8006C0F0 8FB30020 */ lw $s3, 0x20($sp)
|
|
/* AE3294 8006C0F4 03E00008 */ jr $ra
|
|
/* AE3298 8006C0F8 27BD0070 */ addiu $sp, $sp, 0x70
|
|
|