### RAW ASSEMBLY INSTRUCTIONS:

glabel __divdi3
/* 48C00 8006D800 04810008 */  bgez      $a0, .L8006D824
/* 48C04 8006D804 0000C02D */   daddu    $t8, $zero, $zero
/* 48C08 8006D808 2418FFFF */  addiu     $t8, $zero, -0x1
/* 48C0C 8006D80C 00054823 */  negu      $t1, $a1
/* 48C10 8006D810 00041823 */  negu      $v1, $a0
/* 48C14 8006D814 0009102B */  sltu      $v0, $zero, $t1
/* 48C18 8006D818 00624023 */  subu      $t0, $v1, $v0
/* 48C1C 8006D81C 0100202D */  daddu     $a0, $t0, $zero
/* 48C20 8006D820 0120282D */  daddu     $a1, $t1, $zero
.L8006D824:
/* 48C24 8006D824 04C10009 */  bgez      $a2, .L8006D84C
/* 48C28 8006D828 00E0482D */   daddu    $t1, $a3, $zero
/* 48C2C 8006D82C 0018C027 */  nor       $t8, $zero, $t8
/* 48C30 8006D830 00075823 */  negu      $t3, $a3
/* 48C34 8006D834 00061823 */  negu      $v1, $a2
/* 48C38 8006D838 000B102B */  sltu      $v0, $zero, $t3
/* 48C3C 8006D83C 00625023 */  subu      $t2, $v1, $v0
/* 48C40 8006D840 0140302D */  daddu     $a2, $t2, $zero
/* 48C44 8006D844 0160382D */  daddu     $a3, $t3, $zero
/* 48C48 8006D848 00E0482D */  daddu     $t1, $a3, $zero
.L8006D84C:
/* 48C4C 8006D84C 00C0402D */  daddu     $t0, $a2, $zero
/* 48C50 8006D850 150000DF */  bnez      $t0, .L8006DBD0
/* 48C54 8006D854 00A0582D */   daddu    $t3, $a1, $zero
/* 48C58 8006D858 0089102B */  sltu      $v0, $a0, $t1
/* 48C5C 8006D85C 1040004E */  beqz      $v0, .L8006D998
/* 48C60 8006D860 3402FFFF */   ori      $v0, $zero, 0xFFFF
/* 48C64 8006D864 0049102B */  sltu      $v0, $v0, $t1
/* 48C68 8006D868 14400005 */  bnez      $v0, .L8006D880
/* 48C6C 8006D86C 00E0182D */   daddu    $v1, $a3, $zero
/* 48C70 8006D870 2D220100 */  sltiu     $v0, $t1, 0x100
/* 48C74 8006D874 38420001 */  xori      $v0, $v0, 0x1
/* 48C78 8006D878 0801B626 */  j         .L8006D898
/* 48C7C 8006D87C 000240C0 */   sll      $t0, $v0, 3
.L8006D880:
/* 48C80 8006D880 3C0200FF */  lui       $v0, (0xFFFFFF >> 16)
/* 48C84 8006D884 3442FFFF */  ori       $v0, $v0, (0xFFFFFF & 0xFFFF)
/* 48C88 8006D888 0049102B */  sltu      $v0, $v0, $t1
/* 48C8C 8006D88C 14400002 */  bnez      $v0, .L8006D898
/* 48C90 8006D890 24080018 */   addiu    $t0, $zero, 0x18
/* 48C94 8006D894 24080010 */  addiu     $t0, $zero, 0x10
.L8006D898:
/* 48C98 8006D898 01031006 */  srlv      $v0, $v1, $t0
/* 48C9C 8006D89C 3C01800A */  lui       $at, %hi(D_80099E40)
/* 48CA0 8006D8A0 00220821 */  addu      $at, $at, $v0
/* 48CA4 8006D8A4 90229E40 */  lbu       $v0, %lo(D_80099E40)($at)
/* 48CA8 8006D8A8 24050020 */  addiu     $a1, $zero, 0x20
/* 48CAC 8006D8AC 00481021 */  addu      $v0, $v0, $t0
/* 48CB0 8006D8B0 00A23023 */  subu      $a2, $a1, $v0
/* 48CB4 8006D8B4 10C00006 */  beqz      $a2, .L8006D8D0
/* 48CB8 8006D8B8 00C41804 */   sllv     $v1, $a0, $a2
/* 48CBC 8006D8BC 00C94804 */  sllv      $t1, $t1, $a2
/* 48CC0 8006D8C0 00A61023 */  subu      $v0, $a1, $a2
/* 48CC4 8006D8C4 004B1006 */  srlv      $v0, $t3, $v0
/* 48CC8 8006D8C8 00622025 */  or        $a0, $v1, $v0
/* 48CCC 8006D8CC 00CB5804 */  sllv      $t3, $t3, $a2
.L8006D8D0:
/* 48CD0 8006D8D0 00093402 */  srl       $a2, $t1, 16
/* 48CD4 8006D8D4 14C00002 */  bnez      $a2, .L8006D8E0
/* 48CD8 8006D8D8 0086001B */   divu     $zero, $a0, $a2
/* 48CDC 8006D8DC 0007000D */  break     7
.L8006D8E0:
/* 48CE0 8006D8E0 00003812 */  mflo      $a3
/* 48CE4 8006D8E4 00001810 */  mfhi      $v1
/* 48CE8 8006D8E8 3128FFFF */  andi      $t0, $t1, 0xFFFF
/* 48CEC 8006D8EC 00000000 */  nop
/* 48CF0 8006D8F0 00E80018 */  mult      $a3, $t0
/* 48CF4 8006D8F4 000B1402 */  srl       $v0, $t3, 16
/* 48CF8 8006D8F8 00031C00 */  sll       $v1, $v1, 16
/* 48CFC 8006D8FC 00621825 */  or        $v1, $v1, $v0
/* 48D00 8006D900 00002812 */  mflo      $a1
/* 48D04 8006D904 0065102B */  sltu      $v0, $v1, $a1
/* 48D08 8006D908 5040000B */  beql      $v0, $zero, .L8006D938
/* 48D0C 8006D90C 00651823 */   subu     $v1, $v1, $a1
/* 48D10 8006D910 00691821 */  addu      $v1, $v1, $t1
/* 48D14 8006D914 0069102B */  sltu      $v0, $v1, $t1
/* 48D18 8006D918 14400006 */  bnez      $v0, .L8006D934
/* 48D1C 8006D91C 24E7FFFF */   addiu    $a3, $a3, -0x1
/* 48D20 8006D920 0065102B */  sltu      $v0, $v1, $a1
/* 48D24 8006D924 50400004 */  beql      $v0, $zero, .L8006D938
/* 48D28 8006D928 00651823 */   subu     $v1, $v1, $a1
/* 48D2C 8006D92C 24E7FFFF */  addiu     $a3, $a3, -0x1
/* 48D30 8006D930 00691821 */  addu      $v1, $v1, $t1
.L8006D934:
/* 48D34 8006D934 00651823 */  subu      $v1, $v1, $a1
.L8006D938:
/* 48D38 8006D938 14C00002 */  bnez      $a2, .L8006D944
/* 48D3C 8006D93C 0066001B */   divu     $zero, $v1, $a2
/* 48D40 8006D940 0007000D */  break     7
.L8006D944:
/* 48D44 8006D944 00002012 */  mflo      $a0
/* 48D48 8006D948 00001810 */  mfhi      $v1
/* 48D4C 8006D94C 00000000 */  nop
/* 48D50 8006D950 00000000 */  nop
/* 48D54 8006D954 00880018 */  mult      $a0, $t0
/* 48D58 8006D958 3162FFFF */  andi      $v0, $t3, 0xFFFF
/* 48D5C 8006D95C 00031C00 */  sll       $v1, $v1, 16
/* 48D60 8006D960 00621825 */  or        $v1, $v1, $v0
/* 48D64 8006D964 00002812 */  mflo      $a1
/* 48D68 8006D968 0065102B */  sltu      $v0, $v1, $a1
/* 48D6C 8006D96C 10400007 */  beqz      $v0, .L8006D98C
/* 48D70 8006D970 00691821 */   addu     $v1, $v1, $t1
/* 48D74 8006D974 0069102B */  sltu      $v0, $v1, $t1
/* 48D78 8006D978 14400004 */  bnez      $v0, .L8006D98C
/* 48D7C 8006D97C 2484FFFF */   addiu    $a0, $a0, -0x1
/* 48D80 8006D980 0065102B */  sltu      $v0, $v1, $a1
/* 48D84 8006D984 54400001 */  bnel      $v0, $zero, .L8006D98C
/* 48D88 8006D988 2484FFFF */   addiu    $a0, $a0, -0x1
.L8006D98C:
/* 48D8C 8006D98C 00071400 */  sll       $v0, $a3, 16
/* 48D90 8006D990 0801B761 */  j         .L8006DD84
/* 48D94 8006D994 00443025 */   or       $a2, $v0, $a0
.L8006D998:
/* 48D98 8006D998 15200008 */  bnez      $t1, .L8006D9BC
/* 48D9C 8006D99C 0049102B */   sltu     $v0, $v0, $t1
/* 48DA0 8006D9A0 24020001 */  addiu     $v0, $zero, 0x1
/* 48DA4 8006D9A4 15000002 */  bnez      $t0, .L8006D9B0
/* 48DA8 8006D9A8 0048001B */   divu     $zero, $v0, $t0
/* 48DAC 8006D9AC 0007000D */  break     7
.L8006D9B0:
/* 48DB0 8006D9B0 00004812 */  mflo      $t1
/* 48DB4 8006D9B4 3402FFFF */  ori       $v0, $zero, 0xFFFF
/* 48DB8 8006D9B8 0049102B */  sltu      $v0, $v0, $t1
.L8006D9BC:
/* 48DBC 8006D9BC 14400005 */  bnez      $v0, .L8006D9D4
/* 48DC0 8006D9C0 0120282D */   daddu    $a1, $t1, $zero
/* 48DC4 8006D9C4 2D220100 */  sltiu     $v0, $t1, 0x100
/* 48DC8 8006D9C8 38420001 */  xori      $v0, $v0, 0x1
/* 48DCC 8006D9CC 0801B67B */  j         .L8006D9EC
/* 48DD0 8006D9D0 000218C0 */   sll      $v1, $v0, 3
.L8006D9D4:
/* 48DD4 8006D9D4 3C0200FF */  lui       $v0, (0xFFFFFF >> 16)
/* 48DD8 8006D9D8 3442FFFF */  ori       $v0, $v0, (0xFFFFFF & 0xFFFF)
/* 48DDC 8006D9DC 0049102B */  sltu      $v0, $v0, $t1
/* 48DE0 8006D9E0 14400002 */  bnez      $v0, .L8006D9EC
/* 48DE4 8006D9E4 24030018 */   addiu    $v1, $zero, 0x18
/* 48DE8 8006D9E8 24030010 */  addiu     $v1, $zero, 0x10
.L8006D9EC:
/* 48DEC 8006D9EC 00651006 */  srlv      $v0, $a1, $v1
/* 48DF0 8006D9F0 3C01800A */  lui       $at, %hi(D_80099E40)
/* 48DF4 8006D9F4 00220821 */  addu      $at, $at, $v0
/* 48DF8 8006D9F8 90229E40 */  lbu       $v0, %lo(D_80099E40)($at)
/* 48DFC 8006D9FC 00431021 */  addu      $v0, $v0, $v1
/* 48E00 8006DA00 24030020 */  addiu     $v1, $zero, 0x20
/* 48E04 8006DA04 00623023 */  subu      $a2, $v1, $v0
/* 48E08 8006DA08 14C00004 */  bnez      $a2, .L8006DA1C
/* 48E0C 8006DA0C 00662823 */   subu     $a1, $v1, $a2
/* 48E10 8006DA10 00892023 */  subu      $a0, $a0, $t1
/* 48E14 8006DA14 0801B6C2 */  j         .L8006DB08
/* 48E18 8006DA18 240A0001 */   addiu    $t2, $zero, 0x1
.L8006DA1C:
/* 48E1C 8006DA1C 00C94804 */  sllv      $t1, $t1, $a2
/* 48E20 8006DA20 00A43806 */  srlv      $a3, $a0, $a1
/* 48E24 8006DA24 00C41804 */  sllv      $v1, $a0, $a2
/* 48E28 8006DA28 00AB1006 */  srlv      $v0, $t3, $a1
/* 48E2C 8006DA2C 00622025 */  or        $a0, $v1, $v0
/* 48E30 8006DA30 00CB5804 */  sllv      $t3, $t3, $a2
/* 48E34 8006DA34 00093402 */  srl       $a2, $t1, 16
/* 48E38 8006DA38 14C00002 */  bnez      $a2, .L8006DA44
/* 48E3C 8006DA3C 00E6001B */   divu     $zero, $a3, $a2
/* 48E40 8006DA40 0007000D */  break     7
.L8006DA44:
/* 48E44 8006DA44 00004012 */  mflo      $t0
/* 48E48 8006DA48 00001810 */  mfhi      $v1
/* 48E4C 8006DA4C 3125FFFF */  andi      $a1, $t1, 0xFFFF
/* 48E50 8006DA50 00000000 */  nop
/* 48E54 8006DA54 01050018 */  mult      $t0, $a1
/* 48E58 8006DA58 00041402 */  srl       $v0, $a0, 16
/* 48E5C 8006DA5C 00031C00 */  sll       $v1, $v1, 16
/* 48E60 8006DA60 00621825 */  or        $v1, $v1, $v0
/* 48E64 8006DA64 00003812 */  mflo      $a3
/* 48E68 8006DA68 0067102B */  sltu      $v0, $v1, $a3
/* 48E6C 8006DA6C 5040000B */  beql      $v0, $zero, .L8006DA9C
/* 48E70 8006DA70 00671823 */   subu     $v1, $v1, $a3
/* 48E74 8006DA74 00691821 */  addu      $v1, $v1, $t1
/* 48E78 8006DA78 0069102B */  sltu      $v0, $v1, $t1
/* 48E7C 8006DA7C 14400006 */  bnez      $v0, .L8006DA98
/* 48E80 8006DA80 2508FFFF */   addiu    $t0, $t0, -0x1
/* 48E84 8006DA84 0067102B */  sltu      $v0, $v1, $a3
/* 48E88 8006DA88 50400004 */  beql      $v0, $zero, .L8006DA9C
/* 48E8C 8006DA8C 00671823 */   subu     $v1, $v1, $a3
/* 48E90 8006DA90 2508FFFF */  addiu     $t0, $t0, -0x1
/* 48E94 8006DA94 00691821 */  addu      $v1, $v1, $t1
.L8006DA98:
/* 48E98 8006DA98 00671823 */  subu      $v1, $v1, $a3
.L8006DA9C:
/* 48E9C 8006DA9C 14C00002 */  bnez      $a2, .L8006DAA8
/* 48EA0 8006DAA0 0066001B */   divu     $zero, $v1, $a2
/* 48EA4 8006DAA4 0007000D */  break     7
.L8006DAA8:
/* 48EA8 8006DAA8 00003012 */  mflo      $a2
/* 48EAC 8006DAAC 00001810 */  mfhi      $v1
/* 48EB0 8006DAB0 00000000 */  nop
/* 48EB4 8006DAB4 00000000 */  nop
/* 48EB8 8006DAB8 00C50018 */  mult      $a2, $a1
/* 48EBC 8006DABC 3082FFFF */  andi      $v0, $a0, 0xFFFF
/* 48EC0 8006DAC0 00031C00 */  sll       $v1, $v1, 16
/* 48EC4 8006DAC4 00621825 */  or        $v1, $v1, $v0
/* 48EC8 8006DAC8 00003812 */  mflo      $a3
/* 48ECC 8006DACC 0067102B */  sltu      $v0, $v1, $a3
/* 48ED0 8006DAD0 1040000B */  beqz      $v0, .L8006DB00
/* 48ED4 8006DAD4 00081400 */   sll      $v0, $t0, 16
/* 48ED8 8006DAD8 00691821 */  addu      $v1, $v1, $t1
/* 48EDC 8006DADC 0069102B */  sltu      $v0, $v1, $t1
/* 48EE0 8006DAE0 14400006 */  bnez      $v0, .L8006DAFC
/* 48EE4 8006DAE4 24C6FFFF */   addiu    $a2, $a2, -0x1
/* 48EE8 8006DAE8 0067102B */  sltu      $v0, $v1, $a3
/* 48EEC 8006DAEC 10400004 */  beqz      $v0, .L8006DB00
/* 48EF0 8006DAF0 00081400 */   sll      $v0, $t0, 16
/* 48EF4 8006DAF4 24C6FFFF */  addiu     $a2, $a2, -0x1
/* 48EF8 8006DAF8 00691821 */  addu      $v1, $v1, $t1
.L8006DAFC:
/* 48EFC 8006DAFC 00081400 */  sll       $v0, $t0, 16
.L8006DB00:
/* 48F00 8006DB00 00465025 */  or        $t2, $v0, $a2
/* 48F04 8006DB04 00672023 */  subu      $a0, $v1, $a3
.L8006DB08:
/* 48F08 8006DB08 00093402 */  srl       $a2, $t1, 16
/* 48F0C 8006DB0C 14C00002 */  bnez      $a2, .L8006DB18
/* 48F10 8006DB10 0086001B */   divu     $zero, $a0, $a2
/* 48F14 8006DB14 0007000D */  break     7
.L8006DB18:
/* 48F18 8006DB18 00003812 */  mflo      $a3
/* 48F1C 8006DB1C 00001810 */  mfhi      $v1
/* 48F20 8006DB20 3128FFFF */  andi      $t0, $t1, 0xFFFF
/* 48F24 8006DB24 00000000 */  nop
/* 48F28 8006DB28 00E80018 */  mult      $a3, $t0
/* 48F2C 8006DB2C 000B1402 */  srl       $v0, $t3, 16
/* 48F30 8006DB30 00031C00 */  sll       $v1, $v1, 16
/* 48F34 8006DB34 00621825 */  or        $v1, $v1, $v0
/* 48F38 8006DB38 00002812 */  mflo      $a1
/* 48F3C 8006DB3C 0065102B */  sltu      $v0, $v1, $a1
/* 48F40 8006DB40 5040000B */  beql      $v0, $zero, .L8006DB70
/* 48F44 8006DB44 00651823 */   subu     $v1, $v1, $a1
/* 48F48 8006DB48 00691821 */  addu      $v1, $v1, $t1
/* 48F4C 8006DB4C 0069102B */  sltu      $v0, $v1, $t1
/* 48F50 8006DB50 14400006 */  bnez      $v0, .L8006DB6C
/* 48F54 8006DB54 24E7FFFF */   addiu    $a3, $a3, -0x1
/* 48F58 8006DB58 0065102B */  sltu      $v0, $v1, $a1
/* 48F5C 8006DB5C 50400004 */  beql      $v0, $zero, .L8006DB70
/* 48F60 8006DB60 00651823 */   subu     $v1, $v1, $a1
/* 48F64 8006DB64 24E7FFFF */  addiu     $a3, $a3, -0x1
/* 48F68 8006DB68 00691821 */  addu      $v1, $v1, $t1
.L8006DB6C:
/* 48F6C 8006DB6C 00651823 */  subu      $v1, $v1, $a1
.L8006DB70:
/* 48F70 8006DB70 14C00002 */  bnez      $a2, .L8006DB7C
/* 48F74 8006DB74 0066001B */   divu     $zero, $v1, $a2
/* 48F78 8006DB78 0007000D */  break     7
.L8006DB7C:
/* 48F7C 8006DB7C 00002012 */  mflo      $a0
/* 48F80 8006DB80 00001810 */  mfhi      $v1
/* 48F84 8006DB84 00000000 */  nop
/* 48F88 8006DB88 00000000 */  nop
/* 48F8C 8006DB8C 00880018 */  mult      $a0, $t0
/* 48F90 8006DB90 3162FFFF */  andi      $v0, $t3, 0xFFFF
/* 48F94 8006DB94 00031C00 */  sll       $v1, $v1, 16
/* 48F98 8006DB98 00621825 */  or        $v1, $v1, $v0
/* 48F9C 8006DB9C 00002812 */  mflo      $a1
/* 48FA0 8006DBA0 0065102B */  sltu      $v0, $v1, $a1
/* 48FA4 8006DBA4 10400007 */  beqz      $v0, .L8006DBC4
/* 48FA8 8006DBA8 00691821 */   addu     $v1, $v1, $t1
/* 48FAC 8006DBAC 0069102B */  sltu      $v0, $v1, $t1
/* 48FB0 8006DBB0 14400004 */  bnez      $v0, .L8006DBC4
/* 48FB4 8006DBB4 2484FFFF */   addiu    $a0, $a0, -0x1
/* 48FB8 8006DBB8 0065102B */  sltu      $v0, $v1, $a1
/* 48FBC 8006DBBC 54400001 */  bnel      $v0, $zero, .L8006DBC4
/* 48FC0 8006DBC0 2484FFFF */   addiu    $a0, $a0, -0x1
.L8006DBC4:
/* 48FC4 8006DBC4 00071400 */  sll       $v0, $a3, 16
/* 48FC8 8006DBC8 0801B762 */  j         .L8006DD88
/* 48FCC 8006DBCC 00443025 */   or       $a2, $v0, $a0
.L8006DBD0:
/* 48FD0 8006DBD0 0088102B */  sltu      $v0, $a0, $t0
/* 48FD4 8006DBD4 10400003 */  beqz      $v0, .L8006DBE4
/* 48FD8 8006DBD8 3402FFFF */   ori      $v0, $zero, 0xFFFF
/* 48FDC 8006DBDC 0801B761 */  j         .L8006DD84
/* 48FE0 8006DBE0 0000302D */   daddu    $a2, $zero, $zero
.L8006DBE4:
/* 48FE4 8006DBE4 0048102B */  sltu      $v0, $v0, $t0
/* 48FE8 8006DBE8 14400005 */  bnez      $v0, .L8006DC00
/* 48FEC 8006DBEC 0100282D */   daddu    $a1, $t0, $zero
/* 48FF0 8006DBF0 2D020100 */  sltiu     $v0, $t0, 0x100
/* 48FF4 8006DBF4 38420001 */  xori      $v0, $v0, 0x1
/* 48FF8 8006DBF8 0801B706 */  j         .L8006DC18
/* 48FFC 8006DBFC 000218C0 */   sll      $v1, $v0, 3
.L8006DC00:
/* 49000 8006DC00 3C0200FF */  lui       $v0, (0xFFFFFF >> 16)
/* 49004 8006DC04 3442FFFF */  ori       $v0, $v0, (0xFFFFFF & 0xFFFF)
/* 49008 8006DC08 0048102B */  sltu      $v0, $v0, $t0
/* 4900C 8006DC0C 14400002 */  bnez      $v0, .L8006DC18
/* 49010 8006DC10 24030018 */   addiu    $v1, $zero, 0x18
/* 49014 8006DC14 24030010 */  addiu     $v1, $zero, 0x10
.L8006DC18:
/* 49018 8006DC18 00651006 */  srlv      $v0, $a1, $v1
/* 4901C 8006DC1C 3C01800A */  lui       $at, %hi(D_80099E40)
/* 49020 8006DC20 00220821 */  addu      $at, $at, $v0
/* 49024 8006DC24 90229E40 */  lbu       $v0, %lo(D_80099E40)($at)
/* 49028 8006DC28 00431021 */  addu      $v0, $v0, $v1
/* 4902C 8006DC2C 24030020 */  addiu     $v1, $zero, 0x20
/* 49030 8006DC30 00623023 */  subu      $a2, $v1, $v0
/* 49034 8006DC34 54C00009 */  bnel      $a2, $zero, .L8006DC5C
/* 49038 8006DC38 00662823 */   subu     $a1, $v1, $a2
/* 4903C 8006DC3C 0104102B */  sltu      $v0, $t0, $a0
/* 49040 8006DC40 14400050 */  bnez      $v0, .L8006DD84
/* 49044 8006DC44 24060001 */   addiu    $a2, $zero, 0x1
/* 49048 8006DC48 0169102B */  sltu      $v0, $t3, $t1
/* 4904C 8006DC4C 1440004D */  bnez      $v0, .L8006DD84
/* 49050 8006DC50 0000302D */   daddu    $a2, $zero, $zero
/* 49054 8006DC54 0801B761 */  j         .L8006DD84
/* 49058 8006DC58 24060001 */   addiu    $a2, $zero, 0x1
.L8006DC5C:
/* 4905C 8006DC5C 00C81804 */  sllv      $v1, $t0, $a2
/* 49060 8006DC60 00A91006 */  srlv      $v0, $t1, $a1
/* 49064 8006DC64 00624025 */  or        $t0, $v1, $v0
/* 49068 8006DC68 00C94804 */  sllv      $t1, $t1, $a2
/* 4906C 8006DC6C 00A43806 */  srlv      $a3, $a0, $a1
/* 49070 8006DC70 00C41804 */  sllv      $v1, $a0, $a2
/* 49074 8006DC74 00AB1006 */  srlv      $v0, $t3, $a1
/* 49078 8006DC78 00622025 */  or        $a0, $v1, $v0
/* 4907C 8006DC7C 00CB5804 */  sllv      $t3, $t3, $a2
/* 49080 8006DC80 00083402 */  srl       $a2, $t0, 16
/* 49084 8006DC84 14C00002 */  bnez      $a2, .L8006DC90
/* 49088 8006DC88 00E6001B */   divu     $zero, $a3, $a2
/* 4908C 8006DC8C 0007000D */  break     7
.L8006DC90:
/* 49090 8006DC90 00005012 */  mflo      $t2
/* 49094 8006DC94 00001810 */  mfhi      $v1
/* 49098 8006DC98 3105FFFF */  andi      $a1, $t0, 0xFFFF
/* 4909C 8006DC9C 00000000 */  nop
/* 490A0 8006DCA0 01450018 */  mult      $t2, $a1
/* 490A4 8006DCA4 00041402 */  srl       $v0, $a0, 16
/* 490A8 8006DCA8 00031C00 */  sll       $v1, $v1, 16
/* 490AC 8006DCAC 00621825 */  or        $v1, $v1, $v0
/* 490B0 8006DCB0 00003812 */  mflo      $a3
/* 490B4 8006DCB4 0067102B */  sltu      $v0, $v1, $a3
/* 490B8 8006DCB8 5040000B */  beql      $v0, $zero, .L8006DCE8
/* 490BC 8006DCBC 00671823 */   subu     $v1, $v1, $a3
/* 490C0 8006DCC0 00681821 */  addu      $v1, $v1, $t0
/* 490C4 8006DCC4 0068102B */  sltu      $v0, $v1, $t0
/* 490C8 8006DCC8 14400006 */  bnez      $v0, .L8006DCE4
/* 490CC 8006DCCC 254AFFFF */   addiu    $t2, $t2, -0x1
/* 490D0 8006DCD0 0067102B */  sltu      $v0, $v1, $a3
/* 490D4 8006DCD4 50400004 */  beql      $v0, $zero, .L8006DCE8
/* 490D8 8006DCD8 00671823 */   subu     $v1, $v1, $a3
/* 490DC 8006DCDC 254AFFFF */  addiu     $t2, $t2, -0x1
/* 490E0 8006DCE0 00681821 */  addu      $v1, $v1, $t0
.L8006DCE4:
/* 490E4 8006DCE4 00671823 */  subu      $v1, $v1, $a3
.L8006DCE8:
/* 490E8 8006DCE8 14C00002 */  bnez      $a2, .L8006DCF4
/* 490EC 8006DCEC 0066001B */   divu     $zero, $v1, $a2
/* 490F0 8006DCF0 0007000D */  break     7
.L8006DCF4:
/* 490F4 8006DCF4 00003012 */  mflo      $a2
/* 490F8 8006DCF8 00001810 */  mfhi      $v1
/* 490FC 8006DCFC 00000000 */  nop
/* 49100 8006DD00 00000000 */  nop
/* 49104 8006DD04 00C50018 */  mult      $a2, $a1
/* 49108 8006DD08 3082FFFF */  andi      $v0, $a0, 0xFFFF
/* 4910C 8006DD0C 00031C00 */  sll       $v1, $v1, 16
/* 49110 8006DD10 00621825 */  or        $v1, $v1, $v0
/* 49114 8006DD14 00003812 */  mflo      $a3
/* 49118 8006DD18 0067102B */  sltu      $v0, $v1, $a3
/* 4911C 8006DD1C 1040000B */  beqz      $v0, .L8006DD4C
/* 49120 8006DD20 000A1400 */   sll      $v0, $t2, 16
/* 49124 8006DD24 00681821 */  addu      $v1, $v1, $t0
/* 49128 8006DD28 0068102B */  sltu      $v0, $v1, $t0
/* 4912C 8006DD2C 14400006 */  bnez      $v0, .L8006DD48
/* 49130 8006DD30 24C6FFFF */   addiu    $a2, $a2, -0x1
/* 49134 8006DD34 0067102B */  sltu      $v0, $v1, $a3
/* 49138 8006DD38 10400004 */  beqz      $v0, .L8006DD4C
/* 4913C 8006DD3C 000A1400 */   sll      $v0, $t2, 16
/* 49140 8006DD40 24C6FFFF */  addiu     $a2, $a2, -0x1
/* 49144 8006DD44 00681821 */  addu      $v1, $v1, $t0
.L8006DD48:
/* 49148 8006DD48 000A1400 */  sll       $v0, $t2, 16
.L8006DD4C:
/* 4914C 8006DD4C 00463025 */  or        $a2, $v0, $a2
/* 49150 8006DD50 00672023 */  subu      $a0, $v1, $a3
/* 49154 8006DD54 00C90019 */  multu     $a2, $t1
/* 49158 8006DD58 00001810 */  mfhi      $v1
/* 4915C 8006DD5C 0083102B */  sltu      $v0, $a0, $v1
/* 49160 8006DD60 00004012 */  mflo      $t0
/* 49164 8006DD64 54400007 */  bnel      $v0, $zero, .L8006DD84
/* 49168 8006DD68 24C6FFFF */   addiu    $a2, $a2, -0x1
/* 4916C 8006DD6C 14640006 */  bne       $v1, $a0, .L8006DD88
/* 49170 8006DD70 0000502D */   daddu    $t2, $zero, $zero
/* 49174 8006DD74 0168102B */  sltu      $v0, $t3, $t0
/* 49178 8006DD78 10400004 */  beqz      $v0, .L8006DD8C
/* 4917C 8006DD7C 00C0782D */   daddu    $t7, $a2, $zero
/* 49180 8006DD80 24C6FFFF */  addiu     $a2, $a2, -0x1
.L8006DD84:
/* 49184 8006DD84 0000502D */  daddu     $t2, $zero, $zero
.L8006DD88:
/* 49188 8006DD88 00C0782D */  daddu     $t7, $a2, $zero
.L8006DD8C:
/* 4918C 8006DD8C 0140702D */  daddu     $t6, $t2, $zero
/* 49190 8006DD90 01C0102D */  daddu     $v0, $t6, $zero
/* 49194 8006DD94 13000007 */  beqz      $t8, .L8006DDB4
/* 49198 8006DD98 01E0182D */   daddu    $v1, $t7, $zero
/* 4919C 8006DD9C 00036823 */  negu      $t5, $v1
/* 491A0 8006DDA0 00021823 */  negu      $v1, $v0
/* 491A4 8006DDA4 000D102B */  sltu      $v0, $zero, $t5
/* 491A8 8006DDA8 00626023 */  subu      $t4, $v1, $v0
/* 491AC 8006DDAC 0180102D */  daddu     $v0, $t4, $zero
/* 491B0 8006DDB0 01A0182D */  daddu     $v1, $t5, $zero
.L8006DDB4:
/* 491B4 8006DDB4 03E00008 */  jr        $ra
/* 491B8 8006DDB8 00000000 */   nop
/* 491BC 8006DDBC 00000000 */  nop

