papermario/asm/nonmatchings/code_b72b0_len_15ed0/init_got_item.s
2020-08-12 22:37:16 -04:00

200 lines
9.5 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel init_got_item
/* 0C8200 80131B00 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 0C8204 80131B04 AFB00028 */ sw $s0, 0x28($sp)
/* 0C8208 80131B08 0080802D */ daddu $s0, $a0, $zero
/* 0C820C 80131B0C AFB30034 */ sw $s3, 0x34($sp)
/* 0C8210 80131B10 00A0982D */ daddu $s3, $a1, $zero
/* 0C8214 80131B14 AFB40038 */ sw $s4, 0x38($sp)
/* 0C8218 80131B18 00C0A02D */ daddu $s4, $a2, $zero
/* 0C821C 80131B1C AFB20030 */ sw $s2, 0x30($sp)
/* 0C8220 80131B20 3C128011 */ lui $s2, 0x8011
/* 0C8224 80131B24 2652EFC8 */ addiu $s2, $s2, -0x1038
/* 0C8228 80131B28 3C048015 */ lui $a0, 0x8015
/* 0C822C 80131B2C 8C8465A0 */ lw $a0, 0x65a0($a0)
/* 0C8230 80131B30 0000182D */ daddu $v1, $zero, $zero
/* 0C8234 80131B34 AFBF0040 */ sw $ra, 0x40($sp)
/* 0C8238 80131B38 AFB5003C */ sw $s5, 0x3c($sp)
/* 0C823C 80131B3C AFB1002C */ sw $s1, 0x2c($sp)
.L80131B40:
/* 0C8240 80131B40 8C820000 */ lw $v0, ($a0)
/* 0C8244 80131B44 10400006 */ beqz $v0, .L80131B60
/* 0C8248 80131B48 28620100 */ slti $v0, $v1, 0x100
/* 0C824C 80131B4C 24630001 */ addiu $v1, $v1, 1
/* 0C8250 80131B50 28620100 */ slti $v0, $v1, 0x100
/* 0C8254 80131B54 1440FFFA */ bnez $v0, .L80131B40
/* 0C8258 80131B58 24840004 */ addiu $a0, $a0, 4
/* 0C825C 80131B5C 28620100 */ slti $v0, $v1, 0x100
.L80131B60:
/* 0C8260 80131B60 54400003 */ bnel $v0, $zero, .L80131B70
/* 0C8264 80131B64 2404005C */ addiu $a0, $zero, 0x5c
.L80131B68:
/* 0C8268 80131B68 0804C6DA */ j .L80131B68
/* 0C826C 80131B6C 00000000 */ nop
.L80131B70:
/* 0C8270 80131B70 0C00AB39 */ jal heap_malloc
/* 0C8274 80131B74 0060A82D */ daddu $s5, $v1, $zero
/* 0C8278 80131B78 00152080 */ sll $a0, $s5, 2
/* 0C827C 80131B7C 3C038015 */ lui $v1, 0x8015
/* 0C8280 80131B80 8C6365A0 */ lw $v1, 0x65a0($v1)
/* 0C8284 80131B84 3C058015 */ lui $a1, 0x8015
/* 0C8288 80131B88 24A512F8 */ addiu $a1, $a1, 0x12f8
/* 0C828C 80131B8C 00832021 */ addu $a0, $a0, $v1
/* 0C8290 80131B90 8CA30000 */ lw $v1, ($a1)
/* 0C8294 80131B94 0040882D */ daddu $s1, $v0, $zero
/* 0C8298 80131B98 AC910000 */ sw $s1, ($a0)
/* 0C829C 80131B9C 24630001 */ addiu $v1, $v1, 1
/* 0C82A0 80131BA0 16200003 */ bnez $s1, .L80131BB0
/* 0C82A4 80131BA4 ACA30000 */ sw $v1, ($a1)
.L80131BA8:
/* 0C82A8 80131BA8 0804C6EA */ j .L80131BA8
/* 0C82AC 80131BAC 00000000 */ nop
.L80131BB0:
/* 0C82B0 80131BB0 3210FFFF */ andi $s0, $s0, 0xffff
/* 0C82B4 80131BB4 3C030200 */ lui $v1, 0x200
/* 0C82B8 80131BB8 34630017 */ ori $v1, $v1, 0x17
/* 0C82BC 80131BBC 2402FFFF */ addiu $v0, $zero, -1
/* 0C82C0 80131BC0 A222001D */ sb $v0, 0x1d($s1)
/* 0C82C4 80131BC4 12600004 */ beqz $s3, .L80131BD8
/* 0C82C8 80131BC8 AE230000 */ sw $v1, ($s1)
/* 0C82CC 80131BCC 3C020600 */ lui $v0, 0x600
/* 0C82D0 80131BD0 34420017 */ ori $v0, $v0, 0x17
/* 0C82D4 80131BD4 AE220000 */ sw $v0, ($s1)
.L80131BD8:
/* 0C82D8 80131BD8 2402001C */ addiu $v0, $zero, 0x1c
/* 0C82DC 80131BDC A6340006 */ sh $s4, 6($s1)
/* 0C82E0 80131BE0 A222001B */ sb $v0, 0x1b($s1)
/* 0C82E4 80131BE4 A220001A */ sb $zero, 0x1a($s1)
/* 0C82E8 80131BE8 A6200004 */ sh $zero, 4($s1)
/* 0C82EC 80131BEC C6400028 */ lwc1 $f0, 0x28($s2)
/* 0C82F0 80131BF0 8E230000 */ lw $v1, ($s1)
/* 0C82F4 80131BF4 E6200008 */ swc1 $f0, 8($s1)
/* 0C82F8 80131BF8 C640002C */ lwc1 $f0, 0x2c($s2)
/* 0C82FC 80131BFC 2402FFFF */ addiu $v0, $zero, -1
/* 0C8300 80131C00 E620000C */ swc1 $f0, 0xc($s1)
/* 0C8304 80131C04 C6420030 */ lwc1 $f2, 0x30($s2)
/* 0C8308 80131C08 3C013F80 */ lui $at, 0x3f80
/* 0C830C 80131C0C 44810000 */ mtc1 $at, $f0
/* 0C8310 80131C10 34634000 */ ori $v1, $v1, 0x4000
/* 0C8314 80131C14 A6220020 */ sh $v0, 0x20($s1)
/* 0C8318 80131C18 24020001 */ addiu $v0, $zero, 1
/* 0C831C 80131C1C A222002E */ sb $v0, 0x2e($s1)
/* 0C8320 80131C20 2402D8F1 */ addiu $v0, $zero, -0x270f
/* 0C8324 80131C24 A6220034 */ sh $v0, 0x34($s1)
/* 0C8328 80131C28 A6220036 */ sh $v0, 0x36($s1)
/* 0C832C 80131C2C A6220038 */ sh $v0, 0x38($s1)
/* 0C8330 80131C30 00101140 */ sll $v0, $s0, 5
/* 0C8334 80131C34 A6300018 */ sh $s0, 0x18($s1)
/* 0C8338 80131C38 AE200014 */ sw $zero, 0x14($s1)
/* 0C833C 80131C3C A220001C */ sb $zero, 0x1c($s1)
/* 0C8340 80131C40 A620001E */ sh $zero, 0x1e($s1)
/* 0C8344 80131C44 AE230000 */ sw $v1, ($s1)
/* 0C8348 80131C48 E6200030 */ swc1 $f0, 0x30($s1)
/* 0C834C 80131C4C E6220010 */ swc1 $f2, 0x10($s1)
/* 0C8350 80131C50 3C018008 */ lui $at, 0x8008
/* 0C8354 80131C54 00220821 */ addu $at, $at, $v0
/* 0C8358 80131C58 942278F8 */ lhu $v0, 0x78f8($at)
/* 0C835C 80131C5C 30421000 */ andi $v0, $v0, 0x1000
/* 0C8360 80131C60 10400005 */ beqz $v0, .L80131C78
/* 0C8364 80131C64 3C020004 */ lui $v0, 4
/* 0C8368 80131C68 00621025 */ or $v0, $v1, $v0
/* 0C836C 80131C6C 2403BFFF */ addiu $v1, $zero, -0x4001
/* 0C8370 80131C70 00431024 */ and $v0, $v0, $v1
/* 0C8374 80131C74 AE220000 */ sw $v0, ($s1)
.L80131C78:
/* 0C8378 80131C78 3C088015 */ lui $t0, 0x8015
/* 0C837C 80131C7C 25085D84 */ addiu $t0, $t0, 0x5d84
/* 0C8380 80131C80 8D020000 */ lw $v0, ($t0)
/* 0C8384 80131C84 10400004 */ beqz $v0, .L80131C98
/* 0C8388 80131C88 3C030002 */ lui $v1, 2
/* 0C838C 80131C8C 8E220000 */ lw $v0, ($s1)
/* 0C8390 80131C90 00431025 */ or $v0, $v0, $v1
/* 0C8394 80131C94 AE220000 */ sw $v0, ($s1)
.L80131C98:
/* 0C8398 80131C98 0000202D */ daddu $a0, $zero, $zero
/* 0C839C 80131C9C 24020001 */ addiu $v0, $zero, 1
/* 0C83A0 80131CA0 8E250008 */ lw $a1, 8($s1)
/* 0C83A4 80131CA4 8E26000C */ lw $a2, 0xc($s1)
/* 0C83A8 80131CA8 8D030000 */ lw $v1, ($t0)
/* 0C83AC 80131CAC 8E270010 */ lw $a3, 0x10($s1)
/* 0C83B0 80131CB0 00431023 */ subu $v0, $v0, $v1
/* 0C83B4 80131CB4 0C044898 */ jal create_shadow_type
/* 0C83B8 80131CB8 AD020000 */ sw $v0, ($t0)
/* 0C83BC 80131CBC 00022400 */ sll $a0, $v0, 0x10
/* 0C83C0 80131CC0 00042403 */ sra $a0, $a0, 0x10
/* 0C83C4 80131CC4 0C044181 */ jal get_shadow_by_index
/* 0C83C8 80131CC8 A6220020 */ sh $v0, 0x20($s1)
/* 0C83CC 80131CCC 3C040002 */ lui $a0, 2
/* 0C83D0 80131CD0 27A50018 */ addiu $a1, $sp, 0x18
/* 0C83D4 80131CD4 27A6001C */ addiu $a2, $sp, 0x1c
/* 0C83D8 80131CD8 27A70020 */ addiu $a3, $sp, 0x20
/* 0C83DC 80131CDC 0040802D */ daddu $s0, $v0, $zero
/* 0C83E0 80131CE0 8E020000 */ lw $v0, ($s0)
/* 0C83E4 80131CE4 3C01447A */ lui $at, 0x447a
/* 0C83E8 80131CE8 44810000 */ mtc1 $at, $f0
/* 0C83EC 80131CEC 3C014140 */ lui $at, 0x4140
/* 0C83F0 80131CF0 44811000 */ mtc1 $at, $f2
/* 0C83F4 80131CF4 34420001 */ ori $v0, $v0, 1
/* 0C83F8 80131CF8 AE020000 */ sw $v0, ($s0)
/* 0C83FC 80131CFC 27A20024 */ addiu $v0, $sp, 0x24
/* 0C8400 80131D00 E7A00024 */ swc1 $f0, 0x24($sp)
/* 0C8404 80131D04 C6260008 */ lwc1 $f6, 8($s1)
/* 0C8408 80131D08 C620000C */ lwc1 $f0, 0xc($s1)
/* 0C840C 80131D0C C6240010 */ lwc1 $f4, 0x10($s1)
/* 0C8410 80131D10 46020000 */ add.s $f0, $f0, $f2
/* 0C8414 80131D14 E7A60018 */ swc1 $f6, 0x18($sp)
/* 0C8418 80131D18 E7A40020 */ swc1 $f4, 0x20($sp)
/* 0C841C 80131D1C E7A0001C */ swc1 $f0, 0x1c($sp)
/* 0C8420 80131D20 0C0372DF */ jal func_800DCB7C
/* 0C8424 80131D24 AFA20010 */ sw $v0, 0x10($sp)
/* 0C8428 80131D28 C7A00018 */ lwc1 $f0, 0x18($sp)
/* 0C842C 80131D2C C7A2001C */ lwc1 $f2, 0x1c($sp)
/* 0C8430 80131D30 C7A40020 */ lwc1 $f4, 0x20($sp)
/* 0C8434 80131D34 3C028007 */ lui $v0, 0x8007
/* 0C8438 80131D38 8C42419C */ lw $v0, 0x419c($v0)
/* 0C843C 80131D3C E6000010 */ swc1 $f0, 0x10($s0)
/* 0C8440 80131D40 E6020014 */ swc1 $f2, 0x14($s0)
/* 0C8444 80131D44 E6040018 */ swc1 $f4, 0x18($s0)
/* 0C8448 80131D48 C7A20024 */ lwc1 $f2, 0x24($sp)
/* 0C844C 80131D4C 3C013F00 */ lui $at, 0x3f00
/* 0C8450 80131D50 44810000 */ mtc1 $at, $f0
/* 0C8454 80131D54 C444011C */ lwc1 $f4, 0x11c($v0)
/* 0C8458 80131D58 46001082 */ mul.s $f2, $f2, $f0
/* 0C845C 80131D5C 00000000 */ nop
/* 0C8460 80131D60 AE00002C */ sw $zero, 0x2c($s0)
/* 0C8464 80131D64 E6040028 */ swc1 $f4, 0x28($s0)
/* 0C8468 80131D68 C4400124 */ lwc1 $f0, 0x124($v0)
/* 0C846C 80131D6C 44051000 */ mfc1 $a1, $f2
/* 0C8470 80131D70 0200202D */ daddu $a0, $s0, $zero
/* 0C8474 80131D74 0C044A17 */ jal set_standard_shadow_scale
/* 0C8478 80131D78 E4800030 */ swc1 $f0, 0x30($a0)
/* 0C847C 80131D7C 0C04C44A */ jal func_80131128
/* 0C8480 80131D80 0220202D */ daddu $a0, $s1, $zero
/* 0C8484 80131D84 86230018 */ lh $v1, 0x18($s1)
/* 0C8488 80131D88 24020157 */ addiu $v0, $zero, 0x157
/* 0C848C 80131D8C 14620008 */ bne $v1, $v0, .L80131DB0
/* 0C8490 80131D90 02A0102D */ daddu $v0, $s5, $zero
/* 0C8494 80131D94 3C058010 */ lui $a1, 0x8010
/* 0C8498 80131D98 24A54AC0 */ addiu $a1, $a1, 0x4ac0
/* 0C849C 80131D9C 0C04C27C */ jal func_801309F0
/* 0C84A0 80131DA0 0220202D */ daddu $a0, $s1, $zero
/* 0C84A4 80131DA4 0C04C2B3 */ jal func_80130ACC
/* 0C84A8 80131DA8 0220202D */ daddu $a0, $s1, $zero
/* 0C84AC 80131DAC 02A0102D */ daddu $v0, $s5, $zero
.L80131DB0:
/* 0C84B0 80131DB0 8FBF0040 */ lw $ra, 0x40($sp)
/* 0C84B4 80131DB4 8FB5003C */ lw $s5, 0x3c($sp)
/* 0C84B8 80131DB8 8FB40038 */ lw $s4, 0x38($sp)
/* 0C84BC 80131DBC 8FB30034 */ lw $s3, 0x34($sp)
/* 0C84C0 80131DC0 8FB20030 */ lw $s2, 0x30($sp)
/* 0C84C4 80131DC4 8FB1002C */ lw $s1, 0x2c($sp)
/* 0C84C8 80131DC8 8FB00028 */ lw $s0, 0x28($sp)
/* 0C84CC 80131DCC 03E00008 */ jr $ra
/* 0C84D0 80131DD0 27BD0048 */ addiu $sp, $sp, 0x48