Code:
proc После_нанесения_урона uses esi, defend_stack, position
; ECX - структура атакующего (пока не нужно)
    mov eax, 441332h
    thiscall eax, ecx, [defend_stack], [position]
    push eax; сохранить результат функции
    mov esi, [defend_stack]
    cmp [esi + Структура_стека.Текущее_количество], 0
    jle @f; стек уже мёртв
    .if [esi + Структура_стека.Тип_существа] = CR_Нетопырь
      .if ~[esi + (SPL_Кровожадность*2) + Структура_стека.Длительность_заклинаний]
    Монстр_колдует_заклинание esi, SPL_Кровожадность, [esi + Структура_стека.Позиция], 3, 1
      .endif
    .elseif [esi + Структура_стека.Тип_существа] = CR_Гипогриф
      .if ~[esi + (SPL_Ускорение*2) + Структура_стека.Длительность_заклинаний]
    Монстр_колдует_заклинание esi, SPL_Ускорение, [esi + Структура_стека.Позиция], 3, 1
      .endif
    .elseif [esi + Структура_стека.Тип_существа] = CR_Королевский_Гипогриф
      .if ~[esi + (SPL_Ускорение*2) + Структура_стека.Длительность_заклинаний]
    Монстр_колдует_заклинание esi, SPL_Ускорение, [esi + Структура_стека.Позиция], 3, 2
      .endif
    .endif
@@:
    pop eax; вернуть результат функции
    ret
endp