### DECOMPILED C INSTRUCTIONS:

DItype __divdi3(DItype u, DItype v) {
    word_type c = 0;
    DIunion uu, vv;
    DItype w;

    uu.ll = u;
    vv.ll = v;

    if (uu.s.high < 0) {
        c = ~c;
        uu.ll = __negdi2(uu.ll);
    }
    if (vv.s.high < 0) {
        c = ~c;
        vv.ll = __negdi2(vv.ll);
    }

    w = __udivmoddi4(uu.ll, vv.ll, (UDItype *) 0);
    if (c) {
        w = __negdi2(w);
    }

    return w;
}


### RAW ASSEMBLY INSTRUCTIONS:

glabel HealActor
/* 19F584 80270CA4 27BDFFA0 */  addiu     $sp, $sp, -0x60
/* 19F588 80270CA8 AFB20020 */  sw        $s2, 0x20($sp)
/* 19F58C 80270CAC 0080902D */  daddu     $s2, $a0, $zero
/* 19F590 80270CB0 AFBF0028 */  sw        $ra, 0x28($sp)
/* 19F594 80270CB4 AFB30024 */  sw        $s3, 0x24($sp)
/* 19F598 80270CB8 AFB1001C */  sw        $s1, 0x1C($sp)
/* 19F59C 80270CBC AFB00018 */  sw        $s0, 0x18($sp)
/* 19F5A0 80270CC0 F7BE0058 */  sdc1      $f30, 0x58($sp)
/* 19F5A4 80270CC4 F7BC0050 */  sdc1      $f28, 0x50($sp)
/* 19F5A8 80270CC8 F7BA0048 */  sdc1      $f26, 0x48($sp)
/* 19F5AC 80270CCC F7B80040 */  sdc1      $f24, 0x40($sp)
/* 19F5B0 80270CD0 F7B60038 */  sdc1      $f22, 0x38($sp)
/* 19F5B4 80270CD4 F7B40030 */  sdc1      $f20, 0x30($sp)
/* 19F5B8 80270CD8 8E50000C */  lw        $s0, 0xC($s2)
/* 19F5BC 80270CDC 54A00001 */  bnel      $a1, $zero, .L80270CE4
/* 19F5C0 80270CE0 AE400070 */   sw       $zero, 0x70($s2)
.L80270CE4:
/* 19F5C4 80270CE4 8E420070 */  lw        $v0, 0x70($s2)
/* 19F5C8 80270CE8 1440002B */  bnez      $v0, .L80270D98
/* 19F5CC 80270CEC 00000000 */   nop
/* 19F5D0 80270CF0 8E050000 */  lw        $a1, 0x0($s0)
/* 19F5D4 80270CF4 26100004 */  addiu     $s0, $s0, 0x4
/* 19F5D8 80270CF8 0C0B1EAF */  jal       evt_get_variable
/* 19F5DC 80270CFC 0240202D */   daddu    $a0, $s2, $zero
/* 19F5E0 80270D00 0040882D */  daddu     $s1, $v0, $zero
/* 19F5E4 80270D04 2402FF81 */  addiu     $v0, $zero, -0x7F
/* 19F5E8 80270D08 16220002 */  bne       $s1, $v0, .L80270D14
/* 19F5EC 80270D0C 00000000 */   nop
/* 19F5F0 80270D10 8E510148 */  lw        $s1, 0x148($s2)
.L80270D14:
/* 19F5F4 80270D14 8E050000 */  lw        $a1, 0x0($s0)
/* 19F5F8 80270D18 26100004 */  addiu     $s0, $s0, 0x4
/* 19F5FC 80270D1C 0C0B1EAF */  jal       evt_get_variable
/* 19F600 80270D20 0240202D */   daddu    $a0, $s2, $zero
/* 19F604 80270D24 0040982D */  daddu     $s3, $v0, $zero
/* 19F608 80270D28 8E050000 */  lw        $a1, 0x0($s0)
/* 19F60C 80270D2C 0C0B1EAF */  jal       evt_get_variable
/* 19F610 80270D30 0240202D */   daddu    $a0, $s2, $zero
/* 19F614 80270D34 3C01802A */  lui       $at, %hi(D_8029FBD0)
/* 19F618 80270D38 AC22FBD0 */  sw        $v0, %lo(D_8029FBD0)($at)
/* 19F61C 80270D3C 0C09A75B */  jal       get_actor
/* 19F620 80270D40 0220202D */   daddu    $a0, $s1, $zero
/* 19F624 80270D44 0040802D */  daddu     $s0, $v0, $zero
/* 19F628 80270D48 24040008 */  addiu     $a0, $zero, 0x8
/* 19F62C 80270D4C AE500074 */  sw        $s0, 0x74($s2)
/* 19F630 80270D50 0C093903 */  jal       func_8024E40C
/* 19F634 80270D54 AE530078 */   sw       $s3, 0x78($s2)
/* 19F638 80270D58 0C093978 */  jal       func_8024E5E0
/* 19F63C 80270D5C 2404000C */   addiu    $a0, $zero, 0xC
/* 19F640 80270D60 86040192 */  lh        $a0, 0x192($s0)
/* 19F644 80270D64 0C09390F */  jal       func_8024E43C
/* 19F648 80270D68 00000000 */   nop
/* 19F64C 80270D6C 0C093936 */  jal       D_8024E4D8_C0BD58
/* 19F650 80270D70 2404000A */   addiu    $a0, $zero, 0xA
/* 19F654 80270D74 0C093983 */  jal       func_8024E60C
/* 19F658 80270D78 00000000 */   nop
/* 19F65C 80270D7C 24020001 */  addiu     $v0, $zero, 0x1
/* 19F660 80270D80 3C01802A */  lui       $at, %hi(D_8029FBD4)
/* 19F664 80270D84 A022FBD4 */  sb        $v0, %lo(D_8029FBD4)($at)
/* 19F668 80270D88 24020005 */  addiu     $v0, $zero, 0x5
/* 19F66C 80270D8C AE42007C */  sw        $v0, 0x7C($s2)
/* 19F670 80270D90 24020001 */  addiu     $v0, $zero, 0x1
/* 19F674 80270D94 AE420070 */  sw        $v0, 0x70($s2)
.L80270D98:
/* 19F678 80270D98 0C09A75B */  jal       get_actor
/* 19F67C 80270D9C 8E440148 */   lw       $a0, 0x148($s2)
/* 19F680 80270DA0 8E500074 */  lw        $s0, 0x74($s2)
/* 19F684 80270DA4 8E530078 */  lw        $s3, 0x78($s2)
/* 19F688 80270DA8 86020150 */  lh        $v0, 0x150($s0)
/* 19F68C 80270DAC 8E030000 */  lw        $v1, 0x0($s0)
/* 19F690 80270DB0 C6000144 */  lwc1      $f0, 0x144($s0)
/* 19F694 80270DB4 44821000 */  mtc1      $v0, $f2
/* 19F698 80270DB8 00000000 */  nop
/* 19F69C 80270DBC 468010A0 */  cvt.s.w   $f2, $f2
/* 19F6A0 80270DC0 30620800 */  andi      $v0, $v1, 0x800
/* 19F6A4 80270DC4 1040000E */  beqz      $v0, .L80270E00
/* 19F6A8 80270DC8 46020780 */   add.s    $f30, $f0, $f2
/* 19F6AC 80270DCC 86020152 */  lh        $v0, 0x152($s0)
/* 19F6B0 80270DD0 C6020148 */  lwc1      $f2, 0x148($s0)
/* 19F6B4 80270DD4 44820000 */  mtc1      $v0, $f0
/* 19F6B8 80270DD8 00000000 */  nop
/* 19F6BC 80270DDC 46800020 */  cvt.s.w   $f0, $f0
/* 19F6C0 80270DE0 92020191 */  lbu       $v0, 0x191($s0)
/* 19F6C4 80270DE4 46001080 */  add.s     $f2, $f2, $f0
/* 19F6C8 80270DE8 00021042 */  srl       $v0, $v0, 1
/* 19F6CC 80270DEC 44820000 */  mtc1      $v0, $f0
/* 19F6D0 80270DF0 00000000 */  nop
/* 19F6D4 80270DF4 46800020 */  cvt.s.w   $f0, $f0
/* 19F6D8 80270DF8 0809C39B */  j         .L80270E6C
/* 19F6DC 80270DFC 46001601 */   sub.s    $f24, $f2, $f0
.L80270E00:
/* 19F6E0 80270E00 30628000 */  andi      $v0, $v1, 0x8000
/* 19F6E4 80270E04 1440000E */  bnez      $v0, .L80270E40
/* 19F6E8 80270E08 00000000 */   nop
/* 19F6EC 80270E0C 86020152 */  lh        $v0, 0x152($s0)
/* 19F6F0 80270E10 C6020148 */  lwc1      $f2, 0x148($s0)
/* 19F6F4 80270E14 44820000 */  mtc1      $v0, $f0
/* 19F6F8 80270E18 00000000 */  nop
/* 19F6FC 80270E1C 46800020 */  cvt.s.w   $f0, $f0
/* 19F700 80270E20 92020191 */  lbu       $v0, 0x191($s0)
/* 19F704 80270E24 46001080 */  add.s     $f2, $f2, $f0
/* 19F708 80270E28 00021042 */  srl       $v0, $v0, 1
/* 19F70C 80270E2C 44820000 */  mtc1      $v0, $f0
/* 19F710 80270E30 00000000 */  nop
/* 19F714 80270E34 46800020 */  cvt.s.w   $f0, $f0
/* 19F718 80270E38 0809C39B */  j         .L80270E6C
/* 19F71C 80270E3C 46020600 */   add.s    $f24, $f0, $f2
.L80270E40:
/* 19F720 80270E40 86020152 */  lh        $v0, 0x152($s0)
/* 19F724 80270E44 C6000148 */  lwc1      $f0, 0x148($s0)
/* 19F728 80270E48 44821000 */  mtc1      $v0, $f2
/* 19F72C 80270E4C 00000000 */  nop
/* 19F730 80270E50 468010A0 */  cvt.s.w   $f2, $f2
/* 19F734 80270E54 92020191 */  lbu       $v0, 0x191($s0)
/* 19F738 80270E58 46020000 */  add.s     $f0, $f0, $f2
/* 19F73C 80270E5C 44821000 */  mtc1      $v0, $f2
/* 19F740 80270E60 00000000 */  nop
/* 19F744 80270E64 468010A0 */  cvt.s.w   $f2, $f2
/* 19F748 80270E68 46020600 */  add.s     $f24, $f0, $f2
.L80270E6C:
/* 19F74C 80270E6C 86020154 */  lh        $v0, 0x154($s0)
/* 19F750 80270E70 86030150 */  lh        $v1, 0x150($s0)
/* 19F754 80270E74 C600014C */  lwc1      $f0, 0x14C($s0)
/* 19F758 80270E78 44821000 */  mtc1      $v0, $f2
/* 19F75C 80270E7C 00000000 */  nop
/* 19F760 80270E80 468010A0 */  cvt.s.w   $f2, $f2
/* 19F764 80270E84 44832000 */  mtc1      $v1, $f4
/* 19F768 80270E88 00000000 */  nop
/* 19F76C 80270E8C 46802120 */  cvt.s.w   $f4, $f4
/* 19F770 80270E90 92020190 */  lbu       $v0, 0x190($s0)
/* 19F774 80270E94 46020000 */  add.s     $f0, $f0, $f2
/* 19F778 80270E98 3C014120 */  lui       $at, (0x41200000 >> 16)
/* 19F77C 80270E9C 44811000 */  mtc1      $at, $f2
/* 19F780 80270EA0 8E030000 */  lw        $v1, 0x0($s0)
/* 19F784 80270EA4 46020700 */  add.s     $f28, $f0, $f2
/* 19F788 80270EA8 C6000144 */  lwc1      $f0, 0x144($s0)
/* 19F78C 80270EAC 00021042 */  srl       $v0, $v0, 1
/* 19F790 80270EB0 46040000 */  add.s     $f0, $f0, $f4
/* 19F794 80270EB4 44821000 */  mtc1      $v0, $f2
/* 19F798 80270EB8 00000000 */  nop
/* 19F79C 80270EBC 468010A0 */  cvt.s.w   $f2, $f2
/* 19F7A0 80270EC0 30620800 */  andi      $v0, $v1, 0x800
/* 19F7A4 80270EC4 1040000D */  beqz      $v0, .L80270EFC
/* 19F7A8 80270EC8 46020680 */   add.s    $f26, $f0, $f2
/* 19F7AC 80270ECC 86020152 */  lh        $v0, 0x152($s0)
/* 19F7B0 80270ED0 C6000148 */  lwc1      $f0, 0x148($s0)
/* 19F7B4 80270ED4 44821000 */  mtc1      $v0, $f2
/* 19F7B8 80270ED8 00000000 */  nop
/* 19F7BC 80270EDC 468010A0 */  cvt.s.w   $f2, $f2
/* 19F7C0 80270EE0 92020191 */  lbu       $v0, 0x191($s0)
/* 19F7C4 80270EE4 46020000 */  add.s     $f0, $f0, $f2
/* 19F7C8 80270EE8 44821000 */  mtc1      $v0, $f2
/* 19F7CC 80270EEC 00000000 */  nop
/* 19F7D0 80270EF0 468010A0 */  cvt.s.w   $f2, $f2
/* 19F7D4 80270EF4 0809C3DA */  j         .L80270F68
/* 19F7D8 80270EF8 46020501 */   sub.s    $f20, $f0, $f2
.L80270EFC:
/* 19F7DC 80270EFC 30628000 */  andi      $v0, $v1, 0x8000
/* 19F7E0 80270F00 1440000D */  bnez      $v0, .L80270F38
/* 19F7E4 80270F04 00000000 */   nop
/* 19F7E8 80270F08 86020152 */  lh        $v0, 0x152($s0)
/* 19F7EC 80270F0C C6000148 */  lwc1      $f0, 0x148($s0)
/* 19F7F0 80270F10 44821000 */  mtc1      $v0, $f2
/* 19F7F4 80270F14 00000000 */  nop
/* 19F7F8 80270F18 468010A0 */  cvt.s.w   $f2, $f2
/* 19F7FC 80270F1C 92020191 */  lbu       $v0, 0x191($s0)
/* 19F800 80270F20 46020000 */  add.s     $f0, $f0, $f2
/* 19F804 80270F24 44821000 */  mtc1      $v0, $f2
/* 19F808 80270F28 00000000 */  nop
/* 19F80C 80270F2C 468010A0 */  cvt.s.w   $f2, $f2
/* 19F810 80270F30 0809C3DA */  j         .L80270F68
/* 19F814 80270F34 46001500 */   add.s    $f20, $f2, $f0
.L80270F38:
/* 19F818 80270F38 86020152 */  lh        $v0, 0x152($s0)
/* 19F81C 80270F3C C6020148 */  lwc1      $f2, 0x148($s0)
/* 19F820 80270F40 44820000 */  mtc1      $v0, $f0
/* 19F824 80270F44 00000000 */  nop
/* 19F828 80270F48 46800020 */  cvt.s.w   $f0, $f0
/* 19F82C 80270F4C 92020191 */  lbu       $v0, 0x191($s0)
/* 19F830 80270F50 46001080 */  add.s     $f2, $f2, $f0
/* 19F834 80270F54 00021040 */  sll       $v0, $v0, 1
/* 19F838 80270F58 44820000 */  mtc1      $v0, $f0
/* 19F83C 80270F5C 00000000 */  nop
/* 19F840 80270F60 46800020 */  cvt.s.w   $f0, $f0
/* 19F844 80270F64 46001500 */  add.s     $f20, $f2, $f0
.L80270F68:
/* 19F848 80270F68 86020154 */  lh        $v0, 0x154($s0)
/* 19F84C 80270F6C C600014C */  lwc1      $f0, 0x14C($s0)
/* 19F850 80270F70 44821000 */  mtc1      $v0, $f2
/* 19F854 80270F74 00000000 */  nop
/* 19F858 80270F78 468010A0 */  cvt.s.w   $f2, $f2
/* 19F85C 80270F7C 46020000 */  add.s     $f0, $f0, $f2
/* 19F860 80270F80 8E420070 */  lw        $v0, 0x70($s2)
/* 19F864 80270F84 3C014120 */  lui       $at, (0x41200000 >> 16)
/* 19F868 80270F88 44811000 */  mtc1      $at, $f2
/* 19F86C 80270F8C 2443FFFF */  addiu     $v1, $v0, -0x1
/* 19F870 80270F90 2C620005 */  sltiu     $v0, $v1, 0x5
/* 19F874 80270F94 1040005F */  beqz      $v0, .L80271114
/* 19F878 80270F98 46020580 */   add.s    $f22, $f0, $f2
/* 19F87C 80270F9C 00031080 */  sll       $v0, $v1, 2
/* 19F880 80270FA0 3C01802A */  lui       $at, %hi(jtbl_8029D868)
/* 19F884 80270FA4 00220821 */  addu      $at, $at, $v0
/* 19F888 80270FA8 8C22D868 */  lw        $v0, %lo(jtbl_8029D868)($at)
/* 19F88C 80270FAC 00400008 */  jr        $v0
/* 19F890 80270FB0 00000000 */   nop
glabel .L80270FB4
/* 19F894 80270FB4 8E42007C */  lw        $v0, 0x7C($s2)
/* 19F898 80270FB8 14400049 */  bnez      $v0, .L802710E0
/* 19F89C 80270FBC 2442FFFF */   addiu    $v0, $v0, -0x1
/* 19F8A0 80270FC0 0200202D */  daddu     $a0, $s0, $zero
/* 19F8A4 80270FC4 0C09DC58 */  jal       dispatch_event_actor
/* 19F8A8 80270FC8 2405003F */   addiu    $a1, $zero, 0x3F
/* 19F8AC 80270FCC 4405D000 */  mfc1      $a1, $f26
/* 19F8B0 80270FD0 4406A000 */  mfc1      $a2, $f20
/* 19F8B4 80270FD4 4407B000 */  mfc1      $a3, $f22
/* 19F8B8 80270FD8 0000202D */  daddu     $a0, $zero, $zero
/* 19F8BC 80270FDC 0C01C424 */  jal       fx_recover
/* 19F8C0 80270FE0 AFB30010 */   sw       $s3, 0x10($sp)
/* 19F8C4 80270FE4 4600F306 */  mov.s     $f12, $f30
/* 19F8C8 80270FE8 4600C386 */  mov.s     $f14, $f24
/* 19F8CC 80270FEC 4406E000 */  mfc1      $a2, $f28
/* 19F8D0 80270FF0 0C0B5D18 */  jal       show_start_recovery_shimmer
/* 19F8D4 80270FF4 0260382D */   daddu    $a3, $s3, $zero
/* 19F8D8 80270FF8 2402001E */  addiu     $v0, $zero, 0x1E
/* 19F8DC 80270FFC AE42007C */  sw        $v0, 0x7C($s2)
/* 19F8E0 80271000 24020002 */  addiu     $v0, $zero, 0x2
/* 19F8E4 80271004 0809C445 */  j         .L80271114
/* 19F8E8 80271008 AE420070 */   sw       $v0, 0x70($s2)
glabel .L8027100C
/* 19F8EC 8027100C 8E42007C */  lw        $v0, 0x7C($s2)
/* 19F8F0 80271010 14400033 */  bnez      $v0, .L802710E0
/* 19F8F4 80271014 2442FFFF */   addiu    $v0, $v0, -0x1
/* 19F8F8 80271018 0C093903 */  jal       func_8024E40C
/* 19F8FC 8027101C 24040002 */   addiu    $a0, $zero, 0x2
/* 19F900 80271020 0C093936 */  jal       D_8024E4D8_C0BD58
/* 19F904 80271024 2404000F */   addiu    $a0, $zero, 0xF
/* 19F908 80271028 920201B8 */  lbu       $v0, 0x1B8($s0)
/* 19F90C 8027102C 820301B9 */  lb        $v1, 0x1B9($s0)
/* 19F910 80271030 00531021 */  addu      $v0, $v0, $s3
/* 19F914 80271034 A20201B8 */  sb        $v0, 0x1B8($s0)
/* 19F918 80271038 00021600 */  sll       $v0, $v0, 24
/* 19F91C 8027103C 00021603 */  sra       $v0, $v0, 24
/* 19F920 80271040 0062182A */  slt       $v1, $v1, $v0
/* 19F924 80271044 920201B9 */  lbu       $v0, 0x1B9($s0)
/* 19F928 80271048 54600001 */  bnel      $v1, $zero, .L80271050
/* 19F92C 8027104C A20201B8 */   sb       $v0, 0x1B8($s0)
.L80271050:
/* 19F930 80271050 4600F306 */  mov.s     $f12, $f30
/* 19F934 80271054 4600C386 */  mov.s     $f14, $f24
/* 19F938 80271058 4406E000 */  mfc1      $a2, $f28
/* 19F93C 8027105C 0C0B5D30 */  jal       show_recovery_shimmer
/* 19F940 80271060 0260382D */   daddu    $a3, $s3, $zero
/* 19F944 80271064 2402000F */  addiu     $v0, $zero, 0xF
/* 19F948 80271068 AE42007C */  sw        $v0, 0x7C($s2)
/* 19F94C 8027106C 24020003 */  addiu     $v0, $zero, 0x3
/* 19F950 80271070 0809C445 */  j         .L80271114
/* 19F954 80271074 AE420070 */   sw       $v0, 0x70($s2)
glabel .L80271078
/* 19F958 80271078 8E42007C */  lw        $v0, 0x7C($s2)
/* 19F95C 8027107C 14400018 */  bnez      $v0, .L802710E0
/* 19F960 80271080 2442FFFF */   addiu    $v0, $v0, -0x1
/* 19F964 80271084 3C02802A */  lui       $v0, %hi(D_8029FBD0)
/* 19F968 80271088 8C42FBD0 */  lw        $v0, %lo(D_8029FBD0)($v0)
/* 19F96C 8027108C 14400002 */  bnez      $v0, .L80271098
/* 19F970 80271090 24040020 */   addiu    $a0, $zero, 0x20
/* 19F974 80271094 2404001F */  addiu     $a0, $zero, 0x1F
.L80271098:
/* 19F978 80271098 2405003C */  addiu     $a1, $zero, 0x3C
/* 19F97C 8027109C 0C093E81 */  jal       func_8024FA04
/* 19F980 802710A0 0260302D */   daddu    $a2, $s3, $zero
/* 19F984 802710A4 24020004 */  addiu     $v0, $zero, 0x4
/* 19F988 802710A8 0809C445 */  j         .L80271114
/* 19F98C 802710AC AE420070 */   sw       $v0, 0x70($s2)
glabel .L802710B0
/* 19F990 802710B0 0C093EAD */  jal       func_8024FAB4
/* 19F994 802710B4 00000000 */   nop
/* 19F998 802710B8 14400017 */  bnez      $v0, .L80271118
/* 19F99C 802710BC 0000102D */   daddu    $v0, $zero, $zero
/* 19F9A0 802710C0 2402000A */  addiu     $v0, $zero, 0xA
/* 19F9A4 802710C4 AE42007C */  sw        $v0, 0x7C($s2)
/* 19F9A8 802710C8 24020005 */  addiu     $v0, $zero, 0x5
/* 19F9AC 802710CC 0809C445 */  j         .L80271114
/* 19F9B0 802710D0 AE420070 */   sw       $v0, 0x70($s2)
glabel .L802710D4
/* 19F9B4 802710D4 8E42007C */  lw        $v0, 0x7C($s2)
/* 19F9B8 802710D8 10400003 */  beqz      $v0, .L802710E8
/* 19F9BC 802710DC 2442FFFF */   addiu    $v0, $v0, -0x1
.L802710E0:
/* 19F9C0 802710E0 0809C445 */  j         .L80271114
/* 19F9C4 802710E4 AE42007C */   sw       $v0, 0x7C($s2)
.L802710E8:
/* 19F9C8 802710E8 8E0201D8 */  lw        $v0, 0x1D8($s0)
/* 19F9CC 802710EC 10400005 */  beqz      $v0, .L80271104
/* 19F9D0 802710F0 00000000 */   nop
/* 19F9D4 802710F4 0C0B1059 */  jal       does_script_exist
/* 19F9D8 802710F8 8E0401E8 */   lw       $a0, 0x1E8($s0)
/* 19F9DC 802710FC 14400006 */  bnez      $v0, .L80271118
/* 19F9E0 80271100 0000102D */   daddu    $v0, $zero, $zero
.L80271104:
/* 19F9E4 80271104 3C01802A */  lui       $at, %hi(D_8029FBD4)
/* 19F9E8 80271108 A020FBD4 */  sb        $zero, %lo(D_8029FBD4)($at)
/* 19F9EC 8027110C 0809C446 */  j         .L80271118
/* 19F9F0 80271110 24020002 */   addiu    $v0, $zero, 0x2
.L80271114:
/* 19F9F4 80271114 0000102D */  daddu     $v0, $zero, $zero
.L80271118:
/* 19F9F8 80271118 8FBF0028 */  lw        $ra, 0x28($sp)
/* 19F9FC 8027111C 8FB30024 */  lw        $s3, 0x24($sp)
/* 19FA00 80271120 8FB20020 */  lw        $s2, 0x20($sp)
/* 19FA04 80271124 8FB1001C */  lw        $s1, 0x1C($sp)
/* 19FA08 80271128 8FB00018 */  lw        $s0, 0x18($sp)
/* 19FA0C 8027112C D7BE0058 */  ldc1      $f30, 0x58($sp)
/* 19FA10 80271130 D7BC0050 */  ldc1      $f28, 0x50($sp)
/* 19FA14 80271134 D7BA0048 */  ldc1      $f26, 0x48($sp)
/* 19FA18 80271138 D7B80040 */  ldc1      $f24, 0x40($sp)
/* 19FA1C 8027113C D7B60038 */  ldc1      $f22, 0x38($sp)
/* 19FA20 80271140 D7B40030 */  ldc1      $f20, 0x30($sp)
/* 19FA24 80271144 03E00008 */  jr        $ra
/* 19FA28 80271148 27BD0060 */   addiu    $sp, $sp, 0x60

