### RAW ASSEMBLY INSTRUCTIONS:

glabel CreateMapRoom
/* 7E2B2C 80281CAC 27BDFFA8 */  addiu     $sp, $sp, -0x58
/* 7E2B30 80281CB0 AFB10034 */  sw        $s1, 0x34($sp)
/* 7E2B34 80281CB4 0080882D */  daddu     $s1, $a0, $zero
/* 7E2B38 80281CB8 AFBF0054 */  sw        $ra, 0x54($sp)
/* 7E2B3C 80281CBC AFBE0050 */  sw        $fp, 0x50($sp)
/* 7E2B40 80281CC0 AFB7004C */  sw        $s7, 0x4C($sp)
/* 7E2B44 80281CC4 AFB60048 */  sw        $s6, 0x48($sp)
/* 7E2B48 80281CC8 AFB50044 */  sw        $s5, 0x44($sp)
/* 7E2B4C 80281CCC AFB40040 */  sw        $s4, 0x40($sp)
/* 7E2B50 80281CD0 AFB3003C */  sw        $s3, 0x3C($sp)
/* 7E2B54 80281CD4 AFB20038 */  sw        $s2, 0x38($sp)
/* 7E2B58 80281CD8 AFB00030 */  sw        $s0, 0x30($sp)
/* 7E2B5C 80281CDC 8E30000C */  lw        $s0, 0xC($s1)
/* 7E2B60 80281CE0 0C00AB39 */  jal       heap_malloc
/* 7E2B64 80281CE4 24040064 */   addiu    $a0, $zero, 0x64
/* 7E2B68 80281CE8 0220202D */  daddu     $a0, $s1, $zero
/* 7E2B6C 80281CEC 0040902D */  daddu     $s2, $v0, $zero
/* 7E2B70 80281CF0 AE400000 */  sw        $zero, 0x0($s2)
/* 7E2B74 80281CF4 8E050000 */  lw        $a1, 0x0($s0)
/* 7E2B78 80281CF8 0C0B1EAF */  jal       evt_get_variable
/* 7E2B7C 80281CFC 26100004 */   addiu    $s0, $s0, 0x4
/* 7E2B80 80281D00 0040982D */  daddu     $s3, $v0, $zero
/* 7E2B84 80281D04 32620FFF */  andi      $v0, $s3, 0xFFF
/* 7E2B88 80281D08 AE420004 */  sw        $v0, 0x4($s2)
/* 7E2B8C 80281D0C 3262F000 */  andi      $v0, $s3, 0xF000
/* 7E2B90 80281D10 00021303 */  sra       $v0, $v0, 12
/* 7E2B94 80281D14 A6420008 */  sh        $v0, 0x8($s2)
/* 7E2B98 80281D18 A640000A */  sh        $zero, 0xA($s2)
/* 7E2B9C 80281D1C 8E050000 */  lw        $a1, 0x0($s0)
/* 7E2BA0 80281D20 26100004 */  addiu     $s0, $s0, 0x4
/* 7E2BA4 80281D24 0C0B1EAF */  jal       evt_get_variable
/* 7E2BA8 80281D28 0220202D */   daddu    $a0, $s1, $zero
/* 7E2BAC 80281D2C 8E050000 */  lw        $a1, 0x0($s0)
/* 7E2BB0 80281D30 26100004 */  addiu     $s0, $s0, 0x4
/* 7E2BB4 80281D34 0220202D */  daddu     $a0, $s1, $zero
/* 7E2BB8 80281D38 0C0B1EAF */  jal       evt_get_variable
/* 7E2BBC 80281D3C AFA2002C */   sw       $v0, 0x2C($sp)
/* 7E2BC0 80281D40 8E050000 */  lw        $a1, 0x0($s0)
/* 7E2BC4 80281D44 26100004 */  addiu     $s0, $s0, 0x4
/* 7E2BC8 80281D48 0220202D */  daddu     $a0, $s1, $zero
/* 7E2BCC 80281D4C 0C0B1EAF */  jal       evt_get_variable
/* 7E2BD0 80281D50 0040F02D */   daddu    $fp, $v0, $zero
/* 7E2BD4 80281D54 8E050000 */  lw        $a1, 0x0($s0)
/* 7E2BD8 80281D58 26100004 */  addiu     $s0, $s0, 0x4
/* 7E2BDC 80281D5C 0220202D */  daddu     $a0, $s1, $zero
/* 7E2BE0 80281D60 0C0B1EAF */  jal       evt_get_variable
/* 7E2BE4 80281D64 0040A82D */   daddu    $s5, $v0, $zero
/* 7E2BE8 80281D68 8E050000 */  lw        $a1, 0x0($s0)
/* 7E2BEC 80281D6C 26100004 */  addiu     $s0, $s0, 0x4
/* 7E2BF0 80281D70 0220202D */  daddu     $a0, $s1, $zero
/* 7E2BF4 80281D74 0C0B1EAF */  jal       evt_get_variable
/* 7E2BF8 80281D78 0040B82D */   daddu    $s7, $v0, $zero
/* 7E2BFC 80281D7C 0040A02D */  daddu     $s4, $v0, $zero
/* 7E2C00 80281D80 AE540060 */  sw        $s4, 0x60($s2)
/* 7E2C04 80281D84 8E050000 */  lw        $a1, 0x0($s0)
/* 7E2C08 80281D88 26100004 */  addiu     $s0, $s0, 0x4
/* 7E2C0C 80281D8C 0C0B1EAF */  jal       evt_get_variable
/* 7E2C10 80281D90 0220202D */   daddu    $a0, $s1, $zero
/* 7E2C14 80281D94 8E050000 */  lw        $a1, 0x0($s0)
/* 7E2C18 80281D98 26100004 */  addiu     $s0, $s0, 0x4
/* 7E2C1C 80281D9C 0220202D */  daddu     $a0, $s1, $zero
/* 7E2C20 80281DA0 0C0B1EAF */  jal       evt_get_variable
/* 7E2C24 80281DA4 0040B02D */   daddu    $s6, $v0, $zero
/* 7E2C28 80281DA8 AE42003C */  sw        $v0, 0x3C($s2)
/* 7E2C2C 80281DAC 8E050000 */  lw        $a1, 0x0($s0)
/* 7E2C30 80281DB0 0C0B1EAF */  jal       evt_get_variable
/* 7E2C34 80281DB4 0220202D */   daddu    $a0, $s1, $zero
/* 7E2C38 80281DB8 12A00003 */  beqz      $s5, .L80281DC8
/* 7E2C3C 80281DBC AE42005C */   sw       $v0, 0x5C($s2)
/* 7E2C40 80281DC0 36730800 */  ori       $s3, $s3, 0x800
/* 7E2C44 80281DC4 AE530004 */  sw        $s3, 0x4($s2)
.L80281DC8:
/* 7E2C48 80281DC8 0280202D */  daddu     $a0, $s4, $zero
/* 7E2C4C 80281DCC 27A50018 */  addiu     $a1, $sp, 0x18
/* 7E2C50 80281DD0 27B0001C */  addiu     $s0, $sp, 0x1C
/* 7E2C54 80281DD4 0200302D */  daddu     $a2, $s0, $zero
/* 7E2C58 80281DD8 0C016F84 */  jal       get_collider_center
/* 7E2C5C 80281DDC 27A70020 */   addiu    $a3, $sp, 0x20
/* 7E2C60 80281DE0 0280202D */  daddu     $a0, $s4, $zero
/* 7E2C64 80281DE4 27A50024 */  addiu     $a1, $sp, 0x24
/* 7E2C68 80281DE8 0200302D */  daddu     $a2, $s0, $zero
/* 7E2C6C 80281DEC 0C016F76 */  jal       get_flat_collider_normal
/* 7E2C70 80281DF0 27A70028 */   addiu    $a3, $sp, 0x28
/* 7E2C74 80281DF4 326300FF */  andi      $v1, $s3, 0xFF
/* 7E2C78 80281DF8 2C620008 */  sltiu     $v0, $v1, 0x8
/* 7E2C7C 80281DFC 104000F0 */  beqz      $v0, .L802821C0
/* 7E2C80 80281E00 00031080 */   sll      $v0, $v1, 2
/* 7E2C84 80281E04 3C018028 */  lui       $at, %hi(jtbl_80286500)
/* 7E2C88 80281E08 00220821 */  addu      $at, $at, $v0
/* 7E2C8C 80281E0C 8C226500 */  lw        $v0, %lo(jtbl_80286500)($at)
/* 7E2C90 80281E10 00400008 */  jr        $v0
/* 7E2C94 80281E14 00000000 */   nop
glabel .L80281E18
/* 7E2C98 80281E18 C7AA0024 */  lwc1      $f10, 0x24($sp)
/* 7E2C9C 80281E1C 3C0141F0 */  lui       $at, (0x41F00000 >> 16)
/* 7E2CA0 80281E20 44811000 */  mtc1      $at, $f2
/* 7E2CA4 80281E24 00000000 */  nop
/* 7E2CA8 80281E28 46025302 */  mul.s     $f12, $f10, $f2
/* 7E2CAC 80281E2C 00000000 */  nop
/* 7E2CB0 80281E30 C7A60028 */  lwc1      $f6, 0x28($sp)
/* 7E2CB4 80281E34 3C0141A0 */  lui       $at, (0x41A00000 >> 16)
/* 7E2CB8 80281E38 44810000 */  mtc1      $at, $f0
/* 7E2CBC 80281E3C 00000000 */  nop
/* 7E2CC0 80281E40 46003102 */  mul.s     $f4, $f6, $f0
/* 7E2CC4 80281E44 00000000 */  nop
/* 7E2CC8 80281E48 46023182 */  mul.s     $f6, $f6, $f2
/* 7E2CCC 80281E4C 00000000 */  nop
/* 7E2CD0 80281E50 46005282 */  mul.s     $f10, $f10, $f0
/* 7E2CD4 80281E54 00000000 */  nop
/* 7E2CD8 80281E58 C7A20018 */  lwc1      $f2, 0x18($sp)
/* 7E2CDC 80281E5C 460C1200 */  add.s     $f8, $f2, $f12
/* 7E2CE0 80281E60 460C1081 */  sub.s     $f2, $f2, $f12
/* 7E2CE4 80281E64 46044201 */  sub.s     $f8, $f8, $f4
/* 7E2CE8 80281E68 C7A00020 */  lwc1      $f0, 0x20($sp)
/* 7E2CEC 80281E6C 46060100 */  add.s     $f4, $f0, $f6
/* 7E2CF0 80281E70 46060001 */  sub.s     $f0, $f0, $f6
/* 7E2CF4 80281E74 E6420014 */  swc1      $f2, 0x14($s2)
/* 7E2CF8 80281E78 080A0819 */  j         .L80282064
/* 7E2CFC 80281E7C 460A2100 */   add.s    $f4, $f4, $f10
glabel .L80281E80
/* 7E2D00 80281E80 C7A80024 */  lwc1      $f8, 0x24($sp)
/* 7E2D04 80281E84 3C014270 */  lui       $at, (0x42700000 >> 16)
/* 7E2D08 80281E88 44812000 */  mtc1      $at, $f4
/* 7E2D0C 80281E8C 00000000 */  nop
/* 7E2D10 80281E90 46044302 */  mul.s     $f12, $f8, $f4
/* 7E2D14 80281E94 00000000 */  nop
/* 7E2D18 80281E98 C7A60028 */  lwc1      $f6, 0x28($sp)
/* 7E2D1C 80281E9C 3C0141A0 */  lui       $at, (0x41A00000 >> 16)
/* 7E2D20 80281EA0 44815000 */  mtc1      $at, $f10
/* 7E2D24 80281EA4 00000000 */  nop
/* 7E2D28 80281EA8 460A3382 */  mul.s     $f14, $f6, $f10
/* 7E2D2C 80281EAC 00000000 */  nop
/* 7E2D30 80281EB0 46043102 */  mul.s     $f4, $f6, $f4
/* 7E2D34 80281EB4 00000000 */  nop
/* 7E2D38 80281EB8 460A4282 */  mul.s     $f10, $f8, $f10
/* 7E2D3C 80281EBC 00000000 */  nop
/* 7E2D40 80281EC0 3C0141F0 */  lui       $at, (0x41F00000 >> 16)
/* 7E2D44 80281EC4 44810000 */  mtc1      $at, $f0
/* 7E2D48 80281EC8 00000000 */  nop
/* 7E2D4C 80281ECC 46004202 */  mul.s     $f8, $f8, $f0
/* 7E2D50 80281ED0 00000000 */  nop
/* 7E2D54 80281ED4 46003182 */  mul.s     $f6, $f6, $f0
/* 7E2D58 80281ED8 00000000 */  nop
/* 7E2D5C 80281EDC C7A20018 */  lwc1      $f2, 0x18($sp)
/* 7E2D60 80281EE0 460C1300 */  add.s     $f12, $f2, $f12
/* 7E2D64 80281EE4 C7A00020 */  lwc1      $f0, 0x20($sp)
/* 7E2D68 80281EE8 46040100 */  add.s     $f4, $f0, $f4
/* 7E2D6C 80281EEC 46081081 */  sub.s     $f2, $f2, $f8
/* 7E2D70 80281EF0 46060001 */  sub.s     $f0, $f0, $f6
/* 7E2D74 80281EF4 460E6301 */  sub.s     $f12, $f12, $f14
/* 7E2D78 80281EF8 E6420014 */  swc1      $f2, 0x14($s2)
/* 7E2D7C 80281EFC 080A083D */  j         .L802820F4
/* 7E2D80 80281F00 460A2100 */   add.s    $f4, $f4, $f10
glabel .L80281F04
/* 7E2D84 80281F04 C7A80024 */  lwc1      $f8, 0x24($sp)
/* 7E2D88 80281F08 3C0141F0 */  lui       $at, (0x41F00000 >> 16)
/* 7E2D8C 80281F0C 44813000 */  mtc1      $at, $f6
/* 7E2D90 80281F10 00000000 */  nop
/* 7E2D94 80281F14 46064282 */  mul.s     $f10, $f8, $f6
/* 7E2D98 80281F18 00000000 */  nop
/* 7E2D9C 80281F1C C7A40028 */  lwc1      $f4, 0x28($sp)
/* 7E2DA0 80281F20 46062182 */  mul.s     $f6, $f4, $f6
/* 7E2DA4 80281F24 00000000 */  nop
/* 7E2DA8 80281F28 3C0141A0 */  lui       $at, (0x41A00000 >> 16)
/* 7E2DAC 80281F2C 44810000 */  mtc1      $at, $f0
/* 7E2DB0 80281F30 00000000 */  nop
/* 7E2DB4 80281F34 46002102 */  mul.s     $f4, $f4, $f0
/* 7E2DB8 80281F38 00000000 */  nop
/* 7E2DBC 80281F3C 46004202 */  mul.s     $f8, $f8, $f0
/* 7E2DC0 80281F40 00000000 */  nop
/* 7E2DC4 80281F44 C7A20018 */  lwc1      $f2, 0x18($sp)
/* 7E2DC8 80281F48 460A1300 */  add.s     $f12, $f2, $f10
/* 7E2DCC 80281F4C 460A1081 */  sub.s     $f2, $f2, $f10
/* 7E2DD0 80281F50 C7A00020 */  lwc1      $f0, 0x20($sp)
/* 7E2DD4 80281F54 46060280 */  add.s     $f10, $f0, $f6
/* 7E2DD8 80281F58 46060001 */  sub.s     $f0, $f0, $f6
/* 7E2DDC 80281F5C 46041081 */  sub.s     $f2, $f2, $f4
/* 7E2DE0 80281F60 E64C000C */  swc1      $f12, 0xC($s2)
/* 7E2DE4 80281F64 46080001 */  sub.s     $f0, $f0, $f8
/* 7E2DE8 80281F68 E64A0010 */  swc1      $f10, 0x10($s2)
/* 7E2DEC 80281F6C 080A086F */  j         .L802821BC
/* 7E2DF0 80281F70 E6420014 */   swc1     $f2, 0x14($s2)
glabel .L80281F74
/* 7E2DF4 80281F74 C7A80024 */  lwc1      $f8, 0x24($sp)
/* 7E2DF8 80281F78 3C0141F0 */  lui       $at, (0x41F00000 >> 16)
/* 7E2DFC 80281F7C 44813000 */  mtc1      $at, $f6
/* 7E2E00 80281F80 00000000 */  nop
/* 7E2E04 80281F84 46064282 */  mul.s     $f10, $f8, $f6
/* 7E2E08 80281F88 00000000 */  nop
/* 7E2E0C 80281F8C C7A40028 */  lwc1      $f4, 0x28($sp)
/* 7E2E10 80281F90 46062182 */  mul.s     $f6, $f4, $f6
/* 7E2E14 80281F94 00000000 */  nop
/* 7E2E18 80281F98 3C014270 */  lui       $at, (0x42700000 >> 16)
/* 7E2E1C 80281F9C 44811000 */  mtc1      $at, $f2
/* 7E2E20 80281FA0 00000000 */  nop
/* 7E2E24 80281FA4 46024302 */  mul.s     $f12, $f8, $f2
/* 7E2E28 80281FA8 00000000 */  nop
/* 7E2E2C 80281FAC 3C0141A0 */  lui       $at, (0x41A00000 >> 16)
/* 7E2E30 80281FB0 44810000 */  mtc1      $at, $f0
/* 7E2E34 80281FB4 00000000 */  nop
/* 7E2E38 80281FB8 46002382 */  mul.s     $f14, $f4, $f0
/* 7E2E3C 80281FBC 00000000 */  nop
/* 7E2E40 80281FC0 46022102 */  mul.s     $f4, $f4, $f2
/* 7E2E44 80281FC4 00000000 */  nop
/* 7E2E48 80281FC8 46004202 */  mul.s     $f8, $f8, $f0
/* 7E2E4C 80281FCC 00000000 */  nop
/* 7E2E50 80281FD0 C7A20018 */  lwc1      $f2, 0x18($sp)
/* 7E2E54 80281FD4 460A1280 */  add.s     $f10, $f2, $f10
/* 7E2E58 80281FD8 460C1081 */  sub.s     $f2, $f2, $f12
/* 7E2E5C 80281FDC C7A00020 */  lwc1      $f0, 0x20($sp)
/* 7E2E60 80281FE0 46060180 */  add.s     $f6, $f0, $f6
/* 7E2E64 80281FE4 46040001 */  sub.s     $f0, $f0, $f4
/* 7E2E68 80281FE8 460E1081 */  sub.s     $f2, $f2, $f14
/* 7E2E6C 80281FEC E64A000C */  swc1      $f10, 0xC($s2)
/* 7E2E70 80281FF0 46080001 */  sub.s     $f0, $f0, $f8
/* 7E2E74 80281FF4 E6460010 */  swc1      $f6, 0x10($s2)
/* 7E2E78 80281FF8 080A086F */  j         .L802821BC
/* 7E2E7C 80281FFC E6420014 */   swc1     $f2, 0x14($s2)
glabel .L80282000
/* 7E2E80 80282000 C7AA0024 */  lwc1      $f10, 0x24($sp)
/* 7E2E84 80282004 3C0141F0 */  lui       $at, (0x41F00000 >> 16)
/* 7E2E88 80282008 44811000 */  mtc1      $at, $f2
/* 7E2E8C 8028200C 00000000 */  nop
/* 7E2E90 80282010 46025302 */  mul.s     $f12, $f10, $f2
/* 7E2E94 80282014 00000000 */  nop
/* 7E2E98 80282018 C7A60028 */  lwc1      $f6, 0x28($sp)
/* 7E2E9C 8028201C 3C0141A0 */  lui       $at, (0x41A00000 >> 16)
/* 7E2EA0 80282020 44810000 */  mtc1      $at, $f0
/* 7E2EA4 80282024 00000000 */  nop
/* 7E2EA8 80282028 46003102 */  mul.s     $f4, $f6, $f0
/* 7E2EAC 8028202C 00000000 */  nop
/* 7E2EB0 80282030 46023182 */  mul.s     $f6, $f6, $f2
/* 7E2EB4 80282034 00000000 */  nop
/* 7E2EB8 80282038 46005282 */  mul.s     $f10, $f10, $f0
/* 7E2EBC 8028203C 00000000 */  nop
/* 7E2EC0 80282040 C7A20018 */  lwc1      $f2, 0x18($sp)
/* 7E2EC4 80282044 460C1200 */  add.s     $f8, $f2, $f12
/* 7E2EC8 80282048 460C1081 */  sub.s     $f2, $f2, $f12
/* 7E2ECC 8028204C 46044200 */  add.s     $f8, $f8, $f4
/* 7E2ED0 80282050 C7A00020 */  lwc1      $f0, 0x20($sp)
/* 7E2ED4 80282054 46060100 */  add.s     $f4, $f0, $f6
/* 7E2ED8 80282058 46060001 */  sub.s     $f0, $f0, $f6
/* 7E2EDC 8028205C E6420014 */  swc1      $f2, 0x14($s2)
/* 7E2EE0 80282060 460A2101 */  sub.s     $f4, $f4, $f10
.L80282064:
/* 7E2EE4 80282064 E6400018 */  swc1      $f0, 0x18($s2)
/* 7E2EE8 80282068 E648000C */  swc1      $f8, 0xC($s2)
/* 7E2EEC 8028206C 080A0870 */  j         .L802821C0
/* 7E2EF0 80282070 E6440010 */   swc1     $f4, 0x10($s2)
glabel .L80282074
/* 7E2EF4 80282074 C7A80024 */  lwc1      $f8, 0x24($sp)
/* 7E2EF8 80282078 3C014270 */  lui       $at, (0x42700000 >> 16)
/* 7E2EFC 8028207C 44812000 */  mtc1      $at, $f4
/* 7E2F00 80282080 00000000 */  nop
/* 7E2F04 80282084 46044302 */  mul.s     $f12, $f8, $f4
/* 7E2F08 80282088 00000000 */  nop
/* 7E2F0C 8028208C C7A60028 */  lwc1      $f6, 0x28($sp)
/* 7E2F10 80282090 3C0141A0 */  lui       $at, (0x41A00000 >> 16)
/* 7E2F14 80282094 44815000 */  mtc1      $at, $f10
/* 7E2F18 80282098 00000000 */  nop
/* 7E2F1C 8028209C 460A3382 */  mul.s     $f14, $f6, $f10
/* 7E2F20 802820A0 00000000 */  nop
/* 7E2F24 802820A4 46043102 */  mul.s     $f4, $f6, $f4
/* 7E2F28 802820A8 00000000 */  nop
/* 7E2F2C 802820AC 460A4282 */  mul.s     $f10, $f8, $f10
/* 7E2F30 802820B0 00000000 */  nop
/* 7E2F34 802820B4 3C0141F0 */  lui       $at, (0x41F00000 >> 16)
/* 7E2F38 802820B8 44810000 */  mtc1      $at, $f0
/* 7E2F3C 802820BC 00000000 */  nop
/* 7E2F40 802820C0 46004202 */  mul.s     $f8, $f8, $f0
/* 7E2F44 802820C4 00000000 */  nop
/* 7E2F48 802820C8 46003182 */  mul.s     $f6, $f6, $f0
/* 7E2F4C 802820CC 00000000 */  nop
/* 7E2F50 802820D0 C7A20018 */  lwc1      $f2, 0x18($sp)
/* 7E2F54 802820D4 460C1300 */  add.s     $f12, $f2, $f12
/* 7E2F58 802820D8 C7A00020 */  lwc1      $f0, 0x20($sp)
/* 7E2F5C 802820DC 46040100 */  add.s     $f4, $f0, $f4
/* 7E2F60 802820E0 46081081 */  sub.s     $f2, $f2, $f8
/* 7E2F64 802820E4 46060001 */  sub.s     $f0, $f0, $f6
/* 7E2F68 802820E8 460E6300 */  add.s     $f12, $f12, $f14
/* 7E2F6C 802820EC E6420014 */  swc1      $f2, 0x14($s2)
/* 7E2F70 802820F0 460A2101 */  sub.s     $f4, $f4, $f10
.L802820F4:
/* 7E2F74 802820F4 E6400018 */  swc1      $f0, 0x18($s2)
/* 7E2F78 802820F8 E64C000C */  swc1      $f12, 0xC($s2)
/* 7E2F7C 802820FC 080A0870 */  j         .L802821C0
/* 7E2F80 80282100 E6440010 */   swc1     $f4, 0x10($s2)
glabel .L80282104
/* 7E2F84 80282104 C7A80024 */  lwc1      $f8, 0x24($sp)
/* 7E2F88 80282108 3C0141F0 */  lui       $at, (0x41F00000 >> 16)
/* 7E2F8C 8028210C 44813000 */  mtc1      $at, $f6
/* 7E2F90 80282110 00000000 */  nop
/* 7E2F94 80282114 46064282 */  mul.s     $f10, $f8, $f6
/* 7E2F98 80282118 00000000 */  nop
/* 7E2F9C 8028211C C7A40028 */  lwc1      $f4, 0x28($sp)
/* 7E2FA0 80282120 46062182 */  mul.s     $f6, $f4, $f6
/* 7E2FA4 80282124 00000000 */  nop
/* 7E2FA8 80282128 3C0141A0 */  lui       $at, (0x41A00000 >> 16)
/* 7E2FAC 8028212C 44810000 */  mtc1      $at, $f0
/* 7E2FB0 80282130 00000000 */  nop
/* 7E2FB4 80282134 46002102 */  mul.s     $f4, $f4, $f0
/* 7E2FB8 80282138 00000000 */  nop
/* 7E2FBC 8028213C 46004202 */  mul.s     $f8, $f8, $f0
/* 7E2FC0 80282140 00000000 */  nop
/* 7E2FC4 80282144 C7A20018 */  lwc1      $f2, 0x18($sp)
/* 7E2FC8 80282148 460A1300 */  add.s     $f12, $f2, $f10
/* 7E2FCC 8028214C 460A1081 */  sub.s     $f2, $f2, $f10
/* 7E2FD0 80282150 C7A00020 */  lwc1      $f0, 0x20($sp)
/* 7E2FD4 80282154 46060280 */  add.s     $f10, $f0, $f6
/* 7E2FD8 80282158 46060001 */  sub.s     $f0, $f0, $f6
/* 7E2FDC 8028215C 46041080 */  add.s     $f2, $f2, $f4
/* 7E2FE0 80282160 E64C000C */  swc1      $f12, 0xC($s2)
/* 7E2FE4 80282164 46080000 */  add.s     $f0, $f0, $f8
/* 7E2FE8 80282168 E64A0010 */  swc1      $f10, 0x10($s2)
/* 7E2FEC 8028216C 080A086F */  j         .L802821BC
/* 7E2FF0 80282170 E6420014 */   swc1     $f2, 0x14($s2)
glabel .L80282174
/* 7E2FF4 80282174 C7A60024 */  lwc1      $f6, 0x24($sp)
/* 7E2FF8 80282178 3C0141F0 */  lui       $at, (0x41F00000 >> 16)
/* 7E2FFC 8028217C 44810000 */  mtc1      $at, $f0
/* 7E3000 80282180 00000000 */  nop
/* 7E3004 80282184 46003182 */  mul.s     $f6, $f6, $f0
/* 7E3008 80282188 00000000 */  nop
/* 7E300C 8028218C C7A20028 */  lwc1      $f2, 0x28($sp)
/* 7E3010 80282190 46001082 */  mul.s     $f2, $f2, $f0
/* 7E3014 80282194 00000000 */  nop
/* 7E3018 80282198 C7A40018 */  lwc1      $f4, 0x18($sp)
/* 7E301C 8028219C 46062200 */  add.s     $f8, $f4, $f6
/* 7E3020 802821A0 C7A00020 */  lwc1      $f0, 0x20($sp)
/* 7E3024 802821A4 46020280 */  add.s     $f10, $f0, $f2
/* 7E3028 802821A8 46062101 */  sub.s     $f4, $f4, $f6
/* 7E302C 802821AC 46020001 */  sub.s     $f0, $f0, $f2
/* 7E3030 802821B0 E648000C */  swc1      $f8, 0xC($s2)
/* 7E3034 802821B4 E64A0010 */  swc1      $f10, 0x10($s2)
/* 7E3038 802821B8 E6440014 */  swc1      $f4, 0x14($s2)
.L802821BC:
/* 7E303C 802821BC E6400018 */  swc1      $f0, 0x18($s2)
.L802821C0:
/* 7E3040 802821C0 3C048028 */  lui       $a0, %hi(D_802847D4)
/* 7E3044 802821C4 248447D4 */  addiu     $a0, $a0, %lo(D_802847D4)
/* 7E3048 802821C8 3C02800B */  lui       $v0, %hi(gCameras)
/* 7E304C 802821CC 24421D80 */  addiu     $v0, $v0, %lo(gCameras)
/* 7E3050 802821D0 C6400014 */  lwc1      $f0, 0x14($s2)
/* 7E3054 802821D4 C6420018 */  lwc1      $f2, 0x18($s2)
/* 7E3058 802821D8 C644000C */  lwc1      $f4, 0xC($s2)
/* 7E305C 802821DC C6460010 */  lwc1      $f6, 0x10($s2)
/* 7E3060 802821E0 8FA8002C */  lw        $t0, 0x2C($sp)
/* 7E3064 802821E4 24050100 */  addiu     $a1, $zero, 0x100
/* 7E3068 802821E8 AE48002C */  sw        $t0, 0x2C($s2)
/* 7E306C 802821EC AE5E0030 */  sw        $fp, 0x30($s2)
/* 7E3070 802821F0 AE550034 */  sw        $s5, 0x34($s2)
/* 7E3074 802821F4 AE570038 */  sw        $s7, 0x38($s2)
/* 7E3078 802821F8 E640001C */  swc1      $f0, 0x1C($s2)
/* 7E307C 802821FC E6420020 */  swc1      $f2, 0x20($s2)
/* 7E3080 80282200 E6440024 */  swc1      $f4, 0x24($s2)
/* 7E3084 80282204 E6460028 */  swc1      $f6, 0x28($s2)
/* 7E3088 80282208 8443002C */  lh        $v1, 0x2C($v0)
/* 7E308C 8028220C 0280302D */  daddu     $a2, $s4, $zero
/* 7E3090 80282210 AE430040 */  sw        $v1, 0x40($s2)
/* 7E3094 80282214 8443002E */  lh        $v1, 0x2E($v0)
/* 7E3098 80282218 0000382D */  daddu     $a3, $zero, $zero
/* 7E309C 8028221C AE430044 */  sw        $v1, 0x44($s2)
/* 7E30A0 80282220 84420030 */  lh        $v0, 0x30($v0)
/* 7E30A4 80282224 24100003 */  addiu     $s0, $zero, 0x3
/* 7E30A8 80282228 AE420048 */  sw        $v0, 0x48($s2)
/* 7E30AC 8028222C AFB20010 */  sw        $s2, 0x10($sp)
/* 7E30B0 80282230 0C0B10AA */  jal       bind_trigger_1
/* 7E30B4 80282234 AFB00014 */   sw       $s0, 0x14($sp)
/* 7E30B8 80282238 32620800 */  andi      $v0, $s3, 0x800
/* 7E30BC 8028223C 10400005 */  beqz      $v0, .L80282254
/* 7E30C0 80282240 24050040 */   addiu    $a1, $zero, 0x40
/* 7E30C4 80282244 3C048028 */  lui       $a0, %hi(D_80284F80)
/* 7E30C8 80282248 24844F80 */  addiu     $a0, $a0, %lo(D_80284F80)
/* 7E30CC 8028224C 080A0899 */  j         .L80282264
/* 7E30D0 80282250 02C0302D */   daddu    $a2, $s6, $zero
.L80282254:
/* 7E30D4 80282254 3C048028 */  lui       $a0, %hi(D_80284F80)
/* 7E30D8 80282258 24844F80 */  addiu     $a0, $a0, %lo(D_80284F80)
/* 7E30DC 8028225C 24050100 */  addiu     $a1, $zero, 0x100
/* 7E30E0 80282260 02C0302D */  daddu     $a2, $s6, $zero
.L80282264:
/* 7E30E4 80282264 24070001 */  addiu     $a3, $zero, 0x1
/* 7E30E8 80282268 AFB20010 */  sw        $s2, 0x10($sp)
/* 7E30EC 8028226C 0C0B10AA */  jal       bind_trigger_1
/* 7E30F0 80282270 AFB00014 */   sw       $s0, 0x14($sp)
/* 7E30F4 80282274 8FBF0054 */  lw        $ra, 0x54($sp)
/* 7E30F8 80282278 8FBE0050 */  lw        $fp, 0x50($sp)
/* 7E30FC 8028227C 8FB7004C */  lw        $s7, 0x4C($sp)
/* 7E3100 80282280 8FB60048 */  lw        $s6, 0x48($sp)
/* 7E3104 80282284 8FB50044 */  lw        $s5, 0x44($sp)
/* 7E3108 80282288 8FB40040 */  lw        $s4, 0x40($sp)
/* 7E310C 8028228C 8FB3003C */  lw        $s3, 0x3C($sp)
/* 7E3110 80282290 8FB20038 */  lw        $s2, 0x38($sp)
/* 7E3114 80282294 8FB10034 */  lw        $s1, 0x34($sp)
/* 7E3118 80282298 8FB00030 */  lw        $s0, 0x30($sp)
/* 7E311C 8028229C 24020002 */  addiu     $v0, $zero, 0x2
/* 7E3120 802822A0 03E00008 */  jr        $ra
/* 7E3124 802822A4 27BD0058 */   addiu    $sp, $sp, 0x58

