### RAW ASSEMBLY INSTRUCTIONS:

dlabel func_802516E8
/* 17FFC8 802516E8 27BDFFA8 */  addiu     $sp, $sp, -0x58
/* 17FFCC 802516EC AFB40040 */  sw        $s4, 0x40($sp)
/* 17FFD0 802516F0 3C14800E */  lui       $s4, %hi(gBattleStatus)
/* 17FFD4 802516F4 2694C070 */  addiu     $s4, $s4, %lo(gBattleStatus)
/* 17FFD8 802516F8 AFBF0054 */  sw        $ra, 0x54($sp)
/* 17FFDC 802516FC AFBE0050 */  sw        $fp, 0x50($sp)
/* 17FFE0 80251700 AFB7004C */  sw        $s7, 0x4C($sp)
/* 17FFE4 80251704 AFB60048 */  sw        $s6, 0x48($sp)
/* 17FFE8 80251708 AFB50044 */  sw        $s5, 0x44($sp)
/* 17FFEC 8025170C AFB3003C */  sw        $s3, 0x3C($sp)
D_80251710_C0EF90:
/* 17FFF0 80251710 AFB20038 */  sw        $s2, 0x38($sp)
/* 17FFF4 80251714 AFB10034 */  sw        $s1, 0x34($sp)
/* 17FFF8 80251718 AFB00030 */  sw        $s0, 0x30($sp)
/* 17FFFC 8025171C AFA0001C */  sw        $zero, 0x1C($sp)
/* 180000 80251720 AFA00024 */  sw        $zero, 0x24($sp)
/* 180004 80251724 AFA00028 */  sw        $zero, 0x28($sp)
/* 180008 80251728 AFA0002C */  sw        $zero, 0x2C($sp)
/* 18000C 8025172C 8E9600D8 */  lw        $s6, 0xD8($s4)
/* 180010 80251730 968201A0 */  lhu       $v0, 0x1A0($s4)
/* 180014 80251734 869101A0 */  lh        $s1, 0x1A0($s4)
/* 180018 80251738 928301A2 */  lbu       $v1, 0x1A2($s4)
/* 18001C 8025173C 8E9200DC */  lw        $s2, 0xDC($s4)
/* 180020 80251740 829001A2 */  lb        $s0, 0x1A2($s4)
/* 180024 80251744 0000A82D */  daddu     $s5, $zero, $zero
/* 180028 80251748 A2800199 */  sb        $zero, 0x199($s4)
/* 18002C 8025174C A6800180 */  sh        $zero, 0x180($s4)
/* 180030 80251750 96C50192 */  lhu       $a1, 0x192($s6)
/* 180034 80251754 0220202D */  daddu     $a0, $s1, $zero
/* 180038 80251758 A68201A4 */  sh        $v0, 0x1A4($s4)
/* 18003C 8025175C A28301A6 */  sb        $v1, 0x1A6($s4)
/* 180040 80251760 0C09A75B */  jal       get_actor
/* 180044 80251764 A68501A8 */   sh       $a1, 0x1A8($s4)
/* 180048 80251768 0040982D */  daddu     $s3, $v0, $zero
/* 18004C 8025176C 16600003 */  bnez      $s3, .L8025177C
/* 180050 80251770 0260202D */   daddu    $a0, $s3, $zero
/* 180054 80251774 080949BE */  j         .L802526F8
/* 180058 80251778 02A0102D */   daddu    $v0, $s5, $zero
.L8025177C:
/* 18005C 8025177C 0C099117 */  jal       get_actor_part
/* 180060 80251780 0200282D */   daddu    $a1, $s0, $zero
/* 180064 80251784 0040B82D */  daddu     $s7, $v0, $zero
/* 180068 80251788 56E00003 */  bnel      $s7, $zero, D_80251798_C0F018
/* 18006C 8025178C 32310700 */   andi     $s1, $s1, 0x700
.L80251790:
/* 180070 80251790 080945E4 */  j         .L80251790
/* 180074 80251794 00000000 */   nop
D_80251798_C0F018:
/* 180078 80251798 A66001F8 */  sh        $zero, 0x1F8($s3)
/* 18007C 8025179C 3C02800E */  lui       $v0, %hi(gBattleStatus)
/* 180080 802517A0 8C42C070 */  lw        $v0, %lo(gBattleStatus)($v0)
/* 180084 802517A4 3C030008 */  lui       $v1, (0x80000 >> 16)
/* 180088 802517A8 00431024 */  and       $v0, $v0, $v1
/* 18008C 802517AC 14400003 */  bnez      $v0, .L802517BC
/* 180090 802517B0 AFB10020 */   sw       $s1, 0x20($sp)
/* 180094 802517B4 080945F0 */  j         .L802517C0
/* 180098 802517B8 26D1000C */   addiu    $s1, $s6, 0xC
.L802517BC:
/* 18009C 802517BC 2651000C */  addiu     $s1, $s2, 0xC
.L802517C0:
/* 1800A0 802517C0 8E820188 */  lw        $v0, 0x188($s4)
/* 1800A4 802517C4 30420002 */  andi      $v0, $v0, 0x2
/* 1800A8 802517C8 10400010 */  beqz      $v0, .L8025180C
/* 1800AC 802517CC 0000202D */   daddu    $a0, $zero, $zero
/* 1800B0 802517D0 C6240014 */  lwc1      $f4, 0x14($s1)
/* 1800B4 802517D4 3C0140A0 */  lui       $at, (0x40A00000 >> 16)
/* 1800B8 802517D8 44810000 */  mtc1      $at, $f0
/* 1800BC 802517DC 3C013F80 */  lui       $at, (0x3F800000 >> 16)
D_802517E0:
/* 1800C0 802517E0 44811000 */  mtc1      $at, $f2
/* 1800C4 802517E4 24020018 */  addiu     $v0, $zero, 0x18
/* 1800C8 802517E8 AFA20014 */  sw        $v0, 0x14($sp)
/* 1800CC 802517EC 46002100 */  add.s     $f4, $f4, $f0
/* 1800D0 802517F0 E7A20010 */  swc1      $f2, 0x10($sp)
/* 1800D4 802517F4 8E25000C */  lw        $a1, 0xC($s1)
/* 1800D8 802517F8 8E260010 */  lw        $a2, 0x10($s1)
/* 1800DC 802517FC 44072000 */  mfc1      $a3, $f4
/* 1800E0 80251800 24080001 */  addiu     $t0, $zero, 0x1
/* 1800E4 80251804 0C01C184 */  jal       fx_ring_blast
/* 1800E8 80251808 AFA80024 */   sw       $t0, 0x24($sp)
.L8025180C:
/* 1800EC 8025180C 8E820188 */  lw        $v0, 0x188($s4)
/* 1800F0 80251810 30420020 */  andi      $v0, $v0, 0x20
/* 1800F4 80251814 10400005 */  beqz      $v0, .L8025182C
/* 1800F8 80251818 00000000 */   nop
/* 1800FC 8025181C 0C09451D */  jal       apply_shock_effect
/* 180100 80251820 0260202D */   daddu    $a0, $s3, $zero
/* 180104 80251824 24080001 */  addiu     $t0, $zero, 0x1
/* 180108 80251828 AFA80028 */  sw        $t0, 0x28($sp)
.L8025182C:
/* 18010C 8025182C 8E820188 */  lw        $v0, 0x188($s4)
/* 180110 80251830 30420004 */  andi      $v0, $v0, 0x4
/* 180114 80251834 1040000E */  beqz      $v0, .L80251870
/* 180118 80251838 24020018 */   addiu    $v0, $zero, 0x18
/* 18011C 8025183C C6240014 */  lwc1      $f4, 0x14($s1)
/* 180120 80251840 3C0140A0 */  lui       $at, (0x40A00000 >> 16)
/* 180124 80251844 44810000 */  mtc1      $at, $f0
/* 180128 80251848 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* 18012C 8025184C 44811000 */  mtc1      $at, $f2
/* 180130 80251850 AFA20014 */  sw        $v0, 0x14($sp)
/* 180134 80251854 46002100 */  add.s     $f4, $f4, $f0
/* 180138 80251858 E7A20010 */  swc1      $f2, 0x10($sp)
/* 18013C 8025185C 8E25000C */  lw        $a1, 0xC($s1)
/* 180140 80251860 8E260010 */  lw        $a2, 0x10($s1)
/* 180144 80251864 44072000 */  mfc1      $a3, $f4
/* 180148 80251868 0C01C70C */  jal       fx_water_splash
/* 18014C 8025186C 0000202D */   daddu    $a0, $zero, $zero
.L80251870:
/* 180150 80251870 8E820188 */  lw        $v0, 0x188($s4)
/* 180154 80251874 30420008 */  andi      $v0, $v0, 0x8
/* 180158 80251878 1040000C */  beqz      $v0, .L802518AC
/* 18015C 8025187C 0000202D */   daddu    $a0, $zero, $zero
D_80251880:
/* 180160 80251880 C6220014 */  lwc1      $f2, 0x14($s1)
/* 180164 80251884 3C0140A0 */  lui       $at, (0x40A00000 >> 16)
/* 180168 80251888 44810000 */  mtc1      $at, $f0
/* 18016C 8025188C 00000000 */  nop
/* 180170 80251890 46001080 */  add.s     $f2, $f2, $f0
/* 180174 80251894 8E25000C */  lw        $a1, 0xC($s1)
/* 180178 80251898 8E260010 */  lw        $a2, 0x10($s1)
/* 18017C 8025189C 44071000 */  mfc1      $a3, $f2
/* 180180 802518A0 24080001 */  addiu     $t0, $zero, 0x1
/* 180184 802518A4 0C01C2A4 */  jal       fx_big_snowflakes
/* 180188 802518A8 AFA8002C */   sw       $t0, 0x2C($sp)
.L802518AC:
/* 18018C 802518AC 8E850188 */  lw        $a1, 0x188($s4)
D_802518B0:
/* 180190 802518B0 3C020040 */  lui       $v0, (0x400000 >> 16)
/* 180194 802518B4 00A21024 */  and       $v0, $a1, $v0
/* 180198 802518B8 1440000F */  bnez      $v0, .L802518F8
/* 18019C 802518BC 00000000 */   nop
D_802518C0:
/* 1801A0 802518C0 8EE4007C */  lw        $a0, 0x7C($s7)
/* 1801A4 802518C4 30820020 */  andi      $v0, $a0, 0x20
/* 1801A8 802518C8 1440038B */  bnez      $v0, .L802526F8
/* 1801AC 802518CC 24020006 */   addiu    $v0, $zero, 0x6
/* 1801B0 802518D0 82630218 */  lb        $v1, 0x218($s3)
/* 1801B4 802518D4 2402000E */  addiu     $v0, $zero, 0xE
/* 1801B8 802518D8 10620005 */  beq       $v1, $v0, .L802518F0
/* 1801BC 802518DC 30820800 */   andi     $v0, $a0, 0x800
/* 1801C0 802518E0 10400005 */  beqz      $v0, .L802518F8
/* 1801C4 802518E4 30A20800 */   andi     $v0, $a1, 0x800
/* 1801C8 802518E8 14400003 */  bnez      $v0, .L802518F8
/* 1801CC 802518EC 00000000 */   nop
.L802518F0:
/* 1801D0 802518F0 080949BE */  j         .L802526F8
/* 1801D4 802518F4 24020006 */   addiu    $v0, $zero, 0x6
.L802518F8:
/* 1801D8 802518F8 82630214 */  lb        $v1, 0x214($s3)
/* 1801DC 802518FC 2402000C */  addiu     $v0, $zero, 0xC
/* 1801E0 80251900 1462001B */  bne       $v1, $v0, .L80251970
/* 1801E4 80251904 3C03000C */   lui      $v1, (0xC0000 >> 16)
/* 1801E8 80251908 C6200014 */  lwc1      $f0, 0x14($s1)
/* 1801EC 8025190C 2404010C */  addiu     $a0, $zero, 0x10C
/* 1801F0 80251910 E7A00010 */  swc1      $f0, 0x10($sp)
/* 1801F4 80251914 8E26000C */  lw        $a2, 0xC($s1)
/* 1801F8 80251918 8E270010 */  lw        $a3, 0x10($s1)
/* 1801FC 8025191C 0C052757 */  jal       sfx_play_sound_at_position
/* 180200 80251920 0000282D */   daddu    $a1, $zero, $zero
/* 180204 80251924 24020001 */  addiu     $v0, $zero, 0x1
/* 180208 80251928 AFA20010 */  sw        $v0, 0x10($sp)
/* 18020C 8025192C AFA20014 */  sw        $v0, 0x14($sp)
/* 180210 80251930 C62C000C */  lwc1      $f12, 0xC($s1)
/* 180214 80251934 C62E0010 */  lwc1      $f14, 0x10($s1)
/* 180218 80251938 8E260014 */  lw        $a2, 0x14($s1)
/* 18021C 8025193C 0C093BF8 */  jal       func_8024EFE0
/* 180220 80251940 0000382D */   daddu    $a3, $zero, $zero
/* 180224 80251944 AFA00010 */  sw        $zero, 0x10($sp)
/* 180228 80251948 C62C000C */  lwc1      $f12, 0xC($s1)
/* 18022C 8025194C C62E0010 */  lwc1      $f14, 0x10($s1)
/* 180230 80251950 8E260014 */  lw        $a2, 0x14($s1)
/* 180234 80251954 0C09996B */  jal       show_next_damage_popup
D_80251958_C0F1D8:
/* 180238 80251958 0000382D */   daddu    $a3, $zero, $zero
/* 18023C 8025195C 3C02800E */  lui       $v0, %hi(gBattleStatus)
/* 180240 80251960 8C42C070 */  lw        $v0, %lo(gBattleStatus)($v0)
/* 180244 80251964 30420240 */  andi      $v0, $v0, 0x240
/* 180248 80251968 080949BE */  j         .L802526F8
/* 18024C 8025196C 0002102B */   sltu     $v0, $zero, $v0
.L80251970:
/* 180250 80251970 8EE20080 */  lw        $v0, 0x80($s7)
/* 180254 80251974 8E840188 */  lw        $a0, 0x188($s4)
/* 180258 80251978 00441024 */  and       $v0, $v0, $a0
/* 18025C 8025197C 0002102B */  sltu      $v0, $zero, $v0
/* 180260 80251980 AFA20018 */  sw        $v0, 0x18($sp)
/* 180264 80251984 8EE2007C */  lw        $v0, 0x7C($s7)
/* 180268 80251988 00431024 */  and       $v0, $v0, $v1
/* 18026C 8025198C 10400004 */  beqz      $v0, D_802519A0_C0F220
/* 180270 80251990 3C02F7FF */   lui      $v0, (0xF7FFFFFF >> 16)
/* 180274 80251994 3442FFFF */  ori       $v0, $v0, (0xF7FFFFFF & 0xFFFF)
/* 180278 80251998 00821024 */  and       $v0, $a0, $v0
/* 18027C 8025199C AE820188 */  sw        $v0, 0x188($s4)
D_802519A0_C0F220:
/* 180280 802519A0 8EE50078 */  lw        $a1, 0x78($s7)
/* 180284 802519A4 8E860188 */  lw        $a2, 0x188($s4)
/* 180288 802519A8 0C0998AF */  jal       get_defense
/* 18028C 802519AC 0260202D */   daddu    $a0, $s3, $zero
/* 180290 802519B0 0040802D */  daddu     $s0, $v0, $zero
/* 180294 802519B4 8E820188 */  lw        $v0, 0x188($s4)
/* 180298 802519B8 3C030800 */  lui       $v1, (0x8000000 >> 16)
/* 18029C 802519BC 00431024 */  and       $v0, $v0, $v1
/* 1802A0 802519C0 14400003 */  bnez      $v0, .L802519D0
/* 1802A4 802519C4 00000000 */   nop
/* 1802A8 802519C8 82620222 */  lb        $v0, 0x222($s3)
/* 1802AC 802519CC 02028021 */  addu      $s0, $s0, $v0
.L802519D0:
/* 1802B0 802519D0 8684017E */  lh        $a0, 0x17E($s4)
/* 1802B4 802519D4 28820064 */  slti      $v0, $a0, 0x64
/* 1802B8 802519D8 50400001 */  beql      $v0, $zero, .L802519E0
/* 1802BC 802519DC 24040063 */   addiu    $a0, $zero, 0x63
.L802519E0:
/* 1802C0 802519E0 58800001 */  blezl     $a0, .L802519E8
/* 1802C4 802519E4 0000802D */   daddu    $s0, $zero, $zero
.L802519E8:
/* 1802C8 802519E8 00902023 */  subu      $a0, $a0, $s0
/* 1802CC 802519EC 1C800014 */  bgtz      $a0, .L80251A40
D_802519F0_C0F270:
/* 1802D0 802519F0 A66001FA */   sh       $zero, 0x1FA($s3)
/* 1802D4 802519F4 A66001FA */  sh        $zero, 0x1FA($s3)
/* 1802D8 802519F8 8E820188 */  lw        $v0, 0x188($s4)
/* 1802DC 802519FC 3C034000 */  lui       $v1, (0x40000000 >> 16)
/* 1802E0 80251A00 00431024 */  and       $v0, $v0, $v1
/* 1802E4 80251A04 1440000B */  bnez      $v0, .L80251A34
/* 1802E8 80251A08 241E0002 */   addiu    $fp, $zero, 0x2
/* 1802EC 80251A0C 24120017 */  addiu     $s2, $zero, 0x17
/* 1802F0 80251A10 C6200014 */  lwc1      $f0, 0x14($s1)
/* 1802F4 80251A14 2404010C */  addiu     $a0, $zero, 0x10C
/* 1802F8 80251A18 E7A00010 */  swc1      $f0, 0x10($sp)
/* 1802FC 80251A1C 8E26000C */  lw        $a2, 0xC($s1)
/* 180300 80251A20 8E270010 */  lw        $a3, 0x10($s1)
/* 180304 80251A24 0C052757 */  jal       sfx_play_sound_at_position
D_80251A28_C0F2A8:
/* 180308 80251A28 0000282D */   daddu    $a1, $zero, $zero
/* 18030C 80251A2C 080946B0 */  j         .L80251AC0
/* 180310 80251A30 A6800180 */   sh       $zero, 0x180($s4)
.L80251A34:
/* 180314 80251A34 24120017 */  addiu     $s2, $zero, 0x17
/* 180318 80251A38 080946B0 */  j         .L80251AC0
/* 18031C 80251A3C A6800180 */   sh       $zero, 0x180($s4)
.L80251A40:
/* 180320 80251A40 24120009 */  addiu     $s2, $zero, 0x9
/* 180324 80251A44 966201FC */  lhu       $v0, 0x1FC($s3)
/* 180328 80251A48 966301FA */  lhu       $v1, 0x1FA($s3)
/* 18032C 80251A4C 00441021 */  addu      $v0, $v0, $a0
D_80251A50_C0F2D0:
/* 180330 80251A50 00641823 */  subu      $v1, $v1, $a0
/* 180334 80251A54 A66201FC */  sh        $v0, 0x1FC($s3)
/* 180338 80251A58 A66301FA */  sh        $v1, 0x1FA($s3)
/* 18033C 80251A5C A6800180 */  sh        $zero, 0x180($s4)
/* 180340 80251A60 8EE20000 */  lw        $v0, 0x0($s7)
/* 180344 80251A64 30422000 */  andi      $v0, $v0, 0x2000
/* 180348 80251A68 14400010 */  bnez      $v0, dgb_01_D_80251AAC_C0F32C
/* 18034C 80251A6C 0000F02D */   daddu    $fp, $zero, $zero
/* 180350 80251A70 8FA80018 */  lw        $t0, 0x18($sp)
/* 180354 80251A74 1500000D */  bnez      $t0, dgb_01_D_80251AAC_C0F32C
dgb_01_pad_1:
/* 180358 80251A78 00000000 */   nop
/* 18035C 80251A7C 8EE20004 */  lw        $v0, 0x4($s7)
dgb_01_D_80251A80_C0F300:
/* 180360 80251A80 30420004 */  andi      $v0, $v0, 0x4
/* 180364 80251A84 14400009 */  bnez      $v0, dgb_01_D_80251AAC_C0F32C
/* 180368 80251A88 00000000 */   nop
/* 18036C 80251A8C 926201B8 */  lbu       $v0, 0x1B8($s3)
D_80251A90:
/* 180370 80251A90 00441023 */  subu      $v0, $v0, $a0
/* 180374 80251A94 A26201B8 */  sb        $v0, 0x1B8($s3)
D_80251A98:
/* 180378 80251A98 00021600 */  sll       $v0, $v0, 24
/* 18037C 80251A9C 1C400003 */  bgtz      $v0, dgb_01_D_80251AAC_C0F32C
D_80251AA0:
/* 180380 80251AA0 00000000 */   nop
/* 180384 80251AA4 A26001B8 */  sb        $zero, 0x1B8($s3)
jtbl_80251AA8:
/* 180388 80251AA8 24120020 */  addiu     $s2, $zero, 0x20
dgb_01_D_80251AAC_C0F32C:
/* 18038C 80251AAC 96820180 */  lhu       $v0, 0x180($s4)
/* 180390 80251AB0 00441021 */  addu      $v0, $v0, $a0
/* 180394 80251AB4 A6820180 */  sh        $v0, 0x180($s4)
/* 180398 80251AB8 A66201F8 */  sh        $v0, 0x1F8($s3)
/* 18039C 80251ABC A66001FA */  sh        $zero, 0x1FA($s3)
.L80251AC0:
/* 1803A0 80251AC0 8EE20000 */  lw        $v0, 0x0($s7)
/* 1803A4 80251AC4 30422000 */  andi      $v0, $v0, 0x2000
/* 1803A8 80251AC8 10400015 */  beqz      $v0, .L80251B20
/* 1803AC 80251ACC 0260202D */   daddu    $a0, $s3, $zero
/* 1803B0 80251AD0 0C09DC58 */  jal       dispatch_event_actor
/* 1803B4 80251AD4 0240282D */   daddu    $a1, $s2, $zero
dgb_01_D_80251AD8_C0F358:
/* 1803B8 80251AD8 24020001 */  addiu     $v0, $zero, 0x1
/* 1803BC 80251ADC AFA20010 */  sw        $v0, 0x10($sp)
/* 1803C0 80251AE0 24020003 */  addiu     $v0, $zero, 0x3
/* 1803C4 80251AE4 AFA20014 */  sw        $v0, 0x14($sp)
/* 1803C8 80251AE8 C62C000C */  lwc1      $f12, 0xC($s1)
/* 1803CC 80251AEC C62E0010 */  lwc1      $f14, 0x10($s1)
/* 1803D0 80251AF0 8E260014 */  lw        $a2, 0x14($s1)
/* 1803D4 80251AF4 0C093BF8 */  jal       func_8024EFE0
/* 1803D8 80251AF8 0000382D */   daddu    $a3, $zero, $zero
/* 1803DC 80251AFC C6200014 */  lwc1      $f0, 0x14($s1)
/* 1803E0 80251B00 2404010C */  addiu     $a0, $zero, 0x10C
dgb_01_D_80251B04_C0F384:
/* 1803E4 80251B04 E7A00010 */  swc1      $f0, 0x10($sp)
/* 1803E8 80251B08 8E26000C */  lw        $a2, 0xC($s1)
/* 1803EC 80251B0C 8E270010 */  lw        $a3, 0x10($s1)
/* 1803F0 80251B10 0C052757 */  jal       sfx_play_sound_at_position
/* 1803F4 80251B14 0000282D */   daddu    $a1, $zero, $zero
/* 1803F8 80251B18 080949BE */  j         .L802526F8
/* 1803FC 80251B1C 24020002 */   addiu    $v0, $zero, 0x2
.L80251B20:
/* 180400 80251B20 8E820188 */  lw        $v0, 0x188($s4)
/* 180404 80251B24 30422000 */  andi      $v0, $v0, 0x2000
/* 180408 80251B28 10400004 */  beqz      $v0, .L80251B3C
/* 18040C 80251B2C 00000000 */   nop
dgb_01_D_80251B30_C0F3B0:
/* 180410 80251B30 A6800180 */  sh        $zero, 0x180($s4)
/* 180414 80251B34 24120020 */  addiu     $s2, $zero, 0x20
/* 180418 80251B38 0000F02D */  daddu     $fp, $zero, $zero
.L80251B3C:
/* 18041C 80251B3C 3C02800E */  lui       $v0, %hi(gBattleStatus)
/* 180420 80251B40 8C42C070 */  lw        $v0, %lo(gBattleStatus)($v0)
/* 180424 80251B44 30420020 */  andi      $v0, $v0, 0x20
/* 180428 80251B48 1040000D */  beqz      $v0, .L80251B80
/* 18042C 80251B4C 24020009 */   addiu    $v0, $zero, 0x9
/* 180430 80251B50 52420001 */  beql      $s2, $v0, .L80251B58
/* 180434 80251B54 2412000A */   addiu    $s2, $zero, 0xA
.L80251B58:
/* 180438 80251B58 24020017 */  addiu     $v0, $zero, 0x17
dgb_01_D_80251B5C_C0F3DC:
/* 18043C 80251B5C 52420001 */  beql      $s2, $v0, .L80251B64
/* 180440 80251B60 24120019 */   addiu    $s2, $zero, 0x19
.L80251B64:
/* 180444 80251B64 826201B8 */  lb        $v0, 0x1B8($s3)
/* 180448 80251B68 1C400008 */  bgtz      $v0, .L80251B8C
/* 18044C 80251B6C 24020019 */   addiu    $v0, $zero, 0x19
/* 180450 80251B70 52420006 */  beql      $s2, $v0, .L80251B8C
/* 180454 80251B74 24120020 */   addiu    $s2, $zero, 0x20
/* 180458 80251B78 080946E3 */  j         .L80251B8C
/* 18045C 80251B7C 00000000 */   nop
.L80251B80:
/* 180460 80251B80 24020020 */  addiu     $v0, $zero, 0x20
/* 180464 80251B84 52420001 */  beql      $s2, $v0, .L80251B8C
dgb_01_D_80251B88_C0F408:
/* 180468 80251B88 24120009 */   addiu    $s2, $zero, 0x9
.L80251B8C:
/* 18046C 80251B8C 3C02800E */  lui       $v0, %hi(gBattleStatus)
/* 180470 80251B90 8C42C070 */  lw        $v0, %lo(gBattleStatus)($v0)
/* 180474 80251B94 30420020 */  andi      $v0, $v0, 0x20
/* 180478 80251B98 10400014 */  beqz      $v0, .L80251BEC
/* 18047C 80251B9C 3C040040 */   lui      $a0, (0x400000 >> 16)
/* 180480 80251BA0 8E820188 */  lw        $v0, 0x188($s4)
/* 180484 80251BA4 00441024 */  and       $v0, $v0, $a0
/* 180488 80251BA8 10400039 */  beqz      $v0, dgb_01_D_80251C90_C0F510
/* 18048C 80251BAC 3C020004 */   lui      $v0, (0x40000 >> 16)
/* 180490 80251BB0 8EE3007C */  lw        $v1, 0x7C($s7)
dgb_01_D_80251BB4_C0F434:
/* 180494 80251BB4 00621024 */  and       $v0, $v1, $v0
/* 180498 80251BB8 10400003 */  beqz      $v0, .L80251BC8
/* 18049C 80251BBC 24120019 */   addiu    $s2, $zero, 0x19
/* 1804A0 80251BC0 24120013 */  addiu     $s2, $zero, 0x13
/* 1804A4 80251BC4 24150001 */  addiu     $s5, $zero, 0x1
.L80251BC8:
/* 1804A8 80251BC8 00641024 */  and       $v0, $v1, $a0
/* 1804AC 80251BCC 10400003 */  beqz      $v0, .L80251BDC
/* 1804B0 80251BD0 3C020008 */   lui      $v0, (0x80000 >> 16)
/* 1804B4 80251BD4 24120013 */  addiu     $s2, $zero, 0x13
/* 1804B8 80251BD8 24150001 */  addiu     $s5, $zero, 0x1
.L80251BDC:
/* 1804BC 80251BDC 00621024 */  and       $v0, $v1, $v0
dgb_01_D_80251BE0_C0F460:
/* 1804C0 80251BE0 54400001 */  bnel      $v0, $zero, .L80251BE8
/* 1804C4 80251BE4 2412001D */   addiu    $s2, $zero, 0x1D
.L80251BE8:
/* 1804C8 80251BE8 0000F02D */  daddu     $fp, $zero, $zero
.L80251BEC:
/* 1804CC 80251BEC 8E820188 */  lw        $v0, 0x188($s4)
/* 1804D0 80251BF0 3C030040 */  lui       $v1, (0x400000 >> 16)
/* 1804D4 80251BF4 00431024 */  and       $v0, $v0, $v1
/* 1804D8 80251BF8 10400025 */  beqz      $v0, dgb_01_D_80251C90_C0F510
/* 1804DC 80251BFC 00000000 */   nop
/* 1804E0 80251C00 3C02800E */  lui       $v0, %hi(gBattleStatus)
/* 1804E4 80251C04 8C42C070 */  lw        $v0, %lo(gBattleStatus)($v0)
/* 1804E8 80251C08 30420020 */  andi      $v0, $v0, 0x20
dgb_01_D_80251C0C_C0F48C:
/* 1804EC 80251C0C 104000F4 */  beqz      $v0, .L80251FE0
/* 1804F0 80251C10 00000000 */   nop
/* 1804F4 80251C14 82620221 */  lb        $v0, 0x221($s3)
/* 1804F8 80251C18 1C40000A */  bgtz      $v0, .L80251C44
/* 1804FC 80251C1C 00000000 */   nop
/* 180500 80251C20 82620222 */  lb        $v0, 0x222($s3)
/* 180504 80251C24 1C400007 */  bgtz      $v0, .L80251C44
/* 180508 80251C28 00000000 */   nop
/* 18050C 80251C2C 82620212 */  lb        $v0, 0x212($s3)
/* 180510 80251C30 54400006 */  bnel      $v0, $zero, .L80251C4C
/* 180514 80251C34 2412000A */   addiu    $s2, $zero, 0xA
dgb_01_D_80251C38_C0F4B8:
/* 180518 80251C38 82620218 */  lb        $v0, 0x218($s3)
/* 18051C 80251C3C 10400014 */  beqz      $v0, dgb_01_D_80251C90_C0F510
nok_01_Quizmo_Worker:
/* 180520 80251C40 00000000 */   nop
.L80251C44:
/* 180524 80251C44 82620212 */  lb        $v0, 0x212($s3)
/* 180528 80251C48 2412000A */  addiu     $s2, $zero, 0xA
.L80251C4C:
/* 18052C 80251C4C A2600221 */  sb        $zero, 0x221($s3)
/* 180530 80251C50 A2600222 */  sb        $zero, 0x222($s3)
/* 180534 80251C54 10400005 */  beqz      $v0, .L80251C6C
nok_01_Quizmo_AnswerResult:
/* 180538 80251C58 A2600220 */   sb       $zero, 0x220($s3)
/* 18053C 80251C5C 86640436 */  lh        $a0, 0x436($s3)
nok_01_Quizmo_StageEffect:
/* 180540 80251C60 A2600212 */  sb        $zero, 0x212($s3)
dgb_01_D_80251C64_C0F4E4:
/* 180544 80251C64 0C011E68 */  jal       remove_status_static
nok_01_Quizmo_VannaTEffect:
/* 180548 80251C68 A2600213 */   sb       $zero, 0x213($s3)
.L80251C6C:
/* 18054C 80251C6C 82620218 */  lb        $v0, 0x218($s3)
nok_01_D_80251C70:
/* 180550 80251C70 10400006 */  beqz      $v0, .L80251C8C
/* 180554 80251C74 24150001 */   addiu    $s5, $zero, 0x1
/* 180558 80251C78 86640436 */  lh        $a0, 0x436($s3)
/* 18055C 80251C7C A2600218 */  sb        $zero, 0x218($s3)
/* 180560 80251C80 0C011EAA */  jal       remove_status_transparent
/* 180564 80251C84 A2600219 */   sb       $zero, 0x219($s3)
/* 180568 80251C88 24150001 */  addiu     $s5, $zero, 0x1
.L80251C8C:
/* 18056C 80251C8C 0000F02D */  daddu     $fp, $zero, $zero
dgb_01_D_80251C90_C0F510:
/* 180570 80251C90 3C02800E */  lui       $v0, %hi(gBattleStatus)
/* 180574 80251C94 8C42C070 */  lw        $v0, %lo(gBattleStatus)($v0)
/* 180578 80251C98 30420020 */  andi      $v0, $v0, 0x20
/* 18057C 80251C9C 104000D0 */  beqz      $v0, .L80251FE0
/* 180580 80251CA0 3C030080 */   lui      $v1, (0x800000 >> 16)
/* 180584 80251CA4 8E820188 */  lw        $v0, 0x188($s4)
/* 180588 80251CA8 00431024 */  and       $v0, $v0, $v1
/* 18058C 80251CAC 1040000D */  beqz      $v0, .L80251CE4
/* 180590 80251CB0 3C020004 */   lui      $v0, (0x40000 >> 16)
/* 180594 80251CB4 8EE3007C */  lw        $v1, 0x7C($s7)
/* 180598 80251CB8 00621024 */  and       $v0, $v1, $v0
dgb_01_D_80251CBC_C0F53C:
/* 18059C 80251CBC 10400003 */  beqz      $v0, .L80251CCC
/* 1805A0 80251CC0 24120019 */   addiu    $s2, $zero, 0x19
/* 1805A4 80251CC4 24120014 */  addiu     $s2, $zero, 0x14
/* 1805A8 80251CC8 24150001 */  addiu     $s5, $zero, 0x1
.L80251CCC:
/* 1805AC 80251CCC 3C020008 */  lui       $v0, (0x80000 >> 16)
/* 1805B0 80251CD0 00621024 */  and       $v0, $v1, $v0
/* 1805B4 80251CD4 10400003 */  beqz      $v0, .L80251CE4
/* 1805B8 80251CD8 00000000 */   nop
/* 1805BC 80251CDC 24120014 */  addiu     $s2, $zero, 0x14
/* 1805C0 80251CE0 24150001 */  addiu     $s5, $zero, 0x1
.L80251CE4:
/* 1805C4 80251CE4 3C02800E */  lui       $v0, %hi(gBattleStatus)
dgb_01_D_80251CE8_C0F568:
/* 1805C8 80251CE8 8C42C070 */  lw        $v0, %lo(gBattleStatus)($v0)
/* 1805CC 80251CEC 30420020 */  andi      $v0, $v0, 0x20
D_80251CF0:
/* 1805D0 80251CF0 104000BB */  beqz      $v0, .L80251FE0
/* 1805D4 80251CF4 3C030400 */   lui      $v1, (0x4000000 >> 16)
/* 1805D8 80251CF8 8E820188 */  lw        $v0, 0x188($s4)
/* 1805DC 80251CFC 00431024 */  and       $v0, $v0, $v1
/* 1805E0 80251D00 10400006 */  beqz      $v0, .L80251D1C
/* 1805E4 80251D04 2402000A */   addiu    $v0, $zero, 0xA
/* 1805E8 80251D08 52420001 */  beql      $s2, $v0, .L80251D10
/* 1805EC 80251D0C 2412000B */   addiu    $s2, $zero, 0xB
.L80251D10:
/* 1805F0 80251D10 24020020 */  addiu     $v0, $zero, 0x20
dgb_01_D_80251D14_C0F594:
/* 1805F4 80251D14 52420001 */  beql      $s2, $v0, .L80251D1C
/* 1805F8 80251D18 24120021 */   addiu    $s2, $zero, 0x21
.L80251D1C:
/* 1805FC 80251D1C 3C02800E */  lui       $v0, %hi(gBattleStatus)
/* 180600 80251D20 8C42C070 */  lw        $v0, %lo(gBattleStatus)($v0)
/* 180604 80251D24 30420020 */  andi      $v0, $v0, 0x20
/* 180608 80251D28 104000AD */  beqz      $v0, .L80251FE0
/* 18060C 80251D2C 00000000 */   nop
/* 180610 80251D30 8E820188 */  lw        $v0, 0x188($s4)
/* 180614 80251D34 30420480 */  andi      $v0, $v0, 0x480
/* 180618 80251D38 1040000A */  beqz      $v0, .L80251D64
/* 18061C 80251D3C 00000000 */   nop
dgb_01_D_80251D40_C0F5C0:
/* 180620 80251D40 8EE2007C */  lw        $v0, 0x7C($s7)
/* 180624 80251D44 30424000 */  andi      $v0, $v0, 0x4000
/* 180628 80251D48 10400006 */  beqz      $v0, .L80251D64
/* 18062C 80251D4C 2402000A */   addiu    $v0, $zero, 0xA
/* 180630 80251D50 52420001 */  beql      $s2, $v0, .L80251D58
/* 180634 80251D54 2412000C */   addiu    $s2, $zero, 0xC
.L80251D58:
/* 180638 80251D58 24020019 */  addiu     $v0, $zero, 0x19
/* 18063C 80251D5C 52420001 */  beql      $s2, $v0, .L80251D64
/* 180640 80251D60 2412000C */   addiu    $s2, $zero, 0xC
.L80251D64:
/* 180644 80251D64 3C02800E */  lui       $v0, %hi(gBattleStatus)
/* 180648 80251D68 8C42C070 */  lw        $v0, %lo(gBattleStatus)($v0)
dgb_01_D_80251D6C_C0F5EC:
/* 18064C 80251D6C 30420020 */  andi      $v0, $v0, 0x20
/* 180650 80251D70 1040009B */  beqz      $v0, .L80251FE0
/* 180654 80251D74 00000000 */   nop
/* 180658 80251D78 8E820188 */  lw        $v0, 0x188($s4)
/* 18065C 80251D7C 30420400 */  andi      $v0, $v0, 0x400
/* 180660 80251D80 1040000A */  beqz      $v0, .L80251DAC
/* 180664 80251D84 3C030080 */   lui      $v1, (0x800000 >> 16)
/* 180668 80251D88 8EE2007C */  lw        $v0, 0x7C($s7)
/* 18066C 80251D8C 00431024 */  and       $v0, $v0, $v1
/* 180670 80251D90 10400006 */  beqz      $v0, .L80251DAC
/* 180674 80251D94 2402000A */   addiu    $v0, $zero, 0xA
dgb_01_D_80251D98_C0F618:
/* 180678 80251D98 52420001 */  beql      $s2, $v0, .L80251DA0
/* 18067C 80251D9C 2412000C */   addiu    $s2, $zero, 0xC
.L80251DA0:
/* 180680 80251DA0 24020019 */  addiu     $v0, $zero, 0x19
/* 180684 80251DA4 52420001 */  beql      $s2, $v0, .L80251DAC
/* 180688 80251DA8 2412000C */   addiu    $s2, $zero, 0xC
.L80251DAC:
/* 18068C 80251DAC 3C02800E */  lui       $v0, %hi(gBattleStatus)
/* 180690 80251DB0 8C42C070 */  lw        $v0, %lo(gBattleStatus)($v0)
/* 180694 80251DB4 30420020 */  andi      $v0, $v0, 0x20
/* 180698 80251DB8 10400089 */  beqz      $v0, .L80251FE0
/* 18069C 80251DBC 00000000 */   nop
/* 1806A0 80251DC0 8E820188 */  lw        $v0, 0x188($s4)
dgb_01_D_80251DC4_C0F644:
/* 1806A4 80251DC4 30420C80 */  andi      $v0, $v0, 0xC80
/* 1806A8 80251DC8 1040000A */  beqz      $v0, .L80251DF4
/* 1806AC 80251DCC 00000000 */   nop
/* 1806B0 80251DD0 8EE2007C */  lw        $v0, 0x7C($s7)
/* 1806B4 80251DD4 30421000 */  andi      $v0, $v0, 0x1000
/* 1806B8 80251DD8 10400006 */  beqz      $v0, .L80251DF4
/* 1806BC 80251DDC 2402000A */   addiu    $v0, $zero, 0xA
/* 1806C0 80251DE0 52420001 */  beql      $s2, $v0, .L80251DE8
/* 1806C4 80251DE4 2412000D */   addiu    $s2, $zero, 0xD
.L80251DE8:
/* 1806C8 80251DE8 24020019 */  addiu     $v0, $zero, 0x19
/* 1806CC 80251DEC 52420001 */  beql      $s2, $v0, .L80251DF4
dgb_01_D_80251DF0_C0F670:
/* 1806D0 80251DF0 2412000D */   addiu    $s2, $zero, 0xD
.L80251DF4:
/* 1806D4 80251DF4 3C02800E */  lui       $v0, %hi(gBattleStatus)
/* 1806D8 80251DF8 8C42C070 */  lw        $v0, %lo(gBattleStatus)($v0)
/* 1806DC 80251DFC 30420020 */  andi      $v0, $v0, 0x20
/* 1806E0 80251E00 10400077 */  beqz      $v0, .L80251FE0
/* 1806E4 80251E04 00000000 */   nop
D_80251E08:
/* 1806E8 80251E08 8E820188 */  lw        $v0, 0x188($s4)
/* 1806EC 80251E0C 30420002 */  andi      $v0, $v0, 0x2
/* 1806F0 80251E10 10400008 */  beqz      $v0, D_80251E34
/* 1806F4 80251E14 2402000A */   addiu    $v0, $zero, 0xA
/* 1806F8 80251E18 52420001 */  beql      $s2, $v0, .L80251E20
dgb_01_D_80251E1C_C0F69C:
/* 1806FC 80251E1C 2412000E */   addiu    $s2, $zero, 0xE
.L80251E20:
/* 180700 80251E20 24020020 */  addiu     $v0, $zero, 0x20
/* 180704 80251E24 52420001 */  beql      $s2, $v0, .L80251E2C
/* 180708 80251E28 24120024 */   addiu    $s2, $zero, 0x24
.L80251E2C:
/* 18070C 80251E2C 24080001 */  addiu     $t0, $zero, 0x1
/* 180710 80251E30 AFA80024 */  sw        $t0, 0x24($sp)
D_80251E34:
/* 180714 80251E34 3C02800E */  lui       $v0, %hi(gBattleStatus)
/* 180718 80251E38 8C42C070 */  lw        $v0, %lo(gBattleStatus)($v0)
/* 18071C 80251E3C 30420020 */  andi      $v0, $v0, 0x20
/* 180720 80251E40 10400067 */  beqz      $v0, .L80251FE0
/* 180724 80251E44 00000000 */   nop
dgb_01_D_80251E48_C0F6C8:
/* 180728 80251E48 86820180 */  lh        $v0, 0x180($s4)
/* 18072C 80251E4C 04400064 */  bltz      $v0, .L80251FE0
/* 180730 80251E50 24020020 */   addiu    $v0, $zero, 0x20
/* 180734 80251E54 12420062 */  beq       $s2, $v0, .L80251FE0
/* 180738 80251E58 24020021 */   addiu    $v0, $zero, 0x21
/* 18073C 80251E5C 12420060 */  beq       $s2, $v0, .L80251FE0
/* 180740 80251E60 24020022 */   addiu    $v0, $zero, 0x22
/* 180744 80251E64 1242005E */  beq       $s2, $v0, .L80251FE0
/* 180748 80251E68 3C030008 */   lui      $v1, (0x80000 >> 16)
/* 18074C 80251E6C 8E820190 */  lw        $v0, 0x190($s4)
/* 180750 80251E70 00431024 */  and       $v0, $v0, $v1
dgb_01_D_80251E74_C0F6F4:
/* 180754 80251E74 10400006 */  beqz      $v0, .L80251E90
D_80251E78:
/* 180758 80251E78 0260202D */   daddu    $a0, $s3, $zero
/* 18075C 80251E7C 2405000A */  addiu     $a1, $zero, 0xA
/* 180760 80251E80 0C099ADE */  jal       try_inflict_status
D_80251E84:
/* 180764 80251E84 24060027 */   addiu    $a2, $zero, 0x27
/* 180768 80251E88 54400001 */  bnel      $v0, $zero, .L80251E90
/* 18076C 80251E8C 24150001 */   addiu    $s5, $zero, 0x1
.L80251E90:
/* 180770 80251E90 8E820190 */  lw        $v0, 0x190($s4)
/* 180774 80251E94 3C030002 */  lui       $v1, (0x20000 >> 16)
/* 180778 80251E98 00431024 */  and       $v0, $v0, $v1
/* 18077C 80251E9C 10400006 */  beqz      $v0, .L80251EB8
dgb_01_D_80251EA0_C0F720:
/* 180780 80251EA0 0260202D */   daddu    $a0, $s3, $zero
/* 180784 80251EA4 24050009 */  addiu     $a1, $zero, 0x9
/* 180788 80251EA8 0C099ADE */  jal       try_inflict_status
/* 18078C 80251EAC 24060025 */   addiu    $a2, $zero, 0x25
/* 180790 80251EB0 54400001 */  bnel      $v0, $zero, .L80251EB8
/* 180794 80251EB4 24150001 */   addiu    $s5, $zero, 0x1
.L80251EB8:
/* 180798 80251EB8 8E820190 */  lw        $v0, 0x190($s4)
/* 18079C 80251EBC 3C030010 */  lui       $v1, (0x100000 >> 16)
/* 1807A0 80251EC0 00431024 */  and       $v0, $v0, $v1
/* 1807A4 80251EC4 10400006 */  beqz      $v0, .L80251EE0
/* 1807A8 80251EC8 0260202D */   daddu    $a0, $s3, $zero
dgb_01_D_80251ECC_C0F74C:
/* 1807AC 80251ECC 2405000C */  addiu     $a1, $zero, 0xC
/* 1807B0 80251ED0 0C099ADE */  jal       try_inflict_status
/* 1807B4 80251ED4 24060028 */   addiu    $a2, $zero, 0x28
/* 1807B8 80251ED8 54400001 */  bnel      $v0, $zero, .L80251EE0
/* 1807BC 80251EDC 24150001 */   addiu    $s5, $zero, 0x1
.L80251EE0:
/* 1807C0 80251EE0 8E820190 */  lw        $v0, 0x190($s4)
/* 1807C4 80251EE4 30421000 */  andi      $v0, $v0, 0x1000
/* 1807C8 80251EE8 10400006 */  beqz      $v0, .L80251F04
/* 1807CC 80251EEC 0260202D */   daddu    $a0, $s3, $zero
/* 1807D0 80251EF0 24050006 */  addiu     $a1, $zero, 0x6
/* 1807D4 80251EF4 0C099ADE */  jal       try_inflict_status
dgb_01_D_80251EF8_C0F778:
/* 1807D8 80251EF8 24060020 */   addiu    $a2, $zero, 0x20
/* 1807DC 80251EFC 54400001 */  bnel      $v0, $zero, .L80251F04
/* 1807E0 80251F00 24150001 */   addiu    $s5, $zero, 0x1
.L80251F04:
/* 1807E4 80251F04 8E820190 */  lw        $v0, 0x190($s4)
/* 1807E8 80251F08 3C030020 */  lui       $v1, (0x200000 >> 16)
/* 1807EC 80251F0C 00431024 */  and       $v0, $v0, $v1
/* 1807F0 80251F10 10400006 */  beqz      $v0, .L80251F2C
/* 1807F4 80251F14 0260202D */   daddu    $a0, $s3, $zero
/* 1807F8 80251F18 24050008 */  addiu     $a1, $zero, 0x8
/* 1807FC 80251F1C 0C099ADE */  jal       try_inflict_status
/* 180800 80251F20 24060029 */   addiu    $a2, $zero, 0x29
dgb_01_D_80251F24_C0F7A4:
/* 180804 80251F24 54400001 */  bnel      $v0, $zero, .L80251F2C
/* 180808 80251F28 24150001 */   addiu    $s5, $zero, 0x1
.L80251F2C:
/* 18080C 80251F2C 8E820190 */  lw        $v0, 0x190($s4)
/* 180810 80251F30 30422000 */  andi      $v0, $v0, 0x2000
/* 180814 80251F34 10400006 */  beqz      $v0, dgb_01_D_80251F50_C0F7D0
/* 180818 80251F38 0260202D */   daddu    $a0, $s3, $zero
/* 18081C 80251F3C 2405000B */  addiu     $a1, $zero, 0xB
/* 180820 80251F40 0C099ADE */  jal       try_inflict_status
/* 180824 80251F44 24060021 */   addiu    $a2, $zero, 0x21
/* 180828 80251F48 54400001 */  bnel      $v0, $zero, dgb_01_D_80251F50_C0F7D0
/* 18082C 80251F4C 24150001 */   addiu    $s5, $zero, 0x1
dgb_01_D_80251F50_C0F7D0:
/* 180830 80251F50 8E820190 */  lw        $v0, 0x190($s4)
/* 180834 80251F54 30428000 */  andi      $v0, $v0, 0x8000
/* 180838 80251F58 10400006 */  beqz      $v0, .L80251F74
/* 18083C 80251F5C 0260202D */   daddu    $a0, $s3, $zero
/* 180840 80251F60 24050003 */  addiu     $a1, $zero, 0x3
/* 180844 80251F64 0C099ADE */  jal       try_inflict_status
D_80251F68:
/* 180848 80251F68 24060023 */   addiu    $a2, $zero, 0x23
/* 18084C 80251F6C 54400001 */  bnel      $v0, $zero, .L80251F74
/* 180850 80251F70 24150001 */   addiu    $s5, $zero, 0x1
.L80251F74:
/* 180854 80251F74 8E820190 */  lw        $v0, 0x190($s4)
/* 180858 80251F78 3C030001 */  lui       $v1, (0x10000 >> 16)
dgb_01_D_80251F7C_C0F7FC:
/* 18085C 80251F7C 00431024 */  and       $v0, $v0, $v1
/* 180860 80251F80 10400006 */  beqz      $v0, .L80251F9C
/* 180864 80251F84 0260202D */   daddu    $a0, $s3, $zero
/* 180868 80251F88 24050005 */  addiu     $a1, $zero, 0x5
/* 18086C 80251F8C 0C099ADE */  jal       try_inflict_status
/* 180870 80251F90 24060026 */   addiu    $a2, $zero, 0x26
/* 180874 80251F94 54400001 */  bnel      $v0, $zero, .L80251F9C
/* 180878 80251F98 24150001 */   addiu    $s5, $zero, 0x1
.L80251F9C:
/* 18087C 80251F9C 8E820190 */  lw        $v0, 0x190($s4)
/* 180880 80251FA0 3C030004 */  lui       $v1, (0x40000 >> 16)
/* 180884 80251FA4 00431024 */  and       $v0, $v0, $v1
dgb_01_D_80251FA8_C0F828:
/* 180888 80251FA8 10400006 */  beqz      $v0, .L80251FC4
/* 18088C 80251FAC 0260202D */   daddu    $a0, $s3, $zero
/* 180890 80251FB0 24050004 */  addiu     $a1, $zero, 0x4
/* 180894 80251FB4 0C099ADE */  jal       try_inflict_status
/* 180898 80251FB8 24060024 */   addiu    $a2, $zero, 0x24
/* 18089C 80251FBC 54400001 */  bnel      $v0, $zero, .L80251FC4
/* 1808A0 80251FC0 24150001 */   addiu    $s5, $zero, 0x1
.L80251FC4:
/* 1808A4 80251FC4 12A00006 */  beqz      $s5, .L80251FE0
/* 1808A8 80251FC8 24020017 */   addiu    $v0, $zero, 0x17
/* 1808AC 80251FCC 52420001 */  beql      $s2, $v0, dgb_01_D_80251FD4_C0F854
/* 1808B0 80251FD0 24120009 */   addiu    $s2, $zero, 0x9
dgb_01_D_80251FD4_C0F854:
/* 1808B4 80251FD4 24020019 */  addiu     $v0, $zero, 0x19
/* 1808B8 80251FD8 52420001 */  beql      $s2, $v0, .L80251FE0
/* 1808BC 80251FDC 2412000A */   addiu    $s2, $zero, 0xA
.L80251FE0:
/* 1808C0 80251FE0 8E620008 */  lw        $v0, 0x8($s3)
/* 1808C4 80251FE4 92830194 */  lbu       $v1, 0x194($s4)
/* 1808C8 80251FE8 9050001B */  lbu       $s0, 0x1B($v0)
/* 1808CC 80251FEC 00700018 */  mult      $v1, $s0
/* 1808D0 80251FF0 00001812 */  mflo      $v1
/* 1808D4 80251FF4 3C0251EB */  lui       $v0, (0x51EB851F >> 16)
/* 1808D8 80251FF8 3442851F */  ori       $v0, $v0, (0x51EB851F & 0xFFFF)
/* 1808DC 80251FFC 00620018 */  mult      $v1, $v0
dgb_01_D_80252000_C0F880:
/* 1808E0 80252000 3C16800E */  lui       $s6, %hi(gBattleStatus)
/* 1808E4 80252004 26D6C070 */  addiu     $s6, $s6, %lo(gBattleStatus)
/* 1808E8 80252008 8EC20000 */  lw        $v0, 0x0($s6)
/* 1808EC 8025200C 00031FC3 */  sra       $v1, $v1, 31
/* 1808F0 80252010 30420020 */  andi      $v0, $v0, 0x20
/* 1808F4 80252014 00004810 */  mfhi      $t1
/* 1808F8 80252018 00092143 */  sra       $a0, $t1, 5
/* 1808FC 8025201C 10400027 */  beqz      $v0, .L802520BC
/* 180900 80252020 00838023 */   subu     $s0, $a0, $v1
/* 180904 80252024 8E820188 */  lw        $v0, 0x188($s4)
/* 180908 80252028 30421000 */  andi      $v0, $v0, 0x1000
dgb_01_D_8025202C_C0F8AC:
/* 18090C 8025202C 50400024 */  beql      $v0, $zero, .L802520C0
/* 180910 80252030 A2950199 */   sb       $s5, 0x199($s4)
/* 180914 80252034 0C00A67F */  jal       rand_int
/* 180918 80252038 24040063 */   addiu    $a0, $zero, 0x63
/* 18091C 8025203C 0050102A */  slt       $v0, $v0, $s0
/* 180920 80252040 1040001D */  beqz      $v0, .L802520B8
/* 180924 80252044 24120019 */   addiu    $s2, $zero, 0x19
/* 180928 80252048 92620210 */  lbu       $v0, 0x210($s3)
/* 18092C 8025204C 2442FFFD */  addiu     $v0, $v0, -0x3
/* 180930 80252050 2C420006 */  sltiu     $v0, $v0, 0x6
/* 180934 80252054 14400019 */  bnez      $v0, .L802520BC
dgb_01_D_80252058_C0F8D8:
/* 180938 80252058 241E0002 */   addiu    $fp, $zero, 0x2
/* 18093C 8025205C 8E620000 */  lw        $v0, 0x0($s3)
/* 180940 80252060 30420400 */  andi      $v0, $v0, 0x400
/* 180944 80252064 14400015 */  bnez      $v0, .L802520BC
/* 180948 80252068 00000000 */   nop
/* 18094C 8025206C 24120039 */  addiu     $s2, $zero, 0x39
/* 180950 80252070 0000F02D */  daddu     $fp, $zero, $zero
/* 180954 80252074 8EC20000 */  lw        $v0, 0x0($s6)
/* 180958 80252078 24080001 */  addiu     $t0, $zero, 0x1
/* 18095C 8025207C AFA8001C */  sw        $t0, 0x1C($sp)
/* 180960 80252080 00521025 */  or        $v0, $v0, $s2
dgb_01_D_80252084_C0F904:
/* 180964 80252084 AEC20000 */  sw        $v0, 0x0($s6)
/* 180968 80252088 C6200014 */  lwc1      $f0, 0x14($s1)
/* 18096C 8025208C 24040231 */  addiu     $a0, $zero, 0x231
/* 180970 80252090 E7A00010 */  swc1      $f0, 0x10($sp)
/* 180974 80252094 8E26000C */  lw        $a2, 0xC($s1)
/* 180978 80252098 8E270010 */  lw        $a3, 0x10($s1)
/* 18097C 8025209C 0C052757 */  jal       sfx_play_sound_at_position
/* 180980 802520A0 03C0282D */   daddu    $a1, $fp, $zero
/* 180984 802520A4 8EC20000 */  lw        $v0, 0x0($s6)
/* 180988 802520A8 24150001 */  addiu     $s5, $zero, 0x1
/* 18098C 802520AC 34420040 */  ori       $v0, $v0, 0x40
dgb_01_D_802520B0_C0F930:
/* 180990 802520B0 0809482F */  j         .L802520BC
/* 180994 802520B4 AEC20000 */   sw       $v0, 0x0($s6)
.L802520B8:
/* 180998 802520B8 241E0002 */  addiu     $fp, $zero, 0x2
.L802520BC:
/* 18099C 802520BC A2950199 */  sb        $s5, 0x199($s4)
.L802520C0:
/* 1809A0 802520C0 8FA8001C */  lw        $t0, 0x1C($sp)
/* 1809A4 802520C4 11000006 */  beqz      $t0, .L802520E0
/* 1809A8 802520C8 00000000 */   nop
/* 1809AC 802520CC 3C02800E */  lui       $v0, %hi(gBattleStatus)
/* 1809B0 802520D0 8C42C070 */  lw        $v0, %lo(gBattleStatus)($v0)
/* 1809B4 802520D4 30420240 */  andi      $v0, $v0, 0x240
D_802520D8:
/* 1809B8 802520D8 14400008 */  bnez      $v0, .L802520FC
dgb_01_D_802520DC_C0F95C:
/* 1809BC 802520DC 00000000 */   nop
.L802520E0:
/* 1809C0 802520E0 3C03800E */  lui       $v1, %hi(gBattleStatus)
/* 1809C4 802520E4 8C63C070 */  lw        $v1, %lo(gBattleStatus)($v1)
/* 1809C8 802520E8 30620240 */  andi      $v0, $v1, 0x240
/* 1809CC 802520EC 10400027 */  beqz      $v0, dgb_01_D_8025218C_C0FA0C
/* 1809D0 802520F0 30620080 */   andi     $v0, $v1, 0x80
/* 1809D4 802520F4 14400025 */  bnez      $v0, dgb_01_D_8025218C_C0FA0C
/* 1809D8 802520F8 00000000 */   nop
.L802520FC:
/* 1809DC 802520FC 86820180 */  lh        $v0, 0x180($s4)
/* 1809E0 80252100 1840000B */  blez      $v0, .L80252130
/* 1809E4 80252104 00000000 */   nop
dgb_01_D_80252108_C0F988:
/* 1809E8 80252108 C6200014 */  lwc1      $f0, 0x14($s1)
/* 1809EC 8025210C 24040231 */  addiu     $a0, $zero, 0x231
/* 1809F0 80252110 E7A00010 */  swc1      $f0, 0x10($sp)
/* 1809F4 80252114 8E26000C */  lw        $a2, 0xC($s1)
/* 1809F8 80252118 8E270010 */  lw        $a3, 0x10($s1)
/* 1809FC 8025211C 0C052757 */  jal       sfx_play_sound_at_position
/* 180A00 80252120 0000282D */   daddu    $a1, $zero, $zero
/* 180A04 80252124 86820180 */  lh        $v0, 0x180($s4)
/* 180A08 80252128 1C400009 */  bgtz      $v0, .L80252150
/* 180A0C 8025212C 00000000 */   nop
.L80252130:
/* 180A10 80252130 8E820188 */  lw        $v0, 0x188($s4)
dgb_01_D_80252134_C0F9B4:
/* 180A14 80252134 3C034000 */  lui       $v1, (0x40000000 >> 16)
/* 180A18 80252138 00431024 */  and       $v0, $v0, $v1
/* 180A1C 8025213C 10400013 */  beqz      $v0, dgb_01_D_8025218C_C0FA0C
/* 180A20 80252140 00000000 */   nop
/* 180A24 80252144 8FA8001C */  lw        $t0, 0x1C($sp)
D_80252148:
/* 180A28 80252148 11000010 */  beqz      $t0, dgb_01_D_8025218C_C0FA0C
/* 180A2C 8025214C 00000000 */   nop
.L80252150:
/* 180A30 80252150 3C02800E */  lui       $v0, %hi(gBattleStatus)
/* 180A34 80252154 8C42C070 */  lw        $v0, %lo(gBattleStatus)($v0)
/* 180A38 80252158 30420040 */  andi      $v0, $v0, 0x40
/* 180A3C 8025215C 10400004 */  beqz      $v0, .L80252170
dgb_01_D_80252160_C0F9E0:
/* 180A40 80252160 0000202D */   daddu    $a0, $zero, $zero
/* 180A44 80252164 C6200014 */  lwc1      $f0, 0x14($s1)
/* 180A48 80252168 0809485F */  j         .L8025217C
/* 180A4C 8025216C E7A00010 */   swc1     $f0, 0x10($sp)
.L80252170:
/* 180A50 80252170 C6200014 */  lwc1      $f0, 0x14($s1)
/* 180A54 80252174 24040003 */  addiu     $a0, $zero, 0x3
/* 180A58 80252178 E7A00010 */  swc1      $f0, 0x10($sp)
.L8025217C:
/* 180A5C 8025217C 8E26000C */  lw        $a2, 0xC($s1)
/* 180A60 80252180 8E270010 */  lw        $a3, 0x10($s1)
/* 180A64 80252184 0C0999FC */  jal       show_action_rating
/* 180A68 80252188 0260282D */   daddu    $a1, $s3, $zero
dgb_01_D_8025218C_C0FA0C:
/* 180A6C 8025218C 3C10800E */  lui       $s0, %hi(gBattleStatus)
/* 180A70 80252190 2610C070 */  addiu     $s0, $s0, %lo(gBattleStatus)
/* 180A74 80252194 8E020000 */  lw        $v0, 0x0($s0)
/* 180A78 80252198 30420020 */  andi      $v0, $v0, 0x20
/* 180A7C 8025219C 10400004 */  beqz      $v0, .L802521B0
/* 180A80 802521A0 0260202D */   daddu    $a0, $s3, $zero
/* 180A84 802521A4 0C099A5C */  jal       func_80266970
/* 180A88 802521A8 0260202D */   daddu    $a0, $s3, $zero
/* 180A8C 802521AC 0260202D */  daddu     $a0, $s3, $zero
.L802521B0:
/* 180A90 802521B0 0C09DC58 */  jal       dispatch_event_actor
/* 180A94 802521B4 0240282D */   daddu    $a1, $s2, $zero
dgb_01_D_802521B8_C0FA38:
/* 180A98 802521B8 8FA80020 */  lw        $t0, 0x20($sp)
/* 180A9C 802521BC 24020100 */  addiu     $v0, $zero, 0x100
/* 180AA0 802521C0 1502000A */  bne       $t0, $v0, .L802521EC
/* 180AA4 802521C4 00000000 */   nop
/* 180AA8 802521C8 86860180 */  lh        $a2, 0x180($s4)
/* 180AAC 802521CC 18C00007 */  blez      $a2, .L802521EC
/* 180AB0 802521D0 00000000 */   nop
/* 180AB4 802521D4 8E020000 */  lw        $v0, 0x0($s0)
/* 180AB8 802521D8 30420020 */  andi      $v0, $v0, 0x20
/* 180ABC 802521DC 10400003 */  beqz      $v0, .L802521EC
/* 180AC0 802521E0 0260202D */   daddu    $a0, $s3, $zero
dgb_01_D_802521E4_C0FA64:
/* 180AC4 802521E4 0C0997D0 */  jal       inflict_status
/* 180AC8 802521E8 2405000D */   addiu    $a1, $zero, 0xD
.L802521EC:
/* 180ACC 802521EC 8E620000 */  lw        $v0, 0x0($s3)
/* 180AD0 802521F0 3C030200 */  lui       $v1, (0x2000000 >> 16)
/* 180AD4 802521F4 00431024 */  and       $v0, $v0, $v1
/* 180AD8 802521F8 14400030 */  bnez      $v0, .L802522BC
/* 180ADC 802521FC 00000000 */   nop
/* 180AE0 80252200 86870180 */  lh        $a3, 0x180($s4)
/* 180AE4 80252204 14E00010 */  bnez      $a3, .L80252248
/* 180AE8 80252208 00000000 */   nop
/* 180AEC 8025220C 8FA8001C */  lw        $t0, 0x1C($sp)
dgb_01_D_80252210_C0FA90:
/* 180AF0 80252210 1500002A */  bnez      $t0, .L802522BC
/* 180AF4 80252214 00000000 */   nop
/* 180AF8 80252218 16A00028 */  bnez      $s5, .L802522BC
/* 180AFC 8025221C 24020001 */   addiu    $v0, $zero, 0x1
/* 180B00 80252220 AFA20010 */  sw        $v0, 0x10($sp)
/* 180B04 80252224 24020003 */  addiu     $v0, $zero, 0x3
/* 180B08 80252228 AFA20014 */  sw        $v0, 0x14($sp)
/* 180B0C 8025222C C62C000C */  lwc1      $f12, 0xC($s1)
/* 180B10 80252230 C62E0010 */  lwc1      $f14, 0x10($s1)
/* 180B14 80252234 8E260014 */  lw        $a2, 0x14($s1)
/* 180B18 80252238 0C093BF8 */  jal       func_8024EFE0
dgb_01_D_8025223C_C0FABC:
/* 180B1C 8025223C 0000382D */   daddu    $a3, $zero, $zero
/* 180B20 80252240 080948AF */  j         .L802522BC
/* 180B24 80252244 00000000 */   nop
.L80252248:
/* 180B28 80252248 8FA80018 */  lw        $t0, 0x18($sp)
/* 180B2C 8025224C 1500001B */  bnez      $t0, .L802522BC
/* 180B30 80252250 3C032000 */   lui      $v1, (0x20000040 >> 16)
/* 180B34 80252254 8E820188 */  lw        $v0, 0x188($s4)
D_80252258:
/* 180B38 80252258 34630040 */  ori       $v1, $v1, (0x20000040 & 0xFFFF)
/* 180B3C 8025225C 00431024 */  and       $v0, $v0, $v1
/* 180B40 80252260 10400007 */  beqz      $v0, .L80252280
/* 180B44 80252264 AFA00010 */   sw       $zero, 0x10($sp)
dgb_01_D_80252268_C0FAE8:
/* 180B48 80252268 C62C000C */  lwc1      $f12, 0xC($s1)
/* 180B4C 8025226C C62E0010 */  lwc1      $f14, 0x10($s1)
/* 180B50 80252270 0C09996B */  jal       show_next_damage_popup
/* 180B54 80252274 8E260014 */   lw       $a2, 0x14($s1)
/* 180B58 80252278 080948A4 */  j         .L80252290
/* 180B5C 8025227C 00000000 */   nop
.L80252280:
/* 180B60 80252280 C62C000C */  lwc1      $f12, 0xC($s1)
/* 180B64 80252284 C62E0010 */  lwc1      $f14, 0x10($s1)
/* 180B68 80252288 0C099937 */  jal       show_primary_damage_popup
/* 180B6C 8025228C 8E260014 */   lw       $a2, 0x14($s1)
.L80252290:
/* 180B70 80252290 8EE20004 */  lw        $v0, 0x4($s7)
dgb_01_D_80252294_C0FB14:
/* 180B74 80252294 30420004 */  andi      $v0, $v0, 0x4
/* 180B78 80252298 14400008 */  bnez      $v0, .L802522BC
/* 180B7C 8025229C 00000000 */   nop
/* 180B80 802522A0 86820180 */  lh        $v0, 0x180($s4)
/* 180B84 802522A4 AFA20010 */  sw        $v0, 0x10($sp)
/* 180B88 802522A8 8E25000C */  lw        $a1, 0xC($s1)
/* 180B8C 802522AC 8E260010 */  lw        $a2, 0x10($s1)
/* 180B90 802522B0 8E270014 */  lw        $a3, 0x14($s1)
/* 180B94 802522B4 0C0999B9 */  jal       show_damage_fx
/* 180B98 802522B8 0260202D */   daddu    $a0, $s3, $zero
.L802522BC:
/* 180B9C 802522BC 86820180 */  lh        $v0, 0x180($s4)
dgb_01_D_802522C0_C0FB40:
/* 180BA0 802522C0 18400022 */  blez      $v0, .L8025234C
/* 180BA4 802522C4 00000000 */   nop
/* 180BA8 802522C8 8FA80018 */  lw        $t0, 0x18($sp)
/* 180BAC 802522CC 1500001D */  bnez      $t0, dgb_01_D_80252344_C0FBC4
/* 180BB0 802522D0 0260202D */   daddu    $a0, $s3, $zero
/* 180BB4 802522D4 0C099C06 */  jal       func_80267018
/* 180BB8 802522D8 24050001 */   addiu    $a1, $zero, 0x1
/* 180BBC 802522DC 8FA80024 */  lw        $t0, 0x24($sp)
/* 180BC0 802522E0 11000004 */  beqz      $t0, .L802522F4
/* 180BC4 802522E4 240400EA */   addiu    $a0, $zero, 0xEA
/* 180BC8 802522E8 C6200014 */  lwc1      $f0, 0x14($s1)
dgb_01_D_802522EC_C0FB6C:
/* 180BCC 802522EC 080948CC */  j         .L80252330
/* 180BD0 802522F0 E7A00010 */   swc1     $f0, 0x10($sp)
.L802522F4:
/* 180BD4 802522F4 8FA80028 */  lw        $t0, 0x28($sp)
/* 180BD8 802522F8 11000004 */  beqz      $t0, .L8025230C
/* 180BDC 802522FC 2404037B */   addiu    $a0, $zero, 0x37B
/* 180BE0 80252300 C6200014 */  lwc1      $f0, 0x14($s1)
/* 180BE4 80252304 080948CC */  j         .L80252330
/* 180BE8 80252308 E7A00010 */   swc1     $f0, 0x10($sp)
.L8025230C:
/* 180BEC 8025230C 8FA8002C */  lw        $t0, 0x2C($sp)
/* 180BF0 80252310 11000004 */  beqz      $t0, .L80252324
/* 180BF4 80252314 240400EB */   addiu    $a0, $zero, 0xEB
dgb_01_D_80252318_C0FB98:
/* 180BF8 80252318 C6200014 */  lwc1      $f0, 0x14($s1)
/* 180BFC 8025231C 080948CC */  j         .L80252330
/* 180C00 80252320 E7A00010 */   swc1     $f0, 0x10($sp)
.L80252324:
/* 180C04 80252324 C6200014 */  lwc1      $f0, 0x14($s1)
/* 180C08 80252328 240400E9 */  addiu     $a0, $zero, 0xE9
D_8025232C:
/* 180C0C 8025232C E7A00010 */  swc1      $f0, 0x10($sp)
.L80252330:
/* 180C10 80252330 8E26000C */  lw        $a2, 0xC($s1)
/* 180C14 80252334 8E270010 */  lw        $a3, 0x10($s1)
/* 180C18 80252338 0C052757 */  jal       sfx_play_sound_at_position
/* 180C1C 8025233C 0000282D */   daddu    $a1, $zero, $zero
/* 180C20 80252340 86820180 */  lh        $v0, 0x180($s4)
dgb_01_D_80252344_C0FBC4:
/* 180C24 80252344 1C400003 */  bgtz      $v0, .L80252354
/* 180C28 80252348 00000000 */   nop
.L8025234C:
/* 180C2C 8025234C 12A00005 */  beqz      $s5, .L80252364
/* 180C30 80252350 00000000 */   nop
.L80252354:
/* 180C34 80252354 8EE20000 */  lw        $v0, 0x0($s7)
/* 180C38 80252358 30422000 */  andi      $v0, $v0, 0x2000
/* 180C3C 8025235C 10400008 */  beqz      $v0, .L80252380
/* 180C40 80252360 00000000 */   nop
.L80252364:
/* 180C44 80252364 C6200014 */  lwc1      $f0, 0x14($s1)
/* 180C48 80252368 2404010C */  addiu     $a0, $zero, 0x10C
/* 180C4C 8025236C E7A00010 */  swc1      $f0, 0x10($sp)
dgb_01_D_80252370_C0FBF0:
/* 180C50 80252370 8E26000C */  lw        $a2, 0xC($s1)
/* 180C54 80252374 8E270010 */  lw        $a3, 0x10($s1)
/* 180C58 80252378 0C052757 */  jal       sfx_play_sound_at_position
/* 180C5C 8025237C 0000282D */   daddu    $a1, $zero, $zero
.L80252380:
/* 180C60 80252380 8E820190 */  lw        $v0, 0x190($s4)
/* 180C64 80252384 30421000 */  andi      $v0, $v0, 0x1000
/* 180C68 80252388 10400018 */  beqz      $v0, .L802523EC
/* 180C6C 8025238C 00000000 */   nop
/* 180C70 80252390 12A00016 */  beqz      $s5, .L802523EC
/* 180C74 80252394 00000000 */   nop
/* 180C78 80252398 3C048029 */  lui       $a0, %hi(EVS_PlaySleepHitFX)
dgb_01_D_8025239C_C0FC1C:
/* 180C7C 8025239C 248445E0 */  addiu     $a0, $a0, %lo(EVS_PlaySleepHitFX)
/* 180C80 802523A0 2405000A */  addiu     $a1, $zero, 0xA
/* 180C84 802523A4 0C0B0CF8 */  jal       start_script
/* 180C88 802523A8 0000302D */   daddu    $a2, $zero, $zero
/* 180C8C 802523AC C620000C */  lwc1      $f0, 0xC($s1)
/* 180C90 802523B0 4600018D */  trunc.w.s $f6, $f0
D_802523B4:
/* 180C94 802523B4 E4460084 */  swc1      $f6, 0x84($v0)
/* 180C98 802523B8 C6200010 */  lwc1      $f0, 0x10($s1)
/* 180C9C 802523BC 4600018D */  trunc.w.s $f6, $f0
/* 180CA0 802523C0 E4460088 */  swc1      $f6, 0x88($v0)
/* 180CA4 802523C4 C6200014 */  lwc1      $f0, 0x14($s1)
dgb_01_D_802523C8_C0FC48:
/* 180CA8 802523C8 4600018D */  trunc.w.s $f6, $f0
/* 180CAC 802523CC E446008C */  swc1      $f6, 0x8C($v0)
/* 180CB0 802523D0 C6200014 */  lwc1      $f0, 0x14($s1)
/* 180CB4 802523D4 24042031 */  addiu     $a0, $zero, 0x2031
/* 180CB8 802523D8 E7A00010 */  swc1      $f0, 0x10($sp)
/* 180CBC 802523DC 8E26000C */  lw        $a2, 0xC($s1)
/* 180CC0 802523E0 8E270010 */  lw        $a3, 0x10($s1)
/* 180CC4 802523E4 0C052757 */  jal       sfx_play_sound_at_position
/* 180CC8 802523E8 0000282D */   daddu    $a1, $zero, $zero
.L802523EC:
/* 180CCC 802523EC 8E820190 */  lw        $v0, 0x190($s4)
/* 180CD0 802523F0 3C030004 */  lui       $v1, (0x40000 >> 16)
dgb_01_D_802523F4_C0FC74:
/* 180CD4 802523F4 00431024 */  and       $v0, $v0, $v1
/* 180CD8 802523F8 10400018 */  beqz      $v0, .L8025245C
/* 180CDC 802523FC 00000000 */   nop
D_80252400:
/* 180CE0 80252400 12A00016 */  beqz      $s5, .L8025245C
D_80252404:
/* 180CE4 80252404 00000000 */   nop
/* 180CE8 80252408 3C048029 */  lui       $a0, %hi(EVS_PlayDizzyHitFX)
/* 180CEC 8025240C 248445FC */  addiu     $a0, $a0, %lo(EVS_PlayDizzyHitFX)
/* 180CF0 80252410 2405000A */  addiu     $a1, $zero, 0xA
/* 180CF4 80252414 0C0B0CF8 */  jal       start_script
/* 180CF8 80252418 0000302D */   daddu    $a2, $zero, $zero
/* 180CFC 8025241C C620000C */  lwc1      $f0, 0xC($s1)
dgb_01_D_80252420_C0FCA0:
/* 180D00 80252420 4600018D */  trunc.w.s $f6, $f0
/* 180D04 80252424 E4460084 */  swc1      $f6, 0x84($v0)
/* 180D08 80252428 C6200010 */  lwc1      $f0, 0x10($s1)
/* 180D0C 8025242C 4600018D */  trunc.w.s $f6, $f0
/* 180D10 80252430 E4460088 */  swc1      $f6, 0x88($v0)
/* 180D14 80252434 C6200014 */  lwc1      $f0, 0x14($s1)
/* 180D18 80252438 4600018D */  trunc.w.s $f6, $f0
/* 180D1C 8025243C E446008C */  swc1      $f6, 0x8C($v0)
/* 180D20 80252440 C6200014 */  lwc1      $f0, 0x14($s1)
/* 180D24 80252444 24042032 */  addiu     $a0, $zero, 0x2032
/* 180D28 80252448 E7A00010 */  swc1      $f0, 0x10($sp)
dgb_01_D_8025244C_C0FCCC:
/* 180D2C 8025244C 8E26000C */  lw        $a2, 0xC($s1)
/* 180D30 80252450 8E270010 */  lw        $a3, 0x10($s1)
/* 180D34 80252454 0C052757 */  jal       sfx_play_sound_at_position
/* 180D38 80252458 0000282D */   daddu    $a1, $zero, $zero
.L8025245C:
/* 180D3C 8025245C 8E820190 */  lw        $v0, 0x190($s4)
/* 180D40 80252460 3C030001 */  lui       $v1, (0x10000 >> 16)
/* 180D44 80252464 00431024 */  and       $v0, $v0, $v1
/* 180D48 80252468 10400018 */  beqz      $v0, .L802524CC
/* 180D4C 8025246C 00000000 */   nop
/* 180D50 80252470 12A00016 */  beqz      $s5, .L802524CC
/* 180D54 80252474 00000000 */   nop
dgb_01_D_80252478_C0FCF8:
/* 180D58 80252478 3C048029 */  lui       $a0, %hi(EVS_PlayParalyzeHitFX)
/* 180D5C 8025247C 24844618 */  addiu     $a0, $a0, %lo(EVS_PlayParalyzeHitFX)
/* 180D60 80252480 2405000A */  addiu     $a1, $zero, 0xA
/* 180D64 80252484 0C0B0CF8 */  jal       start_script
/* 180D68 80252488 0000302D */   daddu    $a2, $zero, $zero
/* 180D6C 8025248C C620000C */  lwc1      $f0, 0xC($s1)
D_80252490:
/* 180D70 80252490 4600018D */  trunc.w.s $f6, $f0
/* 180D74 80252494 E4460084 */  swc1      $f6, 0x84($v0)
/* 180D78 80252498 C6200010 */  lwc1      $f0, 0x10($s1)
/* 180D7C 8025249C 4600018D */  trunc.w.s $f6, $f0
/* 180D80 802524A0 E4460088 */  swc1      $f6, 0x88($v0)
dgb_01_D_802524A4_C0FD24:
/* 180D84 802524A4 C6200014 */  lwc1      $f0, 0x14($s1)
/* 180D88 802524A8 4600018D */  trunc.w.s $f6, $f0
/* 180D8C 802524AC E446008C */  swc1      $f6, 0x8C($v0)
/* 180D90 802524B0 C6200014 */  lwc1      $f0, 0x14($s1)
/* 180D94 802524B4 24042032 */  addiu     $a0, $zero, 0x2032
/* 180D98 802524B8 E7A00010 */  swc1      $f0, 0x10($sp)
/* 180D9C 802524BC 8E26000C */  lw        $a2, 0xC($s1)
/* 180DA0 802524C0 8E270010 */  lw        $a3, 0x10($s1)
/* 180DA4 802524C4 0C052757 */  jal       sfx_play_sound_at_position
/* 180DA8 802524C8 0000282D */   daddu    $a1, $zero, $zero
.L802524CC:
/* 180DAC 802524CC 8E820190 */  lw        $v0, 0x190($s4)
dgb_01_D_802524D0_C0FD50:
/* 180DB0 802524D0 3C030002 */  lui       $v1, (0x20000 >> 16)
/* 180DB4 802524D4 00431024 */  and       $v0, $v0, $v1
/* 180DB8 802524D8 10400018 */  beqz      $v0, .L8025253C
/* 180DBC 802524DC 00000000 */   nop
/* 180DC0 802524E0 12A00016 */  beqz      $s5, .L8025253C
/* 180DC4 802524E4 00000000 */   nop
/* 180DC8 802524E8 3C048029 */  lui       $a0, %hi(EVS_PlayPoisonHitFX)
/* 180DCC 802524EC 24844634 */  addiu     $a0, $a0, %lo(EVS_PlayPoisonHitFX)
/* 180DD0 802524F0 2405000A */  addiu     $a1, $zero, 0xA
/* 180DD4 802524F4 0C0B0CF8 */  jal       start_script
/* 180DD8 802524F8 0000302D */   daddu    $a2, $zero, $zero
dgb_01_D_802524FC_C0FD7C:
/* 180DDC 802524FC C620000C */  lwc1      $f0, 0xC($s1)
/* 180DE0 80252500 4600018D */  trunc.w.s $f6, $f0
/* 180DE4 80252504 E4460084 */  swc1      $f6, 0x84($v0)
/* 180DE8 80252508 C6200010 */  lwc1      $f0, 0x10($s1)
/* 180DEC 8025250C 4600018D */  trunc.w.s $f6, $f0
/* 180DF0 80252510 E4460088 */  swc1      $f6, 0x88($v0)
/* 180DF4 80252514 C6200014 */  lwc1      $f0, 0x14($s1)
/* 180DF8 80252518 4600018D */  trunc.w.s $f6, $f0
/* 180DFC 8025251C E446008C */  swc1      $f6, 0x8C($v0)
/* 180E00 80252520 C6200014 */  lwc1      $f0, 0x14($s1)
/* 180E04 80252524 24042032 */  addiu     $a0, $zero, 0x2032
dgb_01_D_80252528_C0FDA8:
/* 180E08 80252528 E7A00010 */  swc1      $f0, 0x10($sp)
/* 180E0C 8025252C 8E26000C */  lw        $a2, 0xC($s1)
/* 180E10 80252530 8E270010 */  lw        $a3, 0x10($s1)
/* 180E14 80252534 0C052757 */  jal       sfx_play_sound_at_position
/* 180E18 80252538 0000282D */   daddu    $a1, $zero, $zero
.L8025253C:
/* 180E1C 8025253C 8E820190 */  lw        $v0, 0x190($s4)
/* 180E20 80252540 3C030020 */  lui       $v1, (0x200000 >> 16)
/* 180E24 80252544 00431024 */  and       $v0, $v0, $v1
/* 180E28 80252548 10400018 */  beqz      $v0, dgb_01_D_802525AC_C0FE2C
/* 180E2C 8025254C 00000000 */   nop
/* 180E30 80252550 12A00016 */  beqz      $s5, dgb_01_D_802525AC_C0FE2C
dgb_01_D_80252554_C0FDD4:
/* 180E34 80252554 00000000 */   nop
/* 180E38 80252558 3C048029 */  lui       $a0, %hi(EVS_PlayStopHitFX)
/* 180E3C 8025255C 24844650 */  addiu     $a0, $a0, %lo(EVS_PlayStopHitFX)
/* 180E40 80252560 2405000A */  addiu     $a1, $zero, 0xA
/* 180E44 80252564 0C0B0CF8 */  jal       start_script
/* 180E48 80252568 0000302D */   daddu    $a2, $zero, $zero
/* 180E4C 8025256C C620000C */  lwc1      $f0, 0xC($s1)
/* 180E50 80252570 4600018D */  trunc.w.s $f6, $f0
/* 180E54 80252574 E4460084 */  swc1      $f6, 0x84($v0)
D_80252578:
/* 180E58 80252578 C6200010 */  lwc1      $f0, 0x10($s1)
/* 180E5C 8025257C 4600018D */  trunc.w.s $f6, $f0
dgb_01_D_80252580_C0FE00:
/* 180E60 80252580 E4460088 */  swc1      $f6, 0x88($v0)
/* 180E64 80252584 C6200014 */  lwc1      $f0, 0x14($s1)
/* 180E68 80252588 4600018D */  trunc.w.s $f6, $f0
/* 180E6C 8025258C E446008C */  swc1      $f6, 0x8C($v0)
/* 180E70 80252590 C6200014 */  lwc1      $f0, 0x14($s1)
/* 180E74 80252594 24042032 */  addiu     $a0, $zero, 0x2032
/* 180E78 80252598 E7A00010 */  swc1      $f0, 0x10($sp)
/* 180E7C 8025259C 8E26000C */  lw        $a2, 0xC($s1)
/* 180E80 802525A0 8E270010 */  lw        $a3, 0x10($s1)
/* 180E84 802525A4 0C052757 */  jal       sfx_play_sound_at_position
/* 180E88 802525A8 0000282D */   daddu    $a1, $zero, $zero
dgb_01_D_802525AC_C0FE2C:
/* 180E8C 802525AC 8E820190 */  lw        $v0, 0x190($s4)
/* 180E90 802525B0 30424000 */  andi      $v0, $v0, 0x4000
/* 180E94 802525B4 10400019 */  beqz      $v0, .L8025261C
/* 180E98 802525B8 00000000 */   nop
/* 180E9C 802525BC 12A00017 */  beqz      $s5, .L8025261C
/* 180EA0 802525C0 00000000 */   nop
/* 180EA4 802525C4 3C048029 */  lui       $a0, %hi(EVS_PlayFreezeHitFX)
/* 180EA8 802525C8 2484466C */  addiu     $a0, $a0, %lo(EVS_PlayFreezeHitFX)
/* 180EAC 802525CC 2405000A */  addiu     $a1, $zero, 0xA
/* 180EB0 802525D0 0C0B0CF8 */  jal       start_script
/* 180EB4 802525D4 0000302D */   daddu    $a2, $zero, $zero
dgb_01_D_802525D8_C0FE58:
/* 180EB8 802525D8 C620000C */  lwc1      $f0, 0xC($s1)
/* 180EBC 802525DC 4600018D */  trunc.w.s $f6, $f0
/* 180EC0 802525E0 E4460084 */  swc1      $f6, 0x84($v0)
/* 180EC4 802525E4 C6200010 */  lwc1      $f0, 0x10($s1)
/* 180EC8 802525E8 4600018D */  trunc.w.s $f6, $f0
/* 180ECC 802525EC E4460088 */  swc1      $f6, 0x88($v0)
/* 180ED0 802525F0 C6200014 */  lwc1      $f0, 0x14($s1)
/* 180ED4 802525F4 AC530090 */  sw        $s3, 0x90($v0)
/* 180ED8 802525F8 4600018D */  trunc.w.s $f6, $f0
/* 180EDC 802525FC E446008C */  swc1      $f6, 0x8C($v0)
/* 180EE0 80252600 C6200014 */  lwc1      $f0, 0x14($s1)
dgb_01_D_80252604_C0FE84:
/* 180EE4 80252604 24042032 */  addiu     $a0, $zero, 0x2032
/* 180EE8 80252608 E7A00010 */  swc1      $f0, 0x10($sp)
/* 180EEC 8025260C 8E26000C */  lw        $a2, 0xC($s1)
/* 180EF0 80252610 8E270010 */  lw        $a3, 0x10($s1)
/* 180EF4 80252614 0C052757 */  jal       sfx_play_sound_at_position
/* 180EF8 80252618 0000282D */   daddu    $a1, $zero, $zero
.L8025261C:
/* 180EFC 8025261C 8E820190 */  lw        $v0, 0x190($s4)
/* 180F00 80252620 3C030008 */  lui       $v1, (0x80000 >> 16)
/* 180F04 80252624 00431024 */  and       $v0, $v0, $v1
/* 180F08 80252628 10400019 */  beqz      $v0, .L80252690
/* 180F0C 8025262C 00000000 */   nop
dgb_01_D_80252630_C0FEB0:
/* 180F10 80252630 12A00017 */  beqz      $s5, .L80252690
/* 180F14 80252634 00000000 */   nop
/* 180F18 80252638 3C048029 */  lui       $a0, %hi(EVS_PlayShrinkHitFX)
/* 180F1C 8025263C 248446B8 */  addiu     $a0, $a0, %lo(EVS_PlayShrinkHitFX)
/* 180F20 80252640 2405000A */  addiu     $a1, $zero, 0xA
/* 180F24 80252644 0C0B0CF8 */  jal       start_script
/* 180F28 80252648 0000302D */   daddu    $a2, $zero, $zero
/* 180F2C 8025264C C620000C */  lwc1      $f0, 0xC($s1)
/* 180F30 80252650 4600018D */  trunc.w.s $f6, $f0
/* 180F34 80252654 E4460084 */  swc1      $f6, 0x84($v0)
/* 180F38 80252658 C6200010 */  lwc1      $f0, 0x10($s1)
dgb_01_D_8025265C_C0FEDC:
/* 180F3C 8025265C 4600018D */  trunc.w.s $f6, $f0
/* 180F40 80252660 E4460088 */  swc1      $f6, 0x88($v0)
/* 180F44 80252664 C6200014 */  lwc1      $f0, 0x14($s1)
/* 180F48 80252668 AC530090 */  sw        $s3, 0x90($v0)
/* 180F4C 8025266C 4600018D */  trunc.w.s $f6, $f0
/* 180F50 80252670 E446008C */  swc1      $f6, 0x8C($v0)
/* 180F54 80252674 C6200014 */  lwc1      $f0, 0x14($s1)
/* 180F58 80252678 24042032 */  addiu     $a0, $zero, 0x2032
/* 180F5C 8025267C E7A00010 */  swc1      $f0, 0x10($sp)
/* 180F60 80252680 8E26000C */  lw        $a2, 0xC($s1)
/* 180F64 80252684 8E270010 */  lw        $a3, 0x10($s1)
dgb_01_D_80252688_C0FF08:
/* 180F68 80252688 0C052757 */  jal       sfx_play_sound_at_position
/* 180F6C 8025268C 0000282D */   daddu    $a1, $zero, $zero
.L80252690:
/* 180F70 80252690 8E820188 */  lw        $v0, 0x188($s4)
/* 180F74 80252694 30420040 */  andi      $v0, $v0, 0x40
/* 180F78 80252698 1040000A */  beqz      $v0, .L802526C4
/* 180F7C 8025269C 24020093 */   addiu    $v0, $zero, 0x93
/* 180F80 802526A0 92630136 */  lbu       $v1, 0x136($s3)
/* 180F84 802526A4 14620007 */  bne       $v1, $v0, .L802526C4
/* 180F88 802526A8 24040165 */   addiu    $a0, $zero, 0x165
/* 180F8C 802526AC C6200014 */  lwc1      $f0, 0x14($s1)
/* 180F90 802526B0 E7A00010 */  swc1      $f0, 0x10($sp)
dgb_01_D_802526B4_C0FF34:
/* 180F94 802526B4 8E26000C */  lw        $a2, 0xC($s1)
/* 180F98 802526B8 8E270010 */  lw        $a3, 0x10($s1)
/* 180F9C 802526BC 0C052757 */  jal       sfx_play_sound_at_position
/* 180FA0 802526C0 0000282D */   daddu    $a1, $zero, $zero
.L802526C4:
/* 180FA4 802526C4 0C099AB7 */  jal       show_actor_health_bar
/* 180FA8 802526C8 0260202D */   daddu    $a0, $s3, $zero
/* 180FAC 802526CC 3C02800E */  lui       $v0, %hi(gBattleStatus)
/* 180FB0 802526D0 8C42C070 */  lw        $v0, %lo(gBattleStatus)($v0)
/* 180FB4 802526D4 30420240 */  andi      $v0, $v0, 0x240
/* 180FB8 802526D8 10400007 */  beqz      $v0, .L802526F8
/* 180FBC 802526DC 03C0102D */   daddu    $v0, $fp, $zero
dgb_01_D_802526E0_C0FF60:
/* 180FC0 802526E0 53C00001 */  beql      $fp, $zero, .L802526E8
/* 180FC4 802526E4 241E0001 */   addiu    $fp, $zero, 0x1
.L802526E8:
/* 180FC8 802526E8 24020002 */  addiu     $v0, $zero, 0x2
/* 180FCC 802526EC 53C20001 */  beql      $fp, $v0, .L802526F4
/* 180FD0 802526F0 241E0003 */   addiu    $fp, $zero, 0x3
.L802526F4:
/* 180FD4 802526F4 03C0102D */  daddu     $v0, $fp, $zero
.L802526F8:
/* 180FD8 802526F8 8FBF0054 */  lw        $ra, 0x54($sp)
/* 180FDC 802526FC 8FBE0050 */  lw        $fp, 0x50($sp)
/* 180FE0 80252700 8FB7004C */  lw        $s7, 0x4C($sp)
/* 180FE4 80252704 8FB60048 */  lw        $s6, 0x48($sp)
/* 180FE8 80252708 8FB50044 */  lw        $s5, 0x44($sp)
dgb_01_D_8025270C_C0FF8C:
/* 180FEC 8025270C 8FB40040 */  lw        $s4, 0x40($sp)
/* 180FF0 80252710 8FB3003C */  lw        $s3, 0x3C($sp)
/* 180FF4 80252714 8FB20038 */  lw        $s2, 0x38($sp)
/* 180FF8 80252718 8FB10034 */  lw        $s1, 0x34($sp)
/* 180FFC 8025271C 8FB00030 */  lw        $s0, 0x30($sp)
D_80252720:
/* 181000 80252720 03E00008 */  jr        $ra
/* 181004 80252724 27BD0058 */   addiu    $sp, $sp, 0x58