### DECOMPILED C INSTRUCTIONS:

ApiStatus HealActor(Evt* script, s32 isInitialCall) {
    Bytecode* args = script->ptrReadPos;
    s32 actorID;
    Actor* actor;
    f32 x1, y1, z1;
    f32 x2, y2, z2;
    s32 hpBoost;
    s32 flags;
    s32 flags2;
    s32 message;

    if (isInitialCall) {
        script->functionTemp[0] = 0;
    }

    if (script->functionTemp[0] == 0) {
        actorID = evt_get_variable(script, *args++);
        if (actorID == ACTOR_SELF) {
            actorID = script->owner1.enemyID;
        }
        hpBoost = evt_get_variable(script, *args++);
        D_8029FBD0 = evt_get_variable(script, *args++);
        actor = get_actor(actorID);
        script->functionTempPtr[1] = actor;
        script->functionTemp[2] = hpBoost;

        btl_cam_use_preset(BTL_CAM_PRESET_08);
        btl_cam_set_zoffset(12);
        btl_cam_target_actor(actor->actorID);
        btl_cam_move(10);
        func_8024E60C();

        D_8029FBD4 = 1;
        script->functionTemp[3] = 5;
        script->functionTemp[0] = 1;
    }
    get_actor(script->owner1.enemyID);
    actor = script->functionTempPtr[1];
    hpBoost = script->functionTemp[2];

    flags = actor->flags;
    x1 = actor->currentPos.x + actor->headOffset.x;
    if (flags & ACTOR_FLAG_UPSIDE_DOWN) {
        y1 = actor->currentPos.y + actor->headOffset.y - actor->size.y / 2;
    } else if (!(flags & ACTOR_FLAG_8000)) {
        y1 = actor->currentPos.y + actor->headOffset.y + actor->size.y / 2;
    } else {
        y1 = actor->currentPos.y + actor->headOffset.y + actor->size.y;
    }
    z1 = actor->currentPos.z + actor->headOffset.z + 10.0f;

    flags2 = actor->flags;
    x2 = actor->currentPos.x + actor->headOffset.x + actor->size.x / 2;
    if (flags2 & ACTOR_FLAG_UPSIDE_DOWN) {
        y2 = actor->currentPos.y + actor->headOffset.y - actor->size.y;
    } else if (!(flags2 & ACTOR_FLAG_8000)) {
        y2 = actor->currentPos.y + actor->headOffset.y + actor->size.y;
    } else {
        y2 = actor->currentPos.y + actor->headOffset.y + actor->size.y * 2;
    }
    z2 = actor->currentPos.z + actor->headOffset.z + 10.0f;

    switch (script->functionTemp[0]) {
        case 1:
            if (script->functionTemp[3] == 0) {
                dispatch_event_actor(actor, EVENT_SWAP_PARTNER);
                fx_recover(0, x2, y2, z2, hpBoost);
                show_start_recovery_shimmer(x1, y1, z1, hpBoost);
                script->functionTemp[3] = 30;
                script->functionTemp[0] = 2;
            } else {
                script->functionTemp[3]--;
                break;
            }
            break;
        case 2:
            if (script->functionTemp[3] == 0) {
                btl_cam_use_preset(BTL_CAM_DEFAULT);
                btl_cam_move(15);
                actor->currentHP += hpBoost;
                if (actor->maxHP < actor->currentHP) {
                    actor->currentHP = actor->maxHP;
                }
                show_recovery_shimmer(x1, y1, z1, hpBoost);
                script->functionTemp[3] = 15;
                script->functionTemp[0] = 3;
            } else {
                script->functionTemp[3]--;
                break;
            }
            break;
        case 3:
            if (script->functionTemp[3] == 0) {
                message = 0x20;
                if (D_8029FBD0 == 0) {
                    message = 0x1F;
                }
                btl_show_variable_battle_message(message, 60, hpBoost);
                script->functionTemp[0] = 4;
            } else {
                script->functionTemp[3]--;
                break;
            }
            break;
        case 4:
            if (btl_is_popup_displayed() == 0) {
                script->functionTemp[3] = 10;
                script->functionTemp[0] = 5;
            }
            break;
        case 5:
            if (script->functionTemp[3] != 0) {
                script->functionTemp[3]--;
                break;
            }
            if ((actor->handleEventScript == NULL) || !does_script_exist(actor->handleEventScriptID)) {
                D_8029FBD4 = 0;
                return ApiStatus_DONE2;
            }
            break;
    }
    return ApiStatus_BLOCK;
}