### DECOMPILED C INSTRUCTIONS:

API_CALLABLE(CreateMapRoom) {
    Bytecode* args = script->ptrReadPos;
    MapRoom* room = heap_malloc(sizeof(*room));
    EvtScript* openDoorScript;
    EvtScript* moveWallsScript;
    EvtScript* dropDoorScript;
    EvtScript* stateListenerScript;
    s32 colliderID;
    s32 triggerColliderID;
    s32 roomFlags;
    f32 centerX, centerZ;
    f32 nX, nZ;
    f32 tempY;

    room->state = ROOM_STATE_IDLE;
    roomFlags = evt_get_variable(script, *args++);
    room->flags = roomFlags & (ROOM_FLAGS_MASK | ROOM_FLAGS_DOOR_TYPE_MASK);
    room->newItemVisGroup = (roomFlags & ROOM_FLAGS_VISGROUP_MASK) >> 0xC;
    room->prevItemVisGroup = VIS_GROUP_0;
    openDoorScript  = (EvtScript*) evt_get_variable(script, *args++);
    moveWallsScript = (EvtScript*) evt_get_variable(script, *args++);
    dropDoorScript  = (EvtScript*) evt_get_variable(script, *args++);
    stateListenerScript = (EvtScript*) evt_get_variable(script, *args++);
    room->colliderID = colliderID = evt_get_variable(script, *args++);
    triggerColliderID = evt_get_variable(script, *args++);
    room->modelID = evt_get_variable(script, *args++);
    room->npcList = (s32*) evt_get_variable(script, *args++);
    if (dropDoorScript != NULL) {
        roomFlags |= ROOM_FLAG_EXIT_DOOR_DROPS;
        room->flags = roomFlags;
    }
    get_collider_center(colliderID, &centerX, &tempY, &centerZ);
    get_flat_collider_normal(colliderID, &nX, &tempY, &nZ);

    switch (roomFlags & ROOM_FLAGS_DOOR_TYPE_MASK) {
        case ROOM_DOOR_RIGHT_HINGE_OPENS_OUT:
            room->posEnterA.x = centerX + (nX * 30.0f) - (nZ * 20.0f);
            room->posEnterA.z = centerZ + (nZ * 30.0f) + (nX * 20.0f);
            room->posEnterB.x = centerX - (nX * 30.0f);
            room->posEnterB.z = centerZ - (nZ * 30.0f);
            break;
        case ROOM_LARGE_DOOR_RIGHT_HINGE_OPENS_OUT:
            room->posEnterA.x = centerX + (nX * 60.0f) - (nZ * 20.0f);
            room->posEnterA.z = centerZ + (nZ * 60.0f) + (nX * 20.0f);
            room->posEnterB.x = centerX - (nX * 30.0f);
            room->posEnterB.z = centerZ - (nZ * 30.0f);
            break;
        case ROOM_DOOR_RIGHT_HINGE_OPENS_IN:
            room->posEnterA.x = centerX + (nX * 30.0f);
            room->posEnterA.z = centerZ + (nZ * 30.0f);
            room->posEnterB.x = centerX - (nX * 30.0f) - (nZ * 20.0f);
            room->posEnterB.z = centerZ - (nZ * 30.0f) - (nX * 20.0f);
            break;
        case ROOM_LARGE_DOOR_RIGHT_HINGE_OPENS_IN:
            room->posEnterA.x = centerX + (nX * 30.0f);
            room->posEnterA.z = centerZ + (nZ * 30.0f);
            room->posEnterB.x = centerX - (nX * 60.0f) - (nZ * 20.0f);
            room->posEnterB.z = centerZ - (nZ * 60.0f) - (nX * 20.0f);
            break;
        case ROOM_DOOR_LEFT_HINGE_OPENS_OUT:
            room->posEnterA.x = centerX + (nX * 30.0f) + (nZ * 20.0f);
            room->posEnterA.z = centerZ + (nZ * 30.0f) - (nX * 20.0f);
            room->posEnterB.x = centerX - (nX * 30.0f);
            room->posEnterB.z = centerZ - (nZ * 30.0f);
            break;
        case ROOM_LARGE_DOOR_LEFT_HINGE_OPENS_OUT:
            room->posEnterA.x = centerX + (nX * 60.0f) + (nZ * 20.0f);
            room->posEnterA.z = centerZ + (nZ * 60.0f) - (nX * 20.0f);
            room->posEnterB.x = centerX - (nX * 30.0f);
            room->posEnterB.z = centerZ - (nZ * 30.0f);
            break;
        case ROOM_DOOR_LEFT_HINGE_OPENS_IN:
            room->posEnterA.x = centerX + (nX * 30.0f);
            room->posEnterA.z = centerZ + (nZ * 30.0f);
            room->posEnterB.x = centerX - (nX * 30.0f) + (nZ * 20.0f);
            room->posEnterB.z = centerZ - (nZ * 30.0f) + (nX * 20.0f);
            break;
        case ROOM_DOOR_STRAIGHT_THROUGH:
            room->posEnterA.x = centerX + (nX * 30.0f);
            room->posEnterA.z = centerZ + (nZ * 30.0f);
            room->posEnterB.x = centerX - (nX * 30.0f);
            room->posEnterB.z = centerZ - (nZ * 30.0f);
            break;
    }
    room->overrideOpenDoor = openDoorScript;
    room->overrideMoveWall = moveWallsScript;
    room->overrideDropDoor = dropDoorScript;
    room->stateListenerScript = stateListenerScript;

    room->posExitA.x = room->posEnterB.x;
    room->posExitA.z = room->posEnterB.z;
    room->posExitB.x = room->posEnterA.x;
    room->posExitB.z = room->posEnterA.z;

    room->bgColor[0] = gCameras[CAM_DEFAULT].bgColor[0];
    room->bgColor[1] = gCameras[CAM_DEFAULT].bgColor[1];
    room->bgColor[2] = gCameras[CAM_DEFAULT].bgColor[2];

    bind_trigger_1(&EVS_EnterRoomDoor, TRIGGER_WALL_PRESS_A, colliderID, 0, (s32) room, 3);
    if (roomFlags & ROOM_FLAG_EXIT_DOOR_DROPS) {
        bind_trigger_1(&EVS_ExitRoomDoor, TRIGGER_WALL_PUSH, triggerColliderID, 1, (s32) room, 3);
    } else {
        bind_trigger_1(&EVS_ExitRoomDoor, TRIGGER_WALL_PRESS_A, triggerColliderID, 1, (s32) room, 3);
    }
    return ApiStatus_DONE2;
}