### DECOMPILED C INSTRUCTIONS:

HitResult calc_item_damage_enemy(void) {
    BattleStatus* battleStatus = &gBattleStatus;
    Actor* player = battleStatus->playerActor;
    s32 currentTargetID = battleStatus->currentTargetID;
    Actor* partner = battleStatus->partnerActor;
    s32 currentTargetPartID = battleStatus->currentTargetPart;
    s32 partImmuneToElement;
    s32 sp1C = FALSE;
    s32 actorClass;
    s32 isFireDamage = FALSE;
    s32 isWaterDamage = FALSE;
    s32 isShockDamage = FALSE;
    s32 isIceDamage = FALSE;
    Actor* target;
    ActorPart* targetPart;
    Evt* script;
    s32 attackDamage;
    s32 temp;
    s32 targetDefense;
    ActorState* state;
    s32 dispatchEvent;
    s32 wasStatusInflicted;
    s32 hitResult;

    battleStatus->wasStatusInflicted = FALSE;
    battleStatus->lastAttackDamage = 0;
    battleStatus->attackerActorID = player->actorID;
    battleStatus->currentTargetID2 = battleStatus->currentTargetID;
    battleStatus->currentTargetPart2 = battleStatus->currentTargetPart;
    target = get_actor(currentTargetID);
    wasStatusInflicted = FALSE;

    if (target == NULL) {
        return HIT_RESULT_HIT;
    }

    targetPart = get_actor_part(target, currentTargetPartID);
    if (targetPart == NULL) {
        PANIC();
    }

    target->lastDamageTaken = 0;
    actorClass = currentTargetID & ACTOR_CLASS_MASK;
    if (!(gBattleStatus.flags1 & BS_FLAGS1_PARTNER_ACTING)) {
        state = &player->state;
    } else {
        state = &partner->state;
    }

    if (battleStatus->currentAttackElement & DAMAGE_TYPE_FIRE) {
        fx_ring_blast(0, state->goalPos.x, state->goalPos.y, state->goalPos.z + 5.0f, 1.0f, 24);
        isFireDamage = TRUE;
    }
    if (battleStatus->currentAttackElement & DAMAGE_TYPE_SHOCK) {
        apply_shock_effect(target);
        isShockDamage = TRUE;
    }
    if (battleStatus->currentAttackElement & DAMAGE_TYPE_WATER) {
        fx_water_splash(0, state->goalPos.x, state->goalPos.y, state->goalPos.z + 5.0f, 1.0f, 24);
        isWaterDamage = TRUE;
    }
    if (battleStatus->currentAttackElement & DAMAGE_TYPE_ICE) {
        fx_big_snowflakes(0, state->goalPos.x, state->goalPos.y, state->goalPos.z + 5.0f);
        isIceDamage = TRUE;
    }

    if (!(battleStatus->currentAttackElement & DAMAGE_TYPE_REMOVE_BUFFS)) {
        if ((targetPart->eventFlags & ACTOR_EVENT_FLAG_ILLUSORY)
            || (target->transparentStatus == STATUS_KEY_TRANSPARENT)
            || (targetPart->eventFlags & ACTOR_EVENT_FLAG_800)
            && !(battleStatus->currentAttackElement & DAMAGE_TYPE_QUAKE)
        ) {
            return HIT_RESULT_MISS;
        }
    }

    if (target->stoneStatus == STATUS_KEY_STONE) {
        sfx_play_sound_at_position(SOUND_IMMUNE, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
        show_immune_bonk(state->goalPos.x, state->goalPos.y, state->goalPos.z, 0, 1, 1);
        show_next_damage_popup(state->goalPos.x, state->goalPos.y, state->goalPos.z, 0, 0);
        if (gBattleStatus.flags1 & (BS_FLAGS1_40 | BS_FLAGS1_200)) {
            return HIT_RESULT_1;
        }
        return HIT_RESULT_HIT;
    }

    if (targetPart->elementalImmunities & battleStatus->currentAttackElement) {
        partImmuneToElement = TRUE;
    } else {
        partImmuneToElement = FALSE;
    }

    if (targetPart->eventFlags & (ACTOR_EVENT_FLAG_ENCHANTED | ACTOR_EVENT_FLAG_STAR_ROD_ENCHANTED)) {
        battleStatus->currentAttackElement &= ~DAMAGE_TYPE_IGNORE_DEFENSE;
    }

    temp = get_defense(target, targetPart->defenseTable, battleStatus->currentAttackElement);
    if (!(battleStatus->currentAttackElement & DAMAGE_TYPE_IGNORE_DEFENSE)) {
        temp += target->defenseBoost;
    }

    attackDamage = battleStatus->currentAttackDamage;
    if (attackDamage > 99) {
        attackDamage = 99;
    }
    if (attackDamage <= 0) {
        temp = 0;
    }

    attackDamage -= temp;
    target->hpChangeCounter = 0;

    if (attackDamage <= 0) {
        target->hpChangeCounter = 0;
        hitResult = HIT_RESULT_NO_DAMAGE;

        if (!(battleStatus->currentAttackElement & DAMAGE_TYPE_STATUS_ALWAYS_HITS)) {
            dispatchEvent = EVENT_ZERO_DAMAGE;
            sfx_play_sound_at_position(SOUND_IMMUNE, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
            battleStatus->lastAttackDamage = 0;
        } else {
            dispatchEvent = EVENT_ZERO_DAMAGE;
            battleStatus->lastAttackDamage = 0;
        }
    } else {
        target->damageCounter += attackDamage;
        target->hpChangeCounter -= attackDamage;
        battleStatus->lastAttackDamage = 0;
        dispatchEvent = EVENT_HIT_COMBO;
        hitResult = HIT_RESULT_HIT;

        if (!(targetPart->flags & ACTOR_PART_FLAG_2000)
            && !partImmuneToElement
            && !(targetPart->targetFlags & ACTOR_PART_TARGET_FLAG_4)
        ) {
            target->currentHP -= attackDamage;
            if (target->currentHP <= 0) {
                target->currentHP = 0;
                dispatchEvent = EVENT_DEATH;
            }
        }
        battleStatus->lastAttackDamage += attackDamage;
        target->lastDamageTaken = battleStatus->lastAttackDamage;
        target->hpChangeCounter = 0;
    }

    if (targetPart->flags & ACTOR_PART_FLAG_2000) {
        dispatch_event_actor(target, dispatchEvent);
        show_immune_bonk(state->goalPos.x, state->goalPos.y, state->goalPos.z, 0, 1, 3);
        sfx_play_sound_at_position(SOUND_IMMUNE, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
        return HIT_RESULT_NO_DAMAGE;
    }

    if (battleStatus->currentAttackElement & DAMAGE_TYPE_DEATH) {
        battleStatus->lastAttackDamage = 0;
        dispatchEvent = EVENT_DEATH;
        hitResult = HIT_RESULT_HIT;
    }

    if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) {
        if (dispatchEvent == EVENT_HIT_COMBO) {
            dispatchEvent = EVENT_HIT;
        }
        if (dispatchEvent == EVENT_ZERO_DAMAGE) {
            dispatchEvent = EVENT_IMMUNE;
        }
        if (target->currentHP <= 0 && dispatchEvent == EVENT_IMMUNE) {
            dispatchEvent = EVENT_DEATH;
        }
    } else if (dispatchEvent == EVENT_DEATH) {
        dispatchEvent = EVENT_HIT_COMBO;
    }

    if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) {
        if (battleStatus->currentAttackElement & DAMAGE_TYPE_REMOVE_BUFFS) {
            dispatchEvent = EVENT_IMMUNE;
            if (targetPart->eventFlags & ACTOR_EVENT_FLAG_ENCHANTED) {
                dispatchEvent = EVENT_STAR_BEAM;
                wasStatusInflicted = TRUE;
            }
            if (targetPart->eventFlags & ACTOR_EVENT_FLAG_ATTACK_CHARGED) {
                dispatchEvent = EVENT_STAR_BEAM;
                wasStatusInflicted = TRUE;
            }
            if (targetPart->eventFlags & ACTOR_EVENT_FLAG_STAR_ROD_ENCHANTED) {
                dispatchEvent = EVENT_INVUNERABLE_TAUNT;
            }
            hitResult = HIT_RESULT_HIT;
        }
    }

    if (battleStatus->currentAttackElement & DAMAGE_TYPE_REMOVE_BUFFS) {
        if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) {
            if ((target->attackBoost > 0 || target->defenseBoost > 0) ||
                ((target->staticStatus == 0 && target->transparentStatus != 0) || target->staticStatus != 0))
            {
                target->attackBoost = 0;
                target->defenseBoost = 0;
                target->isGlowing = FALSE;
                dispatchEvent = EVENT_HIT;
                if (target->staticStatus != 0) {
                    target->staticStatus = 0;
                    target->staticDuration = 0;
                    remove_status_static(target->hudElementDataIndex);
                }
                if (target->transparentStatus != 0) {
                    target->transparentStatus = 0;
                    target->transparentDuration = 0;
                    remove_status_transparent(target->hudElementDataIndex);
                }
                wasStatusInflicted = TRUE;
                hitResult = HIT_RESULT_HIT;
            }
        }
    }

    if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) {
        if (battleStatus->currentAttackElement & DAMAGE_TYPE_PEACH_BEAM) {
            dispatchEvent = EVENT_IMMUNE;
            if (targetPart->eventFlags & ACTOR_EVENT_FLAG_ENCHANTED) {
                dispatchEvent = EVENT_PEACH_BEAM;
                wasStatusInflicted = TRUE;
            }
            if (targetPart->eventFlags & ACTOR_EVENT_FLAG_STAR_ROD_ENCHANTED) {
                dispatchEvent = EVENT_PEACH_BEAM;
                wasStatusInflicted = TRUE;
            }
        }
    }

    if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) {
        if (battleStatus->currentAttackElement & DAMAGE_TYPE_SPIN_SMASH) {
            if (dispatchEvent == EVENT_HIT) {
                dispatchEvent = EVENT_SPIN_SMASH_HIT;
            }
            if (dispatchEvent == EVENT_DEATH) {
                dispatchEvent = EVENT_SPIN_SMASH_DEATH;
            }
        }
    }

    if ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE)
        && (battleStatus->currentAttackElement & (DAMAGE_TYPE_JUMP | DAMAGE_TYPE_POW))
        && (targetPart->eventFlags & ACTOR_EVENT_FLAG_GROUNDABLE)
    ) {
        if (dispatchEvent == EVENT_HIT) {
            dispatchEvent = EVENT_FALL_TRIGGER;
        }
        if (dispatchEvent == EVENT_IMMUNE) {
            dispatchEvent = EVENT_FALL_TRIGGER;
        }
    }

    if ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE)
        && (battleStatus->currentAttackElement & DAMAGE_TYPE_POW)
        && (targetPart->eventFlags & ACTOR_EVENT_FLAG_RIDING_BROOMSTICK)
    ) {
        if (dispatchEvent == EVENT_HIT) {
            dispatchEvent = EVENT_FALL_TRIGGER;
        }
        if (dispatchEvent == EVENT_IMMUNE) {
            dispatchEvent = EVENT_FALL_TRIGGER;
        }
    }

    if ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE)
        && (battleStatus->currentAttackElement & (DAMAGE_TYPE_JUMP | DAMAGE_TYPE_POW | DAMAGE_TYPE_QUAKE))
        && (targetPart->eventFlags & ACTOR_EVENT_FLAG_FLIPABLE)
    ) {
        if (dispatchEvent == EVENT_HIT) {
            dispatchEvent = EVENT_FLIP_TRIGGER;
        }
        if (dispatchEvent == EVENT_IMMUNE) {
            dispatchEvent = EVENT_FLIP_TRIGGER;
        }
    }

    if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) {
        if (battleStatus->currentAttackElement & DAMAGE_TYPE_FIRE) {
            if (dispatchEvent == EVENT_HIT) {
                dispatchEvent = EVENT_BURN_HIT;
            }
            if (dispatchEvent == EVENT_DEATH) {
                dispatchEvent = EVENT_BURN_DEATH;
            }
            isFireDamage = TRUE;
        }
    }

    if ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE)
        && battleStatus->lastAttackDamage >= 0
        && dispatchEvent != EVENT_DEATH
        && dispatchEvent != EVENT_SPIN_SMASH_DEATH
        && dispatchEvent != EVENT_EXPLODE_TRIGGER
    ) {
        // Using this macro because it's nicer to look at, and it also is necessary to wrap the first 5 of these in a
        // do-while-0 OR to wrap each one individually. It's more likely that it's a macro instead, and much cleaner
        #define INFLICT_STATUS(STATUS_TYPE) \
            do { \
                if ((battleStatus->currentAttackStatus & STATUS_FLAG_##STATUS_TYPE) && \
                    try_inflict_status(target, STATUS_KEY_##STATUS_TYPE, STATUS_TURN_MOD_##STATUS_TYPE)) { \
                    wasStatusInflicted = TRUE; \
                } \
            } while (0);

        INFLICT_STATUS(SHRINK);
        INFLICT_STATUS(POISON);
        INFLICT_STATUS(STONE);
        INFLICT_STATUS(SLEEP);
        INFLICT_STATUS(STOP);
        INFLICT_STATUS(STATIC);
        INFLICT_STATUS(FEAR);
        INFLICT_STATUS(PARALYZE);
        INFLICT_STATUS(DIZZY);

        #undef INFLICT_STATUS

        if (wasStatusInflicted) {
            if (dispatchEvent == EVENT_ZERO_DAMAGE) {
                dispatchEvent = EVENT_HIT_COMBO;
            }
            if (dispatchEvent == EVENT_IMMUNE) {
                dispatchEvent = EVENT_HIT;
            }
        }

    }

    temp = target->actorBlueprint->spookChance;
    temp = (battleStatus->statusChance * temp) / 100;

    if ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) && (battleStatus->currentAttackElement & DAMAGE_TYPE_FEAR)) {
        if (rand_int(99) < temp
            && (target->debuff != STATUS_KEY_FEAR
                && target->debuff != STATUS_KEY_DIZZY
                && target->debuff != STATUS_KEY_PARALYZE
                && target->debuff != STATUS_KEY_SLEEP
                && target->debuff != STATUS_KEY_FROZEN
                && target->debuff != STATUS_KEY_STOP)
            && !(target->flags & ACTOR_FLAG_FLIPPED))
        {
            dispatchEvent = EVENT_SCARE_AWAY;
            hitResult = HIT_RESULT_HIT;
            sp1C = TRUE;
            gBattleStatus.flags1 |= BS_FLAGS1_SP_EVT_ACTIVE | BS_FLAGS1_10 | BS_FLAGS1_SHOW_PLAYER_DECORATIONS | BS_FLAGS1_ACTORS_VISIBLE;
            sfx_play_sound_at_position(SOUND_231, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
            wasStatusInflicted = TRUE;
            gBattleStatus.flags1 |= BS_FLAGS1_40;
        } else {
            dispatchEvent = EVENT_IMMUNE;
            hitResult = HIT_RESULT_NO_DAMAGE;
        }
    }

    battleStatus->wasStatusInflicted = wasStatusInflicted;

    if ((sp1C
        && (gBattleStatus.flags1 & (BS_FLAGS1_40 | BS_FLAGS1_200)))
        || ((gBattleStatus.flags1 & (BS_FLAGS1_40 | BS_FLAGS1_200)) && !(gBattleStatus.flags1 & BS_FLAGS1_80))
    ) {
        if (battleStatus->lastAttackDamage > 0) {
            sfx_play_sound_at_position(SOUND_231, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
        }

        if (battleStatus->lastAttackDamage > 0 || (battleStatus->currentAttackElement & DAMAGE_TYPE_STATUS_ALWAYS_HITS) && sp1C) {
            if (gBattleStatus.flags1 & BS_FLAGS1_40) {
                show_action_rating(ACTION_RATING_NICE, target, state->goalPos.x, state->goalPos.y, state->goalPos.z);
            } else {
                show_action_rating(ACTION_RATING_SUPER, target, state->goalPos.x, state->goalPos.y, state->goalPos.z);
            }
        }
    }

    if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) {
        func_80266970(target);
    }

    dispatch_event_actor(target, dispatchEvent);

    if (actorClass == ACTOR_PARTNER) {
        if ((battleStatus->lastAttackDamage > 0) && (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE)) {
            inflict_status(target, STATUS_KEY_DAZE, battleStatus->lastAttackDamage);
        }
    }

    if (!(target->flags & ACTOR_FLAG_NO_DMG_POPUP)) {
        if (battleStatus->lastAttackDamage == 0) {
            if (!sp1C && !wasStatusInflicted) {
                show_immune_bonk(state->goalPos.x, state->goalPos.y, state->goalPos.z, 0, 1, 3);
            }
        } else if (!partImmuneToElement) {
            if (battleStatus->currentAttackElement & (DAMAGE_TYPE_MULTIPLE_POPUPS | DAMAGE_TYPE_SMASH)) {
                show_next_damage_popup(state->goalPos.x, state->goalPos.y, state->goalPos.z, battleStatus->lastAttackDamage, 0);
            } else {
                show_primary_damage_popup(state->goalPos.x, state->goalPos.y, state->goalPos.z, battleStatus->lastAttackDamage, 0);
            }
            if (!(targetPart->targetFlags & ACTOR_PART_TARGET_FLAG_4)) {
                show_damage_fx(target, state->goalPos.x, state->goalPos.y, state->goalPos.z, battleStatus->lastAttackDamage);
            }
        }
    }

    if (battleStatus->lastAttackDamage > 0 && !partImmuneToElement) {
        func_80267018(target, 1);
        if (isFireDamage) {
            sfx_play_sound_at_position(SOUND_HIT_FIRE, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
        } else if (isShockDamage) {
            sfx_play_sound_at_position(SOUND_HIT_SHOCK, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
        } else if (isIceDamage) {
            sfx_play_sound_at_position(SOUND_HIT_ICE, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
        } else {
            sfx_play_sound_at_position(SOUND_HIT_NORMAL, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
        }
    }

    if ((battleStatus->lastAttackDamage <= 0 && !wasStatusInflicted) || (targetPart->flags & ACTOR_FLAG_2000)) {
        sfx_play_sound_at_position(SOUND_IMMUNE, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
    }

    if ((battleStatus->currentAttackStatus & STATUS_FLAG_SLEEP) && wasStatusInflicted) {
        script = start_script(&EVS_PlaySleepHitFX, EVT_PRIORITY_A, 0);
        script->varTable[0] = state->goalPos.x;
        script->varTable[1] = state->goalPos.y;
        script->varTable[2] = state->goalPos.z;
        sfx_play_sound_at_position(SOUND_INFLICT_SLEEP, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
    }
    if ((battleStatus->currentAttackStatus & STATUS_FLAG_DIZZY) && wasStatusInflicted) {
        script = start_script(&EVS_PlayDizzyHitFX, EVT_PRIORITY_A, 0);
        script->varTable[0] = state->goalPos.x;
        script->varTable[1] = state->goalPos.y;
        script->varTable[2] = state->goalPos.z;
        sfx_play_sound_at_position(SOUND_INFLICT_STATUS, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
    }
    if ((battleStatus->currentAttackStatus & STATUS_FLAG_PARALYZE) && wasStatusInflicted) {
        script = start_script(&EVS_PlayParalyzeHitFX, EVT_PRIORITY_A, 0);
        script->varTable[0] = state->goalPos.x;
        script->varTable[1] = state->goalPos.y;
        script->varTable[2] = state->goalPos.z;
        sfx_play_sound_at_position(SOUND_INFLICT_STATUS, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
    }
    if ((battleStatus->currentAttackStatus & STATUS_FLAG_POISON) && wasStatusInflicted) {
        script = start_script(&EVS_PlayPoisonHitFX, EVT_PRIORITY_A, 0);
        script->varTable[0] = state->goalPos.x;
        script->varTable[1] = state->goalPos.y;
        script->varTable[2] = state->goalPos.z;
        sfx_play_sound_at_position(SOUND_INFLICT_STATUS, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
    }
    if ((battleStatus->currentAttackStatus & STATUS_FLAG_STOP) && wasStatusInflicted) {
        script = start_script(&EVS_PlayStopHitFX, EVT_PRIORITY_A, 0);
        script->varTable[0] = state->goalPos.x;
        script->varTable[1] = state->goalPos.y;
        script->varTable[2] = state->goalPos.z;
        sfx_play_sound_at_position(SOUND_INFLICT_STATUS, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
    }
    if ((battleStatus->currentAttackStatus & STATUS_FLAG_FROZEN) && wasStatusInflicted) {
        script = start_script(&EVS_PlayFreezeHitFX, EVT_PRIORITY_A, 0);
        script->varTable[0] = state->goalPos.x;
        script->varTable[1] = state->goalPos.y;
        script->varTable[2] = state->goalPos.z;
        script->varTablePtr[3] = target;
        sfx_play_sound_at_position(SOUND_INFLICT_STATUS, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
    }
    if ((battleStatus->currentAttackStatus & STATUS_FLAG_SHRINK) && wasStatusInflicted) {
        script = start_script(&EVS_PlayShrinkHitFX, EVT_PRIORITY_A, 0);
        script->varTable[0] = state->goalPos.x;
        script->varTable[1] = state->goalPos.y;
        script->varTable[2] = state->goalPos.z;
        script->varTablePtr[3] = target;
        sfx_play_sound_at_position(SOUND_INFLICT_STATUS, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
    }
    if ((battleStatus->currentAttackElement & DAMAGE_TYPE_SMASH) && (target->actorType == ACTOR_TYPE_GOOMNUT_TREE)) {
        sfx_play_sound_at_position(SOUND_SMASH_GOOMNUT_TREE, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
    }

    show_actor_health_bar(target);

    if (gBattleStatus.flags1 & (BS_FLAGS1_40 | BS_FLAGS1_200)) {
        if (hitResult == HIT_RESULT_HIT) {
            hitResult = HIT_RESULT_1;
        }
        if (hitResult == HIT_RESULT_NO_DAMAGE) {
            hitResult = HIT_RESULT_3;
        }
    }

    return hitResult;
}