### RAW ASSEMBLY INSTRUCTIONS:

glabel snaking_static_appendGfx
/* 3B289C E00AE54C 27BDFF18 */  addiu     $sp, $sp, -0xE8
/* 3B28A0 E00AE550 3C06DB06 */  lui       $a2, (0xDB060024 >> 16)
/* 3B28A4 E00AE554 34C60024 */  ori       $a2, $a2, (0xDB060024 & 0xFFFF)
/* 3B28A8 E00AE558 AFB300BC */  sw        $s3, 0xBC($sp)
/* 3B28AC E00AE55C 3C13800A */  lui       $s3, %hi(gMainGfxPos)
/* 3B28B0 E00AE560 2673A66C */  addiu     $s3, $s3, %lo(gMainGfxPos)
/* 3B28B4 E00AE564 AFBF00D4 */  sw        $ra, 0xD4($sp)
/* 3B28B8 E00AE568 AFBE00D0 */  sw        $fp, 0xD0($sp)
/* 3B28BC E00AE56C AFB700CC */  sw        $s7, 0xCC($sp)
/* 3B28C0 E00AE570 AFB600C8 */  sw        $s6, 0xC8($sp)
/* 3B28C4 E00AE574 AFB500C4 */  sw        $s5, 0xC4($sp)
/* 3B28C8 E00AE578 AFB400C0 */  sw        $s4, 0xC0($sp)
/* 3B28CC E00AE57C AFB200B8 */  sw        $s2, 0xB8($sp)
/* 3B28D0 E00AE580 AFB100B4 */  sw        $s1, 0xB4($sp)
/* 3B28D4 E00AE584 AFB000B0 */  sw        $s0, 0xB0($sp)
/* 3B28D8 E00AE588 F7B600E0 */  sdc1      $f22, 0xE0($sp)
/* 3B28DC E00AE58C F7B400D8 */  sdc1      $f20, 0xD8($sp)
/* 3B28E0 E00AE590 AFA400E8 */  sw        $a0, 0xE8($sp)
/* 3B28E4 E00AE594 8E650000 */  lw        $a1, 0x0($s3)
/* 3B28E8 E00AE598 8FA900E8 */  lw        $t1, 0xE8($sp)
/* 3B28EC E00AE59C 00A0182D */  daddu     $v1, $a1, $zero
/* 3B28F0 E00AE5A0 8D32000C */  lw        $s2, 0xC($t1)
/* 3B28F4 E00AE5A4 24A50008 */  addiu     $a1, $a1, 0x8
/* 3B28F8 E00AE5A8 AE650000 */  sw        $a1, 0x0($s3)
/* 3B28FC E00AE5AC 8E490014 */  lw        $t1, 0x14($s2)
/* 3B2900 E00AE5B0 27A40018 */  addiu     $a0, $sp, 0x18
/* 3B2904 E00AE5B4 AFA90098 */  sw        $t1, 0x98($sp)
/* 3B2908 E00AE5B8 8E490024 */  lw        $t1, 0x24($s2)
/* 3B290C E00AE5BC 3C110001 */  lui       $s1, (0x11630 >> 16)
/* 3B2910 E00AE5C0 AFA9009C */  sw        $t1, 0x9C($sp)
/* 3B2914 E00AE5C4 8E5E0018 */  lw        $fp, 0x18($s2)
/* 3B2918 E00AE5C8 8E49001C */  lw        $t1, 0x1C($s2)
/* 3B291C E00AE5CC 36311630 */  ori       $s1, $s1, (0x11630 & 0xFFFF)
/* 3B2920 E00AE5D0 AFA900A0 */  sw        $t1, 0xA0($sp)
/* 3B2924 E00AE5D4 8E490020 */  lw        $t1, 0x20($s2)
/* 3B2928 E00AE5D8 3C02E700 */  lui       $v0, (0xE7000000 >> 16)
/* 3B292C E00AE5DC AFA900A4 */  sw        $t1, 0xA4($sp)
/* 3B2930 E00AE5E0 AC620000 */  sw        $v0, 0x0($v1)
/* 3B2934 E00AE5E4 AC600004 */  sw        $zero, 0x4($v1)
/* 3B2938 E00AE5E8 ACA60000 */  sw        $a2, 0x0($a1)
/* 3B293C E00AE5EC 8FA900E8 */  lw        $t1, 0xE8($sp)
/* 3B2940 E00AE5F0 24150001 */  addiu     $s5, $zero, 0x1
/* 3B2944 E00AE5F4 8D230010 */  lw        $v1, 0x10($t1)
/* 3B2948 E00AE5F8 24A20008 */  addiu     $v0, $a1, 0x8
/* 3B294C E00AE5FC AE620000 */  sw        $v0, 0x0($s3)
/* 3B2950 E00AE600 8C62001C */  lw        $v0, 0x1C($v1)
/* 3B2954 E00AE604 3C038000 */  lui       $v1, (0x80000000 >> 16)
/* 3B2958 E00AE608 00431021 */  addu      $v0, $v0, $v1
/* 3B295C E00AE60C 3C03800B */  lui       $v1, %hi(gCameras)
/* 3B2960 E00AE610 24631D80 */  addiu     $v1, $v1, %lo(gCameras)
/* 3B2964 E00AE614 ACA20004 */  sw        $v0, 0x4($a1)
/* 3B2968 E00AE618 8E450004 */  lw        $a1, 0x4($s2)
/* 3B296C E00AE61C 8E460008 */  lw        $a2, 0x8($s2)
/* 3B2970 E00AE620 3C028007 */  lui       $v0, %hi(gCurrentCameraID)
/* 3B2974 E00AE624 8C427410 */  lw        $v0, %lo(gCurrentCameraID)($v0)
/* 3B2978 E00AE628 8E47000C */  lw        $a3, 0xC($s2)
/* 3B297C E00AE62C 00028080 */  sll       $s0, $v0, 2
/* 3B2980 E00AE630 02028021 */  addu      $s0, $s0, $v0
/* 3B2984 E00AE634 00108080 */  sll       $s0, $s0, 2
/* 3B2988 E00AE638 02028023 */  subu      $s0, $s0, $v0
/* 3B298C E00AE63C 001010C0 */  sll       $v0, $s0, 3
/* 3B2990 E00AE640 02028021 */  addu      $s0, $s0, $v0
/* 3B2994 E00AE644 001080C0 */  sll       $s0, $s0, 3
/* 3B2998 E00AE648 0C080108 */  jal       shim_guTranslateF
/* 3B299C E00AE64C 02038021 */   addu     $s0, $s0, $v1
/* 3B29A0 E00AE650 27B40058 */  addiu     $s4, $sp, 0x58
/* 3B29A4 E00AE654 8E450038 */  lw        $a1, 0x38($s2)
/* 3B29A8 E00AE658 0280202D */  daddu     $a0, $s4, $zero
/* 3B29AC E00AE65C 00A0302D */  daddu     $a2, $a1, $zero
/* 3B29B0 E00AE660 0C080110 */  jal       shim_guScaleF
/* 3B29B4 E00AE664 00A0382D */   daddu    $a3, $a1, $zero
/* 3B29B8 E00AE668 0280202D */  daddu     $a0, $s4, $zero
/* 3B29BC E00AE66C 27A50018 */  addiu     $a1, $sp, 0x18
/* 3B29C0 E00AE670 0C080114 */  jal       shim_guMtxCatF
/* 3B29C4 E00AE674 00A0302D */   daddu    $a2, $a1, $zero
/* 3B29C8 E00AE678 27A40018 */  addiu     $a0, $sp, 0x18
/* 3B29CC E00AE67C 3C168007 */  lui       $s6, %hi(gMatrixListPos)
/* 3B29D0 E00AE680 26D641F0 */  addiu     $s6, $s6, %lo(gMatrixListPos)
/* 3B29D4 E00AE684 3C17800A */  lui       $s7, %hi(gDisplayContext)
/* 3B29D8 E00AE688 26F7A674 */  addiu     $s7, $s7, %lo(gDisplayContext)
/* 3B29DC E00AE68C 96C50000 */  lhu       $a1, 0x0($s6)
/* 3B29E0 E00AE690 8EE20000 */  lw        $v0, 0x0($s7)
/* 3B29E4 E00AE694 00052980 */  sll       $a1, $a1, 6
/* 3B29E8 E00AE698 00B12821 */  addu      $a1, $a1, $s1
/* 3B29EC E00AE69C 0C080118 */  jal       shim_guMtxF2L
/* 3B29F0 E00AE6A0 00452821 */   addu     $a1, $v0, $a1
/* 3B29F4 E00AE6A4 3C03DA38 */  lui       $v1, (0xDA380002 >> 16)
/* 3B29F8 E00AE6A8 34630002 */  ori       $v1, $v1, (0xDA380002 & 0xFFFF)
/* 3B29FC E00AE6AC 3C06DA38 */  lui       $a2, (0xDA380000 >> 16)
/* 3B2A00 E00AE6B0 00D53025 */  or        $a2, $a2, $s5
/* 3B2A04 E00AE6B4 8E640000 */  lw        $a0, 0x0($s3)
/* 3B2A08 E00AE6B8 96C20000 */  lhu       $v0, 0x0($s6)
/* 3B2A0C E00AE6BC 0080282D */  daddu     $a1, $a0, $zero
/* 3B2A10 E00AE6C0 24840008 */  addiu     $a0, $a0, 0x8
/* 3B2A14 E00AE6C4 AE640000 */  sw        $a0, 0x0($s3)
/* 3B2A18 E00AE6C8 ACA30000 */  sw        $v1, 0x0($a1)
/* 3B2A1C E00AE6CC 00551821 */  addu      $v1, $v0, $s5
/* 3B2A20 E00AE6D0 3042FFFF */  andi      $v0, $v0, 0xFFFF
/* 3B2A24 E00AE6D4 00021180 */  sll       $v0, $v0, 6
/* 3B2A28 E00AE6D8 A6C30000 */  sh        $v1, 0x0($s6)
/* 3B2A2C E00AE6DC 8EE30000 */  lw        $v1, 0x0($s7)
/* 3B2A30 E00AE6E0 00511021 */  addu      $v0, $v0, $s1
/* 3B2A34 E00AE6E4 00621821 */  addu      $v1, $v1, $v0
/* 3B2A38 E00AE6E8 24820008 */  addiu     $v0, $a0, 0x8
/* 3B2A3C E00AE6EC ACA30004 */  sw        $v1, 0x4($a1)
/* 3B2A40 E00AE6F0 AE620000 */  sw        $v0, 0x0($s3)
/* 3B2A44 E00AE6F4 24820010 */  addiu     $v0, $a0, 0x10
/* 3B2A48 E00AE6F8 AC860000 */  sw        $a2, 0x0($a0)
/* 3B2A4C E00AE6FC AE620000 */  sw        $v0, 0x0($s3)
/* 3B2A50 E00AE700 8E030204 */  lw        $v1, 0x204($s0)
/* 3B2A54 E00AE704 3C02FB00 */  lui       $v0, (0xFB000000 >> 16)
/* 3B2A58 E00AE708 AC820008 */  sw        $v0, 0x8($a0)
/* 3B2A5C E00AE70C AC830004 */  sw        $v1, 0x4($a0)
/* 3B2A60 E00AE710 9243002B */  lbu       $v1, 0x2B($s2)
/* 3B2A64 E00AE714 9245002F */  lbu       $a1, 0x2F($s2)
/* 3B2A68 E00AE718 92460033 */  lbu       $a2, 0x33($s2)
/* 3B2A6C E00AE71C 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* 3B2A70 E00AE720 AC820010 */  sw        $v0, 0x10($a0)
/* 3B2A74 E00AE724 3C020900 */  lui       $v0, %hi(D_09001000_40E290)
/* 3B2A78 E00AE728 24421000 */  addiu     $v0, $v0, %lo(D_09001000_40E290)
/* 3B2A7C E00AE72C AC820014 */  sw        $v0, 0x14($a0)
/* 3B2A80 E00AE730 00031E00 */  sll       $v1, $v1, 24
/* 3B2A84 E00AE734 00052C00 */  sll       $a1, $a1, 16
/* 3B2A88 E00AE738 00651825 */  or        $v1, $v1, $a1
/* 3B2A8C E00AE73C 00063200 */  sll       $a2, $a2, 8
/* 3B2A90 E00AE740 00661825 */  or        $v1, $v1, $a2
/* 3B2A94 E00AE744 AC83000C */  sw        $v1, 0xC($a0)
/* 3B2A98 E00AE748 8FA900E8 */  lw        $t1, 0xE8($sp)
/* 3B2A9C E00AE74C 26520044 */  addiu     $s2, $s2, 0x44
/* 3B2AA0 E00AE750 8D220008 */  lw        $v0, 0x8($t1)
/* 3B2AA4 E00AE754 24840018 */  addiu     $a0, $a0, 0x18
/* 3B2AA8 E00AE758 02A2102A */  slt       $v0, $s5, $v0
/* 3B2AAC E00AE75C 10400098 */  beqz      $v0, .LE00AE9C0
/* 3B2AB0 E00AE760 AE640000 */   sw       $a0, 0x0($s3)
/* 3B2AB4 E00AE764 0260882D */  daddu     $s1, $s3, $zero
/* 3B2AB8 E00AE768 001E1E00 */  sll       $v1, $fp, 24
/* 3B2ABC E00AE76C 0280982D */  daddu     $s3, $s4, $zero
/* 3B2AC0 E00AE770 02C0B82D */  daddu     $s7, $s6, $zero
/* 3B2AC4 E00AE774 3C140001 */  lui       $s4, (0x11630 >> 16)
/* 3B2AC8 E00AE778 36941630 */  ori       $s4, $s4, (0x11630 & 0xFFFF)
/* 3B2ACC E00AE77C 3C1EF200 */  lui       $fp, (0xF2000000 >> 16)
/* 3B2AD0 E00AE780 26500040 */  addiu     $s0, $s2, 0x40
/* 3B2AD4 E00AE784 8FA900A0 */  lw        $t1, 0xA0($sp)
/* 3B2AD8 E00AE788 4480A000 */  mtc1      $zero, $f20
/* 3B2ADC E00AE78C 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* 3B2AE0 E00AE790 4481B000 */  mtc1      $at, $f22
/* 3B2AE4 E00AE794 312200FF */  andi      $v0, $t1, 0xFF
/* 3B2AE8 E00AE798 00021400 */  sll       $v0, $v0, 16
/* 3B2AEC E00AE79C 8FA900A4 */  lw        $t1, 0xA4($sp)
/* 3B2AF0 E00AE7A0 00621825 */  or        $v1, $v1, $v0
/* 3B2AF4 E00AE7A4 312200FF */  andi      $v0, $t1, 0xFF
/* 3B2AF8 E00AE7A8 00021200 */  sll       $v0, $v0, 8
/* 3B2AFC E00AE7AC 8FA90098 */  lw        $t1, 0x98($sp)
/* 3B2B00 E00AE7B0 00621825 */  or        $v1, $v1, $v0
/* 3B2B04 E00AE7B4 AFA300A8 */  sw        $v1, 0xA8($sp)
/* 3B2B08 E00AE7B8 02A91004 */  sllv      $v0, $t1, $s5
/* 3B2B0C E00AE7BC 0049B021 */  addu      $s6, $v0, $t1
/* 3B2B10 E00AE7C0 26C2001F */  addiu     $v0, $s6, 0x1F
/* 3B2B14 E00AE7C4 00021080 */  sll       $v0, $v0, 2
/* 3B2B18 E00AE7C8 30420FFF */  andi      $v0, $v0, 0xFFF
/* 3B2B1C E00AE7CC 00021300 */  sll       $v0, $v0, 12
/* 3B2B20 E00AE7D0 AFA200AC */  sw        $v0, 0xAC($sp)
.LE00AE7D4:
/* 3B2B24 E00AE7D4 8E280000 */  lw        $t0, 0x0($s1)
/* 3B2B28 E00AE7D8 3C02FA00 */  lui       $v0, (0xFA000000 >> 16)
/* 3B2B2C E00AE7DC 0100282D */  daddu     $a1, $t0, $zero
/* 3B2B30 E00AE7E0 ACA20000 */  sw        $v0, 0x0($a1)
/* 3B2B34 E00AE7E4 8E03FFE4 */  lw        $v1, -0x1C($s0)
/* 3B2B38 E00AE7E8 8FA9009C */  lw        $t1, 0x9C($sp)
/* 3B2B3C E00AE7EC 00690018 */  mult      $v1, $t1
/* 3B2B40 E00AE7F0 00001812 */  mflo      $v1
/* 3B2B44 E00AE7F4 3C028080 */  lui       $v0, (0x80808081 >> 16)
/* 3B2B48 E00AE7F8 34428081 */  ori       $v0, $v0, (0x80808081 & 0xFFFF)
/* 3B2B4C E00AE7FC 00620018 */  mult      $v1, $v0
/* 3B2B50 E00AE800 27A40018 */  addiu     $a0, $sp, 0x18
/* 3B2B54 E00AE804 4407A000 */  mfc1      $a3, $f20
/* 3B2B58 E00AE808 8FA900A8 */  lw        $t1, 0xA8($sp)
/* 3B2B5C E00AE80C 00001010 */  mfhi      $v0
/* 3B2B60 E00AE810 00431021 */  addu      $v0, $v0, $v1
/* 3B2B64 E00AE814 000211C3 */  sra       $v0, $v0, 7
/* 3B2B68 E00AE818 00031FC3 */  sra       $v1, $v1, 31
/* 3B2B6C E00AE81C 00431023 */  subu      $v0, $v0, $v1
/* 3B2B70 E00AE820 304200FF */  andi      $v0, $v0, 0xFF
/* 3B2B74 E00AE824 01221025 */  or        $v0, $t1, $v0
/* 3B2B78 E00AE828 ACA20004 */  sw        $v0, 0x4($a1)
/* 3B2B7C E00AE82C 8E05FFC4 */  lw        $a1, -0x3C($s0)
/* 3B2B80 E00AE830 8E06FFC8 */  lw        $a2, -0x38($s0)
/* 3B2B84 E00AE834 25080008 */  addiu     $t0, $t0, 0x8
/* 3B2B88 E00AE838 0C080108 */  jal       shim_guTranslateF
/* 3B2B8C E00AE83C AE280000 */   sw       $t0, 0x0($s1)
/* 3B2B90 E00AE840 E7B60010 */  swc1      $f22, 0x10($sp)
/* 3B2B94 E00AE844 8E05FFFC */  lw        $a1, -0x4($s0)
/* 3B2B98 E00AE848 4406A000 */  mfc1      $a2, $f20
/* 3B2B9C E00AE84C 4407A000 */  mfc1      $a3, $f20
/* 3B2BA0 E00AE850 0C080104 */  jal       shim_guRotateF
/* 3B2BA4 E00AE854 0260202D */   daddu    $a0, $s3, $zero
/* 3B2BA8 E00AE858 0260202D */  daddu     $a0, $s3, $zero
/* 3B2BAC E00AE85C 27A50018 */  addiu     $a1, $sp, 0x18
/* 3B2BB0 E00AE860 0C080114 */  jal       shim_guMtxCatF
/* 3B2BB4 E00AE864 00A0302D */   daddu    $a2, $a1, $zero
/* 3B2BB8 E00AE868 C602FFF4 */  lwc1      $f2, -0xC($s0)
/* 3B2BBC E00AE86C 3C013D80 */  lui       $at, (0x3D800000 >> 16)
/* 3B2BC0 E00AE870 44810000 */  mtc1      $at, $f0
/* 3B2BC4 E00AE874 00000000 */  nop
/* 3B2BC8 E00AE878 46001082 */  mul.s     $f2, $f2, $f0
/* 3B2BCC E00AE87C 00000000 */  nop
/* 3B2BD0 E00AE880 0260202D */  daddu     $a0, $s3, $zero
/* 3B2BD4 E00AE884 44051000 */  mfc1      $a1, $f2
/* 3B2BD8 E00AE888 4407B000 */  mfc1      $a3, $f22
/* 3B2BDC E00AE88C 0C080110 */  jal       shim_guScaleF
/* 3B2BE0 E00AE890 00A0302D */   daddu    $a2, $a1, $zero
/* 3B2BE4 E00AE894 0260202D */  daddu     $a0, $s3, $zero
/* 3B2BE8 E00AE898 27A50018 */  addiu     $a1, $sp, 0x18
/* 3B2BEC E00AE89C 0C080114 */  jal       shim_guMtxCatF
/* 3B2BF0 E00AE8A0 00A0302D */   daddu    $a2, $a1, $zero
/* 3B2BF4 E00AE8A4 27A40018 */  addiu     $a0, $sp, 0x18
/* 3B2BF8 E00AE8A8 96E50000 */  lhu       $a1, 0x0($s7)
/* 3B2BFC E00AE8AC 3C02800A */  lui       $v0, %hi(gDisplayContext)
/* 3B2C00 E00AE8B0 8C42A674 */  lw        $v0, %lo(gDisplayContext)($v0)
/* 3B2C04 E00AE8B4 00052980 */  sll       $a1, $a1, 6
/* 3B2C08 E00AE8B8 00B42821 */  addu      $a1, $a1, $s4
/* 3B2C0C E00AE8BC 0C080118 */  jal       shim_guMtxF2L
/* 3B2C10 E00AE8C0 00452821 */   addu     $a1, $v0, $a1
/* 3B2C14 E00AE8C4 3C060100 */  lui       $a2, (0x100007C >> 16)
/* 3B2C18 E00AE8C8 34C6007C */  ori       $a2, $a2, (0x100007C & 0xFFFF)
/* 3B2C1C E00AE8CC 3C07D838 */  lui       $a3, (0xD8380002 >> 16)
/* 3B2C20 E00AE8D0 8E240000 */  lw        $a0, 0x0($s1)
/* 3B2C24 E00AE8D4 34E70002 */  ori       $a3, $a3, (0xD8380002 & 0xFFFF)
/* 3B2C28 E00AE8D8 0080282D */  daddu     $a1, $a0, $zero
/* 3B2C2C E00AE8DC 24840008 */  addiu     $a0, $a0, 0x8
/* 3B2C30 E00AE8E0 AE240000 */  sw        $a0, 0x0($s1)
/* 3B2C34 E00AE8E4 96E20000 */  lhu       $v0, 0x0($s7)
/* 3B2C38 E00AE8E8 3C03DA38 */  lui       $v1, (0xDA380000 >> 16)
/* 3B2C3C E00AE8EC ACA30000 */  sw        $v1, 0x0($a1)
/* 3B2C40 E00AE8F0 24430001 */  addiu     $v1, $v0, 0x1
/* 3B2C44 E00AE8F4 3042FFFF */  andi      $v0, $v0, 0xFFFF
/* 3B2C48 E00AE8F8 00021180 */  sll       $v0, $v0, 6
/* 3B2C4C E00AE8FC A6E30000 */  sh        $v1, 0x0($s7)
/* 3B2C50 E00AE900 3C03800A */  lui       $v1, %hi(gDisplayContext)
/* 3B2C54 E00AE904 8C63A674 */  lw        $v1, %lo(gDisplayContext)($v1)
/* 3B2C58 E00AE908 00541021 */  addu      $v0, $v0, $s4
/* 3B2C5C E00AE90C 00621821 */  addu      $v1, $v1, $v0
/* 3B2C60 E00AE910 24820008 */  addiu     $v0, $a0, 0x8
/* 3B2C64 E00AE914 ACA30004 */  sw        $v1, 0x4($a1)
/* 3B2C68 E00AE918 AE220000 */  sw        $v0, 0x0($s1)
/* 3B2C6C E00AE91C 24820010 */  addiu     $v0, $a0, 0x10
/* 3B2C70 E00AE920 AE220000 */  sw        $v0, 0x0($s1)
/* 3B2C74 E00AE924 24820018 */  addiu     $v0, $a0, 0x18
/* 3B2C78 E00AE928 AE220000 */  sw        $v0, 0x0($s1)
/* 3B2C7C E00AE92C 8E020000 */  lw        $v0, 0x0($s0)
/* 3B2C80 E00AE930 24830020 */  addiu     $v1, $a0, 0x20
/* 3B2C84 E00AE934 AE230000 */  sw        $v1, 0x0($s1)
/* 3B2C88 E00AE938 00021180 */  sll       $v0, $v0, 6
/* 3B2C8C E00AE93C 30420FFF */  andi      $v0, $v0, 0xFFF
/* 3B2C90 E00AE940 00021300 */  sll       $v0, $v0, 12
/* 3B2C94 E00AE944 005E1025 */  or        $v0, $v0, $fp
/* 3B2C98 E00AE948 AC820000 */  sw        $v0, 0x0($a0)
/* 3B2C9C E00AE94C 00161080 */  sll       $v0, $s6, 2
/* 3B2CA0 E00AE950 30420FFF */  andi      $v0, $v0, 0xFFF
/* 3B2CA4 E00AE954 00021300 */  sll       $v0, $v0, 12
/* 3B2CA8 E00AE958 8E030000 */  lw        $v1, 0x0($s0)
/* 3B2CAC E00AE95C 005E1025 */  or        $v0, $v0, $fp
/* 3B2CB0 E00AE960 AC820008 */  sw        $v0, 0x8($a0)
/* 3B2CB4 E00AE964 8FA900AC */  lw        $t1, 0xAC($sp)
/* 3B2CB8 E00AE968 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* 3B2CBC E00AE96C AC820010 */  sw        $v0, 0x10($a0)
/* 3B2CC0 E00AE970 3C020900 */  lui       $v0, %hi(D_090010F8_40E388)
/* 3B2CC4 E00AE974 244210F8 */  addiu     $v0, $v0, %lo(D_090010F8_40E388)
/* 3B2CC8 E00AE978 AC820014 */  sw        $v0, 0x14($a0)
/* 3B2CCC E00AE97C 24020040 */  addiu     $v0, $zero, 0x40
/* 3B2CD0 E00AE980 AC870018 */  sw        $a3, 0x18($a0)
/* 3B2CD4 E00AE984 AC82001C */  sw        $v0, 0x1C($a0)
/* 3B2CD8 E00AE988 01263025 */  or        $a2, $t1, $a2
/* 3B2CDC E00AE98C 00031980 */  sll       $v1, $v1, 6
/* 3B2CE0 E00AE990 3463003C */  ori       $v1, $v1, 0x3C
/* 3B2CE4 E00AE994 30630FFF */  andi      $v1, $v1, 0xFFF
/* 3B2CE8 E00AE998 00031B00 */  sll       $v1, $v1, 12
/* 3B2CEC E00AE99C 3463007C */  ori       $v1, $v1, 0x7C
/* 3B2CF0 E00AE9A0 AC86000C */  sw        $a2, 0xC($a0)
/* 3B2CF4 E00AE9A4 AC830004 */  sw        $v1, 0x4($a0)
/* 3B2CF8 E00AE9A8 8FA900E8 */  lw        $t1, 0xE8($sp)
/* 3B2CFC E00AE9AC 26B50001 */  addiu     $s5, $s5, 0x1
/* 3B2D00 E00AE9B0 8D220008 */  lw        $v0, 0x8($t1)
/* 3B2D04 E00AE9B4 02A2102A */  slt       $v0, $s5, $v0
/* 3B2D08 E00AE9B8 1440FF86 */  bnez      $v0, .LE00AE7D4
/* 3B2D0C E00AE9BC 26100044 */   addiu    $s0, $s0, 0x44
.LE00AE9C0:
/* 3B2D10 E00AE9C0 3C05E200 */  lui       $a1, (0xE2001E01 >> 16)
/* 3B2D14 E00AE9C4 34A51E01 */  ori       $a1, $a1, (0xE2001E01 & 0xFFFF)
/* 3B2D18 E00AE9C8 3C06D838 */  lui       $a2, (0xD8380002 >> 16)
/* 3B2D1C E00AE9CC 3C04800A */  lui       $a0, %hi(gMainGfxPos)
/* 3B2D20 E00AE9D0 2484A66C */  addiu     $a0, $a0, %lo(gMainGfxPos)
/* 3B2D24 E00AE9D4 8C820000 */  lw        $v0, 0x0($a0)
/* 3B2D28 E00AE9D8 34C60002 */  ori       $a2, $a2, (0xD8380002 & 0xFFFF)
/* 3B2D2C E00AE9DC 0040182D */  daddu     $v1, $v0, $zero
/* 3B2D30 E00AE9E0 24420008 */  addiu     $v0, $v0, 0x8
/* 3B2D34 E00AE9E4 AC820000 */  sw        $v0, 0x0($a0)
/* 3B2D38 E00AE9E8 AC650000 */  sw        $a1, 0x0($v1)
/* 3B2D3C E00AE9EC AC600004 */  sw        $zero, 0x4($v1)
/* 3B2D40 E00AE9F0 24430008 */  addiu     $v1, $v0, 0x8
/* 3B2D44 E00AE9F4 AC830000 */  sw        $v1, 0x0($a0)
/* 3B2D48 E00AE9F8 24030040 */  addiu     $v1, $zero, 0x40
/* 3B2D4C E00AE9FC AC460000 */  sw        $a2, 0x0($v0)
/* 3B2D50 E00AEA00 AC430004 */  sw        $v1, 0x4($v0)
/* 3B2D54 E00AEA04 8FBF00D4 */  lw        $ra, 0xD4($sp)
/* 3B2D58 E00AEA08 8FBE00D0 */  lw        $fp, 0xD0($sp)
/* 3B2D5C E00AEA0C 8FB700CC */  lw        $s7, 0xCC($sp)
/* 3B2D60 E00AEA10 8FB600C8 */  lw        $s6, 0xC8($sp)
/* 3B2D64 E00AEA14 8FB500C4 */  lw        $s5, 0xC4($sp)
/* 3B2D68 E00AEA18 8FB400C0 */  lw        $s4, 0xC0($sp)
/* 3B2D6C E00AEA1C 8FB300BC */  lw        $s3, 0xBC($sp)
/* 3B2D70 E00AEA20 8FB200B8 */  lw        $s2, 0xB8($sp)
/* 3B2D74 E00AEA24 8FB100B4 */  lw        $s1, 0xB4($sp)
/* 3B2D78 E00AEA28 8FB000B0 */  lw        $s0, 0xB0($sp)
/* 3B2D7C E00AEA2C D7B600E0 */  ldc1      $f22, 0xE0($sp)
/* 3B2D80 E00AEA30 D7B400D8 */  ldc1      $f20, 0xD8($sp)
/* 3B2D84 E00AEA34 03E00008 */  jr        $ra
/* 3B2D88 E00AEA38 27BD00E8 */   addiu    $sp, $sp, 0xE8
/* 3B2D8C E00AEA3C 00000000 */  nop