### RAW ASSEMBLY INSTRUCTIONS:

glabel func_802B6820_E256F0
/* E256F0 802B6820 27BDFF88 */  addiu     $sp, $sp, -0x78
.L802B6824:
/* E256F4 802B6824 AFB20040 */  sw        $s2, 0x40($sp)
.L802B6828:
/* E256F8 802B6828 3C128011 */  lui       $s2, %hi(gPlayerStatus)
glabel .L802B682C
/* E256FC 802B682C 2652EFC8 */  addiu     $s2, $s2, %lo(gPlayerStatus)
/* E25700 802B6830 AFBF004C */  sw        $ra, 0x4C($sp)
/* E25704 802B6834 AFB40048 */  sw        $s4, 0x48($sp)
/* E25708 802B6838 AFB30044 */  sw        $s3, 0x44($sp)
/* E2570C 802B683C AFB1003C */  sw        $s1, 0x3C($sp)
/* E25710 802B6840 AFB00038 */  sw        $s0, 0x38($sp)
/* E25714 802B6844 F7BC0070 */  sdc1      $f28, 0x70($sp)
/* E25718 802B6848 F7BA0068 */  sdc1      $f26, 0x68($sp)
/* E2571C 802B684C F7B80060 */  sdc1      $f24, 0x60($sp)
jtbl_802B6850:
/* E25720 802B6850 F7B60058 */  sdc1      $f22, 0x58($sp)
.L802B6854:
/* E25724 802B6854 F7B40050 */  sdc1      $f20, 0x50($sp)
.L802B6858:
/* E25728 802B6858 3C148016 */  lui       $s4, %hi(gCollisionStatus)
/* E2572C 802B685C 2694A550 */  addiu     $s4, $s4, %lo(gCollisionStatus)
/* E25730 802B6860 0C0394D2 */  jal       func_800E5348
/* E25734 802B6864 00000000 */   nop
/* E25738 802B6868 8E4400A4 */  lw        $a0, 0xA4($s2)
/* E2573C 802B686C 0C0AD800 */  jal       parasol_get_npc
.L802B6870:
/* E25740 802B6870 46000586 */   mov.s    $f22, $f0
/* E25744 802B6874 10400024 */  beqz      $v0, .L802B6908
/* E25748 802B6878 27A50020 */   addiu    $a1, $sp, 0x20
/* E2574C 802B687C 3C038007 */  lui       $v1, %hi(gCurrentCameraID)
/* E25750 802B6880 8C637410 */  lw        $v1, %lo(gCurrentCameraID)($v1)
/* E25754 802B6884 3C0142B4 */  lui       $at, (0x42B40000 >> 16)
/* E25758 802B6888 4481A000 */  mtc1      $at, $f20
/* E2575C 802B688C 00031080 */  sll       $v0, $v1, 2
/* E25760 802B6890 00431021 */  addu      $v0, $v0, $v1
/* E25764 802B6894 00021080 */  sll       $v0, $v0, 2
/* E25768 802B6898 00431023 */  subu      $v0, $v0, $v1
/* E2576C 802B689C 000218C0 */  sll       $v1, $v0, 3
.L802B68A0:
/* E25770 802B68A0 00431021 */  addu      $v0, $v0, $v1
/* E25774 802B68A4 000210C0 */  sll       $v0, $v0, 3
/* E25778 802B68A8 4614B000 */  add.s     $f0, $f22, $f20
/* E2577C 802B68AC 3C01800B */  lui       $at, %hi(gCameras + 0x6C)
D_802B68B0:
/* E25780 802B68B0 00220821 */  addu      $at, $at, $v0
D_802B68B4:
/* E25784 802B68B4 C42C1DEC */  lwc1      $f12, %lo(gCameras + 0x6C)($at)
.L802B68B8:
/* E25788 802B68B8 0C00A6C9 */  jal       clamp_angle
D_802B68BC:
/* E2578C 802B68BC 460C0301 */   sub.s    $f12, $f0, $f12
.L802B68C0:
/* E25790 802B68C0 46000086 */  mov.s     $f2, $f0
/* E25794 802B68C4 4602A03E */  c.le.s    $f20, $f2
.L802B68C8:
/* E25798 802B68C8 00000000 */  nop
/* E2579C 802B68CC 45000009 */  bc1f      .L802B68F4
/* E257A0 802B68D0 00000000 */   nop
/* E257A4 802B68D4 3C014387 */  lui       $at, (0x43870000 >> 16)
/* E257A8 802B68D8 44810000 */  mtc1      $at, $f0
/* E257AC 802B68DC 00000000 */  nop
/* E257B0 802B68E0 4600103C */  c.lt.s    $f2, $f0
/* E257B4 802B68E4 3C01C1F0 */  lui       $at, (0xC1F00000 >> 16)
/* E257B8 802B68E8 44810000 */  mtc1      $at, $f0
.L802B68EC:
/* E257BC 802B68EC 45030005 */  bc1tl     .L802B6904
/* E257C0 802B68F0 4600B580 */   add.s    $f22, $f22, $f0
.L802B68F4:
/* E257C4 802B68F4 3C0141F0 */  lui       $at, (0x41F00000 >> 16)
/* E257C8 802B68F8 44810000 */  mtc1      $at, $f0
.L802B68FC:
/* E257CC 802B68FC 00000000 */  nop
/* E257D0 802B6900 4600B580 */  add.s     $f22, $f22, $f0
.L802B6904:
/* E257D4 802B6904 27A50020 */  addiu     $a1, $sp, 0x20
.L802B6908:
/* E257D8 802B6908 3C0140C9 */  lui       $at, (0x40C90FD0 >> 16)
/* E257DC 802B690C 34210FD0 */  ori       $at, $at, (0x40C90FD0 & 0xFFFF)
WalkPeachAnims:
/* E257E0 802B6910 44816000 */  mtc1      $at, $f12
/* E257E4 802B6914 27A60024 */  addiu     $a2, $sp, 0x24
/* E257E8 802B6918 460CB302 */  mul.s     $f12, $f22, $f12
.L802B691C:
/* E257EC 802B691C 00000000 */  nop
/* E257F0 802B6920 24110001 */  addiu     $s1, $zero, 0x1
/* E257F4 802B6924 27B30030 */  addiu     $s3, $sp, 0x30
/* E257F8 802B6928 3C0143B4 */  lui       $at, (0x43B40000 >> 16)
/* E257FC 802B692C 44810000 */  mtc1      $at, $f0
/* E25800 802B6930 3C014080 */  lui       $at, (0x40800000 >> 16)
.L802B6934:
/* E25804 802B6934 4481A000 */  mtc1      $at, $f20
/* E25808 802B6938 0C00A82D */  jal       sin_cos_rad
/* E2580C 802B693C 46006303 */   div.s    $f12, $f12, $f0
/* E25810 802B6940 C65C0028 */  lwc1      $f28, 0x28($s2)
/* E25814 802B6944 C65A002C */  lwc1      $f26, 0x2C($s2)
.L802B6948:
/* E25818 802B6948 C6580030 */  lwc1      $f24, 0x30($s2)
.L802B694C:
/* E2581C 802B694C C7A40020 */  lwc1      $f4, 0x20($sp)
.L802B6950:
/* E25820 802B6950 44910000 */  mtc1      $s1, $f0
/* E25824 802B6954 00000000 */  nop
/* E25828 802B6958 46800020 */  cvt.s.w   $f0, $f0
.L802B695C:
/* E2582C 802B695C 46002102 */  mul.s     $f4, $f4, $f0
.L802B6960:
/* E25830 802B6960 00000000 */  nop
/* E25834 802B6964 C7A20024 */  lwc1      $f2, 0x24($sp)
glabel .L802B6968
/* E25838 802B6968 46001082 */  mul.s     $f2, $f2, $f0
.L802B696C:
/* E2583C 802B696C 00000000 */  nop
/* E25840 802B6970 24040003 */  addiu     $a0, $zero, 0x3
/* E25844 802B6974 0240282D */  daddu     $a1, $s2, $zero
/* E25848 802B6978 4604E100 */  add.s     $f4, $f28, $f4
/* E2584C 802B697C 27A60028 */  addiu     $a2, $sp, 0x28
/* E25850 802B6980 27A7002C */  addiu     $a3, $sp, 0x2C
/* E25854 802B6984 4602C081 */  sub.s     $f2, $f24, $f2
/* E25858 802B6988 E7BA002C */  swc1      $f26, 0x2C($sp)
/* E2585C 802B698C E7A40028 */  swc1      $f4, 0x28($sp)
/* E25860 802B6990 E7A20030 */  swc1      $f2, 0x30($sp)
/* E25864 802B6994 AFB30010 */  sw        $s3, 0x10($sp)
/* E25868 802B6998 E7B40014 */  swc1      $f20, 0x14($sp)
/* E2586C 802B699C 0C037B01 */  jal       player_test_lateral_overlap
D_802B69A0_E26700:
/* E25870 802B69A0 E7B60018 */   swc1     $f22, 0x18($sp)
glabel .L802B69A4
/* E25874 802B69A4 3C03802B */  lui       $v1, %hi(HammerHit)
D_802B69A8_E26708:
/* E25878 802B69A8 8C636DB0 */  lw        $v1, %lo(HammerHit)($v1)
/* E2587C 802B69AC 8C630014 */  lw        $v1, 0x14($v1)
/* E25880 802B69B0 14600009 */  bnez      $v1, .L802B69D8
glabel .L802B69B4
/* E25884 802B69B4 0040802D */   daddu    $s0, $v0, $zero
/* E25888 802B69B8 06000009 */  bltz      $s0, .L802B69E0
.L802B69BC:
/* E2588C 802B69BC A6900014 */   sh       $s0, 0x14($s4)
/* E25890 802B69C0 32024000 */  andi      $v0, $s0, 0x4000
/* E25894 802B69C4 10400004 */  beqz      $v0, .L802B69D8
glabel .L802B69C8
/* E25898 802B69C8 00000000 */   nop
/* E2589C 802B69CC 0C04417A */  jal       get_entity_by_index
/* E258A0 802B69D0 0200202D */   daddu    $a0, $s0, $zero
/* E258A4 802B69D4 A0400007 */  sb        $zero, 0x7($v0)
.L802B69D8:
/* E258A8 802B69D8 06010005 */  bgez      $s0, .L802B69F0
glabel .L802B69DC
/* E258AC 802B69DC 2A220010 */   slti     $v0, $s1, 0x10
.L802B69E0:
/* E258B0 802B69E0 26310001 */  addiu     $s1, $s1, 0x1
/* E258B4 802B69E4 2A220010 */  slti      $v0, $s1, 0x10
.L802B69E8:
/* E258B8 802B69E8 1440FFD8 */  bnez      $v0, .L802B694C
/* E258BC 802B69EC 00000000 */   nop
glabel .L802B69F0
/* E258C0 802B69F0 14400062 */  bnez      $v0, .L802B6B7C
/* E258C4 802B69F4 00000000 */   nop
/* E258C8 802B69F8 0C0394D2 */  jal       func_800E5348
/* E258CC 802B69FC 00000000 */   nop
/* E258D0 802B6A00 8E4400A4 */  lw        $a0, 0xA4($s2)
/* E258D4 802B6A04 0C0AD800 */  jal       parasol_get_npc
/* E258D8 802B6A08 46000586 */   mov.s    $f22, $f0
/* E258DC 802B6A0C 14400024 */  bnez      $v0, .L802B6AA0
/* E258E0 802B6A10 27A50020 */   addiu    $a1, $sp, 0x20
/* E258E4 802B6A14 3C038007 */  lui       $v1, %hi(gCurrentCameraID)
.L802B6A18:
/* E258E8 802B6A18 8C637410 */  lw        $v1, %lo(gCurrentCameraID)($v1)
/* E258EC 802B6A1C 3C0142B4 */  lui       $at, (0x42B40000 >> 16)
/* E258F0 802B6A20 4481A000 */  mtc1      $at, $f20
/* E258F4 802B6A24 00031080 */  sll       $v0, $v1, 2
/* E258F8 802B6A28 00431021 */  addu      $v0, $v0, $v1
/* E258FC 802B6A2C 00021080 */  sll       $v0, $v0, 2
/* E25900 802B6A30 00431023 */  subu      $v0, $v0, $v1
/* E25904 802B6A34 000218C0 */  sll       $v1, $v0, 3
/* E25908 802B6A38 00431021 */  addu      $v0, $v0, $v1
/* E2590C 802B6A3C 000210C0 */  sll       $v0, $v0, 3
/* E25910 802B6A40 4614B000 */  add.s     $f0, $f22, $f20
/* E25914 802B6A44 3C01800B */  lui       $at, %hi(gCameras + 0x6C)
/* E25918 802B6A48 00220821 */  addu      $at, $at, $v0
/* E2591C 802B6A4C C42C1DEC */  lwc1      $f12, %lo(gCameras + 0x6C)($at)
.L802B6A50:
/* E25920 802B6A50 0C00A6C9 */  jal       clamp_angle
/* E25924 802B6A54 460C0301 */   sub.s    $f12, $f0, $f12
/* E25928 802B6A58 46000086 */  mov.s     $f2, $f0
/* E2592C 802B6A5C 4602A03E */  c.le.s    $f20, $f2
/* E25930 802B6A60 00000000 */  nop
/* E25934 802B6A64 45000009 */  bc1f      .L802B6A8C
/* E25938 802B6A68 00000000 */   nop
/* E2593C 802B6A6C 3C014387 */  lui       $at, (0x43870000 >> 16)
/* E25940 802B6A70 44810000 */  mtc1      $at, $f0
/* E25944 802B6A74 00000000 */  nop
/* E25948 802B6A78 4600103C */  c.lt.s    $f2, $f0
.L802B6A7C:
/* E2594C 802B6A7C 3C014170 */  lui       $at, (0x41700000 >> 16)
/* E25950 802B6A80 44810000 */  mtc1      $at, $f0
/* E25954 802B6A84 45030005 */  bc1tl     .L802B6A9C
/* E25958 802B6A88 4600B580 */   add.s    $f22, $f22, $f0
.L802B6A8C:
/* E2595C 802B6A8C 3C01C170 */  lui       $at, (0xC1700000 >> 16)
/* E25960 802B6A90 44810000 */  mtc1      $at, $f0
/* E25964 802B6A94 00000000 */  nop
/* E25968 802B6A98 4600B580 */  add.s     $f22, $f22, $f0
.L802B6A9C:
/* E2596C 802B6A9C 27A50020 */  addiu     $a1, $sp, 0x20
.L802B6AA0:
/* E25970 802B6AA0 3C0140C9 */  lui       $at, (0x40C90FD0 >> 16)
/* E25974 802B6AA4 34210FD0 */  ori       $at, $at, (0x40C90FD0 & 0xFFFF)
/* E25978 802B6AA8 44816000 */  mtc1      $at, $f12
/* E2597C 802B6AAC 27A60024 */  addiu     $a2, $sp, 0x24
/* E25980 802B6AB0 460CB302 */  mul.s     $f12, $f22, $f12
/* E25984 802B6AB4 00000000 */  nop
/* E25988 802B6AB8 24110001 */  addiu     $s1, $zero, 0x1
.L802B6ABC:
/* E2598C 802B6ABC 27B30030 */  addiu     $s3, $sp, 0x30
/* E25990 802B6AC0 3C0143B4 */  lui       $at, (0x43B40000 >> 16)
/* E25994 802B6AC4 44810000 */  mtc1      $at, $f0
/* E25998 802B6AC8 3C014080 */  lui       $at, (0x40800000 >> 16)
/* E2599C 802B6ACC 4481A000 */  mtc1      $at, $f20
/* E259A0 802B6AD0 0C00A82D */  jal       sin_cos_rad
/* E259A4 802B6AD4 46006303 */   div.s    $f12, $f12, $f0
.L802B6AD8:
/* E259A8 802B6AD8 C7A40020 */  lwc1      $f4, 0x20($sp)
/* E259AC 802B6ADC 44910000 */  mtc1      $s1, $f0
/* E259B0 802B6AE0 00000000 */  nop
/* E259B4 802B6AE4 46800020 */  cvt.s.w   $f0, $f0
/* E259B8 802B6AE8 46002102 */  mul.s     $f4, $f4, $f0
/* E259BC 802B6AEC 00000000 */  nop
/* E259C0 802B6AF0 C7A20024 */  lwc1      $f2, 0x24($sp)
/* E259C4 802B6AF4 46001082 */  mul.s     $f2, $f2, $f0
/* E259C8 802B6AF8 00000000 */  nop
/* E259CC 802B6AFC 24040003 */  addiu     $a0, $zero, 0x3
/* E259D0 802B6B00 0240282D */  daddu     $a1, $s2, $zero
/* E259D4 802B6B04 4604E100 */  add.s     $f4, $f28, $f4
/* E259D8 802B6B08 27A60028 */  addiu     $a2, $sp, 0x28
.L802B6B0C:
/* E259DC 802B6B0C 27A7002C */  addiu     $a3, $sp, 0x2C
/* E259E0 802B6B10 4602C081 */  sub.s     $f2, $f24, $f2
/* E259E4 802B6B14 E7BA002C */  swc1      $f26, 0x2C($sp)
/* E259E8 802B6B18 E7A40028 */  swc1      $f4, 0x28($sp)
/* E259EC 802B6B1C E7A20030 */  swc1      $f2, 0x30($sp)
/* E259F0 802B6B20 AFB30010 */  sw        $s3, 0x10($sp)
/* E259F4 802B6B24 E7B40014 */  swc1      $f20, 0x14($sp)
/* E259F8 802B6B28 0C037B01 */  jal       player_test_lateral_overlap
/* E259FC 802B6B2C E7B60018 */   swc1     $f22, 0x18($sp)
/* E25A00 802B6B30 3C03802B */  lui       $v1, %hi(HammerHit)
/* E25A04 802B6B34 8C636DB0 */  lw        $v1, %lo(HammerHit)($v1)
/* E25A08 802B6B38 8C630014 */  lw        $v1, 0x14($v1)
/* E25A0C 802B6B3C 14600009 */  bnez      $v1, .L802B6B64
/* E25A10 802B6B40 0040802D */   daddu    $s0, $v0, $zero
/* E25A14 802B6B44 06000009 */  bltz      $s0, .L802B6B6C
/* E25A18 802B6B48 A6900014 */   sh       $s0, 0x14($s4)
/* E25A1C 802B6B4C 32024000 */  andi      $v0, $s0, 0x4000
/* E25A20 802B6B50 10400004 */  beqz      $v0, .L802B6B64
/* E25A24 802B6B54 00000000 */   nop
/* E25A28 802B6B58 0C04417A */  jal       get_entity_by_index
/* E25A2C 802B6B5C 0200202D */   daddu    $a0, $s0, $zero
/* E25A30 802B6B60 A0400007 */  sb        $zero, 0x7($v0)
.L802B6B64:
/* E25A34 802B6B64 06010005 */  bgez      $s0, .L802B6B7C
/* E25A38 802B6B68 00000000 */   nop
.L802B6B6C:
/* E25A3C 802B6B6C 26310001 */  addiu     $s1, $s1, 0x1
/* E25A40 802B6B70 2A220010 */  slti      $v0, $s1, 0x10
/* E25A44 802B6B74 1440FFD8 */  bnez      $v0, .L802B6AD8
/* E25A48 802B6B78 00000000 */   nop
.L802B6B7C:
/* E25A4C 802B6B7C 3C02802B */  lui       $v0, %hi(HammerHit)
/* E25A50 802B6B80 8C426DB0 */  lw        $v0, %lo(HammerHit)($v0)
/* E25A54 802B6B84 8C440018 */  lw        $a0, 0x18($v0)
/* E25A58 802B6B88 24020002 */  addiu     $v0, $zero, 0x2
/* E25A5C 802B6B8C 14820032 */  bne       $a0, $v0, .L802B6C58
/* E25A60 802B6B90 00000000 */   nop
/* E25A64 802B6B94 3C038011 */  lui       $v1, %hi(gPlayerData + 0x1)
/* E25A68 802B6B98 8063F291 */  lb        $v1, %lo(gPlayerData + 0x1)($v1)
/* E25A6C 802B6B9C 14640003 */  bne       $v1, $a0, .L802B6BAC
/* E25A70 802B6BA0 24020001 */   addiu    $v0, $zero, 0x1
/* E25A74 802B6BA4 080ADAEE */  j         .L802B6BB8
/* E25A78 802B6BA8 24042117 */   addiu    $a0, $zero, 0x2117
.L802B6BAC:
/* E25A7C 802B6BAC 14620002 */  bne       $v1, $v0, .L802B6BB8
/* E25A80 802B6BB0 24042115 */   addiu    $a0, $zero, 0x2115
/* E25A84 802B6BB4 24042116 */  addiu     $a0, $zero, 0x2116
.L802B6BB8:
/* E25A88 802B6BB8 0C052736 */  jal       sfx_play_sound_at_player
/* E25A8C 802B6BBC 0000282D */   daddu    $a1, $zero, $zero
/* E25A90 802B6BC0 3C02802B */  lui       $v0, %hi(HammerHit)
/* E25A94 802B6BC4 8C426DB0 */  lw        $v0, %lo(HammerHit)($v0)
/* E25A98 802B6BC8 0C0AD812 */  jal       action_hammer_play_hit_fx
/* E25A9C 802B6BCC 8C440010 */   lw       $a0, 0x10($v0)
/* E25AA0 802B6BD0 86840014 */  lh        $a0, 0x14($s4)
/* E25AA4 802B6BD4 96820014 */  lhu       $v0, 0x14($s4)
/* E25AA8 802B6BD8 04800007 */  bltz      $a0, .L802B6BF8
/* E25AAC 802B6BDC 30424000 */   andi     $v0, $v0, 0x4000
/* E25AB0 802B6BE0 10400005 */  beqz      $v0, .L802B6BF8
/* E25AB4 802B6BE4 00000000 */   nop
/* E25AB8 802B6BE8 0C04417A */  jal       get_entity_by_index
/* E25ABC 802B6BEC 00000000 */   nop
/* E25AC0 802B6BF0 080ADB03 */  j         .L802B6C0C
/* E25AC4 802B6BF4 A0400007 */   sb       $zero, 0x7($v0)
.L802B6BF8:
/* E25AC8 802B6BF8 3C02802B */  lui       $v0, %hi(HammerHit)
/* E25ACC 802B6BFC 8C426DB0 */  lw        $v0, %lo(HammerHit)($v0)
/* E25AD0 802B6C00 8C420010 */  lw        $v0, 0x10($v0)
/* E25AD4 802B6C04 04410014 */  bgez      $v0, .L802B6C58
.L802B6C08:
/* E25AD8 802B6C08 00000000 */   nop
.L802B6C0C:
/* E25ADC 802B6C0C 8E420000 */  lw        $v0, 0x0($s2)
/* E25AE0 802B6C10 3C030100 */  lui       $v1, (0x1000000 >> 16)
/* E25AE4 802B6C14 00431025 */  or        $v0, $v0, $v1
/* E25AE8 802B6C18 AE420000 */  sw        $v0, 0x0($s2)
/* E25AEC 802B6C1C 3C02802B */  lui       $v0, %hi(HammerHit)
/* E25AF0 802B6C20 8C426DB0 */  lw        $v0, %lo(HammerHit)($v0)
/* E25AF4 802B6C24 8C420010 */  lw        $v0, 0x10($v0)
/* E25AF8 802B6C28 0441000B */  bgez      $v0, .L802B6C58
/* E25AFC 802B6C2C 00000000 */   nop
glabel .L802B6C30
/* E25B00 802B6C30 3C028011 */  lui       $v0, %hi(gPlayerData + 0x1)
/* E25B04 802B6C34 8042F291 */  lb        $v0, %lo(gPlayerData + 0x1)($v0)
/* E25B08 802B6C38 28420002 */  slti      $v0, $v0, 0x2
/* E25B0C 802B6C3C 14400006 */  bnez      $v0, .L802B6C58
/* E25B10 802B6C40 24030001 */   addiu    $v1, $zero, 0x1
/* E25B14 802B6C44 3C028016 */  lui       $v0, %hi(gCurrentHiddenPanels)
/* E25B18 802B6C48 2442A578 */  addiu     $v0, $v0, %lo(gCurrentHiddenPanels)
/* E25B1C 802B6C4C C640002C */  lwc1      $f0, 0x2C($s2)
/* E25B20 802B6C50 A0430000 */  sb        $v1, 0x0($v0)
/* E25B24 802B6C54 E4400008 */  swc1      $f0, 0x8($v0)
.L802B6C58:
/* E25B28 802B6C58 824200B6 */  lb        $v0, 0xB6($s2)
/* E25B2C 802B6C5C 14400009 */  bnez      $v0, .L802B6C84
/* E25B30 802B6C60 924300B6 */   lbu      $v1, 0xB6($s2)
/* E25B34 802B6C64 06000007 */  bltz      $s0, .L802B6C84
/* E25B38 802B6C68 00000000 */   nop
/* E25B3C 802B6C6C 3C02802B */  lui       $v0, %hi(HammerHit)
/* E25B40 802B6C70 8C426DB0 */  lw        $v0, %lo(HammerHit)($v0)
/* E25B44 802B6C74 8C420014 */  lw        $v0, 0x14($v0)
/* E25B48 802B6C78 14400002 */  bnez      $v0, .L802B6C84
.L802B6C7C:
/* E25B4C 802B6C7C 24620001 */   addiu    $v0, $v1, 0x1
/* E25B50 802B6C80 A24200B6 */  sb        $v0, 0xB6($s2)
.L802B6C84:
/* E25B54 802B6C84 824300B6 */  lb        $v1, 0xB6($s2)
/* E25B58 802B6C88 24020001 */  addiu     $v0, $zero, 0x1
/* E25B5C 802B6C8C 14620004 */  bne       $v1, $v0, .L802B6CA0
.L802B6C90:
/* E25B60 802B6C90 00000000 */   nop
/* E25B64 802B6C94 06010002 */  bgez      $s0, .L802B6CA0
/* E25B68 802B6C98 24020002 */   addiu    $v0, $zero, 0x2
/* E25B6C 802B6C9C A24200B6 */  sb        $v0, 0xB6($s2)
.L802B6CA0:
/* E25B70 802B6CA0 3C05802B */  lui       $a1, %hi(HammerHit)
/* E25B74 802B6CA4 24A56DB0 */  addiu     $a1, $a1, %lo(HammerHit)
/* E25B78 802B6CA8 8CA30000 */  lw        $v1, 0x0($a1)
/* E25B7C 802B6CAC 8C620018 */  lw        $v0, 0x18($v1)
/* E25B80 802B6CB0 24420001 */  addiu     $v0, $v0, 0x1
/* E25B84 802B6CB4 06000003 */  bltz      $s0, .L802B6CC4
/* E25B88 802B6CB8 AC620018 */   sw       $v0, 0x18($v1)
.L802B6CBC:
/* E25B8C 802B6CBC 24020001 */  addiu     $v0, $zero, 0x1
/* E25B90 802B6CC0 AC620014 */  sw        $v0, 0x14($v1)
.L802B6CC4:
/* E25B94 802B6CC4 8CA20000 */  lw        $v0, 0x0($a1)
.L802B6CC8:
/* E25B98 802B6CC8 8C430018 */  lw        $v1, 0x18($v0)
/* E25B9C 802B6CCC 24020006 */  addiu     $v0, $zero, 0x6
/* E25BA0 802B6CD0 14620005 */  bne       $v1, $v0, .L802B6CE8
/* E25BA4 802B6CD4 3C03FFDF */   lui      $v1, (0xFFDFFFFF >> 16)
/* E25BA8 802B6CD8 8E420000 */  lw        $v0, 0x0($s2)
/* E25BAC 802B6CDC 3463FFFF */  ori       $v1, $v1, (0xFFDFFFFF & 0xFFFF)
/* E25BB0 802B6CE0 00431024 */  and       $v0, $v0, $v1
/* E25BB4 802B6CE4 AE420000 */  sw        $v0, 0x0($s2)
.L802B6CE8:
/* E25BB8 802B6CE8 964400BC */  lhu       $a0, 0xBC($s2)
/* E25BBC 802B6CEC 24020001 */  addiu     $v0, $zero, 0x1
glabel func_802B6CF0_E2B3A0
/* E25BC0 802B6CF0 14820020 */  bne       $a0, $v0, func_802B6D74
/* E25BC4 802B6CF4 00000000 */   nop
.L802B6CF8:
/* E25BC8 802B6CF8 8CA30000 */  lw        $v1, 0x0($a1)
/* E25BCC 802B6CFC 8C620018 */  lw        $v0, 0x18($v1)
.L802B6D00:
/* E25BD0 802B6D00 28420007 */  slti      $v0, $v0, 0x7
/* E25BD4 802B6D04 14400005 */  bnez      $v0, .L802B6D1C
/* E25BD8 802B6D08 00000000 */   nop
/* E25BDC 802B6D0C 8E4200E0 */  lw        $v0, 0xE0($s2)
/* E25BE0 802B6D10 30424000 */  andi      $v0, $v0, 0x4000
/* E25BE4 802B6D14 54400001 */  bnel      $v0, $zero, .L802B6D1C
/* E25BE8 802B6D18 AC64001C */   sw       $a0, 0x1C($v1)
.L802B6D1C:
/* E25BEC 802B6D1C 3C03802B */  lui       $v1, %hi(HammerHit)
/* E25BF0 802B6D20 8C636DB0 */  lw        $v1, %lo(HammerHit)($v1)
glabel .L802B6D24
/* E25BF4 802B6D24 8C62001C */  lw        $v0, 0x1C($v1)
/* E25BF8 802B6D28 14400006 */  bnez      $v0, .L802B6D44
/* E25BFC 802B6D2C AC600014 */   sw       $zero, 0x14($v1)
/* E25C00 802B6D30 8C630018 */  lw        $v1, 0x18($v1)
/* E25C04 802B6D34 2402000A */  addiu     $v0, $zero, 0xA
/* E25C08 802B6D38 0043102A */  slt       $v0, $v0, $v1
/* E25C0C 802B6D3C 10400009 */  beqz      $v0, .L802B6D64
/* E25C10 802B6D40 3C03FFDF */   lui      $v1, (0xFFDFFFFF >> 16)
.L802B6D44:
/* E25C14 802B6D44 3C03FEFF */  lui       $v1, (0xFEFFFFFF >> 16)
/* E25C18 802B6D48 3463FFFF */  ori       $v1, $v1, (0xFEFFFFFF & 0xFFFF)
.L802B6D4C:
/* E25C1C 802B6D4C 8E420000 */  lw        $v0, 0x0($s2)
.L802B6D50:
/* E25C20 802B6D50 0000202D */  daddu     $a0, $zero, $zero
/* E25C24 802B6D54 00431024 */  and       $v0, $v0, $v1
/* E25C28 802B6D58 0C039769 */  jal       set_action_state
/* E25C2C 802B6D5C AE420000 */   sw       $v0, 0x0($s2)
.L802B6D60:
/* E25C30 802B6D60 3C03FFDF */  lui       $v1, (0xFFDFFFFF >> 16)
.L802B6D64:
/* E25C34 802B6D64 8E420000 */  lw        $v0, 0x0($s2)
/* E25C38 802B6D68 3463FFFF */  ori       $v1, $v1, (0xFFDFFFFF & 0xFFFF)
/* E25C3C 802B6D6C 00431024 */  and       $v0, $v0, $v1
/* E25C40 802B6D70 AE420000 */  sw        $v0, 0x0($s2)
glabel func_802B6D74
/* E25C44 802B6D74 8FBF004C */  lw        $ra, 0x4C($sp)
/* E25C48 802B6D78 8FB40048 */  lw        $s4, 0x48($sp)
/* E25C4C 802B6D7C 8FB30044 */  lw        $s3, 0x44($sp)
/* E25C50 802B6D80 8FB20040 */  lw        $s2, 0x40($sp)
/* E25C54 802B6D84 8FB1003C */  lw        $s1, 0x3C($sp)
/* E25C58 802B6D88 8FB00038 */  lw        $s0, 0x38($sp)
/* E25C5C 802B6D8C D7BC0070 */  ldc1      $f28, 0x70($sp)
jtbl_802B6D90:
/* E25C60 802B6D90 D7BA0068 */  ldc1      $f26, 0x68($sp)
/* E25C64 802B6D94 D7B80060 */  ldc1      $f24, 0x60($sp)
/* E25C68 802B6D98 D7B60058 */  ldc1      $f22, 0x58($sp)
/* E25C6C 802B6D9C D7B40050 */  ldc1      $f20, 0x50($sp)
/* E25C70 802B6DA0 03E00008 */  jr        $ra
.L802B6DA4:
/* E25C74 802B6DA4 27BD0078 */   addiu    $sp, $sp, 0x78
/* E25C78 802B6DA8 00000000 */  nop
/* E25C7C 802B6DAC 00000000 */  nop

