;;; Arachnus_FinishedWalking ;;;
080241B0 (T)  push    r4,r5,r14
080241B2 (T)  ldr     r5,=EnemyOrientation      ;\
080241B4 (T)  mov     r4,r5                     ;|
080241B6 (T)  add     r4,2Eh                    ;|
080241B8 (T)  ldrb    r0,[r4]                   ;} If EnemyRespawnTimer != 0:
080241BA (T)  cmp     r0,0h                     ;|
080241BC (T)  beq     80241D4h                  ;/
080241BE (T)  cmp     r0,0FFh                   ;\
080241C0 (T)  bne     80241C6h                  ;} If EnemyRespawnTimer == FFh:
080241C2 (T)  bl      80239E0h                  ; Execute subroutine Arachnus_SetSlash

080241C6 (T)  ldrb    r0,[r4]                   ;\
080241C8 (T)  sub     r0,1h                     ;} Decrement EnemyRespawnTimer
080241CA (T)  strb    r0,[r4]                   ;/
080241CC (T)  b       8024234h                  ; Return
080241CE      dw      00000h
080241D0      dd      0030006BCh

080241D4 (T)  ldrh    r1,[r5]                   ;\ Else (EnemyRespawnTimer == 0):
080241D6 (T)  mov     r0,80h                    ;|
080241D8 (T)  lsl     r0,r0,3h                  ;|
080241DA (T)  and     r0,r1                     ;} If EnemyOrientation has 400h (shot):
080241DC (T)  cmp     r0,0h                     ;|
080241DE (T)  beq     80241FCh                  ;/
080241E0 (T)  mov     r0,1Ah                    ; r0 parameter = 1Ah (flame projectile EnemyID)
080241E2 (T)  bl      8012858h                  ; Execute subroutine 8012858h (count number of specific flame projectiles)
080241E6 (T)  cmp     r0,0h                     ;\
080241E8 (T)  bne     8024204h                  ;|
080241EA (T)  ldrh    r1,[r5]                   ;|
080241EC (T)  mov     r0,80h                    ;|
080241EE (T)  lsl     r0,r0,4h                  ;} If returned 0 and EnemyOrientation hasn't 800h (not flaming):
080241F0 (T)  and     r0,r1                     ;|
080241F2 (T)  cmp     r0,0h                     ;|
080241F4 (T)  bne     8024204h                  ;/
080241F6 (T)  bl      8023854h                  ; Execute subroutine Arachnus_SetFlame
080241FA (T)  b       8024234h                  ; Return

                                                ; Else (EnemyOrientation hasn't 400h):
080241FC (T)  bl      80127BCh                  ; Execute subroutine Samus_IsHangingOnLedge
08024200 (T)  cmp     r0,0h                     ;\
08024202 (T)  beq     802420Ah                  ;} If not returned 0 (Samus is hanging on ledge):

; Also branched from 80241F4h if 8012858h didn't return 0 or EnemyOrientation has 800h
08024204 (T)  bl      8023950h                  ; Execute subroutine Arachnus_SetRoll
08024208 (T)  b       8024234h                  ; Return

                                                ; Else (Samus_IsHangingOnLedge returned 0):
0802420A (T)  mov     r2,0C0h                   ;\
0802420C (T)  lsl     r2,r2,1h                  ;} r1 and r2 parameters = 180h
0802420E (T)  mov     r0,0C0h                   ;  r0 parameter = C0h
08024210 (T)  mov     r1,r2                     ;/
08024212 (T)  bl      8011BE4h                  ; Execute subroutine Enemy_WithinRange
08024216 (T)  cmp     r0,3h                     ;\
08024218 (T)  bne     8024220h                  ;} If returned 3 (in front range):
0802421A (T)  bl      80239E0h                  ; Execute subroutine Arachnus_SetSlash
0802421E (T)  b       8024234h                  ; Return

08024220 (T)  mov     r2,80h                    ;\
08024222 (T)  lsl     r2,r2,2h                  ;} r1 and r2 parameters = 100h
08024224 (T)  mov     r0,0C0h                   ;  r0 parameter = C0h
08024226 (T)  mov     r1,r2                     ;/
08024228 (T)  bl      8011BE4h                  ; Execute subroutine Enemy_WithinRange
0802422C (T)  cmp     r0,3h                     ;\
0802422E (T)  bne     8024234h                  ;} If returned 3 (in front range):
08024230 (T)  bl      8023950h                  ; Execute subroutine Arachnus_SetRoll

08024234 (T)  pop     r4,r5
08024236 (T)  pop     r0
08024238 (T)  bx      r0