### DECOMPILED C INSTRUCTIONS:

void snaking_static_appendGfx(void* effect) {
    EffectInstance* effectTemp = effect;
    SnakingStaticFXData* data = effectTemp->data.snakingStatic;
    Camera* camera = &gCameras[gCurrentCameraID];
    Matrix4f sp18, sp58;
    s32 lifeTime = data->lifeTime;
    s32 unk_24 = data->unk_24;
    s32 primR = data->unk_18;
    s32 primG = data->unk_1C;
    s32 primB = data->unk_20;
    s32 i;

    gDPPipeSync(gMainGfxPos++);
    gSPSegment(gMainGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));

    shim_guTranslateF(sp18, data->pos.x, data->pos.y, data->pos.z);
    shim_guScaleF(sp58, data->unk_38, data->unk_38, data->unk_38);
    shim_guMtxCatF(sp58, sp18, sp18);
    shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);

    gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
              G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
    gSPMatrix(gMainGfxPos++, camera->unkMatrix, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
    gDPSetEnvColor(gMainGfxPos++, data->unk_28, data->unk_2C, data->unk_30, 0);
    gSPDisplayList(gMainGfxPos++, D_09001000_3B3D90);

    data++;
    for (i = 1; i < ((EffectInstance*)effect)->numParts; i++, data++) {
        gDPSetPrimColor(gMainGfxPos++, 0, 0, primR, primG, primB, (data->unk_24 * unk_24) / 255);
        shim_guTranslateF(sp18, data->pos.x, data->pos.y, 0.0f);
        shim_guRotateF(sp58, data->unk_3C, 0.0f, 0.0f, 1.0f);
        shim_guMtxCatF(sp58, sp18, sp18);
        shim_guScaleF(sp58, data->unk_34 * 0.0625f, data->unk_34 * 0.0625f, 1.0f);
        shim_guMtxCatF(sp58, sp18, sp18);
        shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);

        gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
                  G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
        gDPSetTileSize(gMainGfxPos++, G_TX_RENDERTILE, data->unk_40 * 64, 0, (data->unk_40 * 64) | 0x3C, 0x007C);
        gDPSetTileSize(gMainGfxPos++, 1, (lifeTime * 12), 0, ((lifeTime * 3) + 0x1F) * 4, 0x007C);

        gSPDisplayList(gMainGfxPos++, D_090010F8_3B3E88);
        gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
    }
    gDPSetAlphaCompare(gMainGfxPos++, G_AC_NONE);
    gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
}