### DECOMPILED C INSTRUCTIONS:

void func_802B6820_E256F0(void) {
    PlayerStatus* playerStatus = &gPlayerStatus;
    CollisionStatus* collisionStatus;
    f32 yaw;
    f32 angle;
    f32 outSinTheta;
    f32 outCosTheta;
    f32 playerX, playerY, playerZ;
    f32 x, y, z;
    s32 result;
    s32 hammerLevel;
    s32 soundID;
    u32 unk_BC;
    s32 ten;
    s32 ret;
    s32 i;

    do {
        collisionStatus = &gCollisionStatus;
    } while (0); // required to match;

    yaw = func_800E5348();
    if (action_hammer_is_swinging_away(playerStatus->trueAnimation)) {
        angle = clamp_angle(yaw + 90.0f - gCameras[gCurrentCameraID].currentYaw);
        if (angle >= 90.0f && angle < 270.0f) {
            yaw += -30.0f;
        } else {
            yaw += 30.0f;
        }
    }

    sin_cos_rad(DEG_TO_RAD(yaw), &outSinTheta, &outCosTheta);
    playerX = playerStatus->position.x;
    playerY = playerStatus->position.y;
    playerZ = playerStatus->position.z;

    // check collision allong 16 points in a line away from the player
    for (i = 1; i < 16; i++) {
        x = playerX + (outSinTheta * i);
        y = playerY;
        z = playerZ - (outCosTheta * i);
        result = player_test_lateral_overlap(3, playerStatus, &x, &y, &z, 4.0f, yaw);
        if (HammerHit->unk_14 == 0) {
            collisionStatus->lastWallHammered = result;
            if (result >= 0) {
                if (result & COLLISION_WITH_ENTITY_BIT) {
                    get_entity_by_index(result)->collisionTimer = 0;
                }
            }
        }

        if (result >= 0) {
            break;
        }
    }

    if (i >= 16) {
        yaw = func_800E5348();
        if (action_hammer_is_swinging_away(playerStatus->trueAnimation) == 0) {
            angle = clamp_angle(yaw + 90.0f - gCameras[gCurrentCameraID].currentYaw);
            if (angle >= 90.0f && angle < 270.0f) {
                yaw += 15.0f;
            } else {
                yaw += -15.0f;
            }
        }
        sin_cos_rad(DEG_TO_RAD(yaw), &outSinTheta, &outCosTheta);

        for (i = 1; i < 16; i++) {
            x = playerX + (outSinTheta * i);
            y = playerY;
            z = playerZ - (outCosTheta * i);
            result = player_test_lateral_overlap(3, playerStatus, &x, &y, &z, 4.0f, yaw);
            if (HammerHit->unk_14 == 0) {
                collisionStatus->lastWallHammered = result;
                if (result >= 0) {
                    if (result & COLLISION_WITH_ENTITY_BIT) {
                        get_entity_by_index(result)->collisionTimer = 0;
                    }
                }
            }

            if (result >= 0) {
                break;
            }
        }
    }

    if (HammerHit->timer == 2) {
        hammerLevel = gPlayerData.hammerLevel;
        if (hammerLevel == 2) {
            soundID = SOUND_2117;
        } else if (hammerLevel == 1) {
            soundID = SOUND_2116;
        } else {
            soundID = SOUND_2115;
        }
        sfx_play_sound_at_player(soundID, SOUND_SPACE_MODE_0);

        action_hammer_play_hit_fx(HammerHit->hitID);

        if (collisionStatus->lastWallHammered >= 0 && (collisionStatus->lastWallHammered & COLLISION_WITH_ENTITY_BIT)) {
            get_entity_by_index(collisionStatus->lastWallHammered)->collisionTimer = 0;
            playerStatus->flags |= PS_FLAG_HAMMER_CHECK;
        } else if (HammerHit->hitID < 0) {
            playerStatus->flags |= PS_FLAG_HAMMER_CHECK;
        }

        if (HammerHit->hitID < 0 && gPlayerData.hammerLevel >= 2) {
            gCurrentHiddenPanels.tryFlipTrigger = TRUE;
            gCurrentHiddenPanels.flipTriggerPosY = playerStatus->position.y;
        }
    }

    if (playerStatus->actionSubstate == SUBSTATE_HAMMER_0 && result >= 0 && HammerHit->unk_14 == 0) {
        playerStatus->actionSubstate++;
    }
    if (playerStatus->actionSubstate == SUBSTATE_HAMMER_1 && result < 0) {
        playerStatus->actionSubstate = SUBSTATE_HAMMER_2;
    }
    HammerHit->timer++;
    if (result >= 0) {
        HammerHit->unk_14 = 1;
    }
    if (HammerHit->timer == 6) {
        playerStatus->flags &= ~PS_FLAG_NO_FLIPPING;
    }

    if (playerStatus->animNotifyValue == 1) {
        if (HammerHit->timer >= 7 && (playerStatus->pressedButtons & BUTTON_B)) {
            HammerHit->unk_1C = 1;
        }

        HammerHit->unk_14 = 0;
        ten = 10; // required to match
        if (HammerHit->unk_1C != 0 || HammerHit->timer > ten) {
            playerStatus->flags &= ~PS_FLAG_HAMMER_CHECK;
            set_action_state(ACTION_STATE_IDLE);
        }
        playerStatus->flags &= ~PS_FLAG_NO_FLIPPING;
    }
}


