A bit similar to daleif's answer but with bent arrows.
\documentclass[tikz,border=3mm]{standalone}
\usepackage{amsmath}
\DeclareMathOperator{\im}{Im}
\DeclareMathOperator{\re}{Re}
\usetikzlibrary{arrows.meta,bending,decorations.markings}
\tikzset{% https://tex.stackexchange.com/a/430239
arc arrow/.style args={%
to pos #1 with length #2}{
decoration={
markings,
mark=at position 0 with {\pgfextra{%
\pgfmathsetmacro{\tmpArrowTime}{#2/(\pgfdecoratedpathlength)}
\xdef\tmpArrowTime{\tmpArrowTime}}},
mark=at position {#1-\tmpArrowTime} with {\coordinate(@1);},
mark=at position {#1-2*\tmpArrowTime/3} with {\coordinate(@2);},
mark=at position {#1-\tmpArrowTime/3} with {\coordinate(@3);},
mark=at position {#1} with {\coordinate(@4);
\draw[-{Stealth[length=#2,bend]}]
(@1) .. controls (@2) and (@3) .. (@4);},
},
postaction=decorate,
}
}
\begin{document}
\begin{tikzpicture}[thick]
\draw[-stealth] (0,-2.5) -- (0,2.5);
\draw[-stealth] (-2.2,0) -- (2.2,0) node[right]{$\im\varepsilon=0$};
\draw[arc arrow=to pos 0.4 with length 3mm] (50:2) coordinate(aux1) arc(50:130:2) -- cycle;
\draw[arc arrow=to pos 0.55 with length 3mm] (5:2) arc(5:40:2) coordinate(aux2) --
(140:2) arc(140:175:2) -- cycle;
\draw[arc arrow=to pos 0.25 with length 3mm] (185:2) arc(185:355:2) -- cycle;
\path (aux1) -- (aux2) coordinate[midway] (aux) (aux-|0,0) coordinate(aux0);
\draw[dashed] (-2,0|-aux) -- (2,0|-aux)
node[right]{$\im(\varepsilon-\mathrm{i}\omega)=0$};
\draw plot[only marks,mark=x,mark options={thin,red}]
coordinates {(aux0) (0,0)};
\end{tikzpicture}
\end{document}