### RAW ASSEMBLY INSTRUCTIONS:

glabel bombette_breaking_appendGfx
/* 3892F8 E0084928 27BDFF58 */  addiu     $sp, $sp, -0xA8
/* 3892FC E008492C 3C06DB06 */  lui       $a2, (0xDB060024 >> 16)
/* 389300 E0084930 AFA400A8 */  sw        $a0, 0xA8($sp)
/* 389304 E0084934 8FAA00A8 */  lw        $t2, 0xA8($sp)
/* 389308 E0084938 34C60024 */  ori       $a2, $a2, (0xDB060024 & 0xFFFF)
/* 38930C E008493C AFB3007C */  sw        $s3, 0x7C($sp)
/* 389310 E0084940 3C13800A */  lui       $s3, %hi(gMainGfxPos)
/* 389314 E0084944 2673A66C */  addiu     $s3, $s3, %lo(gMainGfxPos)
/* 389318 E0084948 AFBF0094 */  sw        $ra, 0x94($sp)
/* 38931C E008494C AFBE0090 */  sw        $fp, 0x90($sp)
/* 389320 E0084950 AFB7008C */  sw        $s7, 0x8C($sp)
/* 389324 E0084954 AFB60088 */  sw        $s6, 0x88($sp)
/* 389328 E0084958 AFB50084 */  sw        $s5, 0x84($sp)
/* 38932C E008495C AFB40080 */  sw        $s4, 0x80($sp)
/* 389330 E0084960 AFB20078 */  sw        $s2, 0x78($sp)
/* 389334 E0084964 AFB10074 */  sw        $s1, 0x74($sp)
/* 389338 E0084968 AFB00070 */  sw        $s0, 0x70($sp)
/* 38933C E008496C F7B600A0 */  sdc1      $f22, 0xA0($sp)
/* 389340 E0084970 F7B40098 */  sdc1      $f20, 0x98($sp)
/* 389344 E0084974 8E650000 */  lw        $a1, 0x0($s3)
/* 389348 E0084978 8D51000C */  lw        $s1, 0xC($t2)
/* 38934C E008497C 00A0182D */  daddu     $v1, $a1, $zero
/* 389350 E0084980 8E360044 */  lw        $s6, 0x44($s1)
/* 389354 E0084984 96220000 */  lhu       $v0, 0x0($s1)
/* 389358 E0084988 24A50008 */  addiu     $a1, $a1, 0x8
/* 38935C E008498C AE650000 */  sw        $a1, 0x0($s3)
/* 389360 E0084990 0002F080 */  sll       $fp, $v0, 2
/* 389364 E0084994 3C0AE008 */  lui       $t2, (0xE0084E10 >> 16)
/* 389368 E0084998 015E5021 */  addu      $t2, $t2, $fp
/* 38936C E008499C 8D4A4E10 */  lw        $t2, (0xE0084E10 & 0xFFFF)($t2)
/* 389370 E00849A0 27A40020 */  addiu     $a0, $sp, 0x20
/* 389374 E00849A4 AFAA0060 */  sw        $t2, 0x60($sp)
/* 389378 E00849A8 3C0AE008 */  lui       $t2, (0xE0084E28 >> 16)
/* 38937C E00849AC 015E5021 */  addu      $t2, $t2, $fp
/* 389380 E00849B0 8D4A4E28 */  lw        $t2, (0xE0084E28 & 0xFFFF)($t2)
/* 389384 E00849B4 3C100001 */  lui       $s0, (0x11630 >> 16)
/* 389388 E00849B8 AFAA0064 */  sw        $t2, 0x64($sp)
/* 38938C E00849BC C6360038 */  lwc1      $f22, 0x38($s1)
/* 389390 E00849C0 C6340040 */  lwc1      $f20, 0x40($s1)
/* 389394 E00849C4 8E2A004C */  lw        $t2, 0x4C($s1)
/* 389398 E00849C8 3C02E700 */  lui       $v0, (0xE7000000 >> 16)
/* 38939C E00849CC AFAA0068 */  sw        $t2, 0x68($sp)
/* 3893A0 E00849D0 AC620000 */  sw        $v0, 0x0($v1)
/* 3893A4 E00849D4 AC600004 */  sw        $zero, 0x4($v1)
/* 3893A8 E00849D8 ACA60000 */  sw        $a2, 0x0($a1)
/* 3893AC E00849DC 8FAA00A8 */  lw        $t2, 0xA8($sp)
/* 3893B0 E00849E0 36101630 */  ori       $s0, $s0, (0x11630 & 0xFFFF)
/* 3893B4 E00849E4 8D430010 */  lw        $v1, 0x10($t2)
/* 3893B8 E00849E8 24A20008 */  addiu     $v0, $a1, 0x8
/* 3893BC E00849EC AE620000 */  sw        $v0, 0x0($s3)
/* 3893C0 E00849F0 8C62001C */  lw        $v0, 0x1C($v1)
/* 3893C4 E00849F4 3C038000 */  lui       $v1, (0x80000000 >> 16)
/* 3893C8 E00849F8 00431021 */  addu      $v0, $v0, $v1
/* 3893CC E00849FC ACA20004 */  sw        $v0, 0x4($a1)
/* 3893D0 E0084A00 8E250008 */  lw        $a1, 0x8($s1)
/* 3893D4 E0084A04 8E26000C */  lw        $a2, 0xC($s1)
/* 3893D8 E0084A08 8E270010 */  lw        $a3, 0x10($s1)
/* 3893DC E0084A0C 0C080108 */  jal       shim_guTranslateF
/* 3893E0 E0084A10 24120001 */   addiu    $s2, $zero, 0x1
/* 3893E4 E0084A14 27A40020 */  addiu     $a0, $sp, 0x20
/* 3893E8 E0084A18 3C148007 */  lui       $s4, %hi(gMatrixListPos)
/* 3893EC E0084A1C 269441F0 */  addiu     $s4, $s4, %lo(gMatrixListPos)
/* 3893F0 E0084A20 3C15800A */  lui       $s5, %hi(gDisplayContext)
/* 3893F4 E0084A24 26B5A674 */  addiu     $s5, $s5, %lo(gDisplayContext)
/* 3893F8 E0084A28 96850000 */  lhu       $a1, 0x0($s4)
/* 3893FC E0084A2C 8EA20000 */  lw        $v0, 0x0($s5)
/* 389400 E0084A30 00052980 */  sll       $a1, $a1, 6
/* 389404 E0084A34 00B02821 */  addu      $a1, $a1, $s0
/* 389408 E0084A38 0C080118 */  jal       shim_guMtxF2L
/* 38940C E0084A3C 00452821 */   addu     $a1, $v0, $a1
/* 389410 E0084A40 0260202D */  daddu     $a0, $s3, $zero
/* 389414 E0084A44 3C02DA38 */  lui       $v0, (0xDA380000 >> 16)
/* 389418 E0084A48 8E670000 */  lw        $a3, 0x0($s3)
/* 38941C E0084A4C 96860000 */  lhu       $a2, 0x0($s4)
/* 389420 E0084A50 00E0282D */  daddu     $a1, $a3, $zero
/* 389424 E0084A54 ACA20000 */  sw        $v0, 0x0($a1)
/* 389428 E0084A58 30C2FFFF */  andi      $v0, $a2, 0xFFFF
/* 38942C E0084A5C 00021180 */  sll       $v0, $v0, 6
/* 389430 E0084A60 00501021 */  addu      $v0, $v0, $s0
/* 389434 E0084A64 8EA30000 */  lw        $v1, 0x0($s5)
/* 389438 E0084A68 24E70008 */  addiu     $a3, $a3, 0x8
/* 38943C E0084A6C 00621821 */  addu      $v1, $v1, $v0
/* 389440 E0084A70 ACA30004 */  sw        $v1, 0x4($a1)
/* 389444 E0084A74 96250002 */  lhu       $a1, 0x2($s1)
/* 389448 E0084A78 00D23021 */  addu      $a2, $a2, $s2
/* 38944C E0084A7C AE670000 */  sw        $a3, 0x0($s3)
/* 389450 E0084A80 0C080158 */  jal       shim_mdl_draw_hidden_panel_surface
/* 389454 E0084A84 A6860000 */   sh       $a2, 0x0($s4)
/* 389458 E0084A88 8FAA00A8 */  lw        $t2, 0xA8($sp)
/* 38945C E0084A8C 0016B080 */  sll       $s6, $s6, 2
/* 389460 E0084A90 8D420008 */  lw        $v0, 0x8($t2)
/* 389464 E0084A94 0242102A */  slt       $v0, $s2, $v0
/* 389468 E0084A98 10400051 */  beqz      $v0, .LE0084BE0
/* 38946C E0084A9C 26310050 */   addiu    $s1, $s1, 0x50
/* 389470 E0084AA0 3C170001 */  lui       $s7, (0x11630 >> 16)
/* 389474 E0084AA4 36F71630 */  ori       $s7, $s7, (0x11630 & 0xFFFF)
/* 389478 E0084AA8 0260A82D */  daddu     $s5, $s3, $zero
/* 38947C E0084AAC 3C02E008 */  lui       $v0, %hi(D_E0084E1C)
/* 389480 E0084AB0 24424E1C */  addiu     $v0, $v0, %lo(D_E0084E1C)
/* 389484 E0084AB4 03C2F021 */  addu      $fp, $fp, $v0
/* 389488 E0084AB8 2630001C */  addiu     $s0, $s1, 0x1C
/* 38948C E0084ABC 26D40050 */  addiu     $s4, $s6, 0x50
/* 389490 E0084AC0 26D3FFD8 */  addiu     $s3, $s6, -0x28
/* 389494 E0084AC4 26D10082 */  addiu     $s1, $s6, 0x82
.LE0084AC8:
/* 389498 E0084AC8 27A40020 */  addiu     $a0, $sp, 0x20
/* 38949C E0084ACC 44912000 */  mtc1      $s1, $f4
/* 3894A0 E0084AD0 00000000 */  nop
/* 3894A4 E0084AD4 46802120 */  cvt.s.w   $f4, $f4
/* 3894A8 E0084AD8 44052000 */  mfc1      $a1, $f4
/* 3894AC E0084ADC 44932000 */  mtc1      $s3, $f4
/* 3894B0 E0084AE0 00000000 */  nop
/* 3894B4 E0084AE4 46802120 */  cvt.s.w   $f4, $f4
/* 3894B8 E0084AE8 44062000 */  mfc1      $a2, $f4
/* 3894BC E0084AEC 44942000 */  mtc1      $s4, $f4
/* 3894C0 E0084AF0 00000000 */  nop
/* 3894C4 E0084AF4 46802120 */  cvt.s.w   $f4, $f4
/* 3894C8 E0084AF8 44072000 */  mfc1      $a3, $f4
/* 3894CC E0084AFC 26940050 */  addiu     $s4, $s4, 0x50
/* 3894D0 E0084B00 E7B40010 */  swc1      $f20, 0x10($sp)
/* 3894D4 E0084B04 C600FFF8 */  lwc1      $f0, -0x8($s0)
/* 3894D8 E0084B08 2673FFD8 */  addiu     $s3, $s3, -0x28
/* 3894DC E0084B0C E7A00014 */  swc1      $f0, 0x14($sp)
/* 3894E0 E0084B10 C600FFFC */  lwc1      $f0, -0x4($s0)
/* 3894E4 E0084B14 26310082 */  addiu     $s1, $s1, 0x82
/* 3894E8 E0084B18 E7A00018 */  swc1      $f0, 0x18($sp)
/* 3894EC E0084B1C C6000000 */  lwc1      $f0, 0x0($s0)
/* 3894F0 E0084B20 26520001 */  addiu     $s2, $s2, 0x1
/* 3894F4 E0084B24 0C080180 */  jal       shim_guPositionF
/* 3894F8 E0084B28 E7A0001C */   swc1     $f0, 0x1C($sp)
/* 3894FC E0084B2C 27A40020 */  addiu     $a0, $sp, 0x20
/* 389500 E0084B30 3C058007 */  lui       $a1, %hi(gMatrixListPos)
/* 389504 E0084B34 94A541F0 */  lhu       $a1, %lo(gMatrixListPos)($a1)
/* 389508 E0084B38 3C02800A */  lui       $v0, %hi(gDisplayContext)
/* 38950C E0084B3C 8C42A674 */  lw        $v0, %lo(gDisplayContext)($v0)
/* 389510 E0084B40 00052980 */  sll       $a1, $a1, 6
/* 389514 E0084B44 00B72821 */  addu      $a1, $a1, $s7
/* 389518 E0084B48 0C080118 */  jal       shim_guMtxF2L
/* 38951C E0084B4C 00452821 */   addu     $a1, $v0, $a1
/* 389520 E0084B50 3C06D838 */  lui       $a2, (0xD8380002 >> 16)
/* 389524 E0084B54 8EA40000 */  lw        $a0, 0x0($s5)
/* 389528 E0084B58 34C60002 */  ori       $a2, $a2, (0xD8380002 & 0xFFFF)
/* 38952C E0084B5C 0080282D */  daddu     $a1, $a0, $zero
/* 389530 E0084B60 24840008 */  addiu     $a0, $a0, 0x8
/* 389534 E0084B64 AEA40000 */  sw        $a0, 0x0($s5)
/* 389538 E0084B68 3C028007 */  lui       $v0, %hi(gMatrixListPos)
/* 38953C E0084B6C 944241F0 */  lhu       $v0, %lo(gMatrixListPos)($v0)
/* 389540 E0084B70 3C03DA38 */  lui       $v1, (0xDA380000 >> 16)
/* 389544 E0084B74 ACA30000 */  sw        $v1, 0x0($a1)
/* 389548 E0084B78 24430001 */  addiu     $v1, $v0, 0x1
/* 38954C E0084B7C 3042FFFF */  andi      $v0, $v0, 0xFFFF
/* 389550 E0084B80 00021180 */  sll       $v0, $v0, 6
/* 389554 E0084B84 3C018007 */  lui       $at, %hi(gMatrixListPos)
/* 389558 E0084B88 A42341F0 */  sh        $v1, %lo(gMatrixListPos)($at)
/* 38955C E0084B8C 3C03800A */  lui       $v1, %hi(gDisplayContext)
/* 389560 E0084B90 8C63A674 */  lw        $v1, %lo(gDisplayContext)($v1)
/* 389564 E0084B94 00571021 */  addu      $v0, $v0, $s7
/* 389568 E0084B98 00621821 */  addu      $v1, $v1, $v0
/* 38956C E0084B9C 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* 389570 E0084BA0 ACA30004 */  sw        $v1, 0x4($a1)
/* 389574 E0084BA4 AC820000 */  sw        $v0, 0x0($a0)
/* 389578 E0084BA8 8FC30000 */  lw        $v1, 0x0($fp)
/* 38957C E0084BAC 24820008 */  addiu     $v0, $a0, 0x8
/* 389580 E0084BB0 AEA20000 */  sw        $v0, 0x0($s5)
/* 389584 E0084BB4 24020040 */  addiu     $v0, $zero, 0x40
/* 389588 E0084BB8 AC860008 */  sw        $a2, 0x8($a0)
/* 38958C E0084BBC AC82000C */  sw        $v0, 0xC($a0)
/* 389590 E0084BC0 AC830004 */  sw        $v1, 0x4($a0)
/* 389594 E0084BC4 8FAA00A8 */  lw        $t2, 0xA8($sp)
/* 389598 E0084BC8 26100050 */  addiu     $s0, $s0, 0x50
/* 38959C E0084BCC 8D420008 */  lw        $v0, 0x8($t2)
/* 3895A0 E0084BD0 24840010 */  addiu     $a0, $a0, 0x10
/* 3895A4 E0084BD4 0242102A */  slt       $v0, $s2, $v0
/* 3895A8 E0084BD8 1440FFBB */  bnez      $v0, .LE0084AC8
/* 3895AC E0084BDC AEA40000 */   sw       $a0, 0x0($s5)
.LE0084BE0:
/* 3895B0 E0084BE0 3C08800A */  lui       $t0, %hi(gMainGfxPos)
/* 3895B4 E0084BE4 2508A66C */  addiu     $t0, $t0, %lo(gMainGfxPos)
/* 3895B8 E0084BE8 8D030000 */  lw        $v1, 0x0($t0)
/* 3895BC E0084BEC 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* 3895C0 E0084BF0 0060202D */  daddu     $a0, $v1, $zero
/* 3895C4 E0084BF4 AC820000 */  sw        $v0, 0x0($a0)
/* 3895C8 E0084BF8 8FAA0064 */  lw        $t2, 0x64($sp)
/* 3895CC E0084BFC AC8A0004 */  sw        $t2, 0x4($a0)
/* 3895D0 E0084C00 8FAA00A8 */  lw        $t2, 0xA8($sp)
/* 3895D4 E0084C04 24120001 */  addiu     $s2, $zero, 0x1
/* 3895D8 E0084C08 8D51000C */  lw        $s1, 0xC($t2)
/* 3895DC E0084C0C 24630008 */  addiu     $v1, $v1, 0x8
/* 3895E0 E0084C10 AD030000 */  sw        $v1, 0x0($t0)
/* 3895E4 E0084C14 8D420008 */  lw        $v0, 0x8($t2)
/* 3895E8 E0084C18 0242102A */  slt       $v0, $s2, $v0
/* 3895EC E0084C1C 10400062 */  beqz      $v0, .LE0084DA8
/* 3895F0 E0084C20 26310050 */   addiu    $s1, $s1, 0x50
/* 3895F4 E0084C24 0100982D */  daddu     $s3, $t0, $zero
/* 3895F8 E0084C28 4480A000 */  mtc1      $zero, $f20
/* 3895FC E0084C2C 3C17800B */  lui       $s7, %hi(gCameras)
/* 389600 E0084C30 26F71D80 */  addiu     $s7, $s7, %lo(gCameras)
/* 389604 E0084C34 3C16800A */  lui       $s6, %hi(gDisplayContext)
/* 389608 E0084C38 26D6A674 */  addiu     $s6, $s6, %lo(gDisplayContext)
/* 38960C E0084C3C 3C158007 */  lui       $s5, %hi(gMatrixListPos)
/* 389610 E0084C40 26B541F0 */  addiu     $s5, $s5, %lo(gMatrixListPos)
/* 389614 E0084C44 3C140001 */  lui       $s4, (0x11630 >> 16)
/* 389618 E0084C48 36941630 */  ori       $s4, $s4, (0x11630 & 0xFFFF)
/* 38961C E0084C4C 26300010 */  addiu     $s0, $s1, 0x10
.LE0084C50:
/* 389620 E0084C50 8E680000 */  lw        $t0, 0x0($s3)
/* 389624 E0084C54 3C02FA00 */  lui       $v0, (0xFA000000 >> 16)
/* 389628 E0084C58 0100482D */  daddu     $t1, $t0, $zero
/* 38962C E0084C5C AD220000 */  sw        $v0, 0x0($t1)
/* 389630 E0084C60 8E03003C */  lw        $v1, 0x3C($s0)
/* 389634 E0084C64 8FAA0068 */  lw        $t2, 0x68($sp)
/* 389638 E0084C68 006A0018 */  mult      $v1, $t2
/* 38963C E0084C6C 00001812 */  mflo      $v1
/* 389640 E0084C70 3C028080 */  lui       $v0, (0x80808081 >> 16)
/* 389644 E0084C74 34428081 */  ori       $v0, $v0, (0x80808081 & 0xFFFF)
/* 389648 E0084C78 00620018 */  mult      $v1, $v0
/* 38964C E0084C7C 4405A000 */  mfc1      $a1, $f20
/* 389650 E0084C80 4407A000 */  mfc1      $a3, $f20
/* 389654 E0084C84 3C068007 */  lui       $a2, %hi(gCurrentCameraID)
/* 389658 E0084C88 8CC67410 */  lw        $a2, %lo(gCurrentCameraID)($a2)
/* 38965C E0084C8C 00001010 */  mfhi      $v0
/* 389660 E0084C90 00431021 */  addu      $v0, $v0, $v1
/* 389664 E0084C94 000211C3 */  sra       $v0, $v0, 7
/* 389668 E0084C98 00031FC3 */  sra       $v1, $v1, 31
/* 38966C E0084C9C 00431023 */  subu      $v0, $v0, $v1
/* 389670 E0084CA0 2403FF00 */  addiu     $v1, $zero, -0x100
/* 389674 E0084CA4 00431025 */  or        $v0, $v0, $v1
/* 389678 E0084CA8 AD220004 */  sw        $v0, 0x4($t1)
/* 38967C E0084CAC 00061080 */  sll       $v0, $a2, 2
/* 389680 E0084CB0 00461021 */  addu      $v0, $v0, $a2
/* 389684 E0084CB4 00021080 */  sll       $v0, $v0, 2
/* 389688 E0084CB8 00461023 */  subu      $v0, $v0, $a2
/* 38968C E0084CBC 000218C0 */  sll       $v1, $v0, 3
/* 389690 E0084CC0 00431021 */  addu      $v0, $v0, $v1
/* 389694 E0084CC4 000210C0 */  sll       $v0, $v0, 3
/* 389698 E0084CC8 00571021 */  addu      $v0, $v0, $s7
/* 38969C E0084CCC C442006C */  lwc1      $f2, 0x6C($v0)
/* 3896A0 E0084CD0 E7B60010 */  swc1      $f22, 0x10($sp)
/* 3896A4 E0084CD4 C600FFF8 */  lwc1      $f0, -0x8($s0)
/* 3896A8 E0084CD8 25080008 */  addiu     $t0, $t0, 0x8
/* 3896AC E0084CDC AE680000 */  sw        $t0, 0x0($s3)
/* 3896B0 E0084CE0 46001087 */  neg.s     $f2, $f2
/* 3896B4 E0084CE4 E7A00014 */  swc1      $f0, 0x14($sp)
/* 3896B8 E0084CE8 C600FFFC */  lwc1      $f0, -0x4($s0)
/* 3896BC E0084CEC 44061000 */  mfc1      $a2, $f2
/* 3896C0 E0084CF0 27A40020 */  addiu     $a0, $sp, 0x20
/* 3896C4 E0084CF4 E7A00018 */  swc1      $f0, 0x18($sp)
/* 3896C8 E0084CF8 C6000000 */  lwc1      $f0, 0x0($s0)
/* 3896CC E0084CFC 26520001 */  addiu     $s2, $s2, 0x1
/* 3896D0 E0084D00 0C080180 */  jal       shim_guPositionF
/* 3896D4 E0084D04 E7A0001C */   swc1     $f0, 0x1C($sp)
/* 3896D8 E0084D08 27A40020 */  addiu     $a0, $sp, 0x20
/* 3896DC E0084D0C 96A50000 */  lhu       $a1, 0x0($s5)
/* 3896E0 E0084D10 8EC20000 */  lw        $v0, 0x0($s6)
/* 3896E4 E0084D14 00052980 */  sll       $a1, $a1, 6
/* 3896E8 E0084D18 00B42821 */  addu      $a1, $a1, $s4
/* 3896EC E0084D1C 0C080118 */  jal       shim_guMtxF2L
/* 3896F0 E0084D20 00452821 */   addu     $a1, $v0, $a1
/* 3896F4 E0084D24 3C06D838 */  lui       $a2, (0xD8380002 >> 16)
/* 3896F8 E0084D28 8E640000 */  lw        $a0, 0x0($s3)
/* 3896FC E0084D2C 34C60002 */  ori       $a2, $a2, (0xD8380002 & 0xFFFF)
/* 389700 E0084D30 0080282D */  daddu     $a1, $a0, $zero
/* 389704 E0084D34 24840008 */  addiu     $a0, $a0, 0x8
/* 389708 E0084D38 AE640000 */  sw        $a0, 0x0($s3)
/* 38970C E0084D3C 96A20000 */  lhu       $v0, 0x0($s5)
/* 389710 E0084D40 3C03DA38 */  lui       $v1, (0xDA380000 >> 16)
/* 389714 E0084D44 ACA30000 */  sw        $v1, 0x0($a1)
/* 389718 E0084D48 24430001 */  addiu     $v1, $v0, 0x1
/* 38971C E0084D4C 3042FFFF */  andi      $v0, $v0, 0xFFFF
/* 389720 E0084D50 00021180 */  sll       $v0, $v0, 6
/* 389724 E0084D54 A6A30000 */  sh        $v1, 0x0($s5)
/* 389728 E0084D58 8EC30000 */  lw        $v1, 0x0($s6)
/* 38972C E0084D5C 00541021 */  addu      $v0, $v0, $s4
/* 389730 E0084D60 00621821 */  addu      $v1, $v1, $v0
/* 389734 E0084D64 24820008 */  addiu     $v0, $a0, 0x8
/* 389738 E0084D68 ACA30004 */  sw        $v1, 0x4($a1)
/* 38973C E0084D6C AE620000 */  sw        $v0, 0x0($s3)
/* 389740 E0084D70 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* 389744 E0084D74 AC820000 */  sw        $v0, 0x0($a0)
/* 389748 E0084D78 8FAA0060 */  lw        $t2, 0x60($sp)
/* 38974C E0084D7C 24020040 */  addiu     $v0, $zero, 0x40
/* 389750 E0084D80 AC860008 */  sw        $a2, 0x8($a0)
/* 389754 E0084D84 AC82000C */  sw        $v0, 0xC($a0)
/* 389758 E0084D88 AC8A0004 */  sw        $t2, 0x4($a0)
/* 38975C E0084D8C 8FAA00A8 */  lw        $t2, 0xA8($sp)
/* 389760 E0084D90 26100050 */  addiu     $s0, $s0, 0x50
/* 389764 E0084D94 8D420008 */  lw        $v0, 0x8($t2)
/* 389768 E0084D98 24840010 */  addiu     $a0, $a0, 0x10
/* 38976C E0084D9C 0242102A */  slt       $v0, $s2, $v0
/* 389770 E0084DA0 1440FFAB */  bnez      $v0, .LE0084C50
/* 389774 E0084DA4 AE640000 */   sw       $a0, 0x0($s3)
.LE0084DA8:
/* 389778 E0084DA8 3C05D838 */  lui       $a1, (0xD8380002 >> 16)
/* 38977C E0084DAC 3C03800A */  lui       $v1, %hi(gMainGfxPos)
/* 389780 E0084DB0 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* 389784 E0084DB4 8C620000 */  lw        $v0, 0x0($v1)
/* 389788 E0084DB8 34A50002 */  ori       $a1, $a1, (0xD8380002 & 0xFFFF)
/* 38978C E0084DBC 0040202D */  daddu     $a0, $v0, $zero
/* 389790 E0084DC0 24420008 */  addiu     $v0, $v0, 0x8
/* 389794 E0084DC4 AC620000 */  sw        $v0, 0x0($v1)
/* 389798 E0084DC8 24020040 */  addiu     $v0, $zero, 0x40
/* 38979C E0084DCC AC850000 */  sw        $a1, 0x0($a0)
/* 3897A0 E0084DD0 AC820004 */  sw        $v0, 0x4($a0)
/* 3897A4 E0084DD4 8FBF0094 */  lw        $ra, 0x94($sp)
/* 3897A8 E0084DD8 8FBE0090 */  lw        $fp, 0x90($sp)
/* 3897AC E0084DDC 8FB7008C */  lw        $s7, 0x8C($sp)
/* 3897B0 E0084DE0 8FB60088 */  lw        $s6, 0x88($sp)
/* 3897B4 E0084DE4 8FB50084 */  lw        $s5, 0x84($sp)
/* 3897B8 E0084DE8 8FB40080 */  lw        $s4, 0x80($sp)
/* 3897BC E0084DEC 8FB3007C */  lw        $s3, 0x7C($sp)
/* 3897C0 E0084DF0 8FB20078 */  lw        $s2, 0x78($sp)
/* 3897C4 E0084DF4 8FB10074 */  lw        $s1, 0x74($sp)
/* 3897C8 E0084DF8 8FB00070 */  lw        $s0, 0x70($sp)
/* 3897CC E0084DFC D7B600A0 */  ldc1      $f22, 0xA0($sp)
/* 3897D0 E0084E00 D7B40098 */  ldc1      $f20, 0x98($sp)
/* 3897D4 E0084E04 03E00008 */  jr        $ra
/* 3897D8 E0084E08 27BD00A8 */   addiu    $sp, $sp, 0xA8
/* 3897DC E0084E0C 00000000 */  nop