### RAW ASSEMBLY INSTRUCTIONS:

glabel entity_SuperBlockContent_setupGfx
/* 1070EC 802E586C 27BDFF68 */  addiu     $sp, $sp, -0x98
/* 1070F0 802E5870 AFB60088 */  sw        $s6, 0x88($sp)
/* 1070F4 802E5874 3C16800A */  lui       $s6, %hi(gMainGfxPos)
/* 1070F8 802E5878 8ED6A66C */  lw        $s6, %lo(gMainGfxPos)($s6)
/* 1070FC 802E587C AFBF0094 */  sw        $ra, 0x94($sp)
/* 107100 802E5880 AFBE0090 */  sw        $fp, 0x90($sp)
/* 107104 802E5884 AFB7008C */  sw        $s7, 0x8C($sp)
/* 107108 802E5888 AFB50084 */  sw        $s5, 0x84($sp)
/* 10710C 802E588C AFB40080 */  sw        $s4, 0x80($sp)
/* 107110 802E5890 AFB3007C */  sw        $s3, 0x7C($sp)
/* 107114 802E5894 AFB20078 */  sw        $s2, 0x78($sp)
/* 107118 802E5898 AFB10074 */  sw        $s1, 0x74($sp)
/* 10711C 802E589C 0C04417A */  jal       get_entity_by_index
/* 107120 802E58A0 AFB00070 */   sw       $s0, 0x70($sp)
/* 107124 802E58A4 AFA20060 */  sw        $v0, 0x60($sp)
/* 107128 802E58A8 8C570040 */  lw        $s7, 0x40($v0)
/* 10712C 802E58AC 92E20008 */  lbu       $v0, 0x8($s7)
/* 107130 802E58B0 14400011 */  bnez      $v0, .L802E58F8
/* 107134 802E58B4 2442FFFF */   addiu    $v0, $v0, -0x1
/* 107138 802E58B8 92E30009 */  lbu       $v1, 0x9($s7)
/* 10713C 802E58BC 3C05802F */  lui       $a1, %hi(D_802EA870)
/* 107140 802E58C0 24A5A870 */  addiu     $a1, $a1, %lo(D_802EA870)
/* 107144 802E58C4 24630002 */  addiu     $v1, $v1, 0x2
/* 107148 802E58C8 3C02802F */  lui       $v0, %hi(D_802EA870)
/* 10714C 802E58CC 00431021 */  addu      $v0, $v0, $v1
/* 107150 802E58D0 8042A870 */  lb        $v0, %lo(D_802EA870)($v0)
/* 107154 802E58D4 3C04802F */  lui       $a0, %hi(D_802EA870)
/* 107158 802E58D8 00832021 */  addu      $a0, $a0, $v1
/* 10715C 802E58DC 18400004 */  blez      $v0, .L802E58F0
/* 107160 802E58E0 9084A870 */   lbu      $a0, %lo(D_802EA870)($a0)
/* 107164 802E58E4 A2E40008 */  sb        $a0, 0x8($s7)
/* 107168 802E58E8 080B963F */  j         .L802E58FC
/* 10716C 802E58EC A2E30009 */   sb       $v1, 0x9($s7)
.L802E58F0:
/* 107170 802E58F0 90A20000 */  lbu       $v0, 0x0($a1)
/* 107174 802E58F4 A2E00009 */  sb        $zero, 0x9($s7)
.L802E58F8:
/* 107178 802E58F8 A2E20008 */  sb        $v0, 0x8($s7)
.L802E58FC:
/* 10717C 802E58FC 02C0382D */  daddu     $a3, $s6, $zero
/* 107180 802E5900 26D60008 */  addiu     $s6, $s6, 0x8
/* 107184 802E5904 02E0202D */  daddu     $a0, $s7, $zero
/* 107188 802E5908 24050001 */  addiu     $a1, $zero, 0x1
/* 10718C 802E590C 92E20009 */  lbu       $v0, 0x9($s7)
/* 107190 802E5910 8FAF0060 */  lw        $t7, 0x60($sp)
/* 107194 802E5914 8EF5012C */  lw        $s5, 0x12C($s7)
/* 107198 802E5918 3C01802F */  lui       $at, %hi(D_802EA871)
/* 10719C 802E591C 00220821 */  addu      $at, $at, $v0
/* 1071A0 802E5920 8022A871 */  lb        $v0, %lo(D_802EA871)($at)
/* 1071A4 802E5924 8DE30044 */  lw        $v1, 0x44($t7)
/* 1071A8 802E5928 00021080 */  sll       $v0, $v0, 2
/* 1071AC 802E592C 3C06802F */  lui       $a2, %hi(D_802EA862)
/* 1071B0 802E5930 00C23021 */  addu      $a2, $a2, $v0
/* 1071B4 802E5934 94C6A862 */  lhu       $a2, %lo(D_802EA862)($a2)
/* 1071B8 802E5938 3C02E700 */  lui       $v0, (0xE7000000 >> 16)
/* 1071BC 802E593C AFB50058 */  sw        $s5, 0x58($sp)
/* 1071C0 802E5940 ACE20000 */  sw        $v0, 0x0($a3)
/* 1071C4 802E5944 ACE00004 */  sw        $zero, 0x4($a3)
/* 1071C8 802E5948 00661821 */  addu      $v1, $v1, $a2
/* 1071CC 802E594C 0C0B959C */  jal       entity_SuperBlockContent_get_previous_yaw
/* 1071D0 802E5950 AFA3005C */   sw       $v1, 0x5C($sp)
/* 1071D4 802E5954 44050000 */  mfc1      $a1, $f0
/* 1071D8 802E5958 44800000 */  mtc1      $zero, $f0
/* 1071DC 802E595C 3C073F80 */  lui       $a3, (0x3F800000 >> 16)
/* 1071E0 802E5960 44060000 */  mfc1      $a2, $f0
/* 1071E4 802E5964 27A40018 */  addiu     $a0, $sp, 0x18
/* 1071E8 802E5968 0C019EC8 */  jal       guRotateF
/* 1071EC 802E596C AFA60010 */   sw       $a2, 0x10($sp)
/* 1071F0 802E5970 27A40018 */  addiu     $a0, $sp, 0x18
/* 1071F4 802E5974 26F00010 */  addiu     $s0, $s7, 0x10
/* 1071F8 802E5978 0C019D40 */  jal       guMtxF2L
/* 1071FC 802E597C 0200282D */   daddu    $a1, $s0, $zero
/* 107200 802E5980 3C040001 */  lui       $a0, (0x11630 >> 16)
/* 107204 802E5984 34841630 */  ori       $a0, $a0, (0x11630 & 0xFFFF)
/* 107208 802E5988 26E50050 */  addiu     $a1, $s7, 0x50
/* 10720C 802E598C 3C028007 */  lui       $v0, %hi(gMatrixListPos)
/* 107210 802E5990 944241F0 */  lhu       $v0, %lo(gMatrixListPos)($v0)
/* 107214 802E5994 3C03800A */  lui       $v1, %hi(gDisplayContext)
/* 107218 802E5998 8C63A674 */  lw        $v1, %lo(gDisplayContext)($v1)
/* 10721C 802E599C 00021180 */  sll       $v0, $v0, 6
/* 107220 802E59A0 00621821 */  addu      $v1, $v1, $v0
/* 107224 802E59A4 00641821 */  addu      $v1, $v1, $a0
.L802E59A8:
/* 107228 802E59A8 8E180000 */  lw        $t8, 0x0($s0)
/* 10722C 802E59AC 8E190004 */  lw        $t9, 0x4($s0)
/* 107230 802E59B0 8E0F0008 */  lw        $t7, 0x8($s0)
/* 107234 802E59B4 8E15000C */  lw        $s5, 0xC($s0)
/* 107238 802E59B8 AC780000 */  sw        $t8, 0x0($v1)
/* 10723C 802E59BC AC790004 */  sw        $t9, 0x4($v1)
/* 107240 802E59C0 AC6F0008 */  sw        $t7, 0x8($v1)
/* 107244 802E59C4 AC75000C */  sw        $s5, 0xC($v1)
/* 107248 802E59C8 26100010 */  addiu     $s0, $s0, 0x10
/* 10724C 802E59CC 1605FFF6 */  bne       $s0, $a1, .L802E59A8
/* 107250 802E59D0 24630010 */   addiu    $v1, $v1, 0x10
/* 107254 802E59D4 02C0702D */  daddu     $t6, $s6, $zero
/* 107258 802E59D8 26D60008 */  addiu     $s6, $s6, 0x8
/* 10725C 802E59DC 3C180001 */  lui       $t8, (0x11630 >> 16)
/* 107260 802E59E0 37181630 */  ori       $t8, $t8, (0x11630 & 0xFFFF)
/* 107264 802E59E4 02C0682D */  daddu     $t5, $s6, $zero
/* 107268 802E59E8 26D60008 */  addiu     $s6, $s6, 0x8
/* 10726C 802E59EC 3C19E200 */  lui       $t9, (0xE200001C >> 16)
/* 107270 802E59F0 3739001C */  ori       $t9, $t9, (0xE200001C & 0xFFFF)
/* 107274 802E59F4 3C140055 */  lui       $s4, (0x553078 >> 16)
/* 107278 802E59F8 36943078 */  ori       $s4, $s4, (0x553078 & 0xFFFF)
/* 10727C 802E59FC 02C0582D */  daddu     $t3, $s6, $zero
/* 107280 802E5A00 26D60008 */  addiu     $s6, $s6, 0x8
/* 107284 802E5A04 3C12FC12 */  lui       $s2, (0xFC121824 >> 16)
/* 107288 802E5A08 36521824 */  ori       $s2, $s2, (0xFC121824 & 0xFFFF)
/* 10728C 802E5A0C 3C10FF33 */  lui       $s0, (0xFF33FFFF >> 16)
/* 107290 802E5A10 3610FFFF */  ori       $s0, $s0, (0xFF33FFFF & 0xFFFF)
/* 107294 802E5A14 02C0202D */  daddu     $a0, $s6, $zero
/* 107298 802E5A18 26D60008 */  addiu     $s6, $s6, 0x8
/* 10729C 802E5A1C 02C0282D */  daddu     $a1, $s6, $zero
/* 1072A0 802E5A20 26D60008 */  addiu     $s6, $s6, 0x8
/* 1072A4 802E5A24 02C0402D */  daddu     $t0, $s6, $zero
/* 1072A8 802E5A28 26D60008 */  addiu     $s6, $s6, 0x8
/* 1072AC 802E5A2C 3C0FF500 */  lui       $t7, (0xF5000100 >> 16)
/* 1072B0 802E5A30 35EF0100 */  ori       $t7, $t7, (0xF5000100 & 0xFFFF)
/* 1072B4 802E5A34 02C0302D */  daddu     $a2, $s6, $zero
/* 1072B8 802E5A38 26D60008 */  addiu     $s6, $s6, 0x8
/* 1072BC 802E5A3C 02C0482D */  daddu     $t1, $s6, $zero
/* 1072C0 802E5A40 26D60008 */  addiu     $s6, $s6, 0x8
/* 1072C4 802E5A44 3C130703 */  lui       $s3, (0x703C000 >> 16)
/* 1072C8 802E5A48 3673C000 */  ori       $s3, $s3, (0x703C000 & 0xFFFF)
/* 1072CC 802E5A4C 02C0382D */  daddu     $a3, $s6, $zero
/* 1072D0 802E5A50 26D60008 */  addiu     $s6, $s6, 0x8
/* 1072D4 802E5A54 02C0502D */  daddu     $t2, $s6, $zero
/* 1072D8 802E5A58 26D60008 */  addiu     $s6, $s6, 0x8
/* 1072DC 802E5A5C 02C0602D */  daddu     $t4, $s6, $zero
/* 1072E0 802E5A60 3C11D838 */  lui       $s1, (0xD8380002 >> 16)
/* 1072E4 802E5A64 36310002 */  ori       $s1, $s1, (0xD8380002 & 0xFFFF)
/* 1072E8 802E5A68 3C1E8007 */  lui       $fp, %hi(gMatrixListPos)
/* 1072EC 802E5A6C 27DE41F0 */  addiu     $fp, $fp, %lo(gMatrixListPos)
/* 1072F0 802E5A70 AFB80064 */  sw        $t8, 0x64($sp)
/* 1072F4 802E5A74 97C20000 */  lhu       $v0, 0x0($fp)
/* 1072F8 802E5A78 3C03DA38 */  lui       $v1, (0xDA380000 >> 16)
/* 1072FC 802E5A7C ADC30000 */  sw        $v1, 0x0($t6)
/* 107300 802E5A80 24430001 */  addiu     $v1, $v0, 0x1
/* 107304 802E5A84 3042FFFF */  andi      $v0, $v0, 0xFFFF
/* 107308 802E5A88 00021180 */  sll       $v0, $v0, 6
/* 10730C 802E5A8C A7C30000 */  sh        $v1, 0x0($fp)
/* 107310 802E5A90 3C03800A */  lui       $v1, %hi(gDisplayContext)
/* 107314 802E5A94 8C63A674 */  lw        $v1, %lo(gDisplayContext)($v1)
/* 107318 802E5A98 00581021 */  addu      $v0, $v0, $t8
/* 10731C 802E5A9C 00621821 */  addu      $v1, $v1, $v0
/* 107320 802E5AA0 3C02FD10 */  lui       $v0, (0xFD100000 >> 16)
/* 107324 802E5AA4 ADC30004 */  sw        $v1, 0x4($t6)
/* 107328 802E5AA8 ADB90000 */  sw        $t9, 0x0($t5)
/* 10732C 802E5AAC ADB40004 */  sw        $s4, 0x4($t5)
/* 107330 802E5AB0 AD720000 */  sw        $s2, 0x0($t3)
/* 107334 802E5AB4 AD700004 */  sw        $s0, 0x4($t3)
/* 107338 802E5AB8 AC820000 */  sw        $v0, 0x0($a0)
/* 10733C 802E5ABC 8FB5005C */  lw        $s5, 0x5C($sp)
/* 107340 802E5AC0 3C02E800 */  lui       $v0, (0xE8000000 >> 16)
/* 107344 802E5AC4 AC950004 */  sw        $s5, 0x4($a0)
/* 107348 802E5AC8 ACA20000 */  sw        $v0, 0x0($a1)
/* 10734C 802E5ACC 3C020700 */  lui       $v0, (0x7000000 >> 16)
/* 107350 802E5AD0 ACA00004 */  sw        $zero, 0x4($a1)
/* 107354 802E5AD4 AD020004 */  sw        $v0, 0x4($t0)
/* 107358 802E5AD8 3C02E600 */  lui       $v0, (0xE6000000 >> 16)
/* 10735C 802E5ADC AD0F0000 */  sw        $t7, 0x0($t0)
/* 107360 802E5AE0 ACC20000 */  sw        $v0, 0x0($a2)
/* 107364 802E5AE4 3C02F000 */  lui       $v0, (0xF0000000 >> 16)
/* 107368 802E5AE8 ACC00004 */  sw        $zero, 0x4($a2)
/* 10736C 802E5AEC 3C06E700 */  lui       $a2, (0xE7000000 >> 16)
/* 107370 802E5AF0 AD220000 */  sw        $v0, 0x0($t1)
/* 107374 802E5AF4 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* 107378 802E5AF8 AD330004 */  sw        $s3, 0x4($t1)
/* 10737C 802E5AFC ACE60000 */  sw        $a2, 0x0($a3)
/* 107380 802E5B00 ACE00004 */  sw        $zero, 0x4($a3)
/* 107384 802E5B04 AD420000 */  sw        $v0, 0x0($t2)
/* 107388 802E5B08 8FB80058 */  lw        $t8, 0x58($sp)
/* 10738C 802E5B0C 24020040 */  addiu     $v0, $zero, 0x40
/* 107390 802E5B10 AD580004 */  sw        $t8, 0x4($t2)
/* 107394 802E5B14 AD910000 */  sw        $s1, 0x0($t4)
/* 107398 802E5B18 AD820004 */  sw        $v0, 0x4($t4)
/* 10739C 802E5B1C 8FB90060 */  lw        $t9, 0x60($sp)
/* 1073A0 802E5B20 9323000B */  lbu       $v1, 0xB($t9)
/* 1073A4 802E5B24 24110078 */  addiu     $s1, $zero, 0x78
/* 1073A8 802E5B28 0071102A */  slt       $v0, $v1, $s1
/* 1073AC 802E5B2C 10400002 */  beqz      $v0, .L802E5B38
/* 1073B0 802E5B30 26D60008 */   addiu    $s6, $s6, 0x8
/* 1073B4 802E5B34 0060882D */  daddu     $s1, $v1, $zero
.L802E5B38:
/* 1073B8 802E5B38 02C0102D */  daddu     $v0, $s6, $zero
/* 1073BC 802E5B3C 26D60008 */  addiu     $s6, $s6, 0x8
/* 1073C0 802E5B40 02E0202D */  daddu     $a0, $s7, $zero
/* 1073C4 802E5B44 24050006 */  addiu     $a1, $zero, 0x6
/* 1073C8 802E5B48 AC460000 */  sw        $a2, 0x0($v0)
/* 1073CC 802E5B4C 0C0B959C */  jal       entity_SuperBlockContent_get_previous_yaw
/* 1073D0 802E5B50 AC400004 */   sw       $zero, 0x4($v0)
/* 1073D4 802E5B54 44050000 */  mfc1      $a1, $f0
/* 1073D8 802E5B58 44800000 */  mtc1      $zero, $f0
/* 1073DC 802E5B5C 3C073F80 */  lui       $a3, (0x3F800000 >> 16)
/* 1073E0 802E5B60 44060000 */  mfc1      $a2, $f0
/* 1073E4 802E5B64 27A40018 */  addiu     $a0, $sp, 0x18
/* 1073E8 802E5B68 0C019EC8 */  jal       guRotateF
/* 1073EC 802E5B6C AFA60010 */   sw       $a2, 0x10($sp)
/* 1073F0 802E5B70 27A40018 */  addiu     $a0, $sp, 0x18
/* 1073F4 802E5B74 26F00050 */  addiu     $s0, $s7, 0x50
/* 1073F8 802E5B78 0C019D40 */  jal       guMtxF2L
/* 1073FC 802E5B7C 0200282D */   daddu    $a1, $s0, $zero
/* 107400 802E5B80 26E40090 */  addiu     $a0, $s7, 0x90
/* 107404 802E5B84 97C20000 */  lhu       $v0, 0x0($fp)
/* 107408 802E5B88 3C03800A */  lui       $v1, %hi(gDisplayContext)
/* 10740C 802E5B8C 8C63A674 */  lw        $v1, %lo(gDisplayContext)($v1)
/* 107410 802E5B90 8FAF0064 */  lw        $t7, 0x64($sp)
/* 107414 802E5B94 00021180 */  sll       $v0, $v0, 6
/* 107418 802E5B98 00621821 */  addu      $v1, $v1, $v0
/* 10741C 802E5B9C 006F1821 */  addu      $v1, $v1, $t7
.L802E5BA0:
/* 107420 802E5BA0 8E150000 */  lw        $s5, 0x0($s0)
/* 107424 802E5BA4 8E180004 */  lw        $t8, 0x4($s0)
/* 107428 802E5BA8 8E190008 */  lw        $t9, 0x8($s0)
/* 10742C 802E5BAC 8E0F000C */  lw        $t7, 0xC($s0)
/* 107430 802E5BB0 AC750000 */  sw        $s5, 0x0($v1)
/* 107434 802E5BB4 AC780004 */  sw        $t8, 0x4($v1)
/* 107438 802E5BB8 AC790008 */  sw        $t9, 0x8($v1)
/* 10743C 802E5BBC AC6F000C */  sw        $t7, 0xC($v1)
/* 107440 802E5BC0 26100010 */  addiu     $s0, $s0, 0x10
/* 107444 802E5BC4 1604FFF6 */  bne       $s0, $a0, .L802E5BA0
/* 107448 802E5BC8 24630010 */   addiu    $v1, $v1, 0x10
/* 10744C 802E5BCC 02C0482D */  daddu     $t1, $s6, $zero
/* 107450 802E5BD0 26D60008 */  addiu     $s6, $s6, 0x8
/* 107454 802E5BD4 3C130001 */  lui       $s3, (0x11630 >> 16)
/* 107458 802E5BD8 36731630 */  ori       $s3, $s3, (0x11630 & 0xFFFF)
/* 10745C 802E5BDC 02C0402D */  daddu     $t0, $s6, $zero
/* 107460 802E5BE0 26D60008 */  addiu     $s6, $s6, 0x8
/* 107464 802E5BE4 3C0EE200 */  lui       $t6, (0xE200001C >> 16)
/* 107468 802E5BE8 35CE001C */  ori       $t6, $t6, (0xE200001C & 0xFFFF)
/* 10746C 802E5BEC 3C0D0050 */  lui       $t5, (0x504358 >> 16)
/* 107470 802E5BF0 35AD4358 */  ori       $t5, $t5, (0x504358 & 0xFFFF)
/* 107474 802E5BF4 02C0382D */  daddu     $a3, $s6, $zero
/* 107478 802E5BF8 26D60008 */  addiu     $s6, $s6, 0x8
/* 10747C 802E5BFC 3C0CFCFF */  lui       $t4, (0xFCFFB3FF >> 16)
/* 107480 802E5C00 358CB3FF */  ori       $t4, $t4, (0xFCFFB3FF & 0xFFFF)
/* 107484 802E5C04 3C0BFF2C */  lui       $t3, (0xFF2CFE7F >> 16)
/* 107488 802E5C08 356BFE7F */  ori       $t3, $t3, (0xFF2CFE7F & 0xFFFF)
/* 10748C 802E5C0C 02C0202D */  daddu     $a0, $s6, $zero
/* 107490 802E5C10 26D60008 */  addiu     $s6, $s6, 0x8
/* 107494 802E5C14 02C0282D */  daddu     $a1, $s6, $zero
/* 107498 802E5C18 26D60008 */  addiu     $s6, $s6, 0x8
/* 10749C 802E5C1C 02C0302D */  daddu     $a2, $s6, $zero
/* 1074A0 802E5C20 3C0AD838 */  lui       $t2, (0xD8380002 >> 16)
/* 1074A4 802E5C24 354A0002 */  ori       $t2, $t2, (0xD8380002 & 0xFFFF)
/* 1074A8 802E5C28 3C128007 */  lui       $s2, %hi(gMatrixListPos)
/* 1074AC 802E5C2C 265241F0 */  addiu     $s2, $s2, %lo(gMatrixListPos)
/* 1074B0 802E5C30 3C03DA38 */  lui       $v1, (0xDA380000 >> 16)
/* 1074B4 802E5C34 96420000 */  lhu       $v0, 0x0($s2)
/* 1074B8 802E5C38 3C14800A */  lui       $s4, %hi(gDisplayContext)
/* 1074BC 802E5C3C 2694A674 */  addiu     $s4, $s4, %lo(gDisplayContext)
/* 1074C0 802E5C40 AD230000 */  sw        $v1, 0x0($t1)
/* 1074C4 802E5C44 24430001 */  addiu     $v1, $v0, 0x1
/* 1074C8 802E5C48 3042FFFF */  andi      $v0, $v0, 0xFFFF
/* 1074CC 802E5C4C 00021180 */  sll       $v0, $v0, 6
/* 1074D0 802E5C50 A6430000 */  sh        $v1, 0x0($s2)
/* 1074D4 802E5C54 8E830000 */  lw        $v1, 0x0($s4)
/* 1074D8 802E5C58 00531021 */  addu      $v0, $v0, $s3
/* 1074DC 802E5C5C 00621821 */  addu      $v1, $v1, $v0
/* 1074E0 802E5C60 3C02FA00 */  lui       $v0, (0xFA000000 >> 16)
/* 1074E4 802E5C64 AD230004 */  sw        $v1, 0x4($t1)
/* 1074E8 802E5C68 AD0E0000 */  sw        $t6, 0x0($t0)
/* 1074EC 802E5C6C AD0D0004 */  sw        $t5, 0x4($t0)
/* 1074F0 802E5C70 ACEC0000 */  sw        $t4, 0x0($a3)
/* 1074F4 802E5C74 ACEB0004 */  sw        $t3, 0x4($a3)
/* 1074F8 802E5C78 AC820000 */  sw        $v0, 0x0($a0)
/* 1074FC 802E5C7C 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* 107500 802E5C80 AC910004 */  sw        $s1, 0x4($a0)
/* 107504 802E5C84 ACA20000 */  sw        $v0, 0x0($a1)
/* 107508 802E5C88 8FB50058 */  lw        $s5, 0x58($sp)
/* 10750C 802E5C8C 24020040 */  addiu     $v0, $zero, 0x40
/* 107510 802E5C90 ACB50004 */  sw        $s5, 0x4($a1)
/* 107514 802E5C94 ACCA0000 */  sw        $t2, 0x0($a2)
/* 107518 802E5C98 ACC20004 */  sw        $v0, 0x4($a2)
/* 10751C 802E5C9C 8FB80060 */  lw        $t8, 0x60($sp)
/* 107520 802E5CA0 9303000B */  lbu       $v1, 0xB($t8)
/* 107524 802E5CA4 24110050 */  addiu     $s1, $zero, 0x50
/* 107528 802E5CA8 0071102A */  slt       $v0, $v1, $s1
/* 10752C 802E5CAC 10400002 */  beqz      $v0, .L802E5CB8
/* 107530 802E5CB0 26D60008 */   addiu    $s6, $s6, 0x8
/* 107534 802E5CB4 0060882D */  daddu     $s1, $v1, $zero
.L802E5CB8:
/* 107538 802E5CB8 02C0182D */  daddu     $v1, $s6, $zero
/* 10753C 802E5CBC 26D60008 */  addiu     $s6, $s6, 0x8
/* 107540 802E5CC0 02E0202D */  daddu     $a0, $s7, $zero
/* 107544 802E5CC4 2405000A */  addiu     $a1, $zero, 0xA
/* 107548 802E5CC8 3C02E700 */  lui       $v0, (0xE7000000 >> 16)
/* 10754C 802E5CCC AC620000 */  sw        $v0, 0x0($v1)
/* 107550 802E5CD0 0C0B959C */  jal       entity_SuperBlockContent_get_previous_yaw
/* 107554 802E5CD4 AC600004 */   sw       $zero, 0x4($v1)
/* 107558 802E5CD8 44050000 */  mfc1      $a1, $f0
/* 10755C 802E5CDC 44800000 */  mtc1      $zero, $f0
/* 107560 802E5CE0 3C073F80 */  lui       $a3, (0x3F800000 >> 16)
/* 107564 802E5CE4 44060000 */  mfc1      $a2, $f0
/* 107568 802E5CE8 27A40018 */  addiu     $a0, $sp, 0x18
/* 10756C 802E5CEC 0C019EC8 */  jal       guRotateF
/* 107570 802E5CF0 AFA60010 */   sw       $a2, 0x10($sp)
/* 107574 802E5CF4 27A40018 */  addiu     $a0, $sp, 0x18
/* 107578 802E5CF8 26F00090 */  addiu     $s0, $s7, 0x90
/* 10757C 802E5CFC 0C019D40 */  jal       guMtxF2L
/* 107580 802E5D00 0200282D */   daddu    $a1, $s0, $zero
/* 107584 802E5D04 26E400D0 */  addiu     $a0, $s7, 0xD0
/* 107588 802E5D08 96420000 */  lhu       $v0, 0x0($s2)
/* 10758C 802E5D0C 8E830000 */  lw        $v1, 0x0($s4)
/* 107590 802E5D10 00021180 */  sll       $v0, $v0, 6
/* 107594 802E5D14 00621821 */  addu      $v1, $v1, $v0
/* 107598 802E5D18 00731821 */  addu      $v1, $v1, $s3
.L802E5D1C:
/* 10759C 802E5D1C 8E190000 */  lw        $t9, 0x0($s0)
/* 1075A0 802E5D20 8E0F0004 */  lw        $t7, 0x4($s0)
/* 1075A4 802E5D24 8E150008 */  lw        $s5, 0x8($s0)
/* 1075A8 802E5D28 8E18000C */  lw        $t8, 0xC($s0)
/* 1075AC 802E5D2C AC790000 */  sw        $t9, 0x0($v1)
/* 1075B0 802E5D30 AC6F0004 */  sw        $t7, 0x4($v1)
/* 1075B4 802E5D34 AC750008 */  sw        $s5, 0x8($v1)
/* 1075B8 802E5D38 AC78000C */  sw        $t8, 0xC($v1)
/* 1075BC 802E5D3C 26100010 */  addiu     $s0, $s0, 0x10
/* 1075C0 802E5D40 1604FFF6 */  bne       $s0, $a0, .L802E5D1C
/* 1075C4 802E5D44 24630010 */   addiu    $v1, $v1, 0x10
/* 1075C8 802E5D48 02C0502D */  daddu     $t2, $s6, $zero
/* 1075CC 802E5D4C 26D60008 */  addiu     $s6, $s6, 0x8
/* 1075D0 802E5D50 3C100001 */  lui       $s0, (0x11630 >> 16)
/* 1075D4 802E5D54 36101630 */  ori       $s0, $s0, (0x11630 & 0xFFFF)
/* 1075D8 802E5D58 02C0482D */  daddu     $t1, $s6, $zero
/* 1075DC 802E5D5C 26D60008 */  addiu     $s6, $s6, 0x8
/* 1075E0 802E5D60 3C19E200 */  lui       $t9, (0xE200001C >> 16)
/* 1075E4 802E5D64 3739001C */  ori       $t9, $t9, (0xE200001C & 0xFFFF)
/* 1075E8 802E5D68 3C0E0050 */  lui       $t6, (0x504358 >> 16)
/* 1075EC 802E5D6C 35CE4358 */  ori       $t6, $t6, (0x504358 & 0xFFFF)
/* 1075F0 802E5D70 02C0402D */  daddu     $t0, $s6, $zero
/* 1075F4 802E5D74 26D60008 */  addiu     $s6, $s6, 0x8
/* 1075F8 802E5D78 3C0DFCFF */  lui       $t5, (0xFCFFB3FF >> 16)
/* 1075FC 802E5D7C 35ADB3FF */  ori       $t5, $t5, (0xFCFFB3FF & 0xFFFF)
/* 107600 802E5D80 3C0CFF2C */  lui       $t4, (0xFF2CFE7F >> 16)
/* 107604 802E5D84 358CFE7F */  ori       $t4, $t4, (0xFF2CFE7F & 0xFFFF)
/* 107608 802E5D88 02C0282D */  daddu     $a1, $s6, $zero
/* 10760C 802E5D8C 26D60008 */  addiu     $s6, $s6, 0x8
/* 107610 802E5D90 02C0302D */  daddu     $a2, $s6, $zero
/* 107614 802E5D94 26D60008 */  addiu     $s6, $s6, 0x8
/* 107618 802E5D98 02C0382D */  daddu     $a3, $s6, $zero
/* 10761C 802E5D9C 26D60008 */  addiu     $s6, $s6, 0x8
/* 107620 802E5DA0 3C0BD838 */  lui       $t3, (0xD8380002 >> 16)
/* 107624 802E5DA4 356B0002 */  ori       $t3, $t3, (0xD8380002 & 0xFFFF)
/* 107628 802E5DA8 3C048007 */  lui       $a0, %hi(gMatrixListPos)
/* 10762C 802E5DAC 248441F0 */  addiu     $a0, $a0, %lo(gMatrixListPos)
/* 107630 802E5DB0 94820000 */  lhu       $v0, 0x0($a0)
/* 107634 802E5DB4 3C03DA38 */  lui       $v1, (0xDA380000 >> 16)
/* 107638 802E5DB8 AD430000 */  sw        $v1, 0x0($t2)
/* 10763C 802E5DBC 3C01800A */  lui       $at, %hi(gMainGfxPos)
/* 107640 802E5DC0 AC36A66C */  sw        $s6, %lo(gMainGfxPos)($at)
/* 107644 802E5DC4 24430001 */  addiu     $v1, $v0, 0x1
/* 107648 802E5DC8 3042FFFF */  andi      $v0, $v0, 0xFFFF
/* 10764C 802E5DCC 00021180 */  sll       $v0, $v0, 6
/* 107650 802E5DD0 A4830000 */  sh        $v1, 0x0($a0)
/* 107654 802E5DD4 3C03800A */  lui       $v1, %hi(gDisplayContext)
/* 107658 802E5DD8 8C63A674 */  lw        $v1, %lo(gDisplayContext)($v1)
/* 10765C 802E5DDC 00501021 */  addu      $v0, $v0, $s0
/* 107660 802E5DE0 00621821 */  addu      $v1, $v1, $v0
/* 107664 802E5DE4 3C02FA00 */  lui       $v0, (0xFA000000 >> 16)
/* 107668 802E5DE8 AD430004 */  sw        $v1, 0x4($t2)
/* 10766C 802E5DEC AD390000 */  sw        $t9, 0x0($t1)
/* 107670 802E5DF0 AD2E0004 */  sw        $t6, 0x4($t1)
/* 107674 802E5DF4 AD0D0000 */  sw        $t5, 0x0($t0)
/* 107678 802E5DF8 AD0C0004 */  sw        $t4, 0x4($t0)
/* 10767C 802E5DFC ACA20000 */  sw        $v0, 0x0($a1)
/* 107680 802E5E00 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* 107684 802E5E04 ACB10004 */  sw        $s1, 0x4($a1)
/* 107688 802E5E08 ACC20000 */  sw        $v0, 0x0($a2)
/* 10768C 802E5E0C 8FAF0058 */  lw        $t7, 0x58($sp)
/* 107690 802E5E10 24020040 */  addiu     $v0, $zero, 0x40
/* 107694 802E5E14 ACCF0004 */  sw        $t7, 0x4($a2)
/* 107698 802E5E18 ACEB0000 */  sw        $t3, 0x0($a3)
/* 10769C 802E5E1C ACE20004 */  sw        $v0, 0x4($a3)
/* 1076A0 802E5E20 8FBF0094 */  lw        $ra, 0x94($sp)
/* 1076A4 802E5E24 8FBE0090 */  lw        $fp, 0x90($sp)
/* 1076A8 802E5E28 8FB7008C */  lw        $s7, 0x8C($sp)
/* 1076AC 802E5E2C 8FB60088 */  lw        $s6, 0x88($sp)
/* 1076B0 802E5E30 8FB50084 */  lw        $s5, 0x84($sp)
/* 1076B4 802E5E34 8FB40080 */  lw        $s4, 0x80($sp)
/* 1076B8 802E5E38 8FB3007C */  lw        $s3, 0x7C($sp)
/* 1076BC 802E5E3C 8FB20078 */  lw        $s2, 0x78($sp)
/* 1076C0 802E5E40 8FB10074 */  lw        $s1, 0x74($sp)
/* 1076C4 802E5E44 8FB00070 */  lw        $s0, 0x70($sp)
/* 1076C8 802E5E48 03E00008 */  jr        $ra
/* 1076CC 802E5E4C 27BD0098 */   addiu    $sp, $sp, 0x98

