119 lines
5.7 KiB
ArmAsm
119 lines
5.7 KiB
ArmAsm
glabel func_80297524
|
|
/* 100B34 80297524 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
|
|
/* 100B38 80297528 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298
|
|
/* 100B3C 8029752C 8C620000 */ lw $v0, ($v1)
|
|
/* 100B40 80297530 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff
|
|
/* 100B44 80297534 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff
|
|
/* 100B48 80297538 244E0008 */ addiu $t6, $v0, 8
|
|
/* 100B4C 8029753C AC6E0000 */ sw $t6, ($v1)
|
|
/* 100B50 80297540 0081C024 */ and $t8, $a0, $at
|
|
/* 100B54 80297544 3C0FFD10 */ lui $t7, 0xfd10
|
|
/* 100B58 80297548 AC4F0000 */ sw $t7, ($v0)
|
|
/* 100B5C 8029754C AC580004 */ sw $t8, 4($v0)
|
|
/* 100B60 80297550 8C620000 */ lw $v0, ($v1)
|
|
/* 100B64 80297554 3C0E0708 */ lui $t6, (0x07080200 >> 16) # lui $t6, 0x708
|
|
/* 100B68 80297558 3C08F510 */ lui $t0, 0xf510
|
|
/* 100B6C 8029755C 24590008 */ addiu $t9, $v0, 8
|
|
/* 100B70 80297560 AC790000 */ sw $t9, ($v1)
|
|
/* 100B74 80297564 35CE0200 */ ori $t6, (0x07080200 & 0xFFFF) # ori $t6, $t6, 0x200
|
|
/* 100B78 80297568 00A60019 */ multu $a1, $a2
|
|
/* 100B7C 8029756C AC4E0004 */ sw $t6, 4($v0)
|
|
/* 100B80 80297570 AC480000 */ sw $t0, ($v0)
|
|
/* 100B84 80297574 8C620000 */ lw $v0, ($v1)
|
|
/* 100B88 80297578 3C18E600 */ lui $t8, 0xe600
|
|
/* 100B8C 8029757C 3C0EF300 */ lui $t6, 0xf300
|
|
/* 100B90 80297580 244F0008 */ addiu $t7, $v0, 8
|
|
/* 100B94 80297584 AC6F0000 */ sw $t7, ($v1)
|
|
/* 100B98 80297588 AC400004 */ sw $zero, 4($v0)
|
|
/* 100B9C 8029758C AC580000 */ sw $t8, ($v0)
|
|
/* 100BA0 80297590 8C670000 */ lw $a3, ($v1)
|
|
/* 100BA4 80297594 00006012 */ mflo $t4
|
|
/* 100BA8 80297598 258CFFFF */ addiu $t4, $t4, -1
|
|
/* 100BAC 8029759C 24F90008 */ addiu $t9, $a3, 8
|
|
/* 100BB0 802975A0 AC790000 */ sw $t9, ($v1)
|
|
/* 100BB4 802975A4 298107FF */ slti $at, $t4, 0x7ff
|
|
/* 100BB8 802975A8 27BDFFE0 */ addiu $sp, $sp, -0x20
|
|
/* 100BBC 802975AC 10200003 */ beqz $at, .L802975BC
|
|
/* 100BC0 802975B0 ACEE0000 */ sw $t6, ($a3)
|
|
/* 100BC4 802975B4 10000002 */ b .L802975C0
|
|
/* 100BC8 802975B8 01802025 */ move $a0, $t4
|
|
.L802975BC:
|
|
/* 100BCC 802975BC 240407FF */ li $a0, 2047
|
|
.L802975C0:
|
|
/* 100BD0 802975C0 00054840 */ sll $t1, $a1, 1
|
|
/* 100BD4 802975C4 05210003 */ bgez $t1, .L802975D4
|
|
/* 100BD8 802975C8 000910C3 */ sra $v0, $t1, 3
|
|
/* 100BDC 802975CC 25210007 */ addiu $at, $t1, 7
|
|
/* 100BE0 802975D0 000110C3 */ sra $v0, $at, 3
|
|
.L802975D4:
|
|
/* 100BE4 802975D4 1C400003 */ bgtz $v0, .L802975E4
|
|
/* 100BE8 802975D8 00405025 */ move $t2, $v0
|
|
/* 100BEC 802975DC 10000001 */ b .L802975E4
|
|
/* 100BF0 802975E0 240A0001 */ li $t2, 1
|
|
.L802975E4:
|
|
/* 100BF4 802975E4 1C400003 */ bgtz $v0, .L802975F4
|
|
/* 100BF8 802975E8 254F07FF */ addiu $t7, $t2, 0x7ff
|
|
/* 100BFC 802975EC 10000002 */ b .L802975F8
|
|
/* 100C00 802975F0 240B0001 */ li $t3, 1
|
|
.L802975F4:
|
|
/* 100C04 802975F4 00405825 */ move $t3, $v0
|
|
.L802975F8:
|
|
/* 100C08 802975F8 01EB001A */ div $zero, $t7, $t3
|
|
/* 100C0C 802975FC 15600002 */ bnez $t3, .L80297608
|
|
/* 100C10 80297600 00000000 */ nop
|
|
/* 100C14 80297604 0007000D */ break 7
|
|
.L80297608:
|
|
/* 100C18 80297608 2401FFFF */ li $at, -1
|
|
/* 100C1C 8029760C 15610004 */ bne $t3, $at, .L80297620
|
|
/* 100C20 80297610 3C018000 */ lui $at, 0x8000
|
|
/* 100C24 80297614 15E10002 */ bne $t7, $at, .L80297620
|
|
/* 100C28 80297618 00000000 */ nop
|
|
/* 100C2C 8029761C 0006000D */ break 6
|
|
.L80297620:
|
|
/* 100C30 80297620 0000C012 */ mflo $t8
|
|
/* 100C34 80297624 33190FFF */ andi $t9, $t8, 0xfff
|
|
/* 100C38 80297628 3C010700 */ lui $at, 0x700
|
|
/* 100C3C 8029762C 308F0FFF */ andi $t7, $a0, 0xfff
|
|
/* 100C40 80297630 000FC300 */ sll $t8, $t7, 0xc
|
|
/* 100C44 80297634 03217025 */ or $t6, $t9, $at
|
|
/* 100C48 80297638 01D8C825 */ or $t9, $t6, $t8
|
|
/* 100C4C 8029763C ACF90004 */ sw $t9, 4($a3)
|
|
/* 100C50 80297640 8C620000 */ lw $v0, ($v1)
|
|
/* 100C54 80297644 3C0EE700 */ lui $t6, 0xe700
|
|
/* 100C58 80297648 25390007 */ addiu $t9, $t1, 7
|
|
/* 100C5C 8029764C 244F0008 */ addiu $t7, $v0, 8
|
|
/* 100C60 80297650 AC6F0000 */ sw $t7, ($v1)
|
|
/* 100C64 80297654 AC400004 */ sw $zero, 4($v0)
|
|
/* 100C68 80297658 AC4E0000 */ sw $t6, ($v0)
|
|
/* 100C6C 8029765C 00406025 */ move $t4, $v0
|
|
/* 100C70 80297660 8C620000 */ lw $v0, ($v1)
|
|
/* 100C74 80297664 001978C3 */ sra $t7, $t9, 3
|
|
/* 100C78 80297668 31EE01FF */ andi $t6, $t7, 0x1ff
|
|
/* 100C7C 8029766C 24580008 */ addiu $t8, $v0, 8
|
|
/* 100C80 80297670 AC780000 */ sw $t8, ($v1)
|
|
/* 100C84 80297674 000EC240 */ sll $t8, $t6, 9
|
|
/* 100C88 80297678 3C0F0008 */ lui $t7, (0x00080200 >> 16) # lui $t7, 8
|
|
/* 100C8C 8029767C 35EF0200 */ ori $t7, (0x00080200 & 0xFFFF) # ori $t7, $t7, 0x200
|
|
/* 100C90 80297680 0308C825 */ or $t9, $t8, $t0
|
|
/* 100C94 80297684 AC590000 */ sw $t9, ($v0)
|
|
/* 100C98 80297688 AC4F0004 */ sw $t7, 4($v0)
|
|
/* 100C9C 8029768C 00406825 */ move $t5, $v0
|
|
/* 100CA0 80297690 8C620000 */ lw $v0, ($v1)
|
|
/* 100CA4 80297694 24AFFFFF */ addiu $t7, $a1, -1
|
|
/* 100CA8 80297698 3C18F200 */ lui $t8, 0xf200
|
|
/* 100CAC 8029769C 244E0008 */ addiu $t6, $v0, 8
|
|
/* 100CB0 802976A0 AC6E0000 */ sw $t6, ($v1)
|
|
/* 100CB4 802976A4 AFA20004 */ sw $v0, 4($sp)
|
|
/* 100CB8 802976A8 000F7080 */ sll $t6, $t7, 2
|
|
/* 100CBC 802976AC AC580000 */ sw $t8, ($v0)
|
|
/* 100CC0 802976B0 31D80FFF */ andi $t8, $t6, 0xfff
|
|
/* 100CC4 802976B4 00187B00 */ sll $t7, $t8, 0xc
|
|
/* 100CC8 802976B8 24CEFFFF */ addiu $t6, $a2, -1
|
|
/* 100CCC 802976BC 000EC080 */ sll $t8, $t6, 2
|
|
/* 100CD0 802976C0 330E0FFF */ andi $t6, $t8, 0xfff
|
|
/* 100CD4 802976C4 01EEC025 */ or $t8, $t7, $t6
|
|
/* 100CD8 802976C8 27BD0020 */ addiu $sp, $sp, 0x20
|
|
/* 100CDC 802976CC AC580004 */ sw $t8, 4($v0)
|
|
/* 100CE0 802976D0 03E00008 */ jr $ra
|
|
/* 100CE4 802976D4 0040C825 */ move $t9, $v0
|