### DECOMPILED C INSTRUCTIONS:

void bombette_breaking_appendGfx(void* effect) {
    Matrix4f sp20;
    BombetteBreakingFXData* data = ((EffectInstance*)effect)->data.bombetteBreaking;
    s32 timeLeft = data->timeLeft;
    u16 type = data->type;
    Gfx* sp60 = D_E0084E10[type];
    Gfx* sp64 = D_E0084E28[type];
    f32 unk_38 = data->unk_38;
    f32 unk_40 = data->unk_40;
    s32 mainAlpha = data->alpha;
    s32 i;

    timeLeft *= 4;

    gDPPipeSync(gMainGfxPos++);
    gSPSegment(gMainGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
    shim_guTranslateF(sp20, data->center.x, data->center.y, data->center.z);
    shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
    gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);

    shim_mdl_draw_hidden_panel_surface(&gMainGfxPos, data->treeIndex);

    data++;
    for (i = 1; i < ((EffectInstance*)effect)->numParts; i++, data++) {
        shim_guPositionF(sp20, timeLeft + (130 * i), timeLeft - (40 * i), timeLeft + (80 * i), unk_40,
                         data->unk_14.x, data->unk_14.y, data->unk_14.z);
        shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
        gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
                  G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
        gSPDisplayList(gMainGfxPos++, D_E0084E1C[type]);
        gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
    }

    gSPDisplayList(gMainGfxPos++, sp64);

    data = ((EffectInstance*)effect)->data.bombetteBreaking;
    data++;
    for (i = 1; i < ((EffectInstance*)effect)->numParts; i++, data++) {
        gDPSetPrimColor(gMainGfxPos++, 0, 0, 255, 255, 255, (data->alpha * mainAlpha) / 255);
        shim_guPositionF(sp20, 0.0f, -gCameras[gCurrentCameraID].currentYaw, 0.0f, unk_38,
                         data->center.x, data->center.y, data->center.z);
        shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
        gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
                  G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
        gSPDisplayList(gMainGfxPos++, sp60);
        gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
    }

    gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
}