### DECOMPILED C INSTRUCTIONS:

void entity_SuperBlockContent_setupGfx(s32 entityIndex) {
    Gfx* gfxPos = gMainGfxPos;
    Gfx* dlist;
    u8* palette;
    Entity* entity = get_entity_by_index(entityIndex);
    SuperBlockContentData* data = entity->dataBuf.superBlockContent;
    s32 alpha;
    Matrix4f sp18;

    if (data->paletteTimer == 0) {
        s32 temp = data->paletteArrOffset;
        temp += 2;
        if (Entity_SuperBlock_PalData[temp] > 0) {
            data->paletteTimer = Entity_SuperBlock_PalData[temp];
            data->paletteArrOffset = temp;
        } else {
            data->paletteTimer = Entity_SuperBlock_PalData[0];
            data->paletteArrOffset = 0;
        }
    } else {
        data->paletteTimer--;
    }

    palette = ENTITY_ADDR(entity, u8*, Entity_SuperBlock_Palettes[Entity_SuperBlock_PalData[data->paletteArrOffset + 1]]);
    dlist = data->gfx2;

    gDPPipeSync(gfxPos++);
    guRotateF(sp18, entity_SuperBlockContent_get_previous_yaw(data, 1), 0.0f, 1.0f, 0.0f);
    guMtxF2L(sp18, &data->unk_10);
    gDisplayContext->matrixStack[gMatrixListPos] = data->unk_10;
    gSPMatrix(gfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
    gDPSetRenderMode(gfxPos++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2);
    gDPSetCombineMode(gfxPos++, G_CC_MODULATEIA, G_CC_MODULATEIA);
    gDPLoadTLUT_pal16(gfxPos++, 0, palette);
    gSPDisplayList(gfxPos++, dlist);
    gSPPopMatrix(gfxPos++, G_MTX_MODELVIEW);

    alpha = 120;
    if (entity->alpha < alpha) {
        alpha = entity->alpha;
    }

    gDPPipeSync(gfxPos++);
    guRotateF(sp18, entity_SuperBlockContent_get_previous_yaw(data, 6), 0.0f, 1.0f, 0.0f);
    guMtxF2L(sp18, &data->unk_50);
    gDisplayContext->matrixStack[gMatrixListPos] = data->unk_50;
    gSPMatrix(gfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
    gDPSetRenderMode(gfxPos++, AA_EN | Z_CMP | IM_RD | CVG_DST_SAVE | ZMODE_OPA | FORCE_BL | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA), AA_EN | Z_CMP | IM_RD | CVG_DST_SAVE | ZMODE_OPA | FORCE_BL | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA));
    gDPSetCombineMode(gfxPos++, PM_CC_01, PM_CC_02);
    gDPSetPrimColor(gfxPos++, 0, 0, 0, 0, 0, alpha);
    gSPDisplayList(gfxPos++, dlist);
    gSPPopMatrix(gfxPos++, G_MTX_MODELVIEW);

    alpha = 80;
    if (entity->alpha < alpha) {
        alpha = entity->alpha;
    }

    gDPPipeSync(gfxPos++);
    guRotateF(sp18, entity_SuperBlockContent_get_previous_yaw(data, 10), 0.0f, 1.0f, 0.0f);
    guMtxF2L(sp18, &data->unk_90);
    gDisplayContext->matrixStack[gMatrixListPos] = data->unk_90;
    gSPMatrix(gfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
    gDPSetRenderMode(gfxPos++, AA_EN | Z_CMP | IM_RD | CVG_DST_SAVE | ZMODE_OPA | FORCE_BL | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA), AA_EN | Z_CMP | IM_RD | CVG_DST_SAVE | ZMODE_OPA | FORCE_BL | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA));
    gDPSetCombineMode(gfxPos++, PM_CC_01, PM_CC_02);
    gDPSetPrimColor(gfxPos++, 0, 0, 0, 0, 0, alpha);
    gSPDisplayList(gfxPos++, dlist);
    gSPPopMatrix(gfxPos++, G_MTX_MODELVIEW);

    gMainGfxPos = gfxPos;
}