mirror of
https://github.com/n64decomp/mk64
synced 2026-06-28 09:50:46 -04:00
8ab4557b39
* Split asm using autodecompiler * Placed libultra bss and linked more C
222 lines
12 KiB
ArmAsm
222 lines
12 KiB
ArmAsm
glabel func_8000F2DC
|
|
/* 00FEDC 8000F2DC 27BDFFC8 */ addiu $sp, $sp, -0x38
|
|
/* 00FEE0 8000F2E0 3C0E800E */ lui $t6, %hi(gCurrentCourseId)
|
|
/* 00FEE4 8000F2E4 85CEC5A0 */ lh $t6, %lo(gCurrentCourseId)($t6)
|
|
/* 00FEE8 8000F2E8 3C18800E */ lui $t8, %hi(D_800DD9D0)
|
|
/* 00FEEC 8000F2EC 2718D9D0 */ addiu $t8, %lo(D_800DD9D0) # addiu $t8, $t8, -0x2630
|
|
/* 00FEF0 8000F2F0 000E7900 */ sll $t7, $t6, 4
|
|
/* 00FEF4 8000F2F4 AFBF0034 */ sw $ra, 0x34($sp)
|
|
/* 00FEF8 8000F2F8 AFB70030 */ sw $s7, 0x30($sp)
|
|
/* 00FEFC 8000F2FC AFB6002C */ sw $s6, 0x2c($sp)
|
|
/* 00FF00 8000F300 AFB50028 */ sw $s5, 0x28($sp)
|
|
/* 00FF04 8000F304 AFB40024 */ sw $s4, 0x24($sp)
|
|
/* 00FF08 8000F308 AFB30020 */ sw $s3, 0x20($sp)
|
|
/* 00FF0C 8000F30C AFB2001C */ sw $s2, 0x1c($sp)
|
|
/* 00FF10 8000F310 AFB10018 */ sw $s1, 0x18($sp)
|
|
/* 00FF14 8000F314 AFB00014 */ sw $s0, 0x14($sp)
|
|
/* 00FF18 8000F318 01F81021 */ addu $v0, $t7, $t8
|
|
/* 00FF1C 8000F31C 94590000 */ lhu $t9, ($v0)
|
|
/* 00FF20 8000F320 3C038016 */ lui $v1, %hi(D_80163368) # $v1, 0x8016
|
|
/* 00FF24 8000F324 24633368 */ addiu $v1, %lo(D_80163368) # addiu $v1, $v1, 0x3368
|
|
/* 00FF28 8000F328 AC790000 */ sw $t9, ($v1)
|
|
/* 00FF2C 8000F32C 94480002 */ lhu $t0, 2($v0)
|
|
/* 00FF30 8000F330 AC680004 */ sw $t0, 4($v1)
|
|
/* 00FF34 8000F334 94490004 */ lhu $t1, 4($v0)
|
|
/* 00FF38 8000F338 AC690008 */ sw $t1, 8($v1)
|
|
/* 00FF3C 8000F33C 944A0006 */ lhu $t2, 6($v0)
|
|
/* 00FF40 8000F340 AC6A000C */ sw $t2, 0xc($v1)
|
|
/* 00FF44 8000F344 94450008 */ lhu $a1, 8($v0)
|
|
/* 00FF48 8000F348 0C0A9EDC */ jal func_802A7B70
|
|
/* 00FF4C 8000F34C 00052080 */ sll $a0, $a1, 2
|
|
/* 00FF50 8000F350 3C018016 */ lui $at, %hi(D_80163598) # $at, 0x8016
|
|
/* 00FF54 8000F354 3C118016 */ lui $s1, %hi(D_80163368) # $s1, 0x8016
|
|
/* 00FF58 8000F358 3C138016 */ lui $s3, %hi(D_80164550) # $s3, 0x8016
|
|
/* 00FF5C 8000F35C 3C148016 */ lui $s4, %hi(D_80164560) # $s4, 0x8016
|
|
/* 00FF60 8000F360 3C128016 */ lui $s2, %hi(D_80164570) # $s2, 0x8016
|
|
/* 00FF64 8000F364 3C168016 */ lui $s6, %hi(D_80164580) # $s6, 0x8016
|
|
/* 00FF68 8000F368 3C178016 */ lui $s7, %hi(D_80164590) # $s7, 0x8016
|
|
/* 00FF6C 8000F36C 3C158016 */ lui $s5, %hi(D_801645A0) # $s5, 0x8016
|
|
/* 00FF70 8000F370 3C108016 */ lui $s0, %hi(D_801645B0) # $s0, 0x8016
|
|
/* 00FF74 8000F374 AC223598 */ sw $v0, %lo(D_80163598)($at)
|
|
/* 00FF78 8000F378 261045B0 */ addiu $s0, %lo(D_801645B0) # addiu $s0, $s0, 0x45b0
|
|
/* 00FF7C 8000F37C 26B545A0 */ addiu $s5, %lo(D_801645A0) # addiu $s5, $s5, 0x45a0
|
|
/* 00FF80 8000F380 26F74590 */ addiu $s7, %lo(D_80164590) # addiu $s7, $s7, 0x4590
|
|
/* 00FF84 8000F384 26D64580 */ addiu $s6, %lo(D_80164580) # addiu $s6, $s6, 0x4580
|
|
/* 00FF88 8000F388 26524570 */ addiu $s2, %lo(D_80164570) # addiu $s2, $s2, 0x4570
|
|
/* 00FF8C 8000F38C 26944560 */ addiu $s4, %lo(D_80164560) # addiu $s4, $s4, 0x4560
|
|
/* 00FF90 8000F390 26734550 */ addiu $s3, %lo(D_80164550) # addiu $s3, $s3, 0x4550
|
|
/* 00FF94 8000F394 26313368 */ addiu $s1, %lo(D_80163368) # addiu $s1, $s1, 0x3368
|
|
.L8000F398:
|
|
/* 00FF98 8000F398 8E240000 */ lw $a0, ($s1)
|
|
/* 00FF9C 8000F39C 000458C0 */ sll $t3, $a0, 3
|
|
/* 00FFA0 8000F3A0 0C0A9EDC */ jal func_802A7B70
|
|
/* 00FFA4 8000F3A4 01602025 */ move $a0, $t3
|
|
/* 00FFA8 8000F3A8 8E240000 */ lw $a0, ($s1)
|
|
/* 00FFAC 8000F3AC AE620000 */ sw $v0, ($s3)
|
|
/* 00FFB0 8000F3B0 000460C0 */ sll $t4, $a0, 3
|
|
/* 00FFB4 8000F3B4 0C0A9EDC */ jal func_802A7B70
|
|
/* 00FFB8 8000F3B8 01802025 */ move $a0, $t4
|
|
/* 00FFBC 8000F3BC 8E240000 */ lw $a0, ($s1)
|
|
/* 00FFC0 8000F3C0 AE820000 */ sw $v0, ($s4)
|
|
/* 00FFC4 8000F3C4 000468C0 */ sll $t5, $a0, 3
|
|
/* 00FFC8 8000F3C8 0C0A9EDC */ jal func_802A7B70
|
|
/* 00FFCC 8000F3CC 01A02025 */ move $a0, $t5
|
|
/* 00FFD0 8000F3D0 8E240000 */ lw $a0, ($s1)
|
|
/* 00FFD4 8000F3D4 AE420000 */ sw $v0, ($s2)
|
|
/* 00FFD8 8000F3D8 00047040 */ sll $t6, $a0, 1
|
|
/* 00FFDC 8000F3DC 0C0A9EDC */ jal func_802A7B70
|
|
/* 00FFE0 8000F3E0 01C02025 */ move $a0, $t6
|
|
/* 00FFE4 8000F3E4 8E240000 */ lw $a0, ($s1)
|
|
/* 00FFE8 8000F3E8 AEC20000 */ sw $v0, ($s6)
|
|
/* 00FFEC 8000F3EC 00047840 */ sll $t7, $a0, 1
|
|
/* 00FFF0 8000F3F0 0C0A9EDC */ jal func_802A7B70
|
|
/* 00FFF4 8000F3F4 01E02025 */ move $a0, $t7
|
|
/* 00FFF8 8000F3F8 8E240000 */ lw $a0, ($s1)
|
|
/* 00FFFC 8000F3FC AEE20000 */ sw $v0, ($s7)
|
|
/* 010000 8000F400 0004C040 */ sll $t8, $a0, 1
|
|
/* 010004 8000F404 0C0A9EDC */ jal func_802A7B70
|
|
/* 010008 8000F408 03002025 */ move $a0, $t8
|
|
/* 01000C 8000F40C 26B50004 */ addiu $s5, $s5, 4
|
|
/* 010010 8000F410 02B0082B */ sltu $at, $s5, $s0
|
|
/* 010014 8000F414 26310004 */ addiu $s1, $s1, 4
|
|
/* 010018 8000F418 26730004 */ addiu $s3, $s3, 4
|
|
/* 01001C 8000F41C 26940004 */ addiu $s4, $s4, 4
|
|
/* 010020 8000F420 26520004 */ addiu $s2, $s2, 4
|
|
/* 010024 8000F424 26D60004 */ addiu $s6, $s6, 4
|
|
/* 010028 8000F428 26F70004 */ addiu $s7, $s7, 4
|
|
/* 01002C 8000F42C 1420FFDA */ bnez $at, .L8000F398
|
|
/* 010030 8000F430 AEA2FFFC */ sw $v0, -4($s5)
|
|
/* 010034 8000F434 3C198016 */ lui $t9, %hi(D_80164550) # $t9, 0x8016
|
|
/* 010038 8000F438 8F394550 */ lw $t9, %lo(D_80164550)($t9)
|
|
/* 01003C 8000F43C 3C088016 */ lui $t0, %hi(D_80164560) # $t0, 0x8016
|
|
/* 010040 8000F440 8D084560 */ lw $t0, %lo(D_80164560)($t0)
|
|
/* 010044 8000F444 3C018016 */ lui $at, %hi(D_80164490) # $at, 0x8016
|
|
/* 010048 8000F448 3C098016 */ lui $t1, %hi(D_80164570) # $t1, 0x8016
|
|
/* 01004C 8000F44C AC394490 */ sw $t9, %lo(D_80164490)($at)
|
|
/* 010050 8000F450 8D294570 */ lw $t1, %lo(D_80164570)($t1)
|
|
/* 010054 8000F454 3C018016 */ lui $at, %hi(D_801631D0) # $at, 0x8016
|
|
/* 010058 8000F458 3C0A8016 */ lui $t2, %hi(D_80164580) # $t2, 0x8016
|
|
/* 01005C 8000F45C AC2831D0 */ sw $t0, %lo(D_801631D0)($at)
|
|
/* 010060 8000F460 8D4A4580 */ lw $t2, %lo(D_80164580)($t2)
|
|
/* 010064 8000F464 3C018016 */ lui $at, %hi(D_801631D4) # $at, 0x8016
|
|
/* 010068 8000F468 3C0B8016 */ lui $t3, %hi(D_80164590) # $t3, 0x8016
|
|
/* 01006C 8000F46C AC2931D4 */ sw $t1, %lo(D_801631D4)($at)
|
|
/* 010070 8000F470 8D6B4590 */ lw $t3, %lo(D_80164590)($t3)
|
|
/* 010074 8000F474 3C018016 */ lui $at, %hi(D_801631D8) # $at, 0x8016
|
|
/* 010078 8000F478 3C0C8016 */ lui $t4, %hi(D_801645A0) # $t4, 0x8016
|
|
/* 01007C 8000F47C AC2A31D8 */ sw $t2, %lo(D_801631D8)($at)
|
|
/* 010080 8000F480 8D8C45A0 */ lw $t4, %lo(D_801645A0)($t4)
|
|
/* 010084 8000F484 3C018016 */ lui $at, %hi(D_801631DC) # $at, 0x8016
|
|
/* 010088 8000F488 AC2B31DC */ sw $t3, %lo(D_801631DC)($at)
|
|
/* 01008C 8000F48C 3C018016 */ lui $at, %hi(D_801645E0) # $at, 0x8016
|
|
/* 010090 8000F490 3C118016 */ lui $s1, %hi(D_80163368) # $s1, 0x8016
|
|
/* 010094 8000F494 3C138016 */ lui $s3, %hi(D_80164550) # $s3, 0x8016
|
|
/* 010098 8000F498 3C148016 */ lui $s4, %hi(D_80164560) # $s4, 0x8016
|
|
/* 01009C 8000F49C 3C128016 */ lui $s2, %hi(D_80164570) # $s2, 0x8016
|
|
/* 0100A0 8000F4A0 3C108016 */ lui $s0, %hi(D_80164580) # $s0, 0x8016
|
|
/* 0100A4 8000F4A4 26104580 */ addiu $s0, %lo(D_80164580) # addiu $s0, $s0, 0x4580
|
|
/* 0100A8 8000F4A8 26524570 */ addiu $s2, %lo(D_80164570) # addiu $s2, $s2, 0x4570
|
|
/* 0100AC 8000F4AC 26944560 */ addiu $s4, %lo(D_80164560) # addiu $s4, $s4, 0x4560
|
|
/* 0100B0 8000F4B0 26734550 */ addiu $s3, %lo(D_80164550) # addiu $s3, $s3, 0x4550
|
|
/* 0100B4 8000F4B4 26313368 */ addiu $s1, %lo(D_80163368) # addiu $s1, $s1, 0x3368
|
|
/* 0100B8 8000F4B8 AC2C45E0 */ sw $t4, %lo(D_801645E0)($at)
|
|
.L8000F4BC:
|
|
/* 0100BC 8000F4BC 8E640000 */ lw $a0, ($s3)
|
|
/* 0100C0 8000F4C0 0C003CAF */ jal func_8000F2BC
|
|
/* 0100C4 8000F4C4 8E250000 */ lw $a1, ($s1)
|
|
/* 0100C8 8000F4C8 8E840000 */ lw $a0, ($s4)
|
|
/* 0100CC 8000F4CC 0C003CAF */ jal func_8000F2BC
|
|
/* 0100D0 8000F4D0 8E250000 */ lw $a1, ($s1)
|
|
/* 0100D4 8000F4D4 8E440000 */ lw $a0, ($s2)
|
|
/* 0100D8 8000F4D8 0C003CAF */ jal func_8000F2BC
|
|
/* 0100DC 8000F4DC 8E250000 */ lw $a1, ($s1)
|
|
/* 0100E0 8000F4E0 26520004 */ addiu $s2, $s2, 4
|
|
/* 0100E4 8000F4E4 0250082B */ sltu $at, $s2, $s0
|
|
/* 0100E8 8000F4E8 26310004 */ addiu $s1, $s1, 4
|
|
/* 0100EC 8000F4EC 26730004 */ addiu $s3, $s3, 4
|
|
/* 0100F0 8000F4F0 1420FFF2 */ bnez $at, .L8000F4BC
|
|
/* 0100F4 8000F4F4 26940004 */ addiu $s4, $s4, 4
|
|
/* 0100F8 8000F4F8 00008025 */ move $s0, $zero
|
|
/* 0100FC 8000F4FC 26100001 */ addiu $s0, $s0, 1
|
|
.L8000F500:
|
|
/* 010100 8000F500 2A010004 */ slti $at, $s0, 4
|
|
/* 010104 8000F504 5420FFFE */ bnel $at, $zero, .L8000F500
|
|
/* 010108 8000F508 26100001 */ addiu $s0, $s0, 1
|
|
/* 01010C 8000F50C 3C118016 */ lui $s1, %hi(D_80163368) # $s1, 0x8016
|
|
/* 010110 8000F510 26313368 */ addiu $s1, %lo(D_80163368) # addiu $s1, $s1, 0x3368
|
|
/* 010114 8000F514 00008025 */ move $s0, $zero
|
|
/* 010118 8000F518 24120004 */ li $s2, 4
|
|
.L8000F51C:
|
|
/* 01011C 8000F51C 8E2D0000 */ lw $t5, ($s1)
|
|
/* 010120 8000F520 29A10002 */ slti $at, $t5, 2
|
|
/* 010124 8000F524 5420000C */ bnel $at, $zero, .L8000F558
|
|
/* 010128 8000F528 26100001 */ addiu $s0, $s0, 1
|
|
/* 01012C 8000F52C 0C00403C */ jal func_800100F0
|
|
/* 010130 8000F530 02002025 */ move $a0, $s0
|
|
/* 010134 8000F534 0C004086 */ jal func_80010218
|
|
/* 010138 8000F538 02002025 */ move $a0, $s0
|
|
/* 01013C 8000F53C 0C0041F1 */ jal func_800107C4
|
|
/* 010140 8000F540 02002025 */ move $a0, $s0
|
|
/* 010144 8000F544 0C00436F */ jal func_80010DBC
|
|
/* 010148 8000F548 02002025 */ move $a0, $s0
|
|
/* 01014C 8000F54C 0C00439B */ jal func_80010E6C
|
|
/* 010150 8000F550 02002025 */ move $a0, $s0
|
|
/* 010154 8000F554 26100001 */ addiu $s0, $s0, 1
|
|
.L8000F558:
|
|
/* 010158 8000F558 1612FFF0 */ bne $s0, $s2, .L8000F51C
|
|
/* 01015C 8000F55C 26310004 */ addiu $s1, $s1, 4
|
|
/* 010160 8000F560 3C0E8016 */ lui $t6, %hi(D_801645C8) # $t6, 0x8016
|
|
/* 010164 8000F564 95CE45C8 */ lhu $t6, %lo(D_801645C8)($t6)
|
|
/* 010168 8000F568 3C02800E */ lui $v0, %hi(gCurrentCourseId)
|
|
/* 01016C 8000F56C 8442C5A0 */ lh $v0, %lo(gCurrentCourseId)($v0)
|
|
/* 010170 8000F570 3C018016 */ lui $at, %hi(D_80164430) # $at, 0x8016
|
|
/* 010174 8000F574 A42E4430 */ sh $t6, %lo(D_80164430)($at)
|
|
/* 010178 8000F578 2401000A */ li $at, 10
|
|
/* 01017C 8000F57C 10410013 */ beq $v0, $at, .L8000F5CC
|
|
/* 010180 8000F580 2401000B */ li $at, 11
|
|
/* 010184 8000F584 10410005 */ beq $v0, $at, .L8000F59C
|
|
/* 010188 8000F588 24010012 */ li $at, 18
|
|
/* 01018C 8000F58C 10410009 */ beq $v0, $at, .L8000F5B4
|
|
/* 010190 8000F590 00000000 */ nop
|
|
/* 010194 8000F594 10000015 */ b .L8000F5EC
|
|
/* 010198 8000F598 00000000 */ nop
|
|
.L8000F59C:
|
|
/* 01019C 8000F59C 0C004832 */ jal func_800120C8
|
|
/* 0101A0 8000F5A0 00000000 */ nop
|
|
/* 0101A4 8000F5A4 0C0049F8 */ jal func_800127E0
|
|
/* 0101A8 8000F5A8 00000000 */ nop
|
|
/* 0101AC 8000F5AC 1000000F */ b .L8000F5EC
|
|
/* 0101B0 8000F5B0 00000000 */ nop
|
|
.L8000F5B4:
|
|
/* 0101B4 8000F5B4 0C004864 */ jal func_80012190
|
|
/* 0101B8 8000F5B8 00000000 */ nop
|
|
/* 0101BC 8000F5BC 0C004CBD */ jal func_800132F4
|
|
/* 0101C0 8000F5C0 00000000 */ nop
|
|
/* 0101C4 8000F5C4 10000009 */ b .L8000F5EC
|
|
/* 0101C8 8000F5C8 00000000 */ nop
|
|
.L8000F5CC:
|
|
/* 0101CC 8000F5CC 0C0051F8 */ jal func_800147E0
|
|
/* 0101D0 8000F5D0 00000000 */ nop
|
|
/* 0101D4 8000F5D4 0C00524D */ jal func_80014934
|
|
/* 0101D8 8000F5D8 00000000 */ nop
|
|
/* 0101DC 8000F5DC 0C0052A2 */ jal func_80014A88
|
|
/* 0101E0 8000F5E0 00000000 */ nop
|
|
/* 0101E4 8000F5E4 0C0052F7 */ jal func_80014BDC
|
|
/* 0101E8 8000F5E8 00000000 */ nop
|
|
.L8000F5EC:
|
|
/* 0101EC 8000F5EC 0C00375E */ jal func_8000DD78
|
|
/* 0101F0 8000F5F0 00000000 */ nop
|
|
/* 0101F4 8000F5F4 0C003BB7 */ jal func_8000EEDC
|
|
/* 0101F8 8000F5F8 00000000 */ nop
|
|
/* 0101FC 8000F5FC 8FBF0034 */ lw $ra, 0x34($sp)
|
|
/* 010200 8000F600 8FB00014 */ lw $s0, 0x14($sp)
|
|
/* 010204 8000F604 8FB10018 */ lw $s1, 0x18($sp)
|
|
/* 010208 8000F608 8FB2001C */ lw $s2, 0x1c($sp)
|
|
/* 01020C 8000F60C 8FB30020 */ lw $s3, 0x20($sp)
|
|
/* 010210 8000F610 8FB40024 */ lw $s4, 0x24($sp)
|
|
/* 010214 8000F614 8FB50028 */ lw $s5, 0x28($sp)
|
|
/* 010218 8000F618 8FB6002C */ lw $s6, 0x2c($sp)
|
|
/* 01021C 8000F61C 8FB70030 */ lw $s7, 0x30($sp)
|
|
/* 010220 8000F620 03E00008 */ jr $ra
|
|
/* 010224 8000F624 27BD0038 */ addiu $sp, $sp, 0x38
|