mirror of https://github.com/zeldaret/oot.git
143 lines
6.7 KiB
ArmAsm
143 lines
6.7 KiB
ArmAsm
glabel func_800DB828
|
|
/* B529C8 800DB828 27BDFFD0 */ addiu $sp, $sp, -0x30
|
|
/* B529CC 800DB82C AFBF0024 */ sw $ra, 0x24($sp)
|
|
/* B529D0 800DB830 AFB00020 */ sw $s0, 0x20($sp)
|
|
/* B529D4 800DB834 AFA50034 */ sw $a1, 0x34($sp)
|
|
/* B529D8 800DB838 AFA7003C */ sw $a3, 0x3c($sp)
|
|
/* B529DC 800DB83C 90CE0003 */ lbu $t6, 3($a2)
|
|
/* B529E0 800DB840 87B9003E */ lh $t9, 0x3e($sp)
|
|
/* B529E4 800DB844 00C08025 */ move $s0, $a2
|
|
/* B529E8 800DB848 000E78C0 */ sll $t7, $t6, 3
|
|
/* B529EC 800DB84C 01EE7821 */ addu $t7, $t7, $t6
|
|
/* B529F0 800DB850 000F7880 */ sll $t7, $t7, 2
|
|
/* B529F4 800DB854 01EE7823 */ subu $t7, $t7, $t6
|
|
/* B529F8 800DB858 001968C0 */ sll $t5, $t9, 3
|
|
/* B529FC 800DB85C 000F7880 */ sll $t7, $t7, 2
|
|
/* B52A00 800DB860 01B96823 */ subu $t5, $t5, $t9
|
|
/* B52A04 800DB864 000D6880 */ sll $t5, $t5, 2
|
|
/* B52A08 800DB868 00CFC021 */ addu $t8, $a2, $t7
|
|
/* B52A0C 800DB86C 030D1821 */ addu $v1, $t8, $t5
|
|
/* B52A10 800DB870 94620058 */ lhu $v0, 0x58($v1)
|
|
/* B52A14 800DB874 00A07825 */ move $t7, $a1
|
|
/* B52A18 800DB878 8C68004C */ lw $t0, 0x4c($v1)
|
|
/* B52A1C 800DB87C 000273C0 */ sll $t6, $v0, 0xf
|
|
/* B52A20 800DB880 01C5001A */ div $zero, $t6, $a1
|
|
/* B52A24 800DB884 0000C812 */ mflo $t9
|
|
/* B52A28 800DB888 A4790054 */ sh $t9, 0x54($v1)
|
|
/* B52A2C 800DB88C 8FB80034 */ lw $t8, 0x34($sp)
|
|
/* B52A30 800DB890 31090007 */ andi $t1, $t0, 7
|
|
/* B52A34 800DB894 00094840 */ sll $t1, $t1, 1
|
|
/* B52A38 800DB898 00186BC0 */ sll $t5, $t8, 0xf
|
|
/* B52A3C 800DB89C 01A2001A */ div $zero, $t5, $v0
|
|
/* B52A40 800DB8A0 00094C00 */ sll $t1, $t1, 0x10
|
|
/* B52A44 800DB8A4 00094C03 */ sra $t1, $t1, 0x10
|
|
/* B52A48 800DB8A8 24630040 */ addiu $v1, $v1, 0x40
|
|
/* B52A4C 800DB8AC 15E00002 */ bnez $t7, .L800DB8B8
|
|
/* B52A50 800DB8B0 00000000 */ nop
|
|
/* B52A54 800DB8B4 0007000D */ break 7
|
|
.L800DB8B8:
|
|
/* B52A58 800DB8B8 2401FFFF */ li $at, -1
|
|
/* B52A5C 800DB8BC 15E10004 */ bne $t7, $at, .L800DB8D0
|
|
/* B52A60 800DB8C0 3C018000 */ lui $at, 0x8000
|
|
/* B52A64 800DB8C4 15C10002 */ bne $t6, $at, .L800DB8D0
|
|
/* B52A68 800DB8C8 00000000 */ nop
|
|
/* B52A6C 800DB8CC 0006000D */ break 6
|
|
.L800DB8D0:
|
|
/* B52A70 800DB8D0 846F0010 */ lh $t7, 0x10($v1)
|
|
/* B52A74 800DB8D4 14400002 */ bnez $v0, .L800DB8E0
|
|
/* B52A78 800DB8D8 00000000 */ nop
|
|
/* B52A7C 800DB8DC 0007000D */ break 7
|
|
.L800DB8E0:
|
|
/* B52A80 800DB8E0 2401FFFF */ li $at, -1
|
|
/* B52A84 800DB8E4 14410004 */ bne $v0, $at, .L800DB8F8
|
|
/* B52A88 800DB8E8 3C018000 */ lui $at, 0x8000
|
|
/* B52A8C 800DB8EC 15A10002 */ bne $t5, $at, .L800DB8F8
|
|
/* B52A90 800DB8F0 00000000 */ nop
|
|
/* B52A94 800DB8F4 0006000D */ break 6
|
|
.L800DB8F8:
|
|
/* B52A98 800DB8F8 012F5021 */ addu $t2, $t1, $t7
|
|
/* B52A9C 800DB8FC 00007012 */ mflo $t6
|
|
/* B52AA0 800DB900 254A000F */ addiu $t2, $t2, 0xf
|
|
/* B52AA4 800DB904 A46E0016 */ sh $t6, 0x16($v1)
|
|
/* B52AA8 800DB908 314AFFF0 */ andi $t2, $t2, 0xfff0
|
|
/* B52AAC 800DB90C 2401FFF0 */ li $at, -16
|
|
/* B52AB0 800DB910 000A5400 */ sll $t2, $t2, 0x10
|
|
/* B52AB4 800DB914 000A5403 */ sra $t2, $t2, 0x10
|
|
/* B52AB8 800DB918 A7AA0028 */ sh $t2, 0x28($sp)
|
|
/* B52ABC 800DB91C A7A9002A */ sh $t1, 0x2a($sp)
|
|
/* B52AC0 800DB920 AFA3002C */ sw $v1, 0x2c($sp)
|
|
/* B52AC4 800DB924 AFB00010 */ sw $s0, 0x10($sp)
|
|
/* B52AC8 800DB928 240503E0 */ li $a1, 992
|
|
/* B52ACC 800DB92C 05210003 */ bgez $t1, .L800DB93C
|
|
/* B52AD0 800DB930 0009C843 */ sra $t9, $t1, 1
|
|
/* B52AD4 800DB934 25210001 */ addiu $at, $t1, 1
|
|
/* B52AD8 800DB938 0001C843 */ sra $t9, $at, 1
|
|
.L800DB93C:
|
|
/* B52ADC 800DB93C 01193023 */ subu $a2, $t0, $t9
|
|
/* B52AE0 800DB940 30C6FFFF */ andi $a2, $a2, 0xffff
|
|
/* B52AE4 800DB944 0C037002 */ jal func_800DC008
|
|
/* B52AE8 800DB948 240701A0 */ li $a3, 416
|
|
/* B52AEC 800DB94C 8FA3002C */ lw $v1, 0x2c($sp)
|
|
/* B52AF0 800DB950 87AA0028 */ lh $t2, 0x28($sp)
|
|
/* B52AF4 800DB954 87A9002A */ lh $t1, 0x2a($sp)
|
|
/* B52AF8 800DB958 84780012 */ lh $t8, 0x12($v1)
|
|
/* B52AFC 800DB95C 254503E0 */ addiu $a1, $t2, 0x3e0
|
|
/* B52B00 800DB960 00402025 */ move $a0, $v0
|
|
/* B52B04 800DB964 1300000A */ beqz $t8, .L800DB990
|
|
/* B52B08 800DB968 30A5FFFF */ andi $a1, $a1, 0xffff
|
|
/* B52B0C 800DB96C 240D01A0 */ li $t5, 416
|
|
/* B52B10 800DB970 01AA3823 */ subu $a3, $t5, $t2
|
|
/* B52B14 800DB974 00003025 */ move $a2, $zero
|
|
/* B52B18 800DB978 AFB00010 */ sw $s0, 0x10($sp)
|
|
/* B52B1C 800DB97C AFA3002C */ sw $v1, 0x2c($sp)
|
|
/* B52B20 800DB980 0C037002 */ jal func_800DC008
|
|
/* B52B24 800DB984 A7A9002A */ sh $t1, 0x2a($sp)
|
|
/* B52B28 800DB988 8FA3002C */ lw $v1, 0x2c($sp)
|
|
/* B52B2C 800DB98C 87A9002A */ lh $t1, 0x2a($sp)
|
|
.L800DB990:
|
|
/* B52B30 800DB990 252E03E0 */ addiu $t6, $t1, 0x3e0
|
|
/* B52B34 800DB994 3C0B0800 */ lui $t3, 0x800
|
|
/* B52B38 800DB998 31CFFFFF */ andi $t7, $t6, 0xffff
|
|
/* B52B3C 800DB99C 01EBC825 */ or $t9, $t7, $t3
|
|
/* B52B40 800DB9A0 AC590000 */ sw $t9, ($v0)
|
|
/* B52B44 800DB9A4 8FA60034 */ lw $a2, 0x34($sp)
|
|
/* B52B48 800DB9A8 3C010C80 */ lui $at, 0xc80
|
|
/* B52B4C 800DB9AC 3C0C0500 */ lui $t4, 0x500
|
|
/* B52B50 800DB9B0 00063040 */ sll $a2, $a2, 1
|
|
/* B52B54 800DB9B4 30C6FFFF */ andi $a2, $a2, 0xffff
|
|
/* B52B58 800DB9B8 00C1C025 */ or $t8, $a2, $at
|
|
/* B52B5C 800DB9BC AC580004 */ sw $t8, 4($v0)
|
|
/* B52B60 800DB9C0 920E0000 */ lbu $t6, ($s0)
|
|
/* B52B64 800DB9C4 946D0014 */ lhu $t5, 0x14($v1)
|
|
/* B52B68 800DB9C8 24470008 */ addiu $a3, $v0, 8
|
|
/* B52B6C 800DB9CC 000E7C00 */ sll $t7, $t6, 0x10
|
|
/* B52B70 800DB9D0 01ECC825 */ or $t9, $t7, $t4
|
|
/* B52B74 800DB9D4 032D7025 */ or $t6, $t9, $t5
|
|
/* B52B78 800DB9D8 ACEE0000 */ sw $t6, ($a3)
|
|
/* B52B7C 800DB9DC 8E0F0030 */ lw $t7, 0x30($s0)
|
|
/* B52B80 800DB9E0 25380580 */ addiu $t8, $t1, 0x580
|
|
/* B52B84 800DB9E4 24E80008 */ addiu $t0, $a3, 8
|
|
/* B52B88 800DB9E8 3319FFFF */ andi $t9, $t8, 0xffff
|
|
/* B52B8C 800DB9EC 3C010E20 */ lui $at, 0xe20
|
|
/* B52B90 800DB9F0 ACEF0004 */ sw $t7, 4($a3)
|
|
/* B52B94 800DB9F4 00C17025 */ or $t6, $a2, $at
|
|
/* B52B98 800DB9F8 032B6825 */ or $t5, $t9, $t3
|
|
/* B52B9C 800DB9FC AD0D0000 */ sw $t5, ($t0)
|
|
/* B52BA0 800DBA00 AD0E0004 */ sw $t6, 4($t0)
|
|
/* B52BA4 800DBA04 92180000 */ lbu $t8, ($s0)
|
|
/* B52BA8 800DBA08 946F0014 */ lhu $t7, 0x14($v1)
|
|
/* B52BAC 800DBA0C 250A0008 */ addiu $t2, $t0, 8
|
|
/* B52BB0 800DBA10 0018CC00 */ sll $t9, $t8, 0x10
|
|
/* B52BB4 800DBA14 032C6825 */ or $t5, $t9, $t4
|
|
/* B52BB8 800DBA18 01AFC025 */ or $t8, $t5, $t7
|
|
/* B52BBC 800DBA1C AD580000 */ sw $t8, ($t2)
|
|
/* B52BC0 800DBA20 8E190034 */ lw $t9, 0x34($s0)
|
|
/* B52BC4 800DBA24 25420008 */ addiu $v0, $t2, 8
|
|
/* B52BC8 800DBA28 AD590004 */ sw $t9, 4($t2)
|
|
/* B52BCC 800DBA2C 8FBF0024 */ lw $ra, 0x24($sp)
|
|
/* B52BD0 800DBA30 8FB00020 */ lw $s0, 0x20($sp)
|
|
/* B52BD4 800DBA34 27BD0030 */ addiu $sp, $sp, 0x30
|
|
/* B52BD8 800DBA38 03E00008 */ jr $ra
|
|
/* B52BDC 800DBA3C 00000000 */ nop
|
|
|