+
    i                   *   R t ^ RIHt ^ RIHt ]'       g   R]9   d   ^RIH	t	 M^ RI	t	 ^ RI
tR tR tR tR	 t ! R
 R]4      t^ RIt]	P(                  t^ RIHtHtHt ^ RIt ! R R]4      t]	P8                  ! ]4       ]	P:                  t ]	P<                  t ]	P>                  t ]	P@                  t  ]	PB                  t! ]	PD                  t" ]	PF                  t# ]	PH                  t$ ]	PJ                  t% ]	PL                  t& ]	PN                  t' ]	PP                  t( ]	PR                  t) ]	PT                  t* ]	PV                  t+ ]	PX                  t, ]	PZ                  t- ]	P\                  t. ]	P^                  t/ ]	P`                  t0 ]	Pb                  t1 ]	Pd                  t2 R R lt3R R lt4R R lt5R R lt6]	Pn                  t7 ]	Pp                  t8 ]	Pr                  t9 ]	Pt                  t:R R lt;R R lt<R R lt= ! R R]4      t>]	P~                  ! ]>4       ]	P                  t@ ]	P                  tA ]	P                  tB ]	P                  tC ]	P                  tD ]	P                  tE ]	P                  tF ]	P                  tG ]	P                  tH ]	P                  tI ]	P                  tJ ]	P                  tK ]	P                  tL ]	P                  tM ]	P                  tN ]	P                  tO ]	P                  tP ]	P                  tQ ]	P                  tR ]	P                  tS ]	P                  tT ]	P                  tU ]	P                  tV ]	P                  tW ]	P                  tX ]	P                  tY ]	P                  tZ ]	P                  t[ ]	P                  t\ ]	P                  t] ]	P                  t^ ]	P                  t_ ]	P                  t` ]	P                  ta ]	P                  tb ]	P                  tc ]	P                  td ]	P                  te ]	P                  tf ]	P                  tg ]	P                  th ]	P                  ti ]	P                  tj ]	P                  tk ]	P                  tl ]	P                  tm ]	P                  tn ]	P                  to ]	P                  tp ]	P                  tq ]	P                  tr ]	P                  ts ]	P                  tt ]	P                  tu ]	P                  tv ]	P                  tw ]	P                  tx ]	P                  ty ]	P                  tz ]	P                  t{ ]	P                  t| ]	P                  t} ]	P                  t~ ]	P                  t ]	EP                   t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP
                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                   t ]	EP"                  t ]	EP$                  t ]	EP&                  t ]	EP(                  t ]	EP*                  t ]	EP,                  t ]	EP.                  t ]	EP0                  t ]	EP2                  t ]	EP4                  t ]	EP6                  t ]	EP8                  t ]	EP:                  t ]	EP<                  t ]	EP>                  t ]	EP@                  t ]	EPB                  t ]	EPD                  t ]	EPF                  t ]	EPH                  t ]	EPJ                  t ]	EPL                  t ]	EPN                  t ]	EPP                  t ]	EPR                  t ]	EPT                  t ]	EPV                  t ]	EPX                  t ]	EPZ                  t ]	EP\                  t ]	EP^                  t ]	EP`                  t ]	EPb                  t ]	EPd                  t ]	EPf                  t ]	EPh                  t ]	EPj                  t ]	EPl                  t ]	EPn                  t ]	EPp                  t ]	EPr                  t ]	EPt                  t ]	EPv                  t ]	EPx                  t ]	EPz                  t ]	EP|                  t ]	EP~                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t  ! R R ]4      t]	EP                  ! ]4       R! R" ltR# R$ ltR% R& ltR' R( ltRR) R* llt ! R+ R,]4      t]	EP                  ! ]4       R- R. lt]	EP                  t]	EP                  t]	EP                  t]	EP                   Et  ! R/ R0]4      Et]	EP                  ! E]4        ! R1 R2]4      Et]	EP                  ! E]4       ]	EP
                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et R3 R4 lEt	R5 R6 lEt
R7 R8 lEt]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                  Et ]	EP                   Et ]	EP"                  Et ]	EP$                  Et ]	EP&                  Et ]	EP(                  Et ]	EP*                  Et]	EP,                  Et]	EP.                  Et]	EP0                  Et]	EP2                  Et]	EP4                  Et]	EP6                  Et]	EP8                  Et]	EP:                  Et]	EP<                  Et]	EP>                  Et]	EP@                  Et ]	EPB                  Et!]	EPD                  Et"]	EPF                  Et#]	EPH                  Et$]	EPJ                  Et%]	EPL                  Et&]	EPN                  Et']	EPP                  Et(]	EPR                  Et)]	EPT                  Et*]	EPV                  Et+]	EPX                  Et,]	EPZ                  Et-]	EP\                  Et.]	EP^                  Et/]	EP`                  Et0]	EPb                  Et1]	EPd                  Et2]	EPf                  Et3]	EPh                  Et4]	EPj                  Et5]	EPl                  Et6]	EPn                  Et7]	EPp                  Et8]	EPr                  Et9]	EPt                  Et:]	EPv                  Et;]	EPx                  Et<]	EPz                  Et=]	EP|                  Et>]	EP~                  Et?]	EP                  Et@]	EP                  EtA]	EP                  EtB]	EP                  EtC]	EP                  EtD]	EP                  EtE]	EP                  EtF]	EP                  EtG]	EP                  EtH]	EP                  EtI]	EP                  EtJ]	EP                  EtK]	EP                  EtL]	EP                  EtM]	EP                  EtN]	EP                  EtO]	EP                  EtP]	EP                  EtQ]	EP                  EtR]	EP                  EtS]	EP                  EtT]	EP                  EtU]	EP                  EtV]	EP                  EtW]	EP                  EtX]	EP                  EtY]	EP                  EtZ]	EP                  Et[]	EP                  Et\]	EP                  Et]]	EP                  Et^]	EP                  Et_]	EP                  Et`]	EP                  Eta]	EP                  Etb]	EP                  Etc]	EP                  Etd]	EP                  Ete]	EP                  Etf]	EP                  Etg]	EP                  Eth]	EP                  Eti]	EP                  Etj]	EP                  Etk]	EP                  Etl]	EP                  Etm]	EP                  Etn]	EP                  Eto]	EP                  EtpR9 R: lEtq]	EP                  Etr]	EP                  Ets]	EP                  Ett]	EP                  Etu]	EP                  Etv]	EP                  Etw]	EP                  Etx]	EP                  Ety]	EP                  Etz]	EP                  Et{]	EP                  Et|]	EP                  Et}]	EP                  Et~]	EP                  Et]	EP                   Et]	EP                  Et]	EP                  Et]	EP                  Et]	EP                  Et ! R; R<]4      Et]	EP                  ! E]4        ! R= R>]4      Et]	EP                  ! E]4       ]	EP                  Et]	EP                  Et]	EP                  EtRR? R@ llEtRA RB lEtRC RD lEtRE RF lEtRG RH lEtRRI RJ llEtRK EtRL EtRM EtRN EtRO EtRP EtRQ EtRR EtRS EtRT EtRU EtRV EtRW EtRX EtRY EtRZ EtR[ EtR\ EtR] R^ lEtR_ R` lEtRa Rb lEtRc Rd lEtRe Rf lEtRg Rh lEt ! Ri Rj]4      Et]	EPV                  ! E]4       Rk Rl lEtRm Rn lEtRo Rp lEtRq Rr lEtRs Rt lEtREtREtREt^Et^Et^Et^Et^Et^ Et^Et^Et^Et^ REIEt^ REIEt^ REIEt^ REIEt ! Ru RvE]4      Et ! Rw Rx]4      EtRy Rz lEtE]! 4       Et ! R{ R|]4      Et]	EP                  ! E]4       R} R~ lEtR R lEt ! R RE]4      Et^ RIt ! R R4      EtR#   ] d	    ^ RIt ELHi ; i)as  Contains definition of the interface to IDP modules.

The interface consists of two structures:
* definition of target assembler: ::ash
* definition of current processor: ::ph


These structures contain information about target processor and assembler features.
It also defines two groups of kernel events:
* processor_t::event_t processor related events
* idb_event:event_code_t database related events


The processor related events are used to communicate with the processor module. The database related events are used to inform any interested parties, like plugins or processor modules, about the changes in the database.
)annotations)version_info.)_ida_idpNc                     R V P                   P                  4       ,           pRV P                  P
                  : RV P                  P                  : RV: R2#   \        P                   d    Rp LPi ; i)z	proxy of  <r   z; z >)this__repr____builtin__	Exception	__class__
__module____name__)selfstrthiss   & ?C:\Users\user\Downloads\ida93sp2\portable_win\python\ida_idp.py
_swig_reprr      sg    		 2 2 44 "^^669     s   !A A43A4c                   a  V 3R  lpV# )c                  < VR 8X  d   S! WV4       R# VR8X  d   V P                   P                  V4       R# \        W4      '       d5   \        \	        \        V 4      V4      \        4      '       d   S! WV4       R# \        RV ,          4      h)r	   thisownz(You cannot add instance attributes to %sN)r	   ownhasattr
isinstancegetattrtypepropertyAttributeError)r   namevaluesets   &&&r   set_instance_attrE_swig_setattr_nondynamic_instance_variable.<locals>.set_instance_attr'   su    6>E"YIIMM% T  ZT
D0I& &E" !K"       )r    r!   s   f r   *_swig_setattr_nondynamic_instance_variabler%   %   s    
 r#   c                   a  V 3R  lpV# )c                   < \        W4      '       d+   \        \        W4      \        4      '       g   S! WV4       R# \	        R V ,          4      h)z%You cannot add class attributes to %sN)r   r   r   r   r   )clsr   r   r    s   &&&r   set_class_attr?_swig_setattr_nondynamic_class_variable.<locals>.set_class_attr7   s:    3j1CX&N&N5! !H3!NOOr#   r$   )r    r)   s   f r   '_swig_setattr_nondynamic_class_variabler+   5   s    P
 r#   c                   a  V 3R lpV# )zlClass decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclassc                p   < S! V P                   V P                  V P                  P                  4       4      # N)r   	__bases____dict__copy)r(   	metaclasss   &r   wrapper$_swig_add_metaclass.<locals>.wrapperB   s'    s}}cll6G6G6IJJr#   r$   )r2   r3   s   f r   _swig_add_metaclassr5   ?   s    KNr#   c                  >    ] tR t^GtRt]! ]P                  4      tRtR# )_SwigNonDynamicMetazKMeta class to enforce nondynamic attributes (no new attributes) for a classr$   N)	r   r   __qualname____firstlineno____doc__r+   r   __setattr____static_attributes__r$   r#   r   r7   r7   G   s    U9$:J:JKKr#   r7   )TupleListUnionc                     ] tR t^Rt]! R R RR7      t]tR t]	P                  tR R ltR R	 ltR
 R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR( R) ltR* R+ ltR, R- ltR. R/ lt R0 R1 lt!R2 R3 lt"R4 R5 lt#R6 R7 lt$R8 R9 lt%R: R; lt&R< R= lt'R> R? lt(R@ RA lt)]*PV                  t,]*PZ                  t.]*P^                  t0RBt1RC# )Dreg_access_vec_tc                	6    V P                   P                  4       # r.   r	   r   xs   &r   <lambda>reg_access_vec_t.<lambda>S       r#   c                	8    V P                   P                  V4      # r.   rC   rE   vs   &&r   rF   rG   S       AFFJJqMr#   The membership flagdocc                	X    \         P                  ! V \         P                  ! V!  4       R # r.   )r   reg_access_vec_t_swiginitnew_reg_access_vec_tr   argss   &*r   __init__reg_access_vec_t.__init__W   s'    **4  2!"&2( 	)r#   c                   V ^8  d   QhRR/# )   returnz'reg_access_t &'r$   )formats   "r   __annotate__reg_access_vec_t.__annotate__\   s     @ @!1 @r#   c                	2    \         P                  ! V .VO5!  # r.   )r   reg_access_vec_t_push_backrS   s   &*r   	push_backreg_access_vec_t.push_back\   s    224?$??r#   c                   V ^8  d   QhRR/# rX   rY   Noner$   )rZ   s   "r   r[   r\   _        8 8 8r#   c                	.    \         P                  ! V 4      # r.   )r   reg_access_vec_t_pop_backr   s   &r   pop_backreg_access_vec_t.pop_back_       11$77r#   c                   V ^8  d   QhRR/# rX   rY   intr$   )rZ   s   "r   r[   r\   b   s     4 4S 4r#   c                	.    \         P                  ! V 4      # r.   )r   reg_access_vec_t_sizerg   s   &r   sizereg_access_vec_t.sizeb       --d33r#   c                   V ^8  d   QhRR/# rX   rY   boolr$   )rZ   s   "r   r[   r\   e        5 5d 5r#   c                	.    \         P                  ! V 4      # r.   )r   reg_access_vec_t_emptyrg   s   &r   emptyreg_access_vec_t.emptye       ..t44r#   c                    V ^8  d   QhRRRR/# )rX   _idxrm   rY   'reg_access_t const &'r$   )rZ   s   "r   r[   r\   h   s     8 8s 84 8r#   c                	.    \         P                  ! W4      # r.   )r   reg_access_vec_t_at)r   r}   s   &&r   atreg_access_vec_t.ath   s    ++D77r#   c                   V ^8  d   QhRR/# rb   r$   )rZ   s   "r   r[   r\   k   s     6 6t 6r#   c                	.    \         P                  ! V 4      # r.   )r   reg_access_vec_t_qclearrg   s   &r   qclearreg_access_vec_t.qcleark   s    //55r#   c                   V ^8  d   QhRR/# rb   r$   )rZ   s   "r   r[   r\   n   rv   r#   c                	.    \         P                  ! V 4      # r.   )r   reg_access_vec_t_clearrg   s   &r   clearreg_access_vec_t.clearn   r{   r#   c                   V ^8  d   QhRR/# rb   r$   )rZ   s   "r   r[   r\   q   s     = =d =r#   c                	2    \         P                  ! V .VO5!  # r.   )r   reg_access_vec_t_resizerS   s   &*r   resizereg_access_vec_t.resizeq   s    //<t<<r#   c                   V ^8  d   QhRR/# rb   r$   )rZ   s   "r   r[   r\   t   s     ; ;D ;r#   c                	2    \         P                  ! V .VO5!  # r.   )r   reg_access_vec_t_growrS   s   &*r   growreg_access_vec_t.growt       --d:T::r#   c                   V ^8  d   QhRR/# rl   r$   )rZ   s   "r   r[   r\   w   s     8 8 8r#   c                	.    \         P                  ! V 4      # r.   )r   reg_access_vec_t_capacityrg   s   &r   capacityreg_access_vec_t.capacityw   rj   r#   c                    V ^8  d   QhRRRR/# )rX   cntrm   rY   rc   r$   )rZ   s   "r   r[   r\   z   s     < <3 <$ <r#   c                	.    \         P                  ! W4      # r.   )r   reg_access_vec_t_reserve)r   r   s   &&r   reservereg_access_vec_t.reservez   s    00;;r#   c                   V ^8  d   QhRR/# rb   r$   )rZ   s   "r   r[   r\   }   rd   r#   c                	.    \         P                  ! V 4      # r.   )r   reg_access_vec_t_truncaterg   s   &r   truncatereg_access_vec_t.truncate}   rj   r#   c                    V ^8  d   QhRRRR/# )rX   r'reg_access_vec_t'rY   rc   r$   )rZ   s   "r   r[   r\      s     7 7( 7D 7r#   c                	.    \         P                  ! W4      # r.   )r   reg_access_vec_t_swapr   r   s   &&r   swapreg_access_vec_t.swap       --d66r#   c                   V ^8  d   QhRR/# )rX   rY   z'reg_access_t *'r$   )rZ   s   "r   r[   r\      s     7 7( 7r#   c                	.    \         P                  ! V 4      # r.   )r   reg_access_vec_t_extractrg   s   &r   extractreg_access_vec_t.extract       0066r#   c               $    V ^8  d   QhRRRRRR/# )rX   s'reg_access_t'lenrm   rY   rc   r$   )rZ   s   "r   r[   r\      s!     > > >S >D >r#   c                	0    \         P                  ! WV4      # r.   )r   reg_access_vec_t_inject)r   r   r   s   &&&r   injectreg_access_vec_t.inject   s    //==r#   c                    V ^8  d   QhRRRR/# rX   r   r   rY   ru   r$   )rZ   s   "r   r[   r\           9 9* 9d 9r#   c                	.    \         P                  ! W4      # r.   )r   reg_access_vec_t___eq__r   s   &&r   __eq__reg_access_vec_t.__eq__       //88r#   c                    V ^8  d   QhRRRR/# r   r$   )rZ   s   "r   r[   r\      r   r#   c                	.    \         P                  ! W4      # r.   )r   reg_access_vec_t___ne__r   s   &&r   __ne__reg_access_vec_t.__ne__   r   r#   c                   V ^8  d   QhRR/# rX   rY   z)'qvector< reg_access_t >::const_iterator'r$   )rZ   s   "r   r[   r\      s     < <F <r#   c                	2    \         P                  ! V .VO5!  # r.   )r   reg_access_vec_t_beginrS   s   &*r   beginreg_access_vec_t.begin       ..t;d;;r#   c                   V ^8  d   QhRR/# r   r$   )rZ   s   "r   r[   r\      s     : :D :r#   c                	2    \         P                  ! V .VO5!  # r.   )r   reg_access_vec_t_endrS   s   &*r   endreg_access_vec_t.end   s    ,,T9D99r#   c               $    V ^8  d   QhRRRRRR/# )rX   itr   rE   rY   #'qvector< reg_access_t >::iterator'r$   )rZ   s   "r   r[   r\      s"     = = =N =/=r#   c                	0    \         P                  ! WV4      # r.   )r   reg_access_vec_t_insert)r   r   rE   s   &&&r   insertreg_access_vec_t.insert   s    //!<<r#   c                   V ^8  d   QhRR/# )rX   rY   r   r$   )rZ   s   "r   r[   r\      s     < <@ <r#   c                	2    \         P                  ! V .VO5!  # r.   )r   reg_access_vec_t_eraserS   s   &*r   erasereg_access_vec_t.erase   r   r#   c                   V ^8  d   QhRR/# r   r$   )rZ   s   "r   r[   r\      s     ; ;E ;r#   c                	2    \         P                  ! V .VO5!  # r.   )r   reg_access_vec_t_findrS   s   &*r   findreg_access_vec_t.find   r   r#   c                    V ^8  d   QhRRRR/# rX   rE   r   rY   ru   r$   )rZ   s   "r   r[   r\      s     6 6^ 6t 6r#   c                	.    \         P                  ! W4      # r.   )r   reg_access_vec_t_hasr   rE   s   &&r   hasreg_access_vec_t.has   s    ,,T55r#   c                    V ^8  d   QhRRRR/# r   r$   )rZ   s   "r   r[   r\      s     = =N =d =r#   c                	.    \         P                  ! W4      # r.   )r   reg_access_vec_t_add_uniquer   s   &&r   
add_uniquereg_access_vec_t.add_unique   s    33D<<r#   c                    V ^8  d   QhRRRR/# r   r$   )rZ   s   "r   r[   r\      s     7 7n 7 7r#   c                	.    \         P                  ! W4      # r.   )r   reg_access_vec_t__delr   s   &&r   _delreg_access_vec_t._del   r   r#   c                   V ^8  d   QhRR/# rl   r$   )rZ   s   "r   r[   r\      s     7 7 7r#   c                	.    \         P                  ! V 4      # r.   )r   reg_access_vec_t___len__rg   s   &r   __len__reg_access_vec_t.__len__   r   r#   c                    V ^8  d   QhRRRR/# )rX   irm   rY   r~   r$   )rZ   s   "r   r[   r\      s     > >S >$: >r#   c                	.    \         P                  ! W4      # r.   )r   reg_access_vec_t___getitem__)r   r   s   &&r   __getitem__reg_access_vec_t.__getitem__   s    44T==r#   c               $    V ^8  d   QhRRRRRR/# )rX   r   rm   rK   r   rY   rc   r$   )rZ   s   "r   r[   r\      s&     A AS A^ At Ar#   c                	0    \         P                  ! WV4      # r.   )r   reg_access_vec_t___setitem__)r   r   rK   s   &&&r   __setitem__reg_access_vec_t.__setitem__   s    44Ta@@r#   c                    V ^8  d   QhRRRR/# )rX   rE   r   rY   rc   r$   )rZ   s   "r   r[   r\      s     9 9 9$ 9r#   c                	.    \         P                  ! W4      # r.   )r   reg_access_vec_t_appendr   s   &&r   appendreg_access_vec_t.append   r   r#   c                    V ^8  d   QhRRRR/# )rX   rE   r   rY   rc   r$   )rZ   s   "r   r[   r\      r   r#   c                	.    \         P                  ! W4      # r.   )r   reg_access_vec_t_extendr   s   &&r   extendreg_access_vec_t.extend   r   r#   r$   N)2r   r   r8   r9   r   r   r   r
   rU   r   delete_reg_access_vec_t__swig_destroy__r_   rh   rp   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  
ida_idaapi_qvector_frontfront_qvector_backback_bounded_getitem_iterator__iter__r<   r$   r#   r   rA   rA   R   s    -/I!#GH)  77@845865=;8<877>99<:=<;6=77>A99%%E##D33Hr#   rA   c               $    V ^8  d   QhRRRRRR/# rX   featurerm   opnumz'uint'rY   ru   r$   )rZ   s   "r   r[   r[      !     / / /F /d /r#   c                .    \         P                  ! W4      # )zHDoes an instruction with the specified feature modify the i-th operand?
)r   
has_cf_chgr  r   s   &&r   r#  r#          w..r#   c               $    V ^8  d   QhRRRRRR/# r  r$   )rZ   s   "r   r[   r[     r!  r#   c                .    \         P                  ! W4      # )zPDoes an instruction with the specified feature use a value of the i-th operand?
)r   
has_cf_user$  s   &&r   r(  r(    r%  r#   c               $    V ^8  d   QhRRRRRR/# )rX   icode'uint16'bitrm   rY   ru   r$   )rZ   s   "r   r[   r[     s!     1 1H 13 1$ 1r#   c                .    \         P                  ! W4      # )z;Does the specified instruction have the specified feature?
)r   has_insn_feature)r*  r,  s   &&r   r.  r.    s     $$U00r#   c                    V ^8  d   QhRRRR/# rX   insn'insn_t const &'rY   ru   r$   )rZ   s   "r   r[   r[     s     ' '' '4 'r#   c                .    \         P                  ! V 4      # zIs the instruction a "call"?
)r   is_call_insnr1  s   &r   r5  r5    s       &&r#   c                   V ^8  d   QhRR/# rt   r$   )rZ   s   "r   r[   r[   &  s     ' ' 'r#   c                 *    \         P                  ! V !  # r.   )r   is_ret_insnrT   s   *r   r9  r9  &  s    &&r#   c                    V ^8  d   QhRRRR/# r0  r$   )rZ   s   "r   r[   r[   *  s     0 0 0 0D 0r#   c                .    \         P                  ! V 4      # )z%Is the instruction an indirect jump?
)r   is_indirect_jump_insnr6  s   &r   r=  r=  *  s     ))$//r#   c               $    V ^8  d   QhRRRRRR/# )rX   r1  r2  call_insn_stops_blockru   rY   r$   )rZ   s   "r   r[   r[   0  s(     D D- Dd DDr#   c                .    \         P                  ! W4      # z-Is the instruction the end of a basic block?
)r   is_basic_block_endr1  r?  s   &&r   rB  rB  0  s     &&tCCr#   c                     ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&    ]! ]P                  ]P                  4      tR]R	&    ]! ]P                   ]P"                  4      tR
]R&    ]! ]P&                  ]P(                  4      tR]R&    ]! ]P,                  ]P.                  4      tR]R&    ]! ]P2                  ]P4                  4      tR
]R&    ]! ]P8                  ]P:                  4      tR
]R&    ]! ]P>                  ]P@                  4      t!R
]R&    ]! ]PD                  ]PF                  4      t$R]R&    ]! ]PJ                  ]PL                  4      t'R]R&    ]! ]PP                  ]PR                  4      t*R
]R&    ]! ]PV                  ]PX                  4      t-R
]R&    ]! ]P\                  ]P^                  4      t0R
]R&    ]! ]Pb                  ]Pd                  4      t3R
]R&    ]! ]Ph                  ]Pj                  4      t6R
]R&    ]! ]Pn                  ]Pp                  4      t9R
]R&    ]! ]Pt                  ]Pv                  4      t<R
]R&    ]! ]Pz                  ]P|                  4      t?R
]R&    ]! ]P                  ]P                  4      tBR
]R&    ]! ]P                  ]P                  4      tER
]R&    ]! ]P                  ]P                  4      tHR
]R &    ]! ]P                  ]P                  4      tKR
]R!&    ]! ]P                  ]P                  4      tNR
]R"&    ]! ]P                  ]P                  4      tQR
]R#&    ]! ]P                  ]P                  4      tTR
]R$&    ]! ]P                  ]P                  4      tWR
]R%&    ]! ]P                  ]P                  4      tZR
]R&&    ]! ]P                  ]P                  4      t]R
]R'&    ]! ]P                  ]P                  4      t`R
]R(&    ]! ]P                  ]P                  4      tcR
]R)&    ]! ]P                  ]P                  4      tfR
]R*&    ]! ]P                  ]P                  4      tiR]R+&    ]! ]P                  ]P                  4      tlR]R,&    ]! ]P                  ]P                  4      toR
]R-&    ]! ]P                  ]P                  4      trR
]R.&    ]! ]P                  ]P                  4      tuR
]R/&    ]! ]P                  ]P                  4      txR
]R0&    ]! ]P                  ]P                  4      t{R
]R1&    ]! ]P                  ]P                  4      t~R
]R2&    ]! ]P                  ]EP                   4      tR
]R3&    ]! ]EP                  ]EP                  4      tR
]R4&    ]! ]EP
                  ]EP                  4      tR]R5&    ]! ]EP                  ]EP                  4      tR
]R6&    ]! ]EP                  ]EP                  4      tR
]R7&    ]! ]EP                  ]EP                  4      tR
]R8&    ]! ]EP"                  ]EP$                  4      tR
]R9&    ]! ]EP(                  ]EP*                  4      tR
]R:&    ]! ]EP.                  ]EP0                  4      tR
]R;&    ]! ]EP4                  ]EP6                  4      tR
]R<&    ]! ]EP:                  ]EP<                  4      tR
]R=&    ]! ]EP@                  ]EPB                  4      tR
]R>&    ]! ]EPF                  ]EPH                  4      tR
]R?&    R@ t]EPN                  tRAtRB# )Casm_ti7  c                	6    V P                   P                  4       # r.   rC   rD   s   &r   rF   asm_t.<lambda>8  rH   r#   c                	8    V P                   P                  V4      # r.   rC   rJ   s   &&r   rF   rG  8  rL   r#   rM   rN   rm   flagr+  uflagstrr   z'help_t'helpz'char const *const *'headeroriginr   cmntz'char'ascsepaccsepesccodesa_asciia_bytea_worda_dworda_qworda_oworda_floata_doublea_tbyte
a_packreala_dupsa_bssa_equa_sega_curipa_publica_weaka_extrna_comdefa_alignlbracerbracea_moda_banda_bora_xora_bnota_shla_shra_sizeof_fmtflag2cmnt2low8high8low16high16a_include_fmta_vstruc_fmta_rvaa_yworda_zwordc                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   asm_t_swiginit	new_asm_trg   s   &r   rU   asm_t.__init__  s    h&8&8&:;r#   r$   N)r   r   r8   r9   r   r   r   r
   r   asm_t_flag_getasm_t_flag_setrI  __annotations__asm_t_uflag_getasm_t_uflag_setrJ  asm_t_name_getasm_t_name_setr   asm_t_help_getasm_t_help_setrL  asm_t_header_getasm_t_header_setrM  asm_t_origin_getasm_t_origin_setrN  asm_t_end_getasm_t_end_setr   asm_t_cmnt_getasm_t_cmnt_setrO  asm_t_ascsep_getasm_t_ascsep_setrP  asm_t_accsep_getasm_t_accsep_setrQ  asm_t_esccodes_getasm_t_esccodes_setrR  asm_t_a_ascii_getasm_t_a_ascii_setrS  asm_t_a_byte_getasm_t_a_byte_setrT  asm_t_a_word_getasm_t_a_word_setrU  asm_t_a_dword_getasm_t_a_dword_setrV  asm_t_a_qword_getasm_t_a_qword_setrW  asm_t_a_oword_getasm_t_a_oword_setrX  asm_t_a_float_getasm_t_a_float_setrY  asm_t_a_double_getasm_t_a_double_setrZ  asm_t_a_tbyte_getasm_t_a_tbyte_setr[  asm_t_a_packreal_getasm_t_a_packreal_setr\  asm_t_a_dups_getasm_t_a_dups_setr]  asm_t_a_bss_getasm_t_a_bss_setr^  asm_t_a_equ_getasm_t_a_equ_setr_  asm_t_a_seg_getasm_t_a_seg_setr`  asm_t_a_curip_getasm_t_a_curip_setra  asm_t_a_public_getasm_t_a_public_setrb  asm_t_a_weak_getasm_t_a_weak_setrc  asm_t_a_extrn_getasm_t_a_extrn_setrd  asm_t_a_comdef_getasm_t_a_comdef_setre  asm_t_a_align_getasm_t_a_align_setrf  asm_t_lbrace_getasm_t_lbrace_setrg  asm_t_rbrace_getasm_t_rbrace_setrh  asm_t_a_mod_getasm_t_a_mod_setri  asm_t_a_band_getasm_t_a_band_setrj  asm_t_a_bor_getasm_t_a_bor_setrk  asm_t_a_xor_getasm_t_a_xor_setrl  asm_t_a_bnot_getasm_t_a_bnot_setrm  asm_t_a_shl_getasm_t_a_shl_setrn  asm_t_a_shr_getasm_t_a_shr_setro  asm_t_a_sizeof_fmt_getasm_t_a_sizeof_fmt_setrp  asm_t_flag2_getasm_t_flag2_setrq  asm_t_cmnt2_getasm_t_cmnt2_setrr  asm_t_low8_getasm_t_low8_setrs  asm_t_high8_getasm_t_high8_setrt  asm_t_low16_getasm_t_low16_setru  asm_t_high16_getasm_t_high16_setrv  asm_t_a_include_fmt_getasm_t_a_include_fmt_setrw  asm_t_a_vstruc_fmt_getasm_t_a_vstruc_fmt_setrx  asm_t_a_rva_getasm_t_a_rva_setry  asm_t_a_yword_getasm_t_a_yword_setrz  asm_t_a_zword_getasm_t_a_zword_setr{  rU   delete_asm_tr  r<   r$   r#   r   rE  rE  7  s   -/I!#GH00(2I2IJD#Jx77E8 00(2I2IJD#Jh55x7N7NOD(O$,X-F-F!!%#F! #844h6O6O 
FC 
..0F0FGCG00(2I2IJD#Jh77FF h77FF X88(Hc H66GS 844h6O6O 
FC 
844h6O6O 
FC 
H66GS H66GS H66GS H66GS X88(Hc H66GS x<<hJ 844h6O6O 
FC 
 (22H4L4LME3M(22H4L4LME3M(22H4L4LME3MH66GS X88(Hc 844h6O6O 
FC 
H66GS X88(Hc H66GS h77FF h77FF (22H4L4LME3M844h6O6O 
FC 
(22H4L4LME3M(22H4L4LME3M844h6O6O 
FC 
(22H4L4LME3M(22H4L4LME3M !@!@( L#  (22H4L4LME3M(22H4L4LME3M00(2I2IJD#J(22H4L4LME3M(22H4L4LME3M844h6O6O 
FC 
!("B"B((*M3 * !@!@( L#  (22H4L4LME3MH66GS H66GS <,,r#   rE  c                     ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&   R R	 ltR
 R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' lt]P:                  t]P>                  t ]PB                  t"]PF                  t$]PJ                  t&]PN                  t(]PR                  t*]PV                  t,]PZ                  t.]P^                  t0]Pb                  t2]Pf                  t4]Pj                  t6]Pn                  t8]Pr                  t:]Pv                  t<]Pz                  t>]P~                  t@]P                  tB]P                  tD]P                  tF]P                  tH]P                  tJ]P                  tL]P                  tN]P                  tP]P                  tR]P                  tT]P                  tV]P                  tX]P                  tZ]P                  t\]P                  t^]P                  t`]P                  tb]P                  td]P                  tf]P                  th]P                  tj]P                  tl]P                  tn]P                  tp]P                  tr]P                  tt]P                  tv]P                  tx]P                  tz]P                  t|]P                  t~]P                  t]EP                  t]EP                  t]EP
                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP"                  t]EP&                  t]EP*                  t]EP.                  t]EP2                  t]EP6                  t]EP:                  t]EP>                  t]EPB                  t]EPF                  t]EPJ                  t]EPN                  t]EPR                  t]EPV                  t]EPZ                  t]EP^                  t]EPb                  t]EPf                  t]EPj                  t]EPn                  t]EPr                  t]EPv                  t]EPz                  t]EP~                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  t]EP                  Et ]EP                  Et]EP                  Et]EP
                  Et]EP                  Et]EP                  Et
]EP                  Et]EP                  Et]EP                  Et]EP"                  Et]EP&                  Et]EP*                  Et]EP.                  Et]EP2                  Et]EP6                  Et]EP:                  Et]EP>                  Et ]EPB                  Et"]EPF                  Et$]EPJ                  Et&]EPN                  Et(]EPR                  Et*]EPV                  Et,E]-R( R) l4       Et.E]-R* R+ l4       Et/E]-R, R- l4       Et0E]-R. R/ l4       Et1E]-R0 R1 l4       Et2E]-R2 R3 l4       Et3E]-R4 R5 l4       Et4E]-R6 R7 l4       Et5E]-R8 R9 l4       Et6E]-R: R; l4       Et7E]-R< R= l4       Et8E]-R> R? l4       Et9E]-R@ RA l4       Et:E]-RB RC l4       Et;E]-RD RE l4       Et<E]-RF RG l4       Et=E]-RH RI l4       Et>E]-RJ RK l4       Et?E]-RL RM l4       Et@E]-RN RO l4       EtAE]-RP RQ l4       EtBE]-RR RS l4       EtCE]-RT RU l4       EtDE]-RV RW l4       EtEE]-RX RY l4       EtFE]-RZ R[ l4       EtGE]-R\ R] l4       EtHE]-R^ R_ l4       EtIE]-R` Ra l4       EtJE]-Rb Rc l4       EtKE]-Rd Re l4       EtLE]-Rf Rg l4       EtME]-Rh Ri l4       EtNE]-Rj Rk l4       EtOE]-Rl Rm l4       EtPE]-Rn Ro l4       EtQE]-Rp Rq l4       EtRE]-Rr Rs l4       EtSE]-Rt Ru l4       EtTE]-Rv Rw l4       EtUE]-Rx Ry l4       EtVE]-Rz R{ l4       EtWE]-R| R} l4       EtXE]-R~ R l4       EtYE]-R R l4       EtZE]-R R l4       Et[E]-R R l4       Et\E]-R R l4       Et]E]-R R l4       Et^E]-R R l4       Et_E]-R R l4       Et`E]-R R l4       EtaE]-R R l4       EtbE]-R R l4       EtcE]-R R l4       EtdE]-R R l4       EteE]-R R l4       EtfE]-R R l4       EtgE]-R R l4       EthE]-R R l4       EtiE]-R R l4       EtjE]-R R l4       EtkE]-R R l4       EtlE]-R R l4       EtmE]-R R l4       EtnE]-R R l4       EtoE]-R R l4       EtpE]-R R l4       EtqE]-R R l4       EtrE]-R R l4       EtsE]-R R l4       EttE]-R R l4       EtuE]-R R l4       EtvE]-R R l4       EtwE]-R R l4       EtxE]-R R l4       EtyE]-R R l4       EtzE]-R R l4       Et{E]-R R l4       Et|E]-R R l4       Et}E]-R R l4       Et~E]-R R l4       EtE]-R R l4       EtE]-ER%R R ll4       EtE]-R R l4       EtE]-R R l4       EtE]-R R l4       EtR R lEtE]-R R l4       EtE]-R R l4       EtE]-ER%R R ll4       EtE]-R R l4       EtE]-R R l4       EtE]-R R l4       EtE]-R R l4       EtE]-R R l4       EtE]-R R l4       EtE]-R R l4       EtE]-R R l4       EtE]-R R l4       EtE]-R R l4       EtE]-R R l4       EtE]-R R l4       EtE]-R R l4       EtE]-R R l4       EtE]-R R l4       EtE]-R R l4       EtE]-R R l4       EtE]-ER  ER l4       EtE]-ER ER l4       EtE]-ER ER l4       EtE]-ER&ER ER ll4       EtE]-ER	 ER
 l4       EtE]-ER ER l4       EtE]-ER ER l4       EtE]-ER ER l4       EtE]-ER ER l4       EtE]-ER ER l4       EtER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtER ER  lEtER! ER" lEtER# Et]EPX                  EtER$EtER# ('  _processor_ti   c                	6    V P                   P                  4       # r.   rC   rD   s   &r   rF   _processor_t.<lambda>!  rH   r#   c                	8    V P                   P                  V4      # r.   rC   rJ   s   &&r   rF   r  !  rL   r#   rM   rN   rm   versionc                   V ^8  d   QhRR/# rt   r$   )rZ   s   "r   r[   _processor_t.__annotate__'       8 8T 8r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_has_idp_optsrg   s   &r   has_idp_opts_processor_t.has_idp_opts'  rj   r#   c                   V ^8  d   QhRR/# rt   r$   )rZ   s   "r   r[   r  *  s     7 7D 7r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_has_segregsrg   s   &r   has_segregs_processor_t.has_segregs*  r   r#   c                   V ^8  d   QhRR/# rt   r$   )rZ   s   "r   r[   r  -       1 1d 1r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_use32rg   s   &r   use32_processor_t.use32-      **400r#   c                   V ^8  d   QhRR/# rt   r$   )rZ   s   "r   r[   r  0  r  r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_use64rg   s   &r   use64_processor_t.use640  r  r#   c                   V ^8  d   QhRR/# rt   r$   )rZ   s   "r   r[   r  3  s     . .4 .r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_tirg   s   &r   ti_processor_t.ti3  s    ''--r#   c                   V ^8  d   QhRR/# rt   r$   )rZ   s   "r   r[   r  6  r  r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_stkuprg   s   &r   stkup_processor_t.stkup6  r  r#   c                   V ^8  d   QhRR/# rt   r$   )rZ   s   "r   r[   r  9  s     5 5$ 5r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_use_tbyterg   s   &r   	use_tbyte_processor_t.use_tbyte9  r{   r#   c                   V ^8  d   QhRR/# rt   r$   )rZ   s   "r   r[   r  <  r  r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_use_mappingsrg   s   &r   use_mappings_processor_t.use_mappings<  rj   r#   c                   V ^8  d   QhRR/# rt   r$   )rZ   s   "r   r[   r  ?  s     : :t :r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_has_code16_bitrg   s   &r   has_code16_bit_processor_t.has_code16_bit?      33D99r#   c                   V ^8  d   QhRR/# rt   r$   )rZ   s   "r   r[   r  B       ; ; ;r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_supports_macrosrg   s   &r   supports_macros_processor_t.supports_macrosB      44T::r#   c                   V ^8  d   QhRR/# rt   r$   )rZ   s   "r   r[   r  E  s     < < <r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_supports_calcrelrg   s   &r   supports_calcrel_processor_t.supports_calcrelE      55d;;r#   c                   V ^8  d   QhRR/# rt   r$   )rZ   s   "r   r[   r  H  r#  r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_calcrel_in_bitsrg   s   &r   calcrel_in_bits_processor_t.calcrel_in_bitsH  r(  r#   c                    V ^8  d   QhRRRR/# )rX   is_64bit_appru   rY   rm   r$   )rZ   s   "r   r[   r  K  s      T S r#   c                	0    \         P                  ! V V4      # r.   )r   %_processor_t_get_default_segm_bitness)r   r5  s   &&r   get_default_segm_bitness%_processor_t.get_default_segm_bitnessK  s    ==d 	r#   c                   V ^8  d   QhRR/# rl   r$   )rZ   s   "r   r[   r  O       2 2s 2r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_cbsizerg   s   &r   cbsize_processor_t.cbsizeO      ++D11r#   c                   V ^8  d   QhRR/# rl   r$   )rZ   s   "r   r[   r  R  r;  r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_dbsizerg   s   &r   dbsize_processor_t.dbsizeR  r@  r#   c                   V ^8  d   QhRR/# rl   r$   )rZ   s   "r   r[   r  U  s     : :s :r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_get_proc_indexrg   s   &r   get_proc_index_processor_t.get_proc_indexU  r!  r#   c                   V ^8  d   QhRR/# rX   rY   	'ssize_t'r$   )rZ   s   "r   r[   r    s     3 3	 3r#   c                 	*    \         P                  ! V !  # r.   )r   _processor_t_notifyr:  s   *r   notify_processor_t.notify  s    ++T22r#   c                    V ^8  d   QhRRRR/# )rX   idp_modnamerK  rY   rM  r$   )rZ   s   "r   r[   r    s     7 7# 7 7r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_init)rS  s   &r   init_processor_t.init  s    ))+66r#   c                   V ^8  d   QhRR/# rL  r$   )rZ   s   "r   r[   r    s     , , ,r#   c                 	,    \         P                  ! 4       # r.   )r   _processor_t_termr$   r#   r   term_processor_t.term  s    ))++r#   c               $    V ^8  d   QhRRRRRR/# )rX   pnumrm   keep_cfgru   rY   rM  r$   )rZ   s   "r   r[   r    s!     < <S <D <I <r#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_newprc)r^  r_  s   &&r   newprc_processor_t.newprc  s    ++D;;r#   c                    V ^8  d   QhRRRR/# rX   asmnumrm   rY   rM  r$   )rZ   s   "r   r[   r         4 4s 4i 4r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_newasmrf  s   &r   newasm_processor_t.newasm  s    ++F33r#   c                    V ^8  d   QhRRRR/# re  r$   )rZ   s   "r   r[   r    s     ; ;c ;Y ;r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_asm_installedrj  s   &r   asm_installed_processor_t.asm_installed  s    226::r#   c                    V ^8  d   QhRRRR/# rX   fnamerK  rY   rM  r$   )rZ   s   "r   r[   r    rg  r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_newfilert  s   &r   newfile_processor_t.newfile      ,,U33r#   c                    V ^8  d   QhRRRR/# rs  r$   )rZ   s   "r   r[   r    rg  r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_oldfilerw  s   &r   oldfile_processor_t.oldfile   rz  r#   c               0    V ^8  d   QhRRRRRRRRRR	R
R/# )rX   filenamerK  fileoff
'qoff64_t'baseparaida_idaapi.ea_tbinoffnbytes'uint64'rY   rM  r$   )rZ   s   "r   r[   r    s:      C * !0:Br#   c                	2    \         P                  ! WVW44      # r.   )r   _processor_t_newbinary)r  r  r  r  r  s   &&&&&r   	newbinary_processor_t.newbinary  s     ..x( 	r#   c                    V ^8  d   QhRRRR/# )rX   okru   rY   rM  r$   )rZ   s   "r   r[   r    s     3 3d 3i 3r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_endbinary)r  s   &r   	endbinary_processor_t.endbinary  s    ..r22r#   c                    V ^8  d   QhRRRR/# )rX   seg'segment_t *'rY   rM  r$   )rZ   s   "r   r[   r    s     8 8= 8I 8r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_creating_segm)r  s   &r   creating_segm_processor_t.creating_segm  s    22377r#   c               4    V ^8  d   QhRRRRRRRRRRR	R
RR/# )rX   _binz	'uchar *'ear  csip_use32ru   linerK  rY   rM  r$   )rZ   s   "r   r[   r    sJ     N Ny No N? NN%)N14N8ANr#   c                	2    \         P                  ! WW#WE4      # r.   )r   _processor_t_assemble)r  r  r  r  r  r  s   &&&&&&r   assemble_processor_t.assemble  s     --dMMr#   c                    V ^8  d   QhRRRR/# )rX   out
'insn_t *'rY   rM  r$   )rZ   s   "r   r[   r    s     3 3j 3I 3r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_ana_insn)r  s   &r   ana_insn_processor_t.ana_insn      --c22r#   c                    V ^8  d   QhRRRR/# rX   r1  r2  rY   rM  r$   )rZ   s   "r   r[   r    s     4 4' 49 4r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_emu_insnr6  s   &r   emu_insn_processor_t.emu_insn  s    --d33r#   c                    V ^8  d   QhRRRR/# rX   ctx'outctx_t &'rY   rM  r$   )rZ   s   "r   r[   r  !       5 5 5	 5r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_out_headerr  s   &r   
out_header_processor_t.out_header       //44r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r  %  r  r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_out_footerr  s   &r   
out_footer_processor_t.out_footer$  r  r#   c               $    V ^8  d   QhRRRRRR/# rX   r  r  r  r  rY   rM  r$   )rZ   s   "r   r[   r  )  s!     < <, <] <i <r#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_out_segstartr  r  s   &&r   out_segstart_processor_t.out_segstart(      11#;;r#   c               $    V ^8  d   QhRRRRRR/# r  r$   )rZ   s   "r   r[   r  -  s!     : : := :I :r#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_out_segendr  s   &&r   
out_segend_processor_t.out_segend,  s    //99r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r  1  s     6 6 6 6r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_out_assumesr  s   &r   out_assumes_processor_t.out_assumes0  s    0055r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r  5       3 3l 3i 3r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_out_insnr  s   &r   out_insn_processor_t.out_insn4  r  r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r  9  r  r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_out_mnemr  s   &r   out_mnem_processor_t.out_mnem8  r  r#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r  op'op_t const &'rY   rM  r$   )rZ   s   "r   r[   r  =  s!     : : :> :Y :r#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_out_operand)r  r  s   &&r   out_operand_processor_t.out_operand<  s    0099r#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r  analyze_onlyru   rY   rM  r$   )rZ   s   "r   r[   r  A  s&     A Al A$ A) Ar#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_out_data)r  r  s   &&r   out_data_processor_t.out_data@  s    --c@@r#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r  colored_namerK  rY   rM  r$   )rZ   s   "r   r[   r  E  s&     B B| B3 B) Br#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_out_label)r  r  s   &&r   	out_label_processor_t.out_labelD  s    ..sAAr#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r  segtype'uchar'rY   rM  r$   )rZ   s   "r   r[   r  I  s&     D Dl DW D	 Dr#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_out_special_item)r  r  s   &&r   out_special_item_processor_t.out_special_itemH  s    55cCCr#   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rX   r  r  mptr'udm_t'rK   rm   tid'tid_t'rY   rM  r$   )rZ   s   "r   r[   r  M  s7     G GL G GC Gg GGr#   c                	0    \         P                  ! WW#4      # r.   )r   _processor_t_gen_stkvar_def)r  r  rK   r  s   &&&&r   gen_stkvar_def_processor_t.gen_stkvar_defL  s     33CqFFr#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r  rK   'regvar_t *'rY   rM  r$   )rZ   s   "r   r[   r  R  s!     < <L <\ <Y <r#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_gen_regvar_def)r  rK   s   &&r   gen_regvar_def_processor_t.gen_regvar_defQ  s    33C;;r#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r  r  filerK  lnnumrm   rY   rM  r$   )rZ   s   "r   r[   r  V  s/     J J JC J JJr#   c                	0    \         P                  ! WV4      # r.   )r   _processor_t_gen_src_file_lnnum)r  r
  r  s   &&&r   gen_src_file_lnnum_processor_t.gen_src_file_lnnumU  s     775IIr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r  r  new_namerK  flagsrm   rY   rM  r$   )rZ   s   "r   r[   r  [  s.     A A? Ac A# A Ar#   c                	0    \         P                  ! WV4      # r.   )r   _processor_t_rename)r  r  r  s   &&&r   rename_processor_t.renameZ  s    ++B%@@r#   c                    V ^8  d   QhRRRR/# )rX   
current_ear  rY   rM  r$   )rZ   s   "r   r[   r  _  s     ? ?/ ?Y ?r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_may_show_sreg)r  s   &r   may_show_sreg_processor_t.may_show_sreg^  s    22:>>r#   c                    V ^8  d   QhRRRR/# )rX   start_ear  rY   rM  r$   )rZ   s   "r   r[   r  c       9 9O 9y 9r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_coagulate)r  s   &r   	coagulate_processor_t.coagulateb  s    ..x88r#   c                    V ^8  d   QhRRRR/# )rX   r   rm   rY   rc   r$   )rZ   s   "r   r[   r  g  s     < <s <d <r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_auto_queue_empty)r   s   &r   auto_queue_empty_processor_t.auto_queue_emptyf      55d;;r#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   possible_return_code'int *'pfn
'func_t *'max_func_end_ear  rY   rM  r$   )rZ   s   "r   r[   r  k  s*      ' 
 (,5r#   c                	0    \         P                  ! WV4      # r.   )r   _processor_t_func_bounds)r+  r-  r/  s   &&&r   func_bounds_processor_t.func_boundsj  s     001E 	r#   c               $    V ^8  d   QhRRRRRR/# )rX   r1  r2  staterm   rY   rM  r$   )rZ   s   "r   r[   r  q  s"     > >* >3 >) >r#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_may_be_func)r1  r5  s   &&r   may_be_func_processor_t.may_be_funcp  s    00==r#   c               $    V ^8  d   QhRRRRRR/# )rX   r1  r2  no_crefsrm   rY   rM  r$   )rZ   s   "r   r[   r  u  s'     B B+ Bs Bi Br#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_is_sane_insn)r1  r;  s   &&r   is_sane_insn_processor_t.is_sane_insnt  s    11$AAr#   c               $    V ^8  d   QhRRRRRR/# )rX   op1r  op2rY   rM  r$   )rZ   s   "r   r[   r  y  s!     < <. <~ < <r#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_cmp_operands)rA  rB  s   &&r   cmp_operands_processor_t.cmp_operandsx  r  r#   c               (    V ^8  d   QhRRRRRRRR/# )rX   r-  r.  jump_target'ea_t *'func_pointerrY   rM  r$   )rZ   s   "r   r[   r  }  s*      * 8 r#   c                	0    \         P                  ! WV4      # r.   )r   _processor_t_is_jump_func)r-  rH  rJ  s   &&&r   is_jump_func_processor_t.is_jump_func|  s     11# 	r#   c               $    V ^8  d   QhRRRRRR/# )rX   r1  r2  r?  ru   rY   rM  r$   )rZ   s   "r   r[   r    s#     # #!1 #$ ##r#   c                0    \         P                  ! V V4      # rA  )r   _processor_t_is_basic_block_endrC  s   &&r   rB  _processor_t.is_basic_block_end  s    
 77!# 	#r#   c               $    V ^8  d   QhRRRRRR/# )rX   rv
'uval_t *'regnumrm   rY   rM  r$   )rZ   s   "r   r[   r    s!     8 8: 8s 8i 8r#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_getreg)rT  rV  s   &&r   getreg_processor_t.getreg  s    ++B77r#   c                    V ^8  d   QhRRRR/# rX   r  r  rY   rM  r$   )rZ   s   "r   r[   r    s     2 2_ 2	 2r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_undefiner  s   &r   undefine_processor_t.undefine  s    --b11r#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r  r  tor  r  rm   rY   rM  r$   )rZ   s   "r   r[   r    s/     A A AO AC AAr#   c                	0    \         P                  ! WV4      # r.   )r   _processor_t_moving_segm)r  rc  r  s   &&&r   moving_segm_processor_t.moving_segm  s     00%@@r#   c               $    V ^8  d   QhRRRRRR/# )rX   r1  r2  rE   r  rY   rM  r$   )rZ   s   "r   r[   r    s"     : :* :~ : :r#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_is_sp_based)r1  rE   s   &&r   is_sp_based_processor_t.is_sp_based  s    0099r#   c                    V ^8  d   QhRRRR/# )rX   r*  rm   rY   rM  r$   )rZ   s   "r   r[   r    s     8 83 8) 8r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_is_far_jump)r*  s   &r   is_far_jump_processor_t.is_far_jump  s    0077r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r    s     8 8+ 8y 8r#   c                .    \         P                  ! V 4      # r4  )r   _processor_t_is_call_insnr6  s   &r   r5  _processor_t.is_call_insn       11$77r#   c               $    V ^8  d   QhRRRRRR/# )rX   r1  r2  	iri_flagsr  rY   rM  r$   )rZ   s   "r   r[   r    s'     B B* Bw B) Br#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_is_ret_insn)r1  rx  s   &&r   r9  _processor_t.is_ret_insn  s    00AAr#   c                    V ^8  d   QhRRRR/# r\  r$   )rZ   s   "r   r[   r    s     7 7/ 7Y 7r#   c                .    \         P                  ! V 4      # zyIf the instruction at 'ea' looks like an alignment instruction, return its length in bytes. Otherwise return 0. 
        )r   _processor_t_is_align_insnr_  s   &r   is_align_insn_processor_t.is_align_insn  s     22266r#   c               $    V ^8  d   QhRRRRRR/# )rX   r   r,  r1  r2  rY   rM  r$   )rZ   s   "r   r[   r    s"     > >7 >*: >i >r#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_is_addr_insn)r   r1  s   &&r   is_addr_insn_processor_t.is_addr_insn  s    11$==r#   c                    V ^8  d   QhRRRR/# )rX   r  r  rY   rM  r$   )rZ   s   "r   r[   r    s     7 7. 7I 7r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_can_have_type)r  s   &r   can_have_type_processor_t.can_have_type  s    22266r#   c                   V ^8  d   QhRR/# rL  r$   )rZ   s   "r   r[   r    s     ? ?I ?r#   c                 	,    \         P                  ! 4       # r.   )r   $_processor_t_get_stkvar_scale_factorr$   r#   r   get_stkvar_scale_factor$_processor_t.get_stkvar_scale_factor  s    <<>>r#   c          
     ,    V ^8  d   QhRRRRRRRRRR/# )	rX   resz	'int32 *'r   rK  disable_maskrm   demreqrY   r$   )rZ   s   "r   r[   r    s0      9 C s C r#   c                	2    \         P                  ! WVV4      # r.   )r   _processor_t_demangle_name)r  r   r  r  s   &&&&r   demangle_name_processor_t.demangle_name  s     223l 	r#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   
image_baser  bitnessrm   dataseg_sel'sel_t'rY   rM  r$   )rZ   s   "r   r[   r    s*      o   )r#   c                	0    \         P                  ! WV4      # r.   )r   _processor_t_create_flat_group)r  r  r  s   &&&r   create_flat_group_processor_t.create_flat_group  s     66z 	r#   c                    V ^8  d   QhRRRR/# r\  r$   )rZ   s   "r   r[   r    r  r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_is_alloca_prober_  s   &r   is_alloca_probe_processor_t.is_alloca_probe      44R88r#   c               (    V ^8  d   QhRRRRRRRR/# rX   regrm   widthreghirY   rK  r$   )rZ   s   "r   r[   r    s.     E E# Ec E# E Er#   c                0    \         P                  ! WV4      # a  Get text representation of a register. For most processors this function will just return processor_t::reg_names[reg]. If the processor module has implemented processor_t::get_reg_name, it will be used instead 
        
:param reg: internal register number as defined in the processor module
:param width: register width in bytes
:param reghi: if specified, then this function will return the register pair
:returns: length of register name in bytes or -1 if failure)r   _processor_t_get_reg_namer  r  r  s   &&&r   get_reg_name_processor_t.get_reg_name  s     11#eDDr#   c               0    V ^8  d   QhRRRRRRRRRR	R
R/# )rX   startingru   fp'FILE *'is_asmr  rm   outline'void *'rY   rM  r$   )rZ   s   "r   r[   r    s9       8 T "+r#   c                	2    \         P                  ! WVW44      # r.   )r   _processor_t_gen_asm_or_lst)r  r  r  r  r  s   &&&&&r   gen_asm_or_lst_processor_t.gen_asm_or_lst  s     33H& 	r#   c               $    V ^8  d   QhRRRRRR/# )rX   nlinesr,  r  r  rY   rM  r$   )rZ   s   "r   r[   r    s!     > >W >( >i >r#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_gen_map_file)r  r  s   &&r   gen_map_file_processor_t.gen_map_file  s    11&==r#   c                    V ^8  d   QhRRRR/# )rX   r1  r2  rY   rK  r$   )rZ   s   "r   r[   r    s     7 7* 7c 7r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_get_autocmtr6  s   &r   get_autocmt_processor_t.get_autocmt  s    0066r#   c               4    V ^8  d   QhRRRRRRRRR	R
RRRR/# )rX   li'linput_t *'machine_typerm   
p_procname'char const **'p_pdz'proc_def_t **'ldrz'elf_loader_t *'readerz'reader_t *'rY   rM  r$   )rZ   s   "r   r[   r    sB     + +| +3 ++.+5E++ )+r#   c                	2    \         P                  ! WW#WE4      # r.   )r   _processor_t_loader_elf_machine)r  r  r  r  r  r  s   &&&&&&r   loader_elf_machine_processor_t.loader_elf_machine  s     77c+ 	+r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r    s     < </ <9 <r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_is_indirect_jumpr6  s   &r   is_indirect_jump_processor_t.is_indirect_jump  r)  r#   c                    V ^8  d   QhRRRR/# rX   r-  r.  rY   rM  r$   )rZ   s   "r   r[   r    s     : :Z :9 :r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_verify_noreturnr-  s   &r   verify_noreturn_processor_t.verify_noreturn  s    44S99r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r    s     4 4z 4Y 4r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_verify_spr  s   &r   	verify_sp_processor_t.verify_sp  s    ..s33r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r    s     < <z <Y <r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_create_func_framer  s   &r   create_func_frame_processor_t.create_func_frame  s    66s;;r#   c               $    V ^8  d   QhRRRRRR/# )rX   retsizer,  r-  'func_t const *'rY   rM  r$   )rZ   s   "r   r[   r    s'     E E7 E1A EY Er#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_get_frame_retsize)r  r-  s   &&r   get_frame_retsize_processor_t.get_frame_retsize  s    66wDDr#   c                    V ^8  d   QhRRRR/# )rX   fct_ear  rY   rM  r$   )rZ   s   "r   r[   r    s     < < <) <r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_analyze_prolog)r  s   &r   analyze_prolog_processor_t.analyze_prolog  s    33F;;r#   c               $    V ^8  d   QhRRRRRR/# )rX   spdelta
'sval_t *'insr2  rY   rM  r$   )rZ   s   "r   r[   r    s'     @ @j @/? @9 @r#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_calc_spdelta)r  r  s   &&r   calc_spdelta_processor_t.calc_spdelta  s    11'??r#   c                    V ^8  d   QhRRRR/# rX   r  r  rY   z'bytevec_t *, size_t *'r$   )rZ   s   "r   r[   r    s     1 1O 1'> 1r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_calcrelr_  s   &r   calcrel_processor_t.calcrel  s    ,,R00r#   c               (    V ^8  d   QhRRRRRRRR/# 	rX   accvec'reg_accesses_t'r1  r2  r  rm   rY   rM  r$   )rZ   s   "r   r[   r    s2     K K!1 K9I KKKr#   c                	0    \         P                  ! WV4      # r.   )r   _processor_t_get_reg_accessesr	  r1  r  s   &&&r   get_reg_accesses_processor_t.get_reg_accesses
  s     55fEJJr#   c               $    V ^8  d   QhRRRRRR/# )rX   p_regr,  r1  'insn_t const *'rY   rM  r$   )rZ   s   "r   r[   r    s(     H HW H4D HHr#   c                	.    \         P                  ! W4      # r.   )r   "_processor_t_is_control_flow_guard)r  r1  s   &&r   is_control_flow_guard"_processor_t.is_control_flow_guard  s     ::5GGr#   c               $    V ^8  d   QhRRRRRR/# rX   r1  r2  r  rm   rY   
'uint64 *'r$   )rZ   s   "r   r[   r    s"     ? ?- ?C ?: ?r#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_find_reg_valuer1  r  s   &&r   find_reg_value_processor_t.find_reg_value  s    33D>>r#   c               $    V ^8  d   QhRRRRRR/# rX   r1  r2  r  rm   rY   r  r$   )rZ   s   "r   r[   r    s"     = =, =# = =r#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_find_op_valuer1  r  s   &&r   find_op_value_processor_t.find_op_value  s    224<<r#   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
rX   hindering_item_ear  new_item_flags'flags64_t'new_item_eanew_item_length	'asize_t'rY   rM  r$   )rZ   s   "r   r[   r    s3     : : :#:2A:":&/:r#   c                	2    \         P                  ! V WV4      # r.   )r   !_processor_t_treat_hindering_item)r'  r(  r*  r+  s   &&&&r   treat_hindering_item!_processor_t.treat_hindering_item  s     99:K: 	:r#   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rX   out_earI  	screen_ear  stringrK  rE   rm   rY   rM  r$   )rZ   s   "r   r[   r  $  s2       _ (r#   c                	0    \         P                  ! WW#4      # r.   )r   _processor_t_extract_address)r2  r3  r4  rE   s   &&&&r   extract_address_processor_t.extract_address#  s     44V 	r#   c                    V ^8  d   QhRRRR/# )rX   regnamerK  rY   rM  r$   )rZ   s   "r   r[   r  *  s     6 6 6	 6r#   c                .    \         P                  ! V 4      # z&Get any register number (-1 on error)
)r   _processor_t_str2reg)r:  s   &r   str2reg_processor_t.str2reg)  s     ,,W55r#   c               $    V ^8  d   QhRRRRRR/# )rX   si'switch_info_t'r1  r2  rY   rM  r$   )rZ   s   "r   r[   r  0  s"     9 9o 9-= 9 9r#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_is_switch)rA  r1  s   &&r   	is_switch_processor_t.is_switch/  s    ..r88r#   c               $    V ^8  d   QhRRRRRR/# )rX   jumpear  rA  rB  rY   rM  r$   )rZ   s   "r   r[   r  4  s'     E EO E EEr#   c                	.    \         P                  ! W4      # r.   )r    _processor_t_create_switch_xrefs)rH  rA  s   &&r   create_switch_xrefs _processor_t.create_switch_xrefs3  s     88DDr#   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rX   casevecr  targets'eavec_t *'insn_ear  rA  rB  rY   rM  r$   )rZ   s   "r   r[   r  9  s2      8 k ,09r#   c                	0    \         P                  ! WW#4      # r.   )r   _processor_t_calc_switch_cases)rN  rO  rQ  rA  s   &&&&r   calc_switch_cases_processor_t.calc_switch_cases8  s     66w 	r#   c               $    V ^8  d   QhRRRRRR/# )rX   color'bgcolor_t *'r  r  rY   rM  r$   )rZ   s   "r   r[   r  ?  s!     = =M = =) =r#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_get_bg_color)rW  r  s   &&r   get_bg_color_processor_t.get_bg_color>  s    11%<<r#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r  funcnamerK  rY   rM  r$   )rZ   s   "r   r[   r  C  s'     M Mo M MMr#   c                	.    \         P                  ! W4      # r.   )r    _processor_t_validate_flirt_func)r  r^  s   &&r   validate_flirt_func _processor_t.validate_flirt_funcB  s     88LLr#   c               $    V ^8  d   QhRRRRRR/# )rX   r1  r2  r   rm   rY   rK  r$   )rZ   s   "r   r[   r  H  s'     E E!1 E# E Er#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_get_operand_string)r1  r   s   &&r   get_operand_string_processor_t.get_operand_stringG  s    77DDr#   c               (    V ^8  d   QhRRRRRRRR/# )rX   _fromr  rc  r   'cref_t'rY   rM  r$   )rZ   s   "r   r[   r  L  )     ? ? ?_ ?H ??r#   c                	0    \         P                  ! WV4      # r.   )r   _processor_t_add_crefri  rc  r   s   &&&r   add_cref_processor_t.add_crefK       --e>>r#   c               (    V ^8  d   QhRRRRRRRR/# )rX   ri  r  rc  r   'dref_t'rY   rM  r$   )rZ   s   "r   r[   r  Q  rk  r#   c                	0    \         P                  ! WV4      # r.   )r   _processor_t_add_drefrn  s   &&&r   add_dref_processor_t.add_drefP  rq  r#   c               (    V ^8  d   QhRRRRRRRR/# )rX   ri  r  rc  expandru   rY   rM  r$   )rZ   s   "r   r[   r  V  s/     A A A_ Ad AAr#   c                	0    \         P                  ! WV4      # r.   )r   _processor_t_del_cref)ri  rc  ry  s   &&&r   del_cref_processor_t.del_crefU  s     --e@@r#   c               $    V ^8  d   QhRRRRRR/# )rX   ri  r  rc  rY   rM  r$   )rZ   s   "r   r[   r  [  s!     9 9 9_ 9	 9r#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_del_dref)ri  rc  s   &&r   del_dref_processor_t.del_drefZ  s    --e88r#   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
rX   ri  r  rc  
may_defineru   code_earI  rY   rM  r$   )rZ   s   "r   r[   r  _  s2      o ? #+/8r#   c                	2    \         P                  ! WVV4      # r.   )r   _processor_t_coagulate_dref)ri  rc  r  r  s   &&&&r   coagulate_dref_processor_t.coagulate_dref^  s     33Ez 	r#   c          
     ,    V ^8  d   QhRRRRRRRRR	R/# )
rX   keywordrK  vtyperm   r   'void const *'
idb_loadedru   rY   r$   )rZ   s   "r   r[   r  e  s1       S  !$r#   c                	2    \         P                  ! WVV4      # r.   )r   _processor_t_set_idp_options)r  r  r   r  s   &&&&r   set_idp_options_processor_t.set_idp_optionsd  s     44WU 	r#   c               $    V ^8  d   QhRRRRRR/# )rX   optionsrK  
confidencerm   rY   rM  r$   )rZ   s   "r   r[   r  k  s&     K K# K3 K) Kr#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_set_proc_options)r  r  s   &&r   set_proc_options_processor_t.set_proc_optionsj  s    55gJJr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   sigz'idasgn_t const &'libfunz'libfunc_t const &'r  rI  rY   rM  r$   )rZ   s   "r   r[   r  o  s2     H H1 HH!)H-6Hr#   c                	0    \         P                  ! WV4      # r.   )r   _processor_t_adjust_libfunc_ea)r  r  r  s   &&&r   adjust_libfunc_ea_processor_t.adjust_libfunc_ean  s     66sBGGr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   mr  e'fpvalue_t *'swtr+  rY   z'fpvalue_error_t'r$   )rZ   s   "r   r[   r  t  s)     8 88 8 8H 88r#   c                	0    \         P                  ! WV4      # r.   )r   _processor_t_realcvt)r  r  r  s   &&&r   realcvt_processor_t.realcvts  s     ,,Q377r#   c               (    V ^8  d   QhRRRRRRRR/# rX   r  rI  bexecz'bool *'fexecrY   ru   r$   )rZ   s   "r   r[   r  x  s/     M M( M8 MH MMr#   c                	0    \         P                  ! WW#4      # r.   )r   _processor_t_delay_slot_insnr   r  r  r  s   &&&&r   delay_slot_insn_processor_t.delay_slot_insnx  s    44TuLLr#   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rX   ri'refinfo_t'r  r  nrm   fdz'fixup_data_t const &'rY   rM  r$   )rZ   s   "r   r[   r  }  s8     C C; CO C CC"+Cr#   c                	0    \         P                  ! WW#4      # r.   )r   _processor_t_adjust_refinfo)r  r  r  r  s   &&&&r   adjust_refinfo_processor_t.adjust_refinfo|  s     33BABBr#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r    s     8 8+ 8y 8r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_is_cond_insnr6  s   &r   is_cond_insn_processor_t.is_cond_insn      11$77r#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r  code16ru   rY   rM  r$   )rZ   s   "r   r[   r    s&     A AO AT A) Ar#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_set_code16_mode)r  r  s   &&r   set_code16_mode_processor_t.set_code16_mode  s    44R@@r#   c                    V ^8  d   QhRRRR/# )rX   r  r  rY   ru   r$   )rZ   s   "r   r[   r    s     9 9O 9t 9r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_get_code16_moder_  s   &r   get_code16_mode_processor_t.get_code16_mode  r  r#   c               0    V ^8  d   QhRRRRRRRRR	R
RR/# )rX   targetrI  r  r  r  rm   _getreg 'processor_t::regval_getter_t *'	regvalues
'regval_t'rY   rM  r$   )rZ   s   "r   r[   r    s9        x  _  3  1 >H  r#   c                	2    \         P                  ! WVW44      # r.   )r   _processor_t_next_exec_insn)r  r  r  r  r  s   &&&&&r   next_exec_insn_processor_t.next_exec_insn  s     33F  	 r#   c               $    V ^8  d   QhRRRRRR/# )rX   r  rI  r  r  rY   rM  r$   )rZ   s   "r   r[   r    s&     @ @x @_ @	 @r#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_calc_step_over)r  r  s   &&r   calc_step_over_processor_t.calc_step_over  s    33F??r#   c               $    V ^8  d   QhRRRRRR/# )rX   headrI  r  r  rY   rM  r$   )rZ   s   "r   r[   r    s&     C C( C C9 Cr#   c                	.    \         P                  ! W4      # r.   )r    _processor_t_get_macro_insn_head)r  r  s   &&r   get_macro_insn_head _processor_t.get_macro_insn_head  s    88BBr#   c               $    V ^8  d   QhRRRRRR/# )rX   r   r,  r1  r2  rY   rM  r$   )rZ   s   "r   r[   r    s'     @ @W @,< @	 @r#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_get_dbr_opnum)r   r1  s   &&r   get_dbr_opnum_processor_t.get_dbr_opnum  s    225??r#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r1  r2  r  r  r  r  rY   rM  r$   )rZ   s   "r   r[   r    s2     O O. O(O5?OCLOr#   c                	0    \         P                  ! WV4      # r.   )r   _processor_t_insn_reads_tbit)r1  r  r  s   &&&r   insn_reads_tbit_processor_t.insn_reads_tbit  s     44TINNr#   c               4    V ^8  d   QhRRRRRRRRRR	R
RRR/# )rX   opinfz'idd_opinfo_t'r  r  r  rm   	thread_idr  r  r  r  rY   rM  r$   )rZ   s   "r   r[   r    sA        n  /  c   !A  !* r#   c                	2    \         P                  ! WW#WE4      # r.   )r   _processor_t_get_idd_opinfo)r  r  r  r  r  r  s   &&&&&&r   get_idd_opinfo_processor_t.get_idd_opinfo  s     33Eq  	 r#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r  rP  r1  r2  overru   rY   rM  r$   )rZ   s   "r   r[   r    s0     D D; D.> Dd DDr#   c                	0    \         P                  ! WV4      # r.   )r   _processor_t_calc_next_eas)r  r1  r  s   &&&r   calc_next_eas_processor_t.calc_next_eas  s     223dCCr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r  r  r  r  r  r  rY   rM  r$   )rZ   s   "r   r[   r    s1     H H H(H5?HCLHr#   c                	0    \         P                  ! WV4      # r.   )r   _processor_t_clean_tbit)r  r  r  s   &&&r   
clean_tbit_processor_t.clean_tbit  s     //YGGr#   c               $    V ^8  d   QhRRRRRR/# rX   r:  rK  bitrange'bitrange_t'rY   r$   )rZ   s   "r   r[   r    s&     E Ec E\ ES Er#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_get_reg_infor:  r   s   &&r   get_reg_info_processor_t.get_reg_info  s    11'DDr#   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rX   stack'call_stack_t'r  rm   r  r  r  r  rY   rM  r$   )rZ   s   "r   r[   r    s2       c (5?CLr#   c                	2    \         P                  ! WVV4      # r.   )r   _processor_t_update_call_stack)r  r  r  r  s   &&&&r   update_call_stack_processor_t.update_call_stack  s     66u7 	r#   c                   V ^8  d   QhRR/# rL  r$   )rZ   s   "r   r[   r    s     1 1i 1r#   c                 	,    \         P                  ! 4       # r.   )r   _processor_t_setup_tilr$   r#   r   	setup_til_processor_t.setup_til  s    ..00r#   c                   V ^8  d   QhRR/# rL  r$   )rZ   s   "r   r[   r         4 4 4r#   c                 	,    \         P                  ! 4       # r.   )r   _processor_t_max_ptr_sizer$   r#   r   max_ptr_size_processor_t.max_ptr_size      1133r#   c                    V ^8  d   QhRRRR/# r\  r$   )rZ   s   "r   r[   r    s     A AO Ay Ar#   c                	.    \         P                  ! V 4      # r.   )r   $_processor_t_calc_cdecl_purged_bytesr_  s   &r   calc_cdecl_purged_bytes$_processor_t.calc_cdecl_purged_bytes  s    <<R@@r#   c               $    V ^8  d   QhRRRRRR/# )rX   a1
'argloc_t'a2rY   rM  r$   )rZ   s   "r   r[   r    s!     ; ;* ;* ;	 ;r#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_equal_reglocs)r   r"  s   &&r   equal_reglocs_processor_t.equal_reglocs  s    222::r#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r  arg'funcarg_t'rY   rM  r$   )rZ   s   "r   r[   r    s!     > >O >+ > >r#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_use_stkarg_type)r  r(  s   &&r   use_stkarg_type_processor_t.use_stkarg_type  s    44R==r#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   idxr,  r  r  rargsr  rY   rM  r$   )rZ   s   "r   r[   r    s/     E EW E/ E( EEr#   c                	0    \         P                  ! WV4      # r.   )r   _processor_t_use_regarg_type)r/  r  r0  s   &&&r   use_regarg_type_processor_t.use_regarg_type  s     44SeDDr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r  r  fti'func_type_data_t'r0  r  rY   rM  r$   )rZ   s   "r   r[   r    s1     C C/ C0B CCCr#   c                	0    \         P                  ! WV4      # r.   )r   _processor_t_use_arg_types)r  r6  r0  s   &&&r   use_arg_types_processor_t.use_arg_types  s     222EBBr#   c               $    V ^8  d   QhRRRRRR/# )rX   p_purged_bytesr,  r6  r7  rY   rM  r$   )rZ   s   "r   r[   r    s(     L L' L8J LLr#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_calc_purged_bytes)r=  r6  s   &&r   calc_purged_bytes_processor_t.calc_purged_bytes  s     66~KKr#   c               $    V ^8  d   QhRRRRRR/# )rX   regs'callregs_t'cc'callcnv_t'rY   rM  r$   )rZ   s   "r   r[   r    s!     ; ;, ;K ;9 ;r#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_get_cc_regs)rC  rE  s   &&r   get_cc_regs_processor_t.get_cc_regs  s    00::r#   Nc               4    V ^8  d   QhRRRRRRRRR	R
RRRR/# )rX   r  'simd_info_vec_t'
simd_attrs'simd_info_t'arglocr!  create_tifsru   r1  r  r  'op_t const *'rY   rM  r$   )rZ   s   "r   r[   r    sC     # #- #= ##)-#5E###,#r#   c                	4    \         P                  ! WVW4V4      # r.   )r   _processor_t_get_simd_types)r  rM  rO  rP  r1  r  s   &&&&&&r   get_simd_types_processor_t.get_simd_types  s      33CVr# 	#r#   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rX   callerr  r  rm   tif	'tinfo_t'addrsrI  rY   rM  r$   )rZ   s   "r   r[   r    s8     L L LC Li LL$Lr#   c                	0    \         P                  ! WW#4      # r.   )r   _processor_t_arg_addrs_ready)rW  r  rX  rZ  s   &&&&r   arg_addrs_ready_processor_t.arg_addrs_ready  s     44VKKr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   rO  r!  r   rY  rp   rm   rY   rM  r$   )rZ   s   "r   r[   r    s/     G Gj G	 G GGr#   c                	0    \         P                  ! WV4      # r.   )r   _processor_t_adjust_argloc)rO  r   rp   s   &&&r   adjust_argloc_processor_t.adjust_argloc  s     226FFr#   c               $    V ^8  d   QhRRRRRR/# )rX   argnums'intvec_t *'r6  r7  rY   rM  r$   )rZ   s   "r   r[   r    s(     C C C4F CCr#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_lower_func_type)re  r6  s   &&r   lower_func_type_processor_t.lower_func_type  s     44WBBr#   c                    V ^8  d   QhRRRR/# rX   comp'comp_t'rY   z'qstrvec_t *, qstrvec_t *'r$   )rZ   s   "r   r[   r    s     8 88 8'A 8r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_get_abi_inform  s   &r   get_abi_info_processor_t.get_abi_info  r  r#   c                   V ^8  d   QhRR/# rL  r$   )rZ   s   "r   r[   r    r  r#   c                 	,    \         P                  ! 4       # r.   )r   _processor_t_arch_changedr$   r#   r   arch_changed_processor_t.arch_changed  r  r#   c                    V ^8  d   QhRRRR/# )rX   md'merge_data_t *'rY   rM  r$   )rZ   s   "r   r[   r    s     ? ?"2 ?i ?r#   c                	.    \         P                  ! V 4      # r.   )r   "_processor_t_create_merge_handlers)rz  s   &r   create_merge_handlers"_processor_t.create_merge_handlers  s    ::2>>r#   c               $    V ^8  d   QhRRRRRR/# )rX   old_privrange	'range_t'delta	'adiff_t'rY   rM  r$   )rZ   s   "r   r[   r  	  s"      y  r#   c                	0    \         P                  ! WV4      # r.   )r   _processor_t_privrange_changedr   r  r  s   &&&r   privrange_changed_processor_t.privrange_changed	  s    66t 	r#   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
rX   node'nodeidx_t'tagr  r/  data'uchar const *'rY   rM  r$   )rZ   s   "r   r[   r    s9     N N N7 NN*N.7Nr#   c                	2    \         P                  ! WW#V4      # r.   )r   _processor_t_cvt64_supvalr   r  r  r/  r  s   &&&&&r   cvt64_supval_processor_t.cvt64_supval  s    11$cMMr#   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rX   r  r  r  r  r   rK  r  r  rY   rM  r$   )rZ   s   "r   r[   r    s8     P P+ PG P3 PP!*Pr#   c                	2    \         P                  ! WW#V4      # r.   )r   _processor_t_cvt64_hashvalr   r  r  r   r  s   &&&&&r   cvt64_hashval_processor_t.cvt64_hashval  s    224s$OOr#   c                   V ^8  d   QhRR/# rl   r$   )rZ   s   "r   r[   r    s     < < <r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_get_stkvar_scalerg   s   &r   get_stkvar_scale_processor_t.get_stkvar_scale  r.  r#   c                    V ^8  d   QhRRRR/# )rX   ityper+  rY   rK  r$   )rZ   s   "r   r[   r    s     A AH A Ar#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_get_canon_mnemr   r  s   &&r   get_canon_mnem_processor_t.get_canon_mnem  s    33D@@r#   c                    V ^8  d   QhRRRR/# )rX   r  r+  rY   rm   r$   )rZ   s   "r   r[   r    s     D Dx D3 Dr#   c                	.    \         P                  ! W4      # r.   )r   _processor_t_get_canon_featurer  s   &&r   get_canon_feature_processor_t.get_canon_feature  s    66tCCr#   c                   V ^8  d   QhRR/# rl   r$   )rZ   s   "r   r[   r    s     7 7C 7r#   c                	.    \         P                  ! V 4      # r.   )r   _processor_t_sizeof_ldblrg   s   &r   sizeof_ldbl_processor_t.sizeof_ldbl  r   r#   c                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   _processor_t_swiginitnew__processor_trg   s   &r   rU   _processor_t.__init__"      &&tX-F-F-HIr#   r$   )TNN(  r   r   r8   r9   r   r   r   r
   r   _processor_t_version_get_processor_t_version_setr  r  r  r  r   r  r  r  r  r  r  r&  r,  r2  r8  r>  rD  rI  _processor_t_ev_initev_init_processor_t_ev_termev_term_processor_t_ev_newprc	ev_newprc_processor_t_ev_newasm	ev_newasm_processor_t_ev_newfile
ev_newfile_processor_t_ev_oldfile
ev_oldfile_processor_t_ev_newbinaryev_newbinary_processor_t_ev_endbinaryev_endbinary_processor_t_ev_set_idp_optionsev_set_idp_options _processor_t_ev_set_proc_optionsev_set_proc_options_processor_t_ev_ana_insnev_ana_insn_processor_t_ev_emu_insnev_emu_insn_processor_t_ev_out_headerev_out_header_processor_t_ev_out_footerev_out_footer_processor_t_ev_out_segstartev_out_segstart_processor_t_ev_out_segendev_out_segend_processor_t_ev_out_assumesev_out_assumes_processor_t_ev_out_insnev_out_insn_processor_t_ev_out_mnemev_out_mnem_processor_t_ev_out_operandev_out_operand_processor_t_ev_out_dataev_out_data_processor_t_ev_out_labelev_out_label _processor_t_ev_out_special_itemev_out_special_item_processor_t_ev_gen_regvar_defev_gen_regvar_def"_processor_t_ev_gen_src_file_lnnumev_gen_src_file_lnnum_processor_t_ev_creating_segmev_creating_segm_processor_t_ev_moving_segmev_moving_segm_processor_t_ev_coagulateev_coagulate_processor_t_ev_undefineev_undefine$_processor_t_ev_treat_hindering_itemev_treat_hindering_item_processor_t_ev_rename	ev_rename_processor_t_ev_is_far_jumpev_is_far_jump_processor_t_ev_is_sane_insnev_is_sane_insn_processor_t_ev_is_cond_insnev_is_cond_insn_processor_t_ev_is_call_insnev_is_call_insn_processor_t_ev_is_ret_insnev_is_ret_insn_processor_t_ev_may_be_funcev_may_be_func"_processor_t_ev_is_basic_block_endev_is_basic_block_end _processor_t_ev_is_indirect_jumpev_is_indirect_jump"_processor_t_ev_is_insn_table_jumpev_is_insn_table_jump_processor_t_ev_is_switchev_is_switch!_processor_t_ev_calc_switch_casesev_calc_switch_cases#_processor_t_ev_create_switch_xrefsev_create_switch_xrefs_processor_t_ev_is_align_insnev_is_align_insn_processor_t_ev_is_alloca_probeev_is_alloca_probe_processor_t_ev_delay_slot_insnev_delay_slot_insn_processor_t_ev_is_sp_basedev_is_sp_based_processor_t_ev_can_have_typeev_can_have_type_processor_t_ev_cmp_operandsev_cmp_operands_processor_t_ev_adjust_refinfoev_adjust_refinfo"_processor_t_ev_get_operand_stringev_get_operand_string_processor_t_ev_get_reg_nameev_get_reg_name_processor_t_ev_str2reg
ev_str2reg_processor_t_ev_get_autocmtev_get_autocmt_processor_t_ev_get_bg_colorev_get_bg_color_processor_t_ev_is_jump_funcev_is_jump_func_processor_t_ev_func_boundsev_func_bounds_processor_t_ev_verify_spev_verify_sp_processor_t_ev_verify_noreturnev_verify_noreturn!_processor_t_ev_create_func_frameev_create_func_frame!_processor_t_ev_get_frame_retsizeev_get_frame_retsize'_processor_t_ev_get_stkvar_scale_factorev_get_stkvar_scale_factor_processor_t_ev_demangle_nameev_demangle_name_processor_t_ev_add_crefev_add_cref_processor_t_ev_add_drefev_add_dref_processor_t_ev_del_crefev_del_cref_processor_t_ev_del_drefev_del_dref_processor_t_ev_coagulate_drefev_coagulate_dref_processor_t_ev_may_show_sregev_may_show_sreg"_processor_t_ev_loader_elf_machineev_loader_elf_machine _processor_t_ev_auto_queue_emptyev_auto_queue_empty#_processor_t_ev_validate_flirt_funcev_validate_flirt_func!_processor_t_ev_adjust_libfunc_eaev_adjust_libfunc_ea_processor_t_ev_assembleev_assemble_processor_t_ev_extract_addressev_extract_address_processor_t_ev_realcvt
ev_realcvt_processor_t_ev_gen_asm_or_lstev_gen_asm_or_lst_processor_t_ev_gen_map_fileev_gen_map_file!_processor_t_ev_create_flat_groupev_create_flat_group_processor_t_ev_getreg	ev_getreg_processor_t_ev_analyze_prologev_analyze_prolog_processor_t_ev_calc_spdeltaev_calc_spdelta_processor_t_ev_calcrel
ev_calcrel_processor_t_ev_find_reg_valueev_find_reg_value_processor_t_ev_find_op_valueev_find_op_value_processor_t_ev_replaying_undoev_replaying_undo_processor_t_ev_ending_undoev_ending_undo_processor_t_ev_set_code16_modeev_set_code16_mode_processor_t_ev_get_code16_modeev_get_code16_mode_processor_t_ev_get_procmodev_get_procmod_processor_t_ev_asm_installedev_asm_installed _processor_t_ev_get_reg_accessesev_get_reg_accesses%_processor_t_ev_is_control_flow_guardev_is_control_flow_guard_processor_t_ev_broadcastev_broadcast%_processor_t_ev_create_merge_handlersev_create_merge_handlers!_processor_t_ev_privrange_changedev_privrange_changed_processor_t_ev_cvt64_supvalev_cvt64_supval_processor_t_ev_cvt64_hashvalev_cvt64_hashval_processor_t_ev_get_regfinderev_get_regfinder_processor_t_ev_gen_stkvar_defev_gen_stkvar_def_processor_t_ev_is_addr_insnev_is_addr_insn'_processor_t_ev_last_cb_before_debuggerev_last_cb_before_debugger_processor_t_ev_next_exec_insnev_next_exec_insn_processor_t_ev_calc_step_overev_calc_step_over_processor_t_ev_calc_next_easev_calc_next_eas#_processor_t_ev_get_macro_insn_headev_get_macro_insn_head_processor_t_ev_get_dbr_opnumev_get_dbr_opnum_processor_t_ev_insn_reads_tbitev_insn_reads_tbit_processor_t_ev_clean_tbitev_clean_tbit_processor_t_ev_get_idd_opinfoev_get_idd_opinfo_processor_t_ev_get_reg_infoev_get_reg_info!_processor_t_ev_update_call_stackev_update_call_stack-_processor_t_ev_last_cb_before_type_callbacks ev_last_cb_before_type_callbacks_processor_t_ev_setup_tilev_setup_til_processor_t_ev_get_abi_infoev_get_abi_info_processor_t_ev_max_ptr_sizeev_max_ptr_size%_processor_t_ev_get_default_enum_sizeev_get_default_enum_size_processor_t_ev_get_cc_regsev_get_cc_regs_processor_t_ev_get_simd_typesev_get_simd_types'_processor_t_ev_calc_cdecl_purged_bytesev_calc_cdecl_purged_bytes!_processor_t_ev_calc_purged_bytesev_calc_purged_bytes_processor_t_ev_calc_retlocev_calc_retloc_processor_t_ev_calc_arglocsev_calc_arglocs_processor_t_ev_calc_varglocsev_calc_varglocs_processor_t_ev_adjust_arglocev_adjust_argloc_processor_t_ev_lower_func_typeev_lower_func_type_processor_t_ev_equal_reglocsev_equal_reglocs_processor_t_ev_use_stkarg_typeev_use_stkarg_type_processor_t_ev_use_regarg_typeev_use_regarg_type_processor_t_ev_use_arg_typesev_use_arg_types_processor_t_ev_arg_addrs_readyev_arg_addrs_ready_processor_t_ev_decorate_nameev_decorate_name_processor_t_ev_arch_changedev_arch_changed$_processor_t_ev_get_stkarg_area_infoev_get_stkarg_area_info%_processor_t_ev_last_cb_before_loaderev_last_cb_before_loader_processor_t_ev_loader	ev_loaderstaticmethodrP  rV  r[  rb  rk  rp  rx  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"  r'  r2  r8  r>  rE  rM  rB  rY  r`  rf  rk  rp  r5  r9  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r/  r7  r>  rE  rK  rT  r[  ra  rf  ro  rv  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r%  r,  r3  r:  r@  rI  rT  r]  rb  ri  rr  rw  r~  r  r  r  r  r  r  r  rU   delete__processor_tr  r<   r$   r#   r   r  r     s   -/I!#GHH==x  "GS "8711.158:;<;22:++G++G//I//I11J11J55L55L!AA"CC33K33K77M77M;;O77M99N33K33K99N33K55L"CC ??$GG==99N55L33K&KK//I99N;;O;;O;;O99N99N$GG"CC$GG55L#EE%II==!AA!AA99N==;;O ??$GG;;O11J99N;;O;;O99N55L!AA#EE#EE"*// ==33K33K33K33K ??==$GG"CC%II#EE33K!AA11J ??;;O#EE//I ??;;O11J ??== ??99N!AA!AA99N=="CC'MM55L'MM#EE;;O==== ??;;O"*//  ?? ??==%II==!AA77M ??;;O#EE(055 %55L;;O;;O'MM99N ??"*// #EE99N;;O====!AA==!AA!AA==!AA==;;O&KK'MM//I3 3 7 7 , , < < 4 4 ; ; 4 4 4 4   3 3 8 8 N N 3 3 4 4 5 5 5 5 < < : : 6 6 3 3 3 3 : : A A B B D D G G < < J J A A ? ? 9 9 < <  
 > > B B < <  
 # # 8 8 2 2 A A : : 8 8 8 8
 B B 7 7
 > > 7 7 ? ?  
  
 9 9 E E  
 > > 7 7 + + < < : : 4 4 < < E E < < @ @ 1 1 K K H H ? ? = = : :  
 6 6
 9 9 E E  
 = = M M E E ? ? ? ? A A 9 9  
  
 K K H H 8 8M C C 8 8 A A 9 9     @ @ C C @ @ O O     D D H H E E  
 1 1 4 4 A A ; ; > > E E C C L L ; ; # # # L L G G C C 8 8 4 4 ? ? 
N NP P< <A AD D7 7J33r#   r  c                   V ^8  d   QhRR/# )rX   rY   z'processor_t *'r$   )rZ   s   "r   r[   r[   *  s       r#   c                 ,    \         P                  ! 4       # r.   )r   get_phr$   r#   r   r  r  *  s    ??r#   c                   V ^8  d   QhRR/# )rX   rY   z	'asm_t *'r$   )rZ   s   "r   r[   r[   .  s      	 r#   c                 ,    \         P                  ! 4       # r.   )r   get_ashr$   r#   r   r  r  .  s    r#   c                    V ^8  d   QhRRRR/# )rX   prK  rY   rm   r$   )rZ   s   "r   r[   r[   2  s      s c r#   c                .    \         P                  ! V 4      # r<  )r   r>  )r  s   &r   r>  r>  2  s     Ar#   c                    V ^8  d   QhRRRR/# rX   r  r  rY   rm   r$   )rZ   s   "r   r[   r[   8  s     & &o & &r#   c                .    \         P                  ! V 4      # r~  )r   r  r_  s   &r   r  r  8  s     !!"%%r#   c               (    V ^8  d   QhRRRRRRRR/# r  r$   )rZ   s   "r   r[   r[   >  s(     4 4c 4# 4c 4 4r#   c                0    \         P                  ! WV4      # r  )r   r  r  s   &&&r   r  r  >  s       U33r#   c                  4   ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&    ]! ]P                  ]P                  4      tR]R&    R	 R
 ltR R ltR R ltR R ltR R ltR R ltR R ltR t]P0                  tRtR# )
reg_info_tiH  c                	6    V P                   P                  4       # r.   rC   rD   s   &r   rF   reg_info_t.<lambda>I  rH   r#   c                	8    V P                   P                  V4      # r.   rC   rJ   s   &&r   rF   r  I  rL   r#   rM   rN   rm   r  rp   c                    V ^8  d   QhRRRR/# rX   r   'reg_info_t'rY   ru   r$   )rZ   s   "r   r[   reg_info_t.__annotate__U       3 3 3 3r#   c                	.    \         P                  ! W4      # r.   )r   reg_info_t___eq__r   s   &&r   r   reg_info_t.__eq__U      ))$22r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r  X  r  r#   c                	.    \         P                  ! W4      # r.   )r   reg_info_t___ne__r   s   &&r   r   reg_info_t.__ne__X  r  r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r  [  r  r#   c                	.    \         P                  ! W4      # r.   )r   reg_info_t___lt__r   s   &&r   __lt__reg_info_t.__lt__[  r  r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r  ^  r  r#   c                	.    \         P                  ! W4      # r.   )r   reg_info_t___gt__r   s   &&r   __gt__reg_info_t.__gt__^  r  r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r  a  r  r#   c                	.    \         P                  ! W4      # r.   )r   reg_info_t___le__r   s   &&r   __le__reg_info_t.__le__a  r  r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r  d  r  r#   c                	.    \         P                  ! W4      # r.   )r   reg_info_t___ge__r   s   &&r   __ge__reg_info_t.__ge__d  r  r#   c                    V ^8  d   QhRRRR/# )rX   r   r  rY   rm   r$   )rZ   s   "r   r[   r  g  s     4 4 4 4r#   c                	.    \         P                  ! W4      # r.   )r   reg_info_t_comparer   s   &&r   comparereg_info_t.compareg  s    **433r#   c                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   reg_info_t_swiginitnew_reg_info_trg   s   &r   rU   reg_info_t.__init__j  s    $$T8+B+B+DEr#   r$   N)r   r   r8   r9   r   r   r   r
   r   reg_info_t_reg_getreg_info_t_reg_setr  r  reg_info_t_size_getreg_info_t_size_setrp   r   r   r  r  r  r  r  rU   delete_reg_info_tr  r<   r$   r#   r   r  r  H  s    -/I!#GH33XC 55xD# 3333334F11r#   r  c               $    V ^8  d   QhRRRRRR/# )rX   r  r  r:  rK  rY   ru   r$   )rZ   s   "r   r[   r[   r  s!     0 0| 0c 0T 0r#   c                .    \         P                  ! W4      # )ziGet register info by name. 
        
:param ri: result
:param regname: name of register
:returns: success)r   parse_reg_name)r  r:  s   &&r   r  r  r  s     ""2//r#   c                     ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&    ]! ]P                  ]P                  4      tR]R	&    ]! ]P                   ]P"                  4      tR
]R&   ]! ]P&                  ]P(                  4      tR]R&    R R ltR R ltR R ltR t]P4                  tRtR# )reg_access_ti  c                	6    V P                   P                  4       # r.   rC   rD   s   &r   rF   reg_access_t.<lambda>  rH   r#   c                	8    V P                   P                  V4      # r.   rC   rJ   s   &&r   rF   r    rL   r#   rM   rN   rm   rV  r  rangez'access_type_t'access_typer  r   c                    V ^8  d   QhRRRR/# rX   r   r   rY   ru   r$   )rZ   s   "r   r[   reg_access_t.__annotate__  s     ? ?. ?D ?r#   c                	.    \         P                  ! W4      # r.   )r   reg_access_t_have_common_bitsr   s   &&r   have_common_bitsreg_access_t.have_common_bits  s    55d>>r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r         5 5 5$ 5r#   c                	.    \         P                  ! W4      # r.   )r   reg_access_t___eq__r   s   &&r   r   reg_access_t.__eq__      ++D44r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r    r  r#   c                	.    \         P                  ! W4      # r.   )r   reg_access_t___ne__r   s   &&r   r   reg_access_t.__ne__  r#  r#   c                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   reg_access_t_swiginitnew_reg_access_trg   s   &r   rU   reg_access_t.__init__  r  r#   r$   N)r   r   r8   r9   r   r   r   r
   r   reg_access_t_regnum_getreg_access_t_regnum_setrV  r  reg_access_t_range_getreg_access_t_range_setr  reg_access_t_access_type_getreg_access_t_access_type_setr  reg_access_t_opnum_getreg_access_t_opnum_setr   r  r   r   rU   delete_reg_access_tr  r<   r$   r#   r   r  r    s    -/I!#GH8;;X!FC !"8#B#B'')E< )#+H$$h&K&K$MK Mh==x E7  ?55J33r#   r  c                  R    ] tR tRt]! R R RR7      t]tR t]	P                  tRtR# )	reg_accesses_ti  c                	6    V P                   P                  4       # r.   rC   rD   s   &r   rF   reg_accesses_t.<lambda>  rH   r#   c                	8    V P                   P                  V4      # r.   rC   rJ   s   &&r   rF   r8    rL   r#   rM   rN   c                	Z    \         P                  ! V \         P                  ! 4       4       R # r.   )r   reg_accesses_t_swiginitnew_reg_accesses_trg   s   &r   rU   reg_accesses_t.__init__  s    ((x/J/J/LMr#   r$   N)r   r   r8   r9   r   r   r   r
   rU   r   delete_reg_accesses_tr  r<   r$   r#   r   r6  r6    s,    -/I!#GHN55r#   r6  c               $    V ^8  d   QhRRRRRR/# )rX   procnamerK  levelz'setproc_level_t'rY   ru   r$   )rZ   s   "r   r[   r[     s"     8 8 8-> 8$ 8r#   c                .    \         P                  ! W4      # )zSet target processor type. Once a processor module is loaded, it cannot be replaced until we close the idb. 
        
:param procname: name of processor type (one of names present in processor_t::psnames)
:param level: SETPROC_
:returns: success)r   set_processor_type)r@  rA  s   &&r   rC  rC    s     &&x77r#   c                   V ^8  d   QhRR/# )rX   rY   rK  r$   )rZ   s   "r   r[   r[     s     # #S #r#   c                 ,    \         P                  ! 4       # )a  Get name of the current processor module. The name is derived from the file name. For example, for IBM PC the module is named "pc.w32" (windows version), then the module name is "PC" (uppercase). If no processor module is loaded, this function will return nullptr 
        )r   get_idp_namer$   r#   r   rF  rF    s       ""r#   c                    V ^8  d   QhRRRR/# )rX   rf  rm   rY   ru   r$   )rZ   s   "r   r[   r[     s     1 1 1 1r#   c                .    \         P                  ! V 4      # )ztSet target assembler. 
        
:param asmnum: number of assembler in the current processor module
:returns: success)r   set_target_assemblerrj  s   &r   rI  rI    s    
 ((00r#   c                   V ^8  d   QhRR/# rb   r$   )rZ   s   "r   r[   r[   N  s     ) )4 )r#   c                 *    \         P                  ! V !  # )z9the kernel will use this function to generate idb_events
)r   gen_idb_eventr:  s   *r   rL  rL  N  s     !!4((r#   c                      ] tR tRt$ ]! R R RR7      t]tR R lt]! ]	P                  ]	P                  4      tR]R	&   ]! ]	P                  ]	P                  4      tR]R
&   ]	P"                  tRtR# )num_range_tii  c                	6    V P                   P                  4       # r.   rC   rD   s   &r   rF   num_range_t.<lambda>j  rH   r#   c                	8    V P                   P                  V4      # r.   rC   rJ   s   &&r   rF   rP  j  rL   r#   rM   rN   c                    V ^8  d   QhRRRR/# )rX   _min'int64'_maxr$   )rZ   s   "r   r[   num_range_t.__annotate__n  s      W G r#   c                	^    \         P                  ! V \         P                  ! VV4      4       R # r.   )r   num_range_t_swiginitnew_num_range_t)r   rS  rU  s   &&&r   rU   num_range_t.__init__n  s$    %%dH,D,DT- 	r#   rT  minvalmaxvalr$   N)r   r   r8   r9   r   r   r   r
   rU   r   num_range_t_minval_getnum_range_t_minval_setr[  r  num_range_t_maxval_getnum_range_t_maxval_setr\  delete_num_range_tr  r<   r$   r#   r   rN  rN  i  so    -/I!#GH x>> FG  x>> FG  22r#   rN  c                      ] tR tRt$ ]! R R RR7      t]tR R lt]! ]	P                  ]	P                  4      tR]R	&   ]! ]	P                  ]	P                  4      tR]R
&   ]	P"                  tRtR# )params_ti{  c                	6    V P                   P                  4       # r.   rC   rD   s   &r   rF   params_t.<lambda>|  rH   r#   c                	8    V P                   P                  V4      # r.   rC   rJ   s   &&r   rF   re  |  rL   r#   rM   rN   c                    V ^8  d   QhRRRR/# )rX   _p1rT  _p2r$   )rZ   s   "r   r[   params_t.__annotate__  s     J JG J' Jr#   c                	\    \         P                  ! V \         P                  ! W4      4       R # r.   )r   params_t_swiginitnew_params_t)r   rh  ri  s   &&&r   rU   params_t.__init__  s    ""4)>)>s)HIr#   rT  p1p2r$   N)r   r   r8   r9   r   r   r   r
   rU   r   params_t_p1_getparams_t_p1_setro  r  params_t_p2_getparams_t_p2_setrp  delete_params_tr  r<   r$   r#   r   rc  rc  {  sf    -/I!#GHJ833X5M5MNBN833X5M5MNBN//r#   rc  c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rX   optsz'cfgopt_t const []'noptsrm   cbz'config_changed_cb_t *'objr  rY   ru   r$   )rZ   s   "r   r[   r[     s3     ; ;. ;s ;;'/;8<;r#   c                0    \         P                  ! WW#4      # r.   )r   register_cfgopts)rw  rx  ry  rz  s   &&&&r   r|  r|    s    $$T"::r#   c                    V ^8  d   QhRRRR/# )rX   keyrK  rY   z'jvalue_t *'r$   )rZ   s   "r   r[   r[     s     * *# * *r#   c                .    \         P                  ! V 4      # r.   )r   get_config_value)r~  s   &r   r  r    s    $$S))r#   c               $    V ^8  d   QhRRRRRR/# )rX   compidrn  r   rK  rY   r$   )rZ   s   "r   r[   r[     s!     2 2H 2C 23 2r#   c                .    \         P                  ! W4      # r.   )r   cfg_get_cc_parm)r  r   s   &&r   r  r    s    ##F11r#   c                    V ^8  d   QhRRRR/# rX   r  rn  rY   rK  r$   )rZ   s   "r   r[   r[     s     3 38 3s 3r#   c                .    \         P                  ! V 4      # r.   )r   cfg_get_cc_header_pathr  s   &r   r  r    s    **622r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r[     s     9 9 9S 9r#   c                .    \         P                  ! V 4      # r.   )r   cfg_get_cc_predefined_macrosr  s   &r   r  r    s    0088r#   c               $    V ^8  d   QhRRRRRR/# )rX   	directiverK  priorityrm   rY   rc   r$   )rZ   s   "r   r[   r[     s&     B B Bs B Br#   c                .    \         P                  ! W4      # r.   )r   process_config_directive)r  r  s   &&r   r  r    s    ,,YAAr#   c                2    \         P                  ! WW#V4      # )a;  Assemble an instruction to a string (display a warning if an error is found)

:param ea: linear address of instruction
:param cs:  cs of instruction
:param ip:  ip of instruction
:param use32: is 32bit segment
:param line: line to assemble
:returns: a string containing the assembled instruction, or None on failure)r   AssembleLiner  r  r  r   r  s   &&&&&r   r  r    s       D99r#   c                2    \         P                  ! WW#V4      # )a  Assemble an instruction into the database (display a warning if an error is found)

:param ea: linear address of instruction
:param cs: cs of instruction
:param ip: ip of instruction
:param use32: is 32bit segment?
:param line: line to assemble

:returns: Boolean. True on success.)r   r  r  s   &&&&&r   r  r    s     RR55r#   c                 ,    \         P                  ! 4       # )zReturns the 'ph.id' field)r   	ph_get_idr$   r#   r   r  r    s    r#   c                 ,    \         P                  ! 4       # )zReturns the 'ph.version')r   ph_get_versionr$   r#   r   r  r    s    ""$$r#   c                 ,    \         P                  ! 4       # )zReturns the 'ph.flag')r   ph_get_flagr$   r#   r   r  r    s    !!r#   c                 ,    \         P                  ! 4       # )zReturns the 'ph.cnbits')r   ph_get_cnbitsr$   r#   r   r  r        !!##r#   c                 ,    \         P                  ! 4       # )zReturns the 'ph.dnbits')r   ph_get_dnbitsr$   r#   r   r  r    r  r#   c                 ,    \         P                  ! 4       # )zReturns the 'ph.reg_first_sreg')r   ph_get_reg_first_sregr$   r#   r   r  r    s    ))++r#   c                 ,    \         P                  ! 4       # )zReturns the 'ph.reg_last_sreg')r   ph_get_reg_last_sregr$   r#   r   r  r        ((**r#   c                 ,    \         P                  ! 4       # )zReturns the 'ph.segreg_size')r   ph_get_segreg_sizer$   r#   r   r  r        &&((r#   c                 ,    \         P                  ! 4       # )zReturns the 'ph.reg_code_sreg')r   ph_get_reg_code_sregr$   r#   r   r  r    r  r#   c                 ,    \         P                  ! 4       # )zReturns the 'ph.reg_data_sreg')r   ph_get_reg_data_sregr$   r#   r   r  r    r  r#   c                 ,    \         P                  ! 4       # )zReturns the 'ph.icode_return')r   ph_get_icode_returnr$   r#   r   r  r    s    ''))r#   c                 ,    \         P                  ! 4       # )zReturns the 'ph.instruc_start')r   ph_get_instruc_startr$   r#   r   r  r    r  r#   c                 ,    \         P                  ! 4       # )zReturns the 'ph.instruc_end')r   ph_get_instruc_endr$   r#   r   r  r    r  r#   c                 ,    \         P                  ! 4       # )zCReturns the 'ph.tbyte_size' field as defined in he processor module)r   ph_get_tbyte_sizer$   r#   r   r  r   	  s    %%''r#   c                 ,    \         P                  ! 4       # )zReturns a list of tuples (instruction_name, instruction_feature) containing the
instructions list as defined in he processor module)r   ph_get_instrucr$   r#   r   r  r  	  s     ""$$r#   c                 ,    \         P                  ! 4       # )zEReturns the list of register names as defined in the processor module)r   ph_get_regnamesr$   r#   r   r  r  	  s    ##%%r#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r  r  rm   rY   z7Union[Tuple[int, ida_idaapi.ea_t, int, int, int], None]r$   )rZ   s   "r   r[   r[   	  s$     	/ 	/O 	/ 	/ 8+ 	/r#   c                .    \         P                  ! W4      # )a  Returns the operand information given an ea and operand number.

:param ea: address
:param n: operand number

:returns: Returns an idd_opinfo_t as a tuple: (modified, ea, reg_ival, regidx, value_size).
          Please refer to idd_opinfo_t structure in the SDK.)r   ph_get_operand_info)r  r  s   &&r   r  r  	  s     ''..r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r[   	  s     # #? #&= #r#   c                .    \         P                  ! V 4      # r.   )r   
ph_calcrelr_  s   &r   r  r  	  s    r""r#   c               $    V ^8  d   QhRRRRRR/# r  r$   )rZ   s   "r   r[   r[    	  s"     1 1, 13 1* 1r#   c                .    \         P                  ! W4      # r.   )r   ph_find_reg_valuer  s   &&r   r  r   	  s    %%d00r#   c               $    V ^8  d   QhRRRRRR/# r   r$   )rZ   s   "r   r[   r[   $	  s"     / /+ / /
 /r#   c                .    \         P                  ! W4      # r.   )r   ph_find_op_valuer#  s   &&r   r  r  $	  s    $$T..r#   c               (    V ^8  d   QhRRRRRRRR/# r  r$   )rZ   s   "r   r[   r[   (	  s,     = = 0 =8H ===r#   c                0    \         P                  ! WV4      # r.   )r   ph_get_reg_accessesr  s   &&&r   r  r  (	  s    ''e<<r#   c                    V ^8  d   QhRRRR/# rl  r$   )rZ   s   "r   r[   r[   -	  s     * *( *&@ *r#   c                .    \         P                  ! V 4      # r.   )r   ph_get_abi_inforq  s   &r   r  r  -	  s    ##D))r#   c                     ] tR tRt]! R R RR7      t]tERR R lltR R	 lt	R
 R lt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR( R) ltR* R+ ltR, R- ltR. R/ ltR0 R1 ltR2 R3 ltR4 R5 ltR6 R7 lt R8 R9 lt!R: R; lt"R< R= lt#R> R? lt$R@ RA lt%RB RC lt&RD RE lt'RF RG lt(RH RI lt)RJ RK lt*RL RM lt+RN RO lt,RP RQ lt-RR RS lt.RT RU lt/RV RW lt0RX RY lt1RZ R[ lt2R\ R] lt3R^ R_ lt4R` Ra lt5Rb Rc lt6Rd Re lt7Rf Rg lt8Rh Ri lt9Rj Rk lt:Rl Rm lt;Rn Ro lt<Rp Rq lt=Rr Rs lt>Rt Ru lt?Rv Rw lt@Rx Ry ltARz R{ ltBR| R} ltCR~ R ltDR R ltER R ltFR R ltGR R ltHR R ltIR R ltJR R ltKR R ltLR R ltMR R ltNR R ltOR R ltPR R ltQR R ltRR R ltSR R ltTR R ltUR R ltVR R ltWR R ltXR R ltYR R ltZR R lt[R R lt\R R lt]R R lt^R R lt_R R lt`R R ltaR R ltbR R ltcR R ltdR R lteR R ltfR R ltgR R lthR R ltiR R ltjR R ltkR R ltlR R ltmR R ltnR R ltoR R ltpR R ltqR R ltrR R ltsR R lttR R ltuR R ltvR R ltwR R ltxR R ltyR R ltzR R lt{R R lt|R R lt}R R lt~R R ltR R ltR R ltR R ltR R ltR R ltER  ER ltER ER ltER ER ltER ER ltER ER	 ltER
 ER ltER ER ltER ER lt]EP                  tER tERtER# (  	IDP_Hooksi1	  c                	6    V P                   P                  4       # r.   rC   rD   s   &r   rF   IDP_Hooks.<lambda>2	  rH   r#   c                	8    V P                   P                  V4      # r.   rC   rJ   s   &&r   rF   r  2	  rL   r#   rM   rN   c                    V ^8  d   QhRRRR/# rX   _flagsrm   _hkcb_flagsr$   )rZ   s   "r   r[   IDP_Hooks.__annotate__6	       " "s "3 "r#   c                	    V P                   \        8X  d   R pMT p\        P                  ! V \        P                  ! VW4      4       R # r.   )r   r  r   IDP_Hooks_swiginitnew_IDP_Hooksr   r  r  _selfs   &&& r   rU   IDP_Hooks.__init__6	  :    >>Y&EE##D(*@*@+! 	"r#   c                   V ^8  d   QhRR/# rt   r$   )rZ   s   "r   r[   r  >	       - -T -r#   c                	.    \         P                  ! V 4      # r.   )r   IDP_Hooks_hookrg   s   &r   hookIDP_Hooks.hook>	      &&t,,r#   c                   V ^8  d   QhRR/# rt   r$   )rZ   s   "r   r[   r  A	       / /t /r#   c                	.    \         P                  ! V 4      # r.   )r   IDP_Hooks_unhookrg   s   &r   unhookIDP_Hooks.unhookA	      ((..r#   c                    V ^8  d   QhRRRR/# )rX   rS  rK  rY   rm   r$   )rZ   s   "r   r[   r  D	  s     = =3 =# =r#   c                .    \         P                  ! W4      # )z|The IDP module is just loaded. 
          
:param idp_modname: (const char *) processor module name
:returns: <0: on failure)r   IDP_Hooks_ev_init)r   rS  s   &&r   r  IDP_Hooks.ev_initD	  s    
 ))$<<r#   c                   V ^8  d   QhRR/# rl   r$   )rZ   s   "r   r[   r  K	  s     0 0 0r#   c                .    \         P                  ! V 4      # )z"The IDP module is being unloaded.
)r   IDP_Hooks_ev_termrg   s   &r   r  IDP_Hooks.ev_termK	  s     ))$//r#   c               $    V ^8  d   QhRRRRRR/# )rX   r^  rm   r_  ru   rY   r$   )rZ   s   "r   r[   r  P	  s&     B Bc BT BS Br#   c                0    \         P                  ! WV4      # )zBefore changing processor type. 
          
:param pnum: (int) processor number in the array of processor names
:param keep_cfg: (bool) true: do not modify kernel configuration
:returns: 1: ok
:returns: <0: prohibit)r   IDP_Hooks_ev_newprc)r   r^  r_  s   &&&r   r  IDP_Hooks.ev_newprcP	  s     ++DAAr#   c                    V ^8  d   QhRRRR/# rX   rf  rm   rY   r$   )rZ   s   "r   r[   r  Y	  s     : : :s :r#   c                .    \         P                  ! W4      # )zZBefore setting a new assembler. 
          
:param asmnum: (int) See also ev_asm_installed)r   IDP_Hooks_ev_newasmr   rf  s   &&r   r  IDP_Hooks.ev_newasmY	  s     ++D99r#   c                    V ^8  d   QhRRRR/# rX   rt  'char *'rY   rm   r$   )rZ   s   "r   r[   r  _	       : : :C :r#   c                .    \         P                  ! W4      # )zNA new file has been loaded. 
          
:param fname: (char *) input file name)r   IDP_Hooks_ev_newfiler   rt  s   &&r   r  IDP_Hooks.ev_newfile_	       ,,T99r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r  e	  r   r#   c                .    \         P                  ! W4      # )zOAn old file has been loaded. 
          
:param fname: (char *) input file name)r   IDP_Hooks_ev_oldfiler  s   &&r   r  IDP_Hooks.ev_oldfilee	  r  r#   c               0    V ^8  d   QhRRRRRRRRRR	R
R/# )rX   r  r  r  r  r  r  r  r  r  rY   rm   r$   )rZ   s   "r   r[   r  k	  s:     & &X &
 &!&+:&DL&&r#   c                4    \         P                  ! WVW4V4      # )a  IDA is about to load a binary file. 
          
:param filename: (char *) binary file name
:param fileoff: (qoff64_t) offset in the file
:param basepara: (::ea_t) base loading paragraph
:param binoff: (::ea_t) loader offset
:param nbytes: (::uint64) number of bytes to load)r   IDP_Hooks_ev_newbinary)r   r  r  r  r  r  s   &&&&&&r   r  IDP_Hooks.ev_newbinaryk	  s      ..twf& 	&r#   c                    V ^8  d   QhRRRR/# )rX   r  ru   rY   rm   r$   )rZ   s   "r   r[   r  x	  s     9 9t 9s 9r#   c                .    \         P                  ! W4      # )zUIDA has loaded a binary file. 
          
:param ok: (bool) file loaded successfully?)r   IDP_Hooks_ev_endbinary)r   r  s   &&r   r  IDP_Hooks.ev_endbinaryx	  s     ..t88r#   c          
     ,    V ^8  d   QhRRRRRRRRR	R/# )
rX   r  rK  
value_typerm   r   r  r  ru   rY   r$   )rZ   s   "r   r[   r  ~	  s2     + +# +3 ++$(+,/+r#   c                2    \         P                  ! WW#V4      # )a[  Set IDP-specific configuration option Also see set_options_t in config.hpp 
          
:param keyword: (const char *)
:param value_type: (int)
:param value: (const void *)
:param idb_loaded: (bool) true if the ev_oldfile/ev_newfile events have been generated
:returns: 1: ok
:returns: 0: not implemented
:returns: -1: error (and message in errbuf))r   IDP_Hooks_ev_set_idp_options)r   r  r  r   r  s   &&&&&r   r  IDP_Hooks.ev_set_idp_options~	  s     44Tz+ 	+r#   c               $    V ^8  d   QhRRRRRR/# )rX   r  rK  r  rm   rY   r$   )rZ   s   "r   r[   r  	  s!      3 C 3 r#   c                0    \         P                  ! WV4      # )a{  Called if the user specified an option string in the command line: -p<processor name>:<options>. Can be used for setting a processor subtype. Also called if option string is passed to set_processor_type() and IDC's SetProcessorType(). 
          
:param options: (const char *)
:param confidence: (int) 0: loader's suggestion 1: user's decision
:returns: <0: if bad option string)r   IDP_Hooks_ev_set_proc_options)r   r  r  s   &&&r   r  IDP_Hooks.ev_set_proc_options	  s     55dZ  	r#   c                    V ^8  d   QhRRRR/# )rX   r  r  rY   ru   r$   )rZ   s   "r   r[   r  	  s     9 9z 9T 9r#   c                .    \         P                  ! W4      # )a  Analyze one instruction and fill 'out' structure. This function shouldn't change the database, flags or anything else. All these actions should be performed only by emu_insn() function. insn_t::ea contains address of instruction to analyze. 
          
:param out: (insn_t *)
:returns: length of the instruction in bytes, 0 if instruction can't be decoded.
:returns: 0: if instruction can't be decoded.)r   IDP_Hooks_ev_ana_insn)r   r  s   &&r   r  IDP_Hooks.ev_ana_insn	  s     --d88r#   c                    V ^8  d   QhRRRR/# )rX   r1  r  rY   ru   r$   )rZ   s   "r   r[   r  	  s     : : 0 :D :r#   c                .    \         P                  ! W4      # )a5  Emulate instruction, create cross-references, plan to analyze subsequent instructions, modify flags etc. Upon entrance to this function, all information about the instruction is in 'insn' structure. 
          
:param insn: (const insn_t *)
:returns: 1: ok
:returns: -1: the kernel will delete the instruction)r   IDP_Hooks_ev_emu_insnr   r1  s   &&r   r  IDP_Hooks.ev_emu_insn	  s     --d99r#   c                    V ^8  d   QhRRRR/# rX   outctx'outctx_t *'rY   rm   r$   )rZ   s   "r   r[   r  	       > >L >C >r#   c                .    \         P                  ! W4      # )zgFunction to produce start of disassembled text 
          
:param outctx: (outctx_t *)
:returns: void: )r   IDP_Hooks_ev_out_headerr   r&  s   &&r   r  IDP_Hooks.ev_out_header	      
 //==r#   c                    V ^8  d   QhRRRR/# r%  r$   )rZ   s   "r   r[   r  	  r(  r#   c                .    \         P                  ! W4      # )zeFunction to produce end of disassembled text 
          
:param outctx: (outctx_t *)
:returns: void: )r   IDP_Hooks_ev_out_footerr+  s   &&r   r  IDP_Hooks.ev_out_footer	  r-  r#   c               $    V ^8  d   QhRRRRRR/# rX   r&  r'  r  r  rY   rm   r$   )rZ   s   "r   r[   r  	  s&     E El E E# Er#   c                0    \         P                  ! WV4      # )zFunction to produce start of segment 
          
:param outctx: (outctx_t *)
:param seg: (segment_t *)
:returns: 1: ok
:returns: 0: not implemented)r   IDP_Hooks_ev_out_segstartr   r&  r  s   &&&r   r  IDP_Hooks.ev_out_segstart	  s     11$DDr#   c               $    V ^8  d   QhRRRRRR/# r3  r$   )rZ   s   "r   r[   r  	  s&     C CL C} C Cr#   c                0    \         P                  ! WV4      # )zFunction to produce end of segment 
          
:param outctx: (outctx_t *)
:param seg: (segment_t *)
:returns: 1: ok
:returns: 0: not implemented)r   IDP_Hooks_ev_out_segendr6  s   &&&r   r  IDP_Hooks.ev_out_segend	  s     //cBBr#   c                    V ^8  d   QhRRRR/# r%  r$   )rZ   s   "r   r[   r  	  s     ? ?\ ?S ?r#   c                .    \         P                  ! W4      # )zFunction to produce assume directives when segment register value changes. 
          
:param outctx: (outctx_t *)
:returns: 1: ok
:returns: 0: not implemented)r   IDP_Hooks_ev_out_assumesr+  s   &&r   r  IDP_Hooks.ev_out_assumes	  s     00>>r#   c                    V ^8  d   QhRRRR/# )rX   r&  r'  rY   ru   r$   )rZ   s   "r   r[   r  	  s     < <, <$ <r#   c                .    \         P                  ! W4      # )a7  Generate text representation of an instruction in 'ctx.insn' outctx_t provides functions to output the generated text. This function shouldn't change the database, flags or anything else. All these actions should be performed only by emu_insn() function. 
          
:param outctx: (outctx_t *)
:returns: void: )r   IDP_Hooks_ev_out_insnr+  s   &&r   r  IDP_Hooks.ev_out_insn	  s    
 --d;;r#   c                    V ^8  d   QhRRRR/# r%  r$   )rZ   s   "r   r[   r  	  s     < <, <# <r#   c                .    \         P                  ! W4      # )a  Generate instruction mnemonics. This callback should append the colored mnemonics to ctx.outbuf Optional notification, if absent, out_mnem will be called. 
          
:param outctx: (outctx_t *)
:returns: 1: if appended the mnemonics
:returns: 0: not implemented)r   IDP_Hooks_ev_out_mnemr+  s   &&r   r  IDP_Hooks.ev_out_mnem	  s     --d;;r#   c               $    V ^8  d   QhRRRRRR/# )rX   r&  r'  r  rQ  rY   ru   r$   )rZ   s   "r   r[   r  	  s&     C C\ C~ C Cr#   c                0    \         P                  ! WV4      # )a%  Generate text representation of an instruction operand outctx_t provides functions to output the generated text. All these actions should be performed only by emu_insn() function. 
          
:param outctx: (outctx_t *)
:param op: (const op_t *)
:returns: 1: ok
:returns: -1: operand is hidden)r   IDP_Hooks_ev_out_operand)r   r&  r  s   &&&r   r  IDP_Hooks.ev_out_operand	  s     00rBBr#   c               $    V ^8  d   QhRRRRRR/# )rX   r&  r'  r  ru   rY   rm   r$   )rZ   s   "r   r[   r  	  s&     J J, Jd Jc Jr#   c                0    \         P                  ! WV4      # )zGenerate text representation of data items This function may change the database and create cross-references if analyze_only is set 
          
:param outctx: (outctx_t *)
:param analyze_only: (bool)
:returns: 1: ok
:returns: 0: not implemented)r   IDP_Hooks_ev_out_data)r   r&  r  s   &&&r   r  IDP_Hooks.ev_out_data	  s     --dLIIr#   c               $    V ^8  d   QhRRRRRR/# )rX   r&  r'  r  rK  rY   rm   r$   )rZ   s   "r   r[   r  	  s&     K K< Ks Kc Kr#   c                0    \         P                  ! WV4      # )zThe kernel is going to generate an instruction label line or a function header. 
          
:param outctx: (outctx_t *)
:param colored_name: (const char *)
:returns: <0: if the kernel should not generate the label
:returns: 0: not implemented or continue)r   IDP_Hooks_ev_out_label)r   r&  r  s   &&&r   r  IDP_Hooks.ev_out_label	  s     ..t\JJr#   c               $    V ^8  d   QhRRRRRR/# )rX   r&  r'  r  r  rY   rm   r$   )rZ   s   "r   r[   r  	  s'     	M 	M, 	M 	M	Mr#   c                0    \         P                  ! WV4      # )zGenerate text representation of an item in a special segment i.e. absolute symbols, externs, communal definitions etc 
          
:param outctx: (outctx_t *)
:param segtype: (uchar)
:returns: 1: ok
:returns: 0: not implemented
:returns: -1: overflow)r   IDP_Hooks_ev_out_special_item)r   r&  r  s   &&&r   r  IDP_Hooks.ev_out_special_item	  s     55dGLLr#   c               $    V ^8  d   QhRRRRRR/# )rX   r&  r'  rK   r  rY   rm   r$   )rZ   s   "r   r[   r  
  s&     E E E E Er#   c                0    \         P                  ! WV4      # )zGenerate register variable definition line. 
          
:param outctx: (outctx_t *)
:param v: (regvar_t *)
:returns: >0: ok, generated the definition text
:returns: 0: not implemented)r   IDP_Hooks_ev_gen_regvar_def)r   r&  rK   s   &&&r   r  IDP_Hooks.ev_gen_regvar_def
  s     33D!DDr#   c               (    V ^8  d   QhRRRRRRRR/# )rX   r&  r'  r
  rK  r  rm   rY   r$   )rZ   s   "r   r[   r  
  s)      L  C r#   c                2    \         P                  ! WVV4      # )a  Callback: generate analog of: 
     #line  123
    


          
:param outctx: (outctx_t *) output context
:param file: (const char *) source file (may be nullptr)
:param lnnum: (size_t) line number
:returns: 1: directive has been generated
:returns: 0: not implemented)r   IDP_Hooks_ev_gen_src_file_lnnum)r   r&  r
  r  s   &&&&r   r  IDP_Hooks.ev_gen_src_file_lnnum
  s     77d 	r#   c                    V ^8  d   QhRRRR/# )rX   r  r  rY   rm   r$   )rZ   s   "r   r[   r  
  s     > >M >S >r#   c                .    \         P                  ! W4      # )zA new segment is about to be created. 
          
:param seg: (segment_t *)
:returns: 1: ok
:returns: <0: segment should not be created)r   IDP_Hooks_ev_creating_segm)r   r  s   &&r   r  IDP_Hooks.ev_creating_segm
  s     224==r#   c               (    V ^8  d   QhRRRRRRRR/# )rX   r  r  rc  r  r  rm   rY   r$   )rZ   s   "r   r[   r  #
  s0     	G 	G- 	G_ 	G	G	Gr#   c                0    \         P                  ! WW#4      # )zMay the kernel move the segment? 
          
:param seg: (segment_t *) segment to move
:param to: (::ea_t) new segment start address
:param flags: (int) combination of Move segment flags
:returns: 0: yes
:returns: <0: the kernel should stop)r   IDP_Hooks_ev_moving_segm)r   r  rc  r  s   &&&&r   r  IDP_Hooks.ev_moving_segm#
  s     00BFFr#   c                    V ^8  d   QhRRRR/# )rX   r  r  rY   rm   r$   )rZ   s   "r   r[   r  .
  s     ? ?_ ? ?r#   c                .    \         P                  ! W4      # )aQ  Try to define some unexplored bytes. This notification will be called if the kernel tried all possibilities and could not find anything more useful than to convert to array of bytes. The module can help the kernel and convert the bytes into something more useful. 
          
:param start_ea: (::ea_t)
:returns: number of converted bytes)r   IDP_Hooks_ev_coagulater   r  s   &&r   r  IDP_Hooks.ev_coagulate.
  s    
 ..t>>r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r  5
  s     8 8o 8 8r#   c                .    \         P                  ! W4      # )zAn item in the database (insn or data) is being deleted. 
          
:param ea: (ea_t)
:returns: 1: do not delete srranges at the item end
:returns: 0: srranges can be deleted)r   IDP_Hooks_ev_undefiner   r  s   &&r   r  IDP_Hooks.ev_undefine5
  s     --d77r#   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
rX   r'  r  r(  r)  r*  r+  r,  rY   rm   r$   )rZ   s   "r   r[   r  =
  s:     M M M#M2AM"M&)Mr#   c                2    \         P                  ! V WW44      # )a  An item hinders creation of another item. 
          
:param hindering_item_ea: (::ea_t)
:param new_item_flags: (flags64_t) (0 for code)
:param new_item_ea: (::ea_t)
:param new_item_length: (::asize_t)
:returns: 0: no reaction
:returns: !=0: the kernel may delete the hindering item)r   !IDP_Hooks_ev_treat_hindering_item)r   r'  r(  r*  r+  s   &&&&&r   r  !IDP_Hooks.ev_treat_hindering_item=
  s      99${M 	Mr#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r  r  rK  rY   rm   r$   )rZ   s   "r   r[   r  K
  s&     @ @O @s @c @r#   c                0    \         P                  ! WV4      # )a]  The kernel is going to rename a byte. 
          
:param ea: (::ea_t)
:param new_name: (const char *)
:returns: <0: if the kernel should not rename it.
:returns: 2: to inhibit the notification. I.e., the kernel should not rename, but 'set_name()' should return 'true'. also see renamed the return value is ignored when kernel is going to delete name)r   IDP_Hooks_ev_rename)r   r  r  s   &&&r   r  IDP_Hooks.ev_renameK
  s     ++Dh??r#   c                    V ^8  d   QhRRRR/# )rX   r*  rm   rY   r$   )rZ   s   "r   r[   r  T
  s     > >C >3 >r#   c                .    \         P                  ! W4      # )zis indirect far jump or call instruction? meaningful only if the processor has 'near' and 'far' reference types 
          
:param icode: (int)
:returns: 0: not implemented
:returns: 1: yes
:returns: -1: no)r   IDP_Hooks_ev_is_far_jump)r   r*  s   &&r   r  IDP_Hooks.ev_is_far_jumpT
  s     00==r#   c               $    V ^8  d   QhRRRRRR/# )rX   r1  r  r;  rm   rY   r$   )rZ   s   "r   r[   r  ]
  s'     H H$4 H Hs Hr#   c                0    \         P                  ! WV4      # )a  Is the instruction sane for the current file type? 
          
:param insn: (const insn_t*) the instruction
:param no_crefs: (int) 1: the instruction has no code refs to it. ida just tries to convert unexplored bytes to an instruction (but there is no other reason to convert them into an instruction) 0: the instruction is created because of some coderef, user request or another weighty reason.
:returns: >=0: ok
:returns: <0: no, the instruction isn't likely to appear in the program)r   IDP_Hooks_ev_is_sane_insn)r   r1  r;  s   &&&r   r  IDP_Hooks.ev_is_sane_insn]
  s     11$hGGr#   c                    V ^8  d   QhRRRR/# rX   r1  r  rY   rm   r$   )rZ   s   "r   r[   r  f
       > >$4 > >r#   c                .    \         P                  ! W4      # )zIs conditional instruction? 
          
:param insn: (const insn_t *) instruction address
:returns: 1: yes
:returns: -1: no
:returns: 0: not implemented or not instruction)r   IDP_Hooks_ev_is_cond_insnr"  s   &&r   r  IDP_Hooks.ev_is_cond_insnf
       11$==r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r  o
  r  r#   c                .    \         P                  ! W4      # )zIs the instruction a "call"? 
          
:param insn: (const insn_t *) instruction
:returns: 0: unknown
:returns: <0: no
:returns: 1: yes)r   IDP_Hooks_ev_is_call_insnr"  s   &&r   r  IDP_Hooks.ev_is_call_insno
  r  r#   c               $    V ^8  d   QhRRRRRR/# )rX   r1  r  r  r  rY   rm   r$   )rZ   s   "r   r[   r  x
  s'     D D#3 DG Ds Dr#   c                0    \         P                  ! WV4      # )zIs the instruction a "return"? 
          
:param insn: (const insn_t *) instruction
:param flags: (uchar), combination of IRI_... flags (see above)
:returns: 0: unknown
:returns: <0: no
:returns: 1: yes)r   IDP_Hooks_ev_is_ret_insn)r   r1  r  s   &&&r   r   IDP_Hooks.ev_is_ret_insnx
  s     00UCCr#   c               $    V ^8  d   QhRRRRRR/# )rX   r1  r  r5  rm   rY   r$   )rZ   s   "r   r[   r  
  s'     D D#3 DC D3 Dr#   c                0    \         P                  ! WV4      # )zCan a function start here? 
          
:param insn: (const insn_t*) the instruction
:param state: (int) autoanalysis phase 0: creating functions 1: creating chunks
:returns: probability 1..100)r   IDP_Hooks_ev_may_be_func)r   r1  r5  s   &&&r   r  IDP_Hooks.ev_may_be_func
  s     00UCCr#   c               $    V ^8  d   QhRRRRRR/# )rX   r1  r  r?  ru   rY   rm   r$   )rZ   s   "r   r[   r  
  s$     
# 
#*: 
##
#'*
#r#   c                0    \         P                  ! WV4      # )a  Is the current instruction end of a basic block? This function should be defined for processors with delayed jump slots. 
          
:param insn: (const insn_t*) the instruction
:param call_insn_stops_block: (bool)
:returns: 0: unknown
:returns: <0: no
:returns: 1: yes)r   IDP_Hooks_ev_is_basic_block_end)r   r1  r?  s   &&&r   r  IDP_Hooks.ev_is_basic_block_end
  s     77!# 	#r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r  
  s     B B(8 BC Br#   c                .    \         P                  ! W4      # )zDetermine if instruction is an indirect jump. If CF_JUMP bit cannot describe all jump types jumps, please define this callback. 
          
:param insn: (const insn_t*) the instruction
:returns: 0: use CF_JUMP
:returns: 1: no
:returns: 2: yes)r   IDP_Hooks_ev_is_indirect_jumpr"  s   &&r   r  IDP_Hooks.ev_is_indirect_jump
  s     55dAAr#   c                   V ^8  d   QhRR/# rl   r$   )rZ   s   "r   r[   r  
  s     > >c >r#   c                .    \         P                  ! V 4      # z
Reserved.
)r   IDP_Hooks_ev_is_insn_table_jumprg   s   &r   r  IDP_Hooks.ev_is_insn_table_jump
  s     77==r#   c               $    V ^8  d   QhRRRRRR/# )rX   rA  rB  r1  r  rY   rm   r$   )rZ   s   "r   r[   r  
  s"     ? ? ?6F ?# ?r#   c                0    \         P                  ! WV4      # )a  Find 'switch' idiom or override processor module's decision. It will be called for instructions marked with CF_JUMP. 
          
:param si: (switch_info_t *), out
:param insn: (const insn_t *) instruction possibly belonging to a switch
:returns: 1: switch is found, 'si' is filled. IDA will create the switch using the filled 'si'
:returns: -1: no switch found. This value forbids switch creation by the processor module
:returns: 0: not implemented)r   IDP_Hooks_ev_is_switch)r   rA  r1  s   &&&r   r
  IDP_Hooks.ev_is_switch
  s     ..t>>r#   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rX   rN  z'casevec_t *'rO  rP  rQ  r  rA  rB  rY   rm   r$   )rZ   s   "r   r[   r  
  s3     " "M ""-"3B"FI"r#   c                2    \         P                  ! WW#V4      # )ar  Calculate case values and targets for a custom jump table. 
          
:param casevec: (::casevec_t *) vector of case values (may be nullptr)
:param targets: (eavec_t *) corresponding target addresses (my be nullptr)
:param insn_ea: (::ea_t) address of the 'indirect jump' instruction
:param si: (switch_info_t *) switch information
:returns: 1: ok
:returns: <=0: failed)r   IDP_Hooks_ev_calc_switch_cases)r   rN  rO  rQ  rA  s   &&&&&r   r  IDP_Hooks.ev_calc_switch_cases
  s     66tb" 	"r#   c               $    V ^8  d   QhRRRRRR/# )rX   rH  r  rA  rB  rY   rm   r$   )rZ   s   "r   r[   r  
  s(     K K_ KKKr#   c                0    \         P                  ! WV4      # )zCreate xrefs for a custom jump table. 
          
:param jumpea: (::ea_t) address of the jump insn
:param si: (const switch_info_t *) switch information
:returns: must return 1 Must be implemented if module uses custom jump tables, SWI_CUSTOM)r    IDP_Hooks_ev_create_switch_xrefs)r   rH  rA  s   &&&r   r   IDP_Hooks.ev_create_switch_xrefs
  s     88rJJr#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r  
  s     = =? =c =r#   c                .    \         P                  ! W4      # )zIs the instruction created only for alignment purposes?. Do not directly call this function, use is_align_insn() 
          
:param ea: (ea_t) - instruction address
:returns: number: of bytes in the instruction)r   IDP_Hooks_ev_is_align_insnrp  s   &&r   r  IDP_Hooks.ev_is_align_insn
  s    
 224<<r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r  
       ? ?_ ? ?r#   c                .    \         P                  ! W4      # )zvDoes the function at 'ea' behave like __alloca_probe? 
          
:param ea: (::ea_t)
:returns: 1: yes
:returns: 0: no)r   IDP_Hooks_ev_is_alloca_proberp  s   &&r   r  IDP_Hooks.ev_is_alloca_probe
       44T>>r#   c               (    V ^8  d   QhRRRRRRRR/# )rX   r  r  r  ru   r  rY   'PyObject *'r$   )rZ   s   "r   r[   r  
  s/     	M 	M_ 	MT 	M$ 	M	Mr#   c                0    \         P                  ! WW#4      # )a  Get delay slot instruction 
          
:param ea: (::ea_t *) in: instruction address in question, out: (if the answer is positive) if the delay slot contains valid insn: the address of the delay slot insn else: BADADDR (invalid insn, e.g. a branch)
:param bexec: (bool *) execute slot if jumping, initially set to 'true'
:param fexec: (bool *) execute slot if not jumping, initially set to 'true'
:returns: 1: positive answer
:returns: <=0: ordinary insn)r   IDP_Hooks_ev_delay_slot_insnr  s   &&&&r   r  IDP_Hooks.ev_delay_slot_insn
  s     44TuLLr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   moder,  r1  r  r  rQ  rY   rm   r$   )rZ   s   "r   r[   r  
  s1     	G 	G7 	G2B 	G	G	Gr#   c                0    \         P                  ! WW#4      # )a  Check whether the operand is relative to stack pointer or frame pointer This event is used to determine how to output a stack variable If not implemented, then all operands are sp based by default. Implement this event only if some stack references use frame pointer instead of stack pointer. 
          
:param mode: (int *) out, combination of SP/FP operand flags
:param insn: (const insn_t *)
:param op: (const op_t *)
:returns: 0: not implemented
:returns: 1: ok)r   IDP_Hooks_ev_is_sp_based)r   r  r1  r  s   &&&&r   r  IDP_Hooks.ev_is_sp_based
  s     00TFFr#   c                    V ^8  d   QhRRRR/# )rX   r  rQ  rY   rm   r$   )rZ   s   "r   r[   r  
  s     = => =S =r#   c                .    \         P                  ! W4      # )a5  Can the operand have a type as offset, segment, decimal, etc? (for example, a register AX can't have a type, meaning that the user can't change its representation. see bytes.hpp for information about types and flags) 
          
:param op: (const op_t *)
:returns: 0: unknown
:returns: <0: no
:returns: 1: yes)r   IDP_Hooks_ev_can_have_type)r   r  s   &&r   r  IDP_Hooks.ev_can_have_type
  s     224<<r#   c               $    V ^8  d   QhRRRRRR/# )rX   rA  rQ  rB  rY   rm   r$   )rZ   s   "r   r[   r  
  s&     B B> B B# Br#   c                0    \         P                  ! WV4      # )zCompare instruction operands 
          
:param op1: (const op_t*)
:param op2: (const op_t*)
:returns: 1: equal
:returns: -1: not equal
:returns: 0: not implemented)r   IDP_Hooks_ev_cmp_operands)r   rA  rB  s   &&&r   r  IDP_Hooks.ev_cmp_operands
  s     11$SAAr#   c          
     ,    V ^8  d   QhRRRRRRRRR	R/# )
rX   r  r  r  r  r  rm   r  z'fixup_data_t const *'rY   r$   )rZ   s   "r   r[   r  
  s9     
I 
IK 
I_ 
I
I'
I+.
Ir#   c                2    \         P                  ! WW#V4      # )a  Called from apply_fixup before converting operand to reference. Can be used for changing the reference info. (e.g. the PPC module adds REFINFO_NOBASE for some references) 
          
:param ri: (refinfo_t *)
:param ea: (::ea_t) instruction address
:param n: (int) operand number
:param fd: (const fixup_data_t *)
:returns: <0: do not create an offset
:returns: 0: not implemented or refinfo adjusted)r   IDP_Hooks_ev_adjust_refinfo)r   r  r  r  r  s   &&&&&r   r  IDP_Hooks.ev_adjust_refinfo
  s     33DbRHHr#   c               $    V ^8  d   QhRRRRRR/# )rX   r1  r  r   rm   rY   r  r$   )rZ   s   "r   r[   r    s(     K K*: K3 KKr#   c                0    \         P                  ! WV4      # )a  Request text string for operand (cli, java, ...). 
          
:param insn: (const insn_t*) the instruction
:param opnum: (int) operand number, -1 means any string operand
:returns: 0: no string (or empty string)
:returns: >0: original string length without terminating zero)r   IDP_Hooks_ev_get_operand_string)r   r1  r   s   &&&r   r  IDP_Hooks.ev_get_operand_string  s     77EJJr#   c               (    V ^8  d   QhRRRRRRRR/# )rX   r  rm   r  r  rY   r  r$   )rZ   s   "r   r[   r    s.     K K3 Ks K3 K, Kr#   c                0    \         P                  ! WW#4      # )a  Generate text representation of a register. Most processor modules do not need to implement this callback. It is useful only if processor_t::reg_names[reg] does not provide the correct register name. 
          
:param reg: (int) internal register number as defined in the processor module
:param width: (size_t) register width in bytes
:param reghi: (int) if not -1 then this function will return the register pair
:returns: -1: if error
:returns: strlen(buf): if success)r   IDP_Hooks_ev_get_reg_name)r   r  r  r  s   &&&&r   r   IDP_Hooks.ev_get_reg_name  s     11$UJJr#   c                    V ^8  d   QhRRRR/# )rX   r:  rK  rY   rm   r$   )rZ   s   "r   r[   r    s     < <# < <r#   c                .    \         P                  ! W4      # )a  Convert a register name to a register number. The register number is the register index in the processor_t::reg_names array Most processor modules do not need to implement this callback It is useful only if processor_t::reg_names[reg] does not provide the correct register names 
          
:param regname: (const char *)
:returns: register: number + 1
:returns: 0: not implemented or could not be decoded)r   IDP_Hooks_ev_str2reg)r   r:  s   &&r   r"  IDP_Hooks.ev_str2reg  s     ,,T;;r#   c                    V ^8  d   QhRRRR/# )rX   r1  r  rY   r  r$   )rZ   s   "r   r[   r  $  s     = =#3 =| =r#   c                .    \         P                  ! W4      # )ad  Callback: get dynamic auto comment. Will be called if the autocomments are enabled and the comment retrieved from ida.int starts with '$!'. 'insn' contains valid info. 
          
:param insn: (const insn_t*) the instruction
:returns: 1: new comment has been generated
:returns: 0: callback has not been handled. the buffer must not be changed in this case)r   IDP_Hooks_ev_get_autocmtr"  s   &&r   r$  IDP_Hooks.ev_get_autocmt$  s     00<<r#   c               $    V ^8  d   QhRRRRRR/# )rX   rW  rX  r  r  rY   rm   r$   )rZ   s   "r   r[   r  ,  s&     C C] C C3 Cr#   c                0    \         P                  ! WV4      # )zGet item background color. Plugins can hook this callback to color disassembly lines dynamically 
          
:param color: (bgcolor_t *), out
:param ea: (::ea_t)
:returns: 0: not implemented
:returns: 1: color set)r   IDP_Hooks_ev_get_bg_color)r   rW  r  s   &&&r   r&  IDP_Hooks.ev_get_bg_color,  s     11$rBBr#   c               (    V ^8  d   QhRRRRRRRR/# )rX   r-  r.  rH  rI  rJ  rY   rm   r$   )rZ   s   "r   r[   r  5  s*      : H "%r#   c                2    \         P                  ! WVV4      # )zIs the function a trivial "jump" function? 
          
:param pfn: (func_t *)
:param jump_target: (::ea_t *)
:param func_pointer: (::ea_t *)
:returns: <0: no
:returns: 0: don't know
:returns: 1: yes, see 'jump_target' and 'func_pointer')r   IDP_Hooks_ev_is_jump_func)r   r-  rH  rJ  s   &&&&r   r(  IDP_Hooks.ev_is_jump_func5  s     11$[ 	r#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r+  r,  r-  r.  r/  r  rY   rm   r$   )rZ   s   "r   r[   r  B  s*     	" 	"7 	" 	"(	",/	"r#   c                0    \         P                  ! WW#4      # )zfind_func_bounds() finished its work. The module may fine tune the function bounds 
          
:param possible_return_code: (int *), in/out
:param pfn: (func_t *)
:param max_func_end_ea: (::ea_t) (from the kernel's point of view)
:returns: void: )r   IDP_Hooks_ev_func_bounds)r   r+  r-  r/  s   &&&&r   r*  IDP_Hooks.ev_func_boundsB  s     00" 	"r#   c                    V ^8  d   QhRRRR/# rX   r-  r.  rY   rm   r$   )rZ   s   "r   r[   r  M  s     : :
 :c :r#   c                .    \         P                  ! W4      # )zAll function instructions have been analyzed. Now the processor module can analyze the stack pointer for the whole function 
          
:param pfn: (func_t *)
:returns: 0: ok
:returns: <0: bad stack pointer)r   IDP_Hooks_ev_verify_spr   r-  s   &&r   r,  IDP_Hooks.ev_verify_spM  s     ..t99r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r  U  s     @ @j @C @r#   c                .    \         P                  ! W4      # )zThe kernel wants to set 'noreturn' flags for a function. 
          
:param pfn: (func_t *)
:returns: 0: ok. any other value: do not set 'noreturn' flag)r   IDP_Hooks_ev_verify_noreturnr  s   &&r   r.  IDP_Hooks.ev_verify_noreturnU  s    
 44T??r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r  \  s     B B
 Bc Br#   c                .    \         P                  ! W4      # )zCreate a function frame for a newly created function Set up frame size, its attributes etc 
          
:param pfn: (func_t *)
:returns: 1: ok
:returns: 0: not implemented)r   IDP_Hooks_ev_create_func_framer  s   &&r   r0  IDP_Hooks.ev_create_func_frame\  s     66tAAr#   c               $    V ^8  d   QhRRRRRR/# )rX   frsizer,  r-  r  rY   rm   r$   )rZ   s   "r   r[   r  d  s(     J J7 J9I JJr#   c                0    \         P                  ! WV4      # )a<  Get size of function return address in bytes If this event is not implemented, the kernel will assume
* 8 bytes for 64-bit function
* 4 bytes for 32-bit function
* 2 bytes otherwise



:param frsize: (int *) frame size (out)
:param pfn: (const func_t *), can't be nullptr
:returns: 1: ok
:returns: 0: not implemented)r   IDP_Hooks_ev_get_frame_retsize)r   r  r-  s   &&&r   r2  IDP_Hooks.ev_get_frame_retsized  s     66tSIIr#   c                   V ^8  d   QhRR/# rl   r$   )rZ   s   "r   r[   r  s  s     C C3 Cr#   c                .    \         P                  ! V 4      # )a  Should stack variable references be multiplied by a coefficient before being used in the stack frame? Currently used by TMS320C55 because the references into the stack should be multiplied by 2 
          
:returns: scaling factor
:returns: 0: not implemented)r   $IDP_Hooks_ev_get_stkvar_scale_factorrg   s   &r   r4  $IDP_Hooks.ev_get_stkvar_scale_factors  s    
 <<TBBr#   c               (    V ^8  d   QhRRRRRRRR/# )rX   r   rK  r  rm   r  rY   r  r$   )rZ   s   "r   r[   r  z  s)     
 
S 
 
S 

r#   c                2    \         P                  ! WVV4      # )am  Demangle a C++ (or another language) name into a user-readable string. This event is called by demangle_name() 
          
:param name: (const char *) mangled name
:param disable_mask: (uint32) flags to inhibit parts of output or compiler info/other (see MNG_)
:param demreq: (demreq_type_t) operation to perform
:returns: 1: if success
:returns: 0: not implemented)r   IDP_Hooks_ev_demangle_name)r   r   r  r  s   &&&&r   r6  IDP_Hooks.ev_demangle_namez  s     224| 	r#   c               (    V ^8  d   QhRRRRRRRR/# )rX   ri  r  rc  r   rj  rY   rm   r$   )rZ   s   "r   r[   r    0     E E Eo EEEr#   c                0    \         P                  ! WW#4      # )zA code reference is being created. 
          
:param to: (::ea_t)
:param type: (cref_t)
:returns: <0: cancel cref creation
:returns: 0: not implemented or continue)r   IDP_Hooks_ev_add_crefr   ri  rc  r   s   &&&&r   r8  IDP_Hooks.ev_add_cref       --d2DDr#   c               (    V ^8  d   QhRRRRRRRR/# )rX   ri  r  rc  r   rs  rY   rm   r$   )rZ   s   "r   r[   r    r	  r#   c                0    \         P                  ! WW#4      # )zA data reference is being created. 
          
:param to: (::ea_t)
:param type: (dref_t)
:returns: <0: cancel dref creation
:returns: 0: not implemented or continue)r   IDP_Hooks_ev_add_drefr		  s   &&&&r   r:  IDP_Hooks.ev_add_dref  r	  r#   c               (    V ^8  d   QhRRRRRRRR/# )rX   ri  r  rc  ry  ru   rY   rm   r$   )rZ   s   "r   r[   r    s0     G G Go GGGr#   c                0    \         P                  ! WW#4      # )zA code reference is being deleted. 
          
:param to: (::ea_t)
:param expand: (bool)
:returns: <0: cancel cref deletion
:returns: 0: not implemented or continue)r   IDP_Hooks_ev_del_cref)r   ri  rc  ry  s   &&&&r   r<  IDP_Hooks.ev_del_cref  s     --d2FFr#   c               $    V ^8  d   QhRRRRRR/# )rX   ri  r  rc  rY   rm   r$   )rZ   s   "r   r[   r    s!     ? ? ?o ? ?r#   c                0    \         P                  ! WV4      # )zA data reference is being deleted. 
          
:param to: (::ea_t)
:returns: <0: cancel dref deletion
:returns: 0: not implemented or continue)r   IDP_Hooks_ev_del_dref)r   ri  rc  s   &&&r   r>  IDP_Hooks.ev_del_dref  s     --d2>>r#   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
rX   ri  r  rc  r  ru   r  rI  rY   rm   r$   )rZ   s   "r   r[   r    s2     
! 
! 
!O 
!
!#+
!/2
!r#   c                2    \         P                  ! WVW44      # )a(  Data reference is being analyzed. plugin may correct 'code_ea' (e.g. for thumb mode refs, we clear the last bit) 
          
:param to: (::ea_t)
:param may_define: (bool)
:param code_ea: (::ea_t *)
:returns: <0: failed dref analysis, >0 done dref analysis
:returns: 0: not implemented or continue)r   IDP_Hooks_ev_coagulate_dref)r   ri  rc  r  r  s   &&&&&r   r@  IDP_Hooks.ev_coagulate_dref  s     33D! 	!r#   c                    V ^8  d   QhRRRR/# )rX   r  r  rY   rm   r$   )rZ   s   "r   r[   r    s     E E? Ec Er#   c                .    \         P                  ! W4      # )zThe kernel wants to display the segment registers in the messages window. 
          
:param current_ea: (::ea_t)
:returns: <0: if the kernel should not show the segment registers. (assuming that the module has done it)
:returns: 0: not implemented)r   IDP_Hooks_ev_may_show_sreg)r   r  s   &&r   rB  IDP_Hooks.ev_may_show_sreg  s     224DDr#   c                    V ^8  d   QhRRRR/# )rX   r   z	'atype_t'rY   rm   r$   )rZ   s   "r   r[   r    s     B B	 BS Br#   c                .    \         P                  ! W4      # )zvOne analysis queue is empty. 
          
:param type: (atype_t)
:returns: void: see also idb_event::auto_empty_finally)r   IDP_Hooks_ev_auto_queue_empty)r   r   s   &&r   rF  IDP_Hooks.ev_auto_queue_empty  s    
 55dAAr#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r  r^  rK  rY   rm   r$   )rZ   s   "r   r[   r    s"     	 	 	# 		r#   c                0    \         P                  ! WV4      # )a  Flirt has recognized a library function. This callback can be used by a plugin or proc module to intercept it and validate such a function. 
          
:param start_ea: (::ea_t)
:param funcname: (const char *)
:returns: -1: do not create a function,
:returns: 0: function is validated)r    IDP_Hooks_ev_validate_flirt_func)r   r  r^  s   &&&r   rH   IDP_Hooks.ev_validate_flirt_func  s     88 	r#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r  z'idasgn_t const *'r  z'libfunc_t const *'r  rI  rY   rm   r$   )rZ   s   "r   r[   r    s2     	N 	N(: 	N	N!)	N-0	Nr#   c                0    \         P                  ! WW#4      # )a  Called when a signature module has been matched against bytes in the database. This is used to compute the offset at which a particular module's libfunc should be applied. 
          
:param sig: (const idasgn_t *)
:param libfun: (const libfunc_t *)
:param ea: (::ea_t *)
:returns: 1: the ea_t pointed to by the third argument was modified.
:returns: <=0: not modified. use default algorithm.)r   IDP_Hooks_ev_adjust_libfunc_ea)r   r  r  r  s   &&&&r   rJ  IDP_Hooks.ev_adjust_libfunc_ea  s     66t&MMr#   c               0    V ^8  d   QhRRRRRRRRRRR	R
/# )rX   r  r  r  r  r   ru   r  rK  rY   r  r$   )rZ   s   "r   r[   r    sB     
M 
Mo 
M? 
M
M $
M,/
M3?
Mr#   c                2    \         P                  ! WW#WE4      # )aJ  Assemble an instruction. (display a warning if an error occurs). 
          
:param ea: (::ea_t) linear address of instruction
:param cs: (::ea_t) cs of instruction
:param ip: (::ea_t) ip of instruction
:param use32: (bool) is 32-bit segment?
:param line: (const char *) line to assemble
:returns: size of the instruction in bytes)r   IDP_Hooks_ev_assemble)r   r  r  r  r   r  s   &&&&&&r   rL  IDP_Hooks.ev_assemble  s     --dLLr#   c          
     ,    V ^8  d   QhRRRRRRRRR	R/# )
rX   r2  rI  r3  r  r4  rK  positionrm   rY   r$   )rZ   s   "r   r[   r    s3     ) ) ))!$)03)7:)r#   c                2    \         P                  ! WW#V4      # )zExtract address from a string. 
          
:param out_ea: (ea_t *), out
:param screen_ea: (ea_t)
:param string: (const char *)
:param position: (size_t)
:returns: 1: ok
:returns: 0: kernel should use the standard algorithm
:returns: -1: error)r   IDP_Hooks_ev_extract_address)r   r2  r3  r4  r1	  s   &&&&&r   rN  IDP_Hooks.ev_extract_address  s     44Tx) 	)r#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r  r  r  r  r  r+  rY   rm   r$   )rZ   s   "r   r[   r    s(     > >H > >X > >r#   c                0    \         P                  ! WW#4      # )a
  Floating point -> IEEE conversion 
          
:param m: (void *) ptr to processor-specific floating point value
:param e: (fpvalue_t *) IDA representation of a floating point value
:param swt: (uint16) operation (see realcvt() in ieee.h)
:returns: 0: not implemented)r   IDP_Hooks_ev_realcvt)r   r  r  r  s   &&&&r   rP  IDP_Hooks.ev_realcvt  s     ,,Ta==r#   c               0    V ^8  d   QhRRRRRRRRRR	R
R/# )rX   r  ru   r  r  r  r  rm   r  z'html_line_cb_t **'rY   r$   )rZ   s   "r   r[   r     s9     $ $$ $H $d $$0$47$r#   c                4    \         P                  ! WVW4V4      # )aF  Callback: generating asm or lst file. The kernel calls this callback twice, at the beginning and at the end of listing generation. The processor module can intercept this event and adjust its output 
          
:param starting: (bool) beginning listing generation
:param fp: (FILE *) output file
:param is_asm: (bool) true:assembler, false:listing
:param flags: (int) flags passed to gen_file()
:param outline: (html_line_cb_t **) ptr to ptr to outline callback. if this callback is defined for this code, it will be used by the kernel to output the generated lines
:returns: void: )r   IDP_Hooks_ev_gen_asm_or_lst)r   r  r  r  r  r  s   &&&&&&r   rR  IDP_Hooks.ev_gen_asm_or_lst   s      33DB7$ 	$r#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r,  r  r  rY   rm   r$   )rZ   s   "r   r[   r    s&     D Dg D8 Ds Dr#   c                0    \         P                  ! WV4      # )a  Generate map file. If not implemented the kernel itself will create the map file. 
          
:param nlines: (int *) number of lines in map file (-1 means write error)
:param fp: (FILE *) output file
:returns: 0: not implemented
:returns: 1: ok
:returns: -1: write error)r   IDP_Hooks_ev_gen_map_file)r   r  r  s   &&&r   rT  IDP_Hooks.ev_gen_map_file  s     11$CCr#   c               (    V ^8  d   QhRRRRRRRR/# )rX   r  r  r  rm   r  r  rY   r$   )rZ   s   "r   r[   r    s+     " " ""!"%("r#   c                0    \         P                  ! WW#4      # )zCreate special segment representing the flat group. 
          
:param image_base: (::ea_t)
:param bitness: (int)
:param dataseg_sel: (::sel_t) return value is ignored)r   IDP_Hooks_ev_create_flat_group)r   r  r  r  s   &&&&r   rV  IDP_Hooks.ev_create_flat_group  s     66t" 	"r#   c               $    V ^8  d   QhRRRRRR/# )rX   regvalrU  rV  rm   rY   r$   )rZ   s   "r   r[   r  !  s&     B B
 BC B3 Br#   c                0    \         P                  ! WV4      # )a  IBM PC only internal request, should never be used for other purpose Get register value by internal index 
          
:param regval: (uval_t *), out
:param regnum: (int)
:returns: 1: ok
:returns: 0: not implemented
:returns: -1: failed (undefined value or bad regnum))r   IDP_Hooks_ev_getreg)r   rF	  rV  s   &&&r   rX  IDP_Hooks.ev_getreg!  s     ++D&AAr#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r  +  s     > >O >s >r#   c                .    \         P                  ! W4      # )zAnalyzes function prolog, epilog, and updates purge, and function attributes 
          
:param ea: (::ea_t) start of function
:returns: 1: ok
:returns: 0: not implemented)r   IDP_Hooks_ev_analyze_prologrp  s   &&r   rZ  IDP_Hooks.ev_analyze_prolog+  s     33D==r#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r  r1  r  rY   rm   r$   )rZ   s   "r   r[   r  3  s(     G Gz G9I GGr#   c                0    \         P                  ! WV4      # )zCalculate amount of change to sp for the given insn. This event is required to decompile code snippets. 
          
:param spdelta: (sval_t *)
:param insn: (const insn_t *)
:returns: 1: ok
:returns: 0: not implemented)r   IDP_Hooks_ev_calc_spdelta)r   r  r1  s   &&&r   r\  IDP_Hooks.ev_calc_spdelta3  s     11$FFr#   c                   V ^8  d   QhRR/# rl   r$   )rZ   s   "r   r[   r  =  s     3 33 3r#   c                .    \         P                  ! V 4      # r  )r   IDP_Hooks_ev_calcrelrg   s   &r   r^  IDP_Hooks.ev_calcrel=       ,,T22r#   c               $    V ^8  d   QhRRRRRR/# )rX   pinsnr  r  rm   rY   r  r$   )rZ   s   "r   r[   r  B  s(     F F'7 Fc FFr#   c                0    \         P                  ! WV4      # )a?  Find register value via a register tracker. The returned value in 'out' is valid before executing the instruction. 
          
:param pinsn: (const insn_t *) instruction
:param reg: (int) register index
:returns: 1: if implemented, and value was found
:returns: 0: not implemented, -1 decoding failed, or no value found)r   IDP_Hooks_ev_find_reg_value)r   rX	  r  s   &&&r   r`  IDP_Hooks.ev_find_reg_valueB  s     33DEEr#   c               $    V ^8  d   QhRRRRRR/# )rX   rX	  r  opnrm   rY   r  r$   )rZ   s   "r   r[   r  L  s(     E E&6 ES EEr#   c                0    \         P                  ! WV4      # )a=  Find operand value via a register tracker. The returned value in 'out' is valid before executing the instruction. 
          
:param pinsn: (const insn_t *) instruction
:param opn: (int) operand index
:returns: 1: if implemented, and value was found
:returns: 0: not implemented, -1 decoding failed, or no value found)r   IDP_Hooks_ev_find_op_value)r   rX	  r]	  s   &&&r   rb  IDP_Hooks.ev_find_op_valueL  s     224DDr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   action_namerK  vecz'undo_records_t const *'is_undoru   rY   rm   r$   )rZ   s   "r   r[   r  V  s+      S  +/36r#   c                2    \         P                  ! WVV4      # )aB  Replaying an undo/redo buffer 
          
:param action_name: (const char *) action that we perform undo/redo for. may be nullptr for intermediate buffers.
:param vec: (const undo_records_t *)
:param is_undo: (bool) true if performing undo, false if performing redo This event may be generated multiple times per undo/redo)r   IDP_Hooks_ev_replaying_undo)r   rb	  rc	  rd	  s   &&&&r   rd  IDP_Hooks.ev_replaying_undoV  s     33Ds 	r#   c               $    V ^8  d   QhRRRRRR/# )rX   rb	  rK  rd	  ru   rY   rm   r$   )rZ   s   "r   r[   r  `  s&     M M# M M Mr#   c                0    \         P                  ! WV4      # )zEnded undoing/redoing an action 
          
:param action_name: (const char *) action that we finished undoing/redoing. is not nullptr.
:param is_undo: (bool) true if performing undo, false if performing redo)r   IDP_Hooks_ev_ending_undo)r   rb	  rd	  s   &&&r   rf  IDP_Hooks.ev_ending_undo`  s    
 00GLLr#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r  r  ru   rY   rm   r$   )rZ   s   "r   r[   r  g  s&     G G_ Gd Gc Gr#   c                0    \         P                  ! WV4      # )zSome processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, MIPS16 Set ISA 16-bit mode 
          
:param ea: (ea_t) address to set new ISA mode
:param code16: (bool) true for 16-bit mode, false for 32-bit mode)r   IDP_Hooks_ev_set_code16_mode)r   r  r  s   &&&r   rh  IDP_Hooks.ev_set_code16_modeg  s    
 44TvFFr#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r  n  r  r#   c                .    \         P                  ! W4      # )zGet ISA 16-bit mode 
          
:param ea: (ea_t) address to get the ISA mode
:returns: 1: 16-bit mode
:returns: 0: not implemented or 32-bit mode)r   IDP_Hooks_ev_get_code16_moderp  s   &&r   rj  IDP_Hooks.ev_get_code16_moden  r  r#   c                   V ^8  d   QhRR/# rl   r$   )rZ   s   "r   r[   r  v  s     7 7s 7r#   c                .    \         P                  ! V 4      # )zGet pointer to the processor module object. All processor modules must implement this. The pointer is returned as size_t. 
          )r   IDP_Hooks_ev_get_procmodrg   s   &r   rl  IDP_Hooks.ev_get_procmodv  s     0066r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r  {  s     A As Ac Ar#   c                .    \         P                  ! W4      # )zQAfter setting a new assembler 
          
:param asmnum: (int) See also ev_newasm)r   IDP_Hooks_ev_asm_installedr  s   &&r   rn  IDP_Hooks.ev_asm_installed{  s     224@@r#   c               (    V ^8  d   QhRRRRRRRR/# )rX   r	  r
  r1  r  r  rm   rY   r$   )rZ   s   "r   r[   r    s,      *: !$(+r#   c                0    \         P                  ! WW#4      # )ao  Get info about the registers that are used/changed by an instruction. 
          
:param accvec: (reg_accesses_t*) out: info about accessed registers
:param insn: (const insn_t *) instruction in question
:param flags: (int) reserved, must be 0
:returns: -1: if accvec is nullptr
:returns: 1: found the requested access (and filled accvec)
:returns: 0: not implemented)r   IDP_Hooks_ev_get_reg_accesses)r   r	  r1  r  s   &&&&r   rp  IDP_Hooks.ev_get_reg_accesses  s     55dD  	r#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r,  r1  r  rY   rm   r$   )rZ   s   "r   r[   r    s(     N Ng N=M NNr#   c                0    \         P                  ! WV4      # )a  Detect if an instruction is a "thunk call" to a flow guard function (equivalent to call reg/return/nop) 
          
:param p_reg: (int *) indirect register number, may be -1
:param insn: (const insn_t *) call/jump instruction
:returns: -1: no thunk detected
:returns: 1: indirect call
:returns: 2: security check routine call (NOP)
:returns: 3: return thunk
:returns: 0: not implemented)r   "IDP_Hooks_ev_is_control_flow_guard)r   r  r1  s   &&&r   rr  "IDP_Hooks.ev_is_control_flow_guard  s     ::4MMr#   c                    V ^8  d   QhRRRR/# )rX   rz  r{  rY   rm   r$   )rZ   s   "r   r[   r    s     E E+; Es Er#   c                .    \         P                  ! W4      # )zCreate merge handlers, if needed 
          
:param md: (merge_data_t *) This event is generated immediately after opening idbs.
:returns: must be 0)r   "IDP_Hooks_ev_create_merge_handlers)r   rz  s   &&r   rv  "IDP_Hooks.ev_create_merge_handlers  s    
 ::4DDr#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r  r  r  rY   rm   r$   )rZ   s   "r   r[   r    s"     	 	) 	I 		r#   c                0    \         P                  ! WV4      # )a5  Privrange interval has been moved to a new location. Most common actions to be done by module in this case: fix indices of netnodes used by module 
          
:param old_privrange: (const range_t *) - old privrange interval
:param delta: (::adiff_t)
:returns: 0: Ok
:returns: -1: error (and message in errbuf))r   IDP_Hooks_ev_privrange_changedr  s   &&&r   rx  IDP_Hooks.ev_privrange_changed  s     66t 	r#   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
rX   r  r  r  r  r/  r  r  rY   rm   r$   )rZ   s   "r   r[   r    s9     N NK Ng NN*N.1Nr#   c                2    \         P                  ! WW#V4      # )a  perform 32-64 conversion for a netnode array element 
          
:param node: (::nodeidx_t)
:param tag: (uchar)
:param idx: (::nodeidx_t)
:param data: (const uchar *)
:returns: 0: nothing was done
:returns: 1: converted successfully
:returns: -1: error (and message in errbuf))r   IDP_Hooks_ev_cvt64_supvalr  s   &&&&&r   rz  IDP_Hooks.ev_cvt64_supval  s     11$cMMr#   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rX   r  r  r  r  r   rK  r  r  rY   rm   r$   )rZ   s   "r   r[   r    s8     P P[ Pw Pc PP!$Pr#   c                2    \         P                  ! WW#V4      # )a  perform 32-64 conversion for a hash value 
          
:param node: (::nodeidx_t)
:param tag: (uchar)
:param name: (const ::char *)
:param data: (const uchar *)
:returns: 0: nothing was done
:returns: 1: converted successfully
:returns: -1: error (and message in errbuf))r   IDP_Hooks_ev_cvt64_hashvalr  s   &&&&&r   r|  IDP_Hooks.ev_cvt64_hashval  s     224s$OOr#   c          
     ,    V ^8  d   QhRRRRRRRRR	R/# )
rX   r&  r'  stkvarr  rK   rm   r  r  rY   r$   )rZ   s   "r   r[   r    s2       g  r#   c                2    \         P                  ! WW#V4      # )a*  Generate stack variable definition line Default line is varname = type ptr value, where 'type' is one of byte,word,dword,qword,tbyte 
          
:param outctx: (outctx_t *)
:param stkvar: (const udm_t *)
:param v: (sval_t)
:param tid: (tid_t) stkvar TID
:returns: 1: ok
:returns: 0: not implemented)r   IDP_Hooks_ev_gen_stkvar_def)r   r&  r	  rK   r  s   &&&&&r   r  IDP_Hooks.ev_gen_stkvar_def  s     33D& 	r#   c               $    V ^8  d   QhRRRRRR/# )rX   r   r,  r1  r  rY   rm   r$   )rZ   s   "r   r[   r    s'     
D 
DG 
D3C 
Ds 
Dr#   c                0    \         P                  ! WV4      # )a
  Does the instruction calculate some address using an immediate operand? e.g. in PC such operand may be o_displ: 'lea eax, [esi+4]' 
          
:param type: (int *) pointer to the returned instruction type:
* 0 the "add" instruction (the immediate operand is a relative value)
* 1 the "move" instruction (the immediate operand is an absolute value)
* 2 the "sub" instruction (the immediate operand is a relative value)
:param insn: (const insn_t *) instruction
:returns: >0 the operand number+1
:returns: 0: not implemented)r   IDP_Hooks_ev_is_addr_insn)r   r   r1  s   &&&r   r  IDP_Hooks.ev_is_addr_insn  s     11$dCCr#   c               0    V ^8  d   QhRRRRRRRRR	R
RR/# )rX   r  rI  r  r  r  rm   rY  r  r  r  rY   r$   )rZ   s   "r   r[   r    s:       o 5BLr#   c                2    \         P                  ! WW#WE4      # )a  Get next address to be executed This function must return the next address to be executed. If the instruction following the current one is executed, then it must return BADADDR Usually the instructions to consider are: jumps, branches, calls, returns. This function is essential if the 'single step' is not supported in hardware. 
          
:param target: (::ea_t *), out: pointer to the answer
:param ea: (::ea_t) instruction address
:param tid: (int) current therad id
:param getreg: (::processor_t::regval_getter_t *) function to get register values
:param regvalues: (const regval_t *) register values array
:returns: 0: unimplemented
:returns: 1: implemented)r   IDP_Hooks_ev_next_exec_insn)r   r  r  r  rY  r  s   &&&&&&r   r  IDP_Hooks.ev_next_exec_insn  s     33D" 	r#   c               $    V ^8  d   QhRRRRRR/# )rX   r  rI  r  r  rY   rm   r$   )rZ   s   "r   r[   r    s&     F F Fo F Fr#   c                0    \         P                  ! WV4      # )am  Calculate the address of the instruction which will be executed after "step over". The kernel will put a breakpoint there. If the step over is equal to step into or we cannot calculate the address, return BADADDR. 
          
:param target: (::ea_t *) pointer to the answer
:param ip: (::ea_t) instruction address
:returns: 0: unimplemented
:returns: 1: implemented)r   IDP_Hooks_ev_calc_step_over)r   r  r  s   &&&r   r  IDP_Hooks.ev_calc_step_over  s     33D"EEr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r  rP  r1  r  r  ru   rY   rm   r$   )rZ   s   "r   r[   r    s1     	J 	JK 	J7G 	J	J	Jr#   c                0    \         P                  ! WW#4      # )a  Calculate list of addresses the instruction in 'insn' may pass control to. This callback is required for source level debugging. 
          
:param res: (eavec_t *), out: array for the results.
:param insn: (const insn_t*) the instruction
:param over: (bool) calculate for step over (ignore call targets)
:returns: <0: incalculable (indirect jumps, for example)
:returns: >=0: number of addresses of called functions in the array. They must be put at the beginning of the array (0 if over=true))r   IDP_Hooks_ev_calc_next_eas)r   r  r1  r  s   &&&&r   r  IDP_Hooks.ev_calc_next_eas  s     224dIIr#   c               $    V ^8  d   QhRRRRRR/# )rX   r  rI  r  r  rY   rm   r$   )rZ   s   "r   r[   r    s'     I I8 I IIr#   c                0    \         P                  ! WV4      # )a#  Calculate the start of a macro instruction. This notification is called if IP points to the middle of an instruction 
          
:param head: (::ea_t *), out: answer, BADADDR means normal instruction
:param ip: (::ea_t) instruction address
:returns: 0: unimplemented
:returns: 1: implemented)r    IDP_Hooks_ev_get_macro_insn_head)r   r  r  s   &&&r   r   IDP_Hooks.ev_get_macro_insn_head  s     88RHHr#   c               $    V ^8  d   QhRRRRRR/# )rX   r   r,  r1  r  rY   rm   r$   )rZ   s   "r   r[   r    s'     F Fg F5E F Fr#   c                0    \         P                  ! WV4      # )a  Get the number of the operand to be displayed in the debugger reference view (text mode). 
          
:param opnum: (int *) operand number (out, -1 means no such operand)
:param insn: (const insn_t*) the instruction
:returns: 0: unimplemented
:returns: 1: implemented)r   IDP_Hooks_ev_get_dbr_opnum)r   r   r1  s   &&&r   r  IDP_Hooks.ev_get_dbr_opnum  s     224EEr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r1  r  rY  r  r  r  rY   rm   r$   )rZ   s   "r   r[   r    s,      '7 (5?CFr#   c                2    \         P                  ! WVV4      # )a\  Check if insn will read the TF bit. 
          
:param insn: (const insn_t*) the instruction
:param getreg: (::processor_t::regval_getter_t *) function to get register values
:param regvalues: (const regval_t *) register values array
:returns: 2: yes, will generate 'step' exception
:returns: 1: yes, will store the TF bit in memory
:returns: 0: no)r   IDP_Hooks_ev_insn_reads_tbit)r   r1  rY  r  s   &&&&r   r  IDP_Hooks.ev_insn_reads_tbit  s     44T 	r#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r  r  rY  r  r  r  rY   rm   r$   )rZ   s   "r   r[   r  #  s1     	M 	M 	M(	M5?	MCF	Mr#   c                0    \         P                  ! WW#4      # )a#  Clear the TF bit after an insn like pushf stored it in memory. 
          
:param ea: (::ea_t) instruction address
:param getreg: (::processor_t::regval_getter_t *) function to get register values
:param regvalues: (const regval_t *) register values array
:returns: 1: ok
:returns: 0: failed)r   IDP_Hooks_ev_clean_tbit)r   r  rY  r  s   &&&&r   r  IDP_Hooks.ev_clean_tbit#  s     //&LLr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   main_regnamer  r   r  r:  rK  rY   rm   r$   )rZ   s   "r   r[   r  .  s+      O "&)r#   c                0    \         P                  ! WW#4      # )a  Get register information by its name. example: "ah" returns:
* main_regname="eax"
* bitrange_t = { offset==8, nbits==8 }


This callback may be unimplemented if the register names are all present in processor_t::reg_names and they all have the same size 
          
:param main_regname: (const char **), out
:param bitrange: (bitrange_t *), out: position and size of the value within 'main_regname' (empty bitrange == whole register)
:param regname: (const char *)
:returns: 1: ok
:returns: -1: failed (not found)
:returns: 0: unimplemented)r   IDP_Hooks_ev_get_reg_info)r   r	  r   r:  s   &&&&r   r  IDP_Hooks.ev_get_reg_info.  s     11$ 	r#   c          
     ,    V ^8  d   QhRRRRRRRRR	R/# )
rX   r  r	  r  rm   rY  r  r  r  rY   r$   )rZ   s   "r   r[   r  @  s2      . s (5?CFr#   c                2    \         P                  ! WVW44      # )ag  Calculate the call stack trace for the given thread. This callback is invoked when the process is suspended and should fill the 'trace' object with the information about the current call stack. Note that this callback is NOT invoked if the current debugger backend implements stack tracing via debugger_t::event_t::ev_update_call_stack. The debugger-specific algorithm takes priority. Implementing this callback in the processor module is useful when multiple debugging platforms follow similar patterns, and thus the same processor-specific algorithm can be used for different platforms. 
          
:param stack: (call_stack_t *) result
:param tid: (int) thread id
:param getreg: (::processor_t::regval_getter_t *) function to get register values
:param regvalues: (const regval_t *) register values array
:returns: 1: ok
:returns: -1: failed
:returns: 0: unimplemented)r   IDP_Hooks_ev_update_call_stack)r   r  r  rY  r  s   &&&&&r   r  IDP_Hooks.ev_update_call_stack@  s     66tC 	r#   c                   V ^8  d   QhRR/# rl   r$   )rZ   s   "r   r[   r  N  s     5 5S 5r#   c                .    \         P                  ! V 4      # )a  Setup default type libraries. (called after loading a new file into the database). The processor module may load tils, setup memory model and perform other actions required to set up the type system. This is an optional callback. 
          
:returns: void: )r   IDP_Hooks_ev_setup_tilrg   s   &r   r  IDP_Hooks.ev_setup_tilN  s     ..t44r#   c                    V ^8  d   QhRRRR/# )rX   rm  rn  rY   rm   r$   )rZ   s   "r   r[   r  T  s     > >H > >r#   c                .    \         P                  ! W4      # )zGet all possible ABI names and optional extensions for given compiler abiname/option is a string entirely consisting of letters, digits and underscore 
          
:param comp: (comp_t) - compiler ID
:returns: 0: not implemented
:returns: 1: ok)r   IDP_Hooks_ev_get_abi_info)r   rm  s   &&r   r  IDP_Hooks.ev_get_abi_infoT  s     11$==r#   c                   V ^8  d   QhRR/# rl   r$   )rZ   s   "r   r[   r  \  s     8 8 8r#   c                .    \         P                  ! V 4      # )z\Get maximal size of a pointer in bytes. 
          
:returns: max possible size of a pointer)r   IDP_Hooks_ev_max_ptr_sizerg   s   &r   r  IDP_Hooks.ev_max_ptr_size\  rv  r#   c                   V ^8  d   QhRR/# rl   r$   )rZ   s   "r   r[   r  b  s     A A Ar#   c                .    \         P                  ! V 4      # )z]Get default enum size. Not generated anymore. inf_get_cc_size_e() is used instead 
          )r   "IDP_Hooks_ev_get_default_enum_sizerg   s   &r   r  "IDP_Hooks.ev_get_default_enum_sizeb  s     ::4@@r#   c               $    V ^8  d   QhRRRRRR/# )rX   rC  rD  rE  rF  rY   rm   r$   )rZ   s   "r   r[   r  g  s&     A A< A[ AC Ar#   c                0    \         P                  ! WV4      # )zGet register allocation convention for given calling convention 
          
:param regs: (callregs_t *), out
:param cc: (::callcnv_t)
:returns: 1: 
:returns: 0: not implemented)r   IDP_Hooks_ev_get_cc_regs)r   rC  rE  s   &&&r   r  IDP_Hooks.ev_get_cc_regsg  s     00R@@r#   c               4    V ^8  d   QhRRRRRRRRR	R
RRRR/# )rX   r  rL  rM  rN  rO  r!  rP  ru   r1  r  r  rQ  rY   rm   r$   )rZ   s   "r   r[   r  p  sD     + +%6 ++)+8<++,+03+r#   c           	     4    \         P                  ! WVW4WV4      # )a  Get SIMD-related types according to given attributes ant/or argument location 
          
:param out: (simd_info_vec_t *)
:param simd_attrs: (const simd_info_t *), may be nullptr
:param argloc: (const argloc_t *), may be nullptr
:param create_tifs: (bool) return valid tinfo_t objects, create if neccessary
:param insn: (::const insn_t *)
:param op: (::const op_t *)
:returns: number: of found types
:returns: -1: error If insn and op are specified, return only the types that match them)r   IDP_Hooks_ev_get_simd_types)r   r  rM  rO  rP  r1  r  s   &&&&&&&r   r  IDP_Hooks.ev_get_simd_typesp  s      33Dz+ 	+r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r    s     G G_ G Gr#   c                .    \         P                  ! W4      # )zCalculate number of purged bytes after call. 
          
:param ea: (::ea_t) address of the call instruction
:returns: number of purged bytes (usually add sp, N))r   $IDP_Hooks_ev_calc_cdecl_purged_bytesrp  s   &&r   r  $IDP_Hooks.ev_calc_cdecl_purged_bytes  s    
 <<TFFr#   c               $    V ^8  d   QhRRRRRR/# )rX   r=  r,  r6  r7  rY   rm   r$   )rZ   s   "r   r[   r    s#     	 	7 		!	r#   c                0    \         P                  ! WV4      # )zCalculate number of purged bytes by the given function type. 
          
:param p_purged_bytes: (int *) ptr to output
:param fti: (const func_type_data_t *) func type details
:returns: 1: 
:returns: 0: not implemented)r   IDP_Hooks_ev_calc_purged_bytes)r   r=  r6  s   &&&r   r  IDP_Hooks.ev_calc_purged_bytes  s     66t 	r#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   retlocr!  rettyperY  rE  rF  rY   rm   r$   )rZ   s   "r   r[   r    s0     
L 
LZ 
L) 
L
L
Lr#   c                0    \         P                  ! WW#4      # )zCalculate return value location. 
          
:param retloc: (argloc_t *)
:param rettype: (const tinfo_t *)
:param cc: (::callcnv_t)
:returns: 0: not implemented
:returns: 1: ok,
:returns: -1: error)r   IDP_Hooks_ev_calc_retloc)r   r	  r	  rE  s   &&&&r   r  IDP_Hooks.ev_calc_retloc  s     00wKKr#   c                    V ^8  d   QhRRRR/# )rX   r6  r7  rY   rm   r$   )rZ   s   "r   r[   r    s     = =#5 = =r#   c                .    \         P                  ! W4      # )a(  Calculate function argument locations. This callback should fill retloc, all arglocs, and stkargs. This callback is never called for CM_CC_SPECIAL functions. 
          
:param fti: (func_type_data_t *) points to the func type info
:returns: 0: not implemented
:returns: 1: ok
:returns: -1: error)r   IDP_Hooks_ev_calc_arglocs)r   r6  s   &&r   r  IDP_Hooks.ev_calc_arglocs  s     11$<<r#   c          
     ,    V ^8  d   QhRRRRRRRRR	R/# )
rX   ftdr7  aux_regsz'regobjs_t'aux_stkargsz
'relobj_t'nfixedrm   rY   r$   )rZ   s   "r   r[   r    s4     ! !$6 !!",!69!=@!r#   c                2    \         P                  ! WVW44      # )a  Calculate locations of the arguments that correspond to '...'. 
          
:param ftd: (func_type_data_t *), inout: info about all arguments (including varargs)
:param aux_regs: (regobjs_t *) buffer for hidden register arguments, may be nullptr
:param aux_stkargs: (relobj_t *) buffer for hidden stack arguments, may be nullptr
:param nfixed: (int) number of fixed arguments
:returns: 0: not implemented
:returns: 1: ok
:returns: -1: error On some platforms variadic calls require passing additional information: for example, number of floating variadic arguments must be passed in rax on gcc-x64. The locations and values that constitute this additional information are returned in the buffers pointed by aux_regs and aux_stkargs)r   IDP_Hooks_ev_calc_varglocs)r   r	  r	  r	  r	  s   &&&&&r   r  IDP_Hooks.ev_calc_varglocs  s     224h! 	!r#   c               (    V ^8  d   QhRRRRRRRR/# )rX   rO  r!  optional_typerY  rp   rm   rY   r$   )rZ   s   "r   r[   r    s*     
! 
!z 
!) 
!
!
!r#   c                0    \         P                  ! WW#4      # )a  Adjust argloc according to its type/size and platform endianess 
          
:param argloc: (argloc_t *), inout
:param size: (int) 'size' makes no sense if type != nullptr (type->get_size() should be used instead)
:returns: 0: not implemented
:returns: 1: ok
:returns: -1: error)r   IDP_Hooks_ev_adjust_argloc)r   rO  r	  rp   s   &&&&r   r  IDP_Hooks.ev_adjust_argloc  s     224! 	!r#   c               $    V ^8  d   QhRRRRRR/# )rX   re  rf  r6  r7  rY   rm   r$   )rZ   s   "r   r[   r    s(     	I 	I, 	I=O 	I	Ir#   c                0    \         P                  ! WV4      # )a  Get function arguments which should be converted to pointers when lowering function prototype. The processor module can also modify 'fti' in order to make non-standard conversion of some arguments. 
          
:param argnums: (intvec_t *), out - numbers of arguments to be converted to pointers in acsending order
:param fti: (func_type_data_t *), inout func type details
:returns: 0: not implemented
:returns: 1: argnums was filled
:returns: 2: argnums was filled and made substantial changes to fti argnums[0] can contain a special negative value indicating that the return value should be passed as a hidden 'retstr' argument: -1 this argument is passed as the first one and the function returns a pointer to the argument, -2 this argument is passed as the last one and the function returns a pointer to the argument, -3 this argument is passed as the first one and the function returns 'void'.)r   IDP_Hooks_ev_lower_func_type)r   re  r6  s   &&&r   r  IDP_Hooks.ev_lower_func_type  s     44TCHHr#   c               $    V ^8  d   QhRRRRRR/# )rX   r   r!  r"  rY   rm   r$   )rZ   s   "r   r[   r    s&     A A: A: A Ar#   c                0    \         P                  ! WV4      # )zAre 2 register arglocs the same?. We need this callback for the pc module. 
          
:param a1: (argloc_t *)
:param a2: (argloc_t *)
:returns: 1: yes
:returns: -1: no
:returns: 0: not implemented)r   IDP_Hooks_ev_equal_reglocs)r   r   r"  s   &&&r   r  IDP_Hooks.ev_equal_reglocs  s     224R@@r#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r  r(  r)  rY   rm   r$   )rZ   s   "r   r[   r    s&     D D_ D; D# Dr#   c                0    \         P                  ! WV4      # )aB  Use information about a stack argument. 
          
:param ea: (::ea_t) address of the push instruction which pushes the function argument into the stack
:param arg: (const funcarg_t *) argument info
:returns: 1: ok
:returns: <=0: failed, the kernel will create a comment with the argument name or type for the instruction)r   IDP_Hooks_ev_use_stkarg_type)r   r  r(  s   &&&r   r  IDP_Hooks.ev_use_stkarg_type  s     44TsCCr#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r  r0  z'funcargvec_t const *'rY   r  r$   )rZ   s   "r   r[   r    s(     F F_ FF".Fr#   c                0    \         P                  ! WV4      # )a  Use information about register argument. 
          
:param ea: (::ea_t) address of the instruction
:param rargs: (const funcargvec_t *) vector of register arguments (including regs extracted from scattered arguments)
:returns: 1: 
:returns: 0: not implemented)r   IDP_Hooks_ev_use_regarg_type)r   r  r0  s   &&&r   r  IDP_Hooks.ev_use_regarg_type  s     44TuEEr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r  r  r6  r7  r0  z'funcargvec_t *'rY   rm   r$   )rZ   s   "r   r[   r    s1     	I 	I? 	I9K 	I	I#&	Ir#   c                0    \         P                  ! WW#4      # )a9  Use information about callee arguments. 
          
:param ea: (::ea_t) address of the call instruction
:param fti: (func_type_data_t *) info about function type
:param rargs: (funcargvec_t *) array of register arguments
:returns: 1: (and removes handled arguments from fti and rargs)
:returns: 0: not implemented)r   IDP_Hooks_ev_use_arg_types)r   r  r6  r0  s   &&&&r   r  IDP_Hooks.ev_use_arg_types  s     224SHHr#   c          
     ,    V ^8  d   QhRRRRRRRRR	R/# )
rX   rW  r  r  rm   rX  rY  rZ  rI  rY   r$   )rZ   s   "r   r[   r    s2     
 
 
S 

"
&)
r#   c                2    \         P                  ! WW#V4      # )a  Argument address info is ready. 
          
:param caller: (::ea_t)
:param n: (int) number of formal arguments
:param tif: (tinfo_t *) call prototype
:param addrs: (::ea_t *) argument intilization addresses
:returns: <0: do not save into idb; other values mean "ok to save")r   IDP_Hooks_ev_arg_addrs_ready)r   rW  r  rX  rZ  s   &&&&&r   r  IDP_Hooks.ev_arg_addrs_ready  s     44T1 	r#   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rX   r   rK  mangleru   rE  rm   r	  rY  rY   r  r$   )rZ   s   "r   r[   r     s1     
 
S 
$ 
C 
 
$0
r#   c                2    \         P                  ! WW#V4      # )zDecorate/undecorate a C symbol name. 
          
:param name: (const char *) name of symbol
:param mangle: (bool) true-mangle, false-unmangle
:param cc: (::callcnv_t) calling convention
:returns: 1: if success
:returns: 0: not implemented or failed)r   IDP_Hooks_ev_decorate_name)r   r   r
  rE  r	  s   &&&&&r   r  IDP_Hooks.ev_decorate_name   s     224v 	r#   c                   V ^8  d   QhRR/# rl   r$   )rZ   s   "r   r[   r    s     8 8 8r#   c                .    \         P                  ! V 4      # )zThe loader is done parsing arch-related information, which the processor module might want to use to finish its initialization. 
          
:returns: 1: if success
:returns: 0: not implemented or failed)r   IDP_Hooks_ev_arch_changedrg   s   &r   r  IDP_Hooks.ev_arch_changed  s    
 11$77r#   c               $    V ^8  d   QhRRRRRR/# )rX   r  z'stkarg_area_info_t'rE  rF  rY   rm   r$   )rZ   s   "r   r[   r    s)     I I+? IIIr#   c                0    \         P                  ! WV4      # )zGet some metrics of the stack argument area. 
          
:param out: (stkarg_area_info_t *) ptr to stkarg_area_info_t
:param cc: (::callcnv_t) calling convention
:returns: 1: if success
:returns: 0: not implemented)r   !IDP_Hooks_ev_get_stkarg_area_info)r   r  rE  s   &&&r   r  !IDP_Hooks.ev_get_stkarg_area_info  s     99$RHHr#   c                   V ^8  d   QhRR/# rl   r$   )rZ   s   "r   r[   r    s     A A Ar#   c                	.    \         P                  ! V 4      # r.   )r   "IDP_Hooks_ev_last_cb_before_loaderrg   s   &r   r  "IDP_Hooks.ev_last_cb_before_loader  s    ::4@@r#   c                   V ^8  d   QhRR/# rl   r$   )rZ   s   "r   r[   r     s     2 2# 2r#   c                .    \         P                  ! V 4      # )zThis code and higher ones are reserved for the loaders. The arguments and the return values are defined by the loaders 
          )r   IDP_Hooks_ev_loaderrg   s   &r   r  IDP_Hooks.ev_loader        ++D11r#   c                	    V P                   P                  4        \        P                  ! V 4       \        P
                  ! V 4      # r.   )r	   disownr   disown_IDP_Hooksweakrefproxyrg   s   &r   
__disown__IDP_Hooks.__disown__&  /    		!!$'}}T""r#   r$   N       )r   r   r8   r9   r   r   r   r
   rU   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r
  r  r  r  r  r  r  r  r  r  r  r   r"  r$  r&  r(  r*  r,  r.  r0  r2  r4  r6  r8  r:  r<  r>  r@  rB  rF  rH  rJ  rL  rN  rP  rR  rT  rV  rX  rZ  r\  r^  r`  rb  rd  rf  rh  rj  rl  rn  rp  rr  rv  rx  rz  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   delete_IDP_Hooksr  r,
  r<   r$   r#   r   r  r  1	  s   -/I!#GH" "-/=0
B:::&9+9:>>EC?<<CJK	ME >	G?8M@>H>>DD
#B>
?"K=?	M	G=B
IKK<=C	":@BJC
EEG?
!EB		N
M)>$D"B>G3
FEMG?7
ANE	NP
DF	JIF	M$5>8A
A+ G	
L=!
!	IADF	I

8IA2  00# #r#   r  c                    V ^8  d   QhRRRR/# rX   arg1r  rY   r$   )rZ   s   "r   r[   r[   /       0 0 0 0r#   c                .    \         P                  ! V 4      # r.   r   get_idp_notifier_addrr5
  s   &r   r9
  r9
  /      ))$//r#   c                    V ^8  d   QhRRRR/# )rX   hooksz'IDP_Hooks'rY   r  r$   )rZ   s   "r   r[   r[   3       4 4K 4< 4r#   c                .    \         P                  ! V 4      # r.   r   get_idp_notifier_ud_addrr=
  s   &r   rA
  rA
  3      ,,U33r#   c               (    V ^8  d   QhRRRRRRRR/# r  r$   )rZ   s   "r   r[   r[   7  s(     6 6 6 6( 6d 6r#   c                0    \         P                  ! WV4      # r.   )r   r  )r  r  r  s   &&&r   r  r  7  s    ##Bu55r#   c               $    V ^8  d   QhRRRRRR/# r  r$   )rZ   s   "r   r[   r[   ;  s!     4 4# 4 4 4r#   c                .    \         P                  ! W4      # r.   )r   r  r  s   &&r   r  r  ;  s      33r#   c                   V ^8  d   QhRR/# rl   r$   )rZ   s   "r   r[   r[   ?  s     " "C "r#   c                 ,    \         P                  ! 4       # r.   )r   r  r$   r#   r   r  r  ?  s    !!r#   c                  :   ] tR tRt]P
                  t R tR tR t	R t
R tR tR tRYR
 ltRZR ltR[R ltR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!R t"R t#R  t$R! t%R" t&R# t'R$ t(R% t)R& t*R' t+R( t,R) t-R* t.R+ t/R, t0R- t1R. t2R/ t3R0 t4R1 t5R2 t6R3 t7R4 t8R5 t9R6 t:R7 t;R8 t<R9 t=R: t>R; t?R< t@R= tAR> tBR? tCR@ tDRA tERB tFRC tGRD tHRE tIRF tJRG tKRH tLRI tMRJ tNRK tORL tPRM tQRN tRRO tSRP tTRQ tURR tVRS tWRT tXRU tYRV tZRW t[RXt\R	# )\processor_tiU  c                	n    \         P                  V \        P                  4       \	        V 4      V n        R # r.   )r  rU   r  HBF_CALL_WITH_NEW_EXEC!_processor_t_Trampoline_IDB_Hooks	idb_hooksrg   s   &r   rU   processor_t.__init__a  s$    4!B!BC:4@r#   c           	     v    RP                  \        R \        V P                  V P                  4      4      4      # )z
This function must be present and should return the list of
short processor names similar to the one in ph.psnames.
This method can be overridden to return to the kernel a different IDP description.
c                $    R P                  V 4      # )rR
  )join)ts   &r   rF   )processor_t.get_idpdesc.<locals>.<lambda>k  s    Qr#   )rT
  mapzipplnamespsnamesrg   s   &r   get_idpdescprocessor_t.get_idpdesce  s3     {{37T\\LL:   	r#   c                    VP                   # )z(This function returns insn.auxpref value)auxprefr"  s   &&r   get_auxprefprocessor_t.get_auxprefn  s    ||r#   c                	.    \         P                  ! V 4      # r.   r8
  rg   s   &r   _get_idp_notifier_addr"processor_t._get_idp_notifier_addrr  rr   r#   c                	.    \         P                  ! V 4      # r.   r@
  rg   s   &r   _get_idp_notifier_ud_addr%processor_t._get_idp_notifier_ud_addru  r   r#   c                	.    \         P                  ! V 4      # r.   r   get_idb_notifier_addrrg   s   &r   _get_idb_notifier_addr"processor_t._get_idb_notifier_addrx  rr   r#   c                	B    \         P                  ! V P                  4      # r.   )r   get_idb_notifier_ud_addrrO
  rg   s   &r   _get_idb_notifier_ud_addr%processor_t._get_idb_notifier_ud_addr{  s    00@@r#   Nc                	   aa VV3R  lpV# )c                 $   < S'       d   S! V !   S# r.   r$   )rT   methvals   *r   f1processor_t._make_forced_value_wrapper.<locals>.f  s    dJr#   r$   )r   rs
  rr
  rt
  s   &ff r   _make_forced_value_wrapper&processor_t._make_forced_value_wrapper~  s    	 r#   c                	   aa VV3R  lpV# )c                     < S! V !  pVf   SpV# r.   r$   )rT   rs
  intvalrr
  s   * r   rt
  2processor_t._make_int_returning_wrapper.<locals>.f  s    +C{Jr#   r$   )r   rr
  rz
  rt
  s   &ff r   _make_int_returning_wrapper'processor_t._make_int_returning_wrapper  s    	
 r#   c                    V'       d
   RV,          p\        WR4      pVf.   V'       d   \        RV,          4      hV P                  V4      pV# Ve   V P                  W64      pV# V P                  V4      pV# )z`
This helper is used to implement backward-compatibility
of pre IDA 7.3 processor_t interfaces.
z	notify_%sNz$processor_t.%s() must be implemented)r   r   rv
  r|
  )r   what	unimp_valimp_forced_val
add_prefixmandatory_implrr
  s   &&&&&& r   _get_notifyprocessor_t._get_notify  s     %Dt4(< F"!# $ $229=D
 	 '22>HD  33D9Dr#   c                	,    V P                  R 4      ! V!  # )rb  r
  rS   s   &*r   r  processor_t.ev_newprc      )400r#   c                	,    V P                  R 4      ! V!  # )rx  r
  rS   s   &*r   r  processor_t.ev_newfile      	*D11r#   c                	,    V P                  R 4      ! V!  # )r~  r
  rS   s   &*r   r  processor_t.ev_oldfile  r
  r#   c                	,    V P                  R 4      ! V!  # )r  r
  rS   s   &*r   r  processor_t.ev_newbinary      ,d33r#   c                	,    V P                  R 4      ! V!  # )r  r
  rS   s   &*r   r  processor_t.ev_endbinary  r
  r#   c                	`    V P                  R RR7      ! VW#4      pVf   ^ # V\        8X  d   ^# R# )r  Nr
  )r
  	IDPOPT_OK)r   r  r  r   r  r  s   &&&&& r   r  processor_t.ev_set_idp_options  s<    0DA';9$q,",r#   c                	,    V P                  R 4      ! V!  # )r  r
  rS   s   &*r   r  processor_t.ev_set_proc_options       23T::r#   c                	:    V P                  R RR7      ! V!  pV^ 8  # )anar  r
  r
  r   rT   rcs   &* r   r  processor_t.ev_ana_insn  %    eMBDIAvr#   c                	:    V P                  R RR7      ! V!  pV^ 8  # )emur  r
  r
  r
  s   &* r   r  processor_t.ev_emu_insn  r
  r#   c                	0    V P                  R ^R7      ! V!  # )r  r
  r
  rS   s   &*r   r  processor_t.ev_out_header      Q?FFr#   c                	0    V P                  R ^R7      ! V!  # )r  r
  r
  rS   s   &*r   r  processor_t.ev_out_footer  r
  r#   c                	H    V P                  R ^R7      ! WP                  4      # )r  r
  r
  r  r   r  r   s   &&&r   r  processor_t.ev_out_segstart  s&    qA#H 	r#   c                	H    V P                  R ^R7      ! WP                  4      # )r  r
  )r
  end_ear
  s   &&&r   r  processor_t.ev_out_segend  s!    Q?XXNNr#   c                	0    V P                  R ^R7      ! V!  # )r  r
  r
  rS   s   &*r   r  processor_t.ev_out_assumes  s    a@$GGr#   c                	2    V P                  R RRR7      ! V!  # )r  r  Tr
  r
  r
  rS   s   &*r   r  processor_t.ev_out_insn  s)    
=   !"&( 	(r#   c                	2    V P                  R R^R7      ! V!  # )r  F)r
  r
  r
  rS   s   &*r   r  processor_t.ev_out_mnem  s&    
uQ  	r#   c                	<    V P                  R R^R7      ! V!  pV^ 8  # )r  r  r
  r
  r
  s   &* r   r  processor_t.ev_out_operand  s/    mQ  0157Avr#   c                	0    V P                  R ^R7      ! V!  # )r  r
  r
  rS   s   &*r   r  processor_t.ev_out_data  s    
1=tDDr#   c                	,    V P                  R 4      ! V!  # )r  r
  rS   s   &*r   r  processor_t.ev_out_label  r
  r#   c                	,    V P                  R 4      ! V!  # )r  r
  rS   s   &*r   r  processor_t.ev_out_special_item  r
  r#   c                	p    V P                  R 4      ! WP                  VP                  VP                  4      # )r  )r
  canonusercmt)r   r  rK   s   &&&r   r  processor_t.ev_gen_regvar_def  s)     01#wwNNr#   c                	,    V P                  R 4      ! V!  # )r  r
  rS   s   &*r   r  !processor_t.ev_gen_src_file_lnnum       45t<<r#   c                	    \         P                  ! V4      p\         P                  ! V4      pV P                  R 4      ! VP                  W#4      # )r  ida_segmentget_visible_segm_nameget_segm_classr
  r  )r   r   snamesclasss   &&  r   r  processor_t.ev_creating_segm  s>    11!4++A.0UKKr#   c                	    \         P                  ! V4      p\         P                  ! V4      pV P                  R 4      ! VP                  WEW#4      # )rf  r
  )r   r   to_ear  r
  r
  s   &&&&  r   r  processor_t.ev_moving_segm  sE    11!4++A..qzz5 	r#   c                	,    V P                  R 4      ! V!  # )r"  r
  rS   s   &*r   r  processor_t.ev_coagulate  r
  r#   c                	,    V P                  R 4      ! V!  # )r`  r
  rS   s   &*r   r  processor_t.ev_undefine      
+T22r#   c                	,    V P                  R 4      ! V!  # )r/  r
  rS   s   &*r   r  #processor_t.ev_treat_hindering_item  s     67>>r#   c                	,    V P                  R 4      ! V!  # )r  r
  rS   s   &*r   r  processor_t.ev_rename  r
  r#   c                	H    V P                  R RR7      ! V!  pV'       d   ^# R# )rp  Fr
  r
  r
  r
  s   &* r   r  processor_t.ev_is_far_jump  s)    mu=tDqBr#   c                	,    V P                  R 4      ! V!  # )r>  r
  rS   s   &*r   r  processor_t.ev_is_sane_insn      /66r#   c                	,    V P                  R 4      ! V!  # )r5  r
  rS   s   &*r   r  processor_t.ev_is_call_insn  r
  r#   c                	,    V P                  R 4      ! V!  # )r9  r
  rS   s   &*r   r   processor_t.ev_is_ret_insn      .55r#   c                	,    V P                  R 4      ! V!  # )r8  r
  rS   s   &*r   r  processor_t.ev_may_be_func  r
  r#   c                	,    V P                  R 4      ! V!  # )rB  r
  rS   s   &*r   r  !processor_t.ev_is_basic_block_end  r
  r#   c                	,    V P                  R 4      ! V!  # )r  r
  rS   s   &*r   r  processor_t.ev_is_indirect_jump  r
  r#   c                	,    V P                  R 4      ! V!  # )is_insn_table_jumpr
  rS   s   &*r   r  !processor_t.ev_is_insn_table_jump  r
  r#   c                	D    V P                  R 4      ! V!  pV'       d   ^# ^ # )rE  r
  r
  s   &* r   r
  processor_t.ev_is_switch   s$    k*D1qAr#   c                	0    V P                  R ^R7      ! V!  # )rK  r
  r
  rS   s   &*r   r  "processor_t.ev_create_switch_xrefs$  s     5aH$OOr#   c                	,    V P                  R 4      ! V!  # )r  r
  rS   s   &*r   r  processor_t.ev_is_align_insn'      0$77r#   c                	,    V P                  R 4      ! V!  # )r  r
  rS   s   &*r   r  processor_t.ev_is_alloca_probe*  s     12D99r#   c                	    V P                  R RR7      ! W#4      p\        V4      \        8X  d1   \        P                  P                  V4      P                  V4       ^# ^ # )rk  Nr
  )r
  r   rm   ida_proint_pointerfrompointerassign)r   r  r1  r  r
  s   &&&& r   r  processor_t.ev_is_sp_based-  sL    mt<TF8s?++D188<r#   c                	P    V P                  R 4      ! V!  pVRJ d   ^# VRJ d   R# ^ # )r  TFr
  r
  r
  s   &* r   r  processor_t.ev_can_have_type4  s0    o.5:5[Ir#   c                	P    V P                  R 4      ! V!  pVRJ d   ^# VRJ d   R# ^ # )rE  TFr
  r
  r
  s   &* r   r  processor_t.ev_cmp_operands=  s0    n-t4:5[Ir#   c                	H    V P                  R 4      ! W#4      pV'       d   ^# ^ # )rf  r
  )r   bufr1  r   r
  s   &&&& r   r  !processor_t.ev_get_operand_stringF  s!    23D@r#   c                	T    V P                  R RR7      ! V!  pV^ 8  d   ^ # V^,           # )notify_str2regr
  r
  r
  r
  s   &* r   r"  processor_t.ev_str2regL  s2    ."=tDFq&Q&r#   c                	,    V P                  R 4      ! V!  # )r  r
  rS   s   &*r   r$  processor_t.ev_get_autocmtP  r
  r#   c                	    \         P                  P                  V4      pV P                  R RR7      ! VP	                  4       VP
                  V4      p\        V4      \        8X  d   VP                  V4       ^ # )r2  Nr
  )	r
  r
  r
  r
  r   r  r   rm   r
  )r   _possible_return_coder-  r/  r+  r
  s   &&&&  r   r*  processor_t.ev_func_boundsS  sg    &22>>! #mt< &&(#,,I8s? ''+r#   c                	D    V P                  R 4      ! VP                  4      # )r  r
  r  s   &&r   r,  processor_t.ev_verify_sp\  s    ,S\\::r#   c                	D    V P                  R 4      ! VP                  4      # )r  r
  r  s   &&r   r.  processor_t.ev_verify_noreturn_  s     123<<@@r#   c                	l    V P                  R ^R7      ! VP                  4      pVRJ d   ^# VRJ d   R# V# )r  r
  TFr
  r
  )r   r-  r
  s   && r   r0   processor_t.ev_create_func_frameb  s?    1!DSH:5[IIr#   c                	    V P                  R RR7      ! VP                  4      p\        V4      \        8X  d1   \        P
                  P                  V4      P                  V4       ^# ^ # )r  Nr
  )r
  r  r   rm   r
  r
  r
  r
  )r   r  r-  r
  s   &&& r   r2   processor_t.ev_get_frame_retsizel  sS    1TB3<< 8s?++F3::2>r#   c                	    \         P                  P                  V4      pV P                  R 4      ! WVVP	                  4       4      pVR8X  d   R# V^ 8w  d   VP                  V4       ^ # )r  r
  )r
  
ea_pointerr
  r
  r   r
  )r   from_ear
  r  _code_ear  r
  s   &&&&&  r   r@  processor_t.ev_coagulate_dreft  s]    $$00:./
MMO8I7NN2r#   c                	,    V P                  R 4      ! V!  # )r  r
  rS   s   &*r   rB  processor_t.ev_may_show_sreg~  r
  r#   c                	,    V P                  R 4      ! V!  # )r'  r
  rS   s   &*r   rF  processor_t.ev_auto_queue_empty  r
  r#   c                	,    V P                  R 4      ! V!  # )ra  r
  rS   s   &*r   rH  "processor_t.ev_validate_flirt_func  s     56==r#   c                	,    V P                  R 4      ! V!  # )r  r
  rS   s   &*r   rL  processor_t.ev_assemble  r
  r#   c                	    ^ RI pVP                  V4      pV P                  R4      ! V4      pV^ 8  d1   \        P                  P                  V4      P                  V4       ^# ^ # )r0
  Nr  )ida_fproqfile_t_from_fpr
  r
  r
  r
  r
  )r   r  r  r%  qfiler
  s   &&&   r   rT  processor_t.ev_gen_map_file  sV    ((,n-e46++F3::2>r#   c                	    V P                  R RR7      ! V4      pVeF   V\        P                  8w  d1   \        P                  P                  V4      P                  V4       ^# ^ # )r  Nr
  )r
  r  BADADDRr
  r  r
  r
  )r   r  r  r
  s   &&& r   r  processor_t.ev_calc_step_over  sT    .$?C>bJ$6$66**6299"=r#   c                	0    V P                  R 4      ! V!   R# )	closebaseNr
  rS   s   &*r   r-  processor_t.closebase      %t,r#   c                	0    V P                  R 4      ! V!   R# )savebaseNr
  rS   s   &*r   r1  processor_t.savebase  s    $d+r#   c                	0    V P                  R 4      ! V!   R# )
auto_emptyNr
  rS   s   &*r   r4  processor_t.auto_empty  s    &-r#   c                	0    V P                  R 4      ! V!   R# )auto_empty_finallyNr
  rS   s   &*r   r7  processor_t.auto_empty_finally  s    -.5r#   c                	0    V P                  R 4      ! V!   R# )determined_mainNr
  rS   s   &*r   r:  processor_t.determined_main  s    *+T2r#   c                	0    V P                  R 4      ! V!   R# )load_idasgnNr
  rS   s   &*r   idasgn_loadedprocessor_t.idasgn_loaded  s    '.r#   c                	0    V P                  R 4      ! V!   R# )kernel_config_loadedNr
  rS   s   &*r   rA   processor_t.kernel_config_loaded  s    /0$7r#   c                	0    V P                  R 4      ! V!   R# )set_compilerNr
  rS   s   &*r   compiler_changedprocessor_t.compiler_changed      ($/r#   c                	    \         P                  ! V4      p\         P                  ! V4      p\         P                  ! V4      pV P	                  R 4      ! WWgV4       R# )	move_segmN)r
  getsegr
  r
  r
  )r   r  r
  rp   changed_netmapr   r
  r
  s   &&&&&   r   
segm_movedprocessor_t.segm_moved  sL    u%11!4++A.%ge	r#   c                	H    V P                  R 4      ! VP                  4       R# )add_funcNr
  r  s   &&r   
func_addedprocessor_t.func_added      $S\\2r#   c                	0    V P                  R 4      ! V!   R# )set_func_startNr
  rS   s   &*r   rT  processor_t.set_func_start  s    )*D1r#   c                	0    V P                  R 4      ! V!   R# )set_func_endNr
  rS   s   &*r   rW  processor_t.set_func_end  rG  r#   c                	H    V P                  R 4      ! VP                  4       R# )del_funcNr
  r  s   &&r   deleting_funcprocessor_t.deleting_func  rR  r#   c                	0    V P                  R 4      ! V!   R# )setsgrNr
  rS   s   &*r   sgr_changedprocessor_t.sgr_changed  s    "D)r#   c                	0    V P                  R 4      ! V!   R# )	make_codeNr
  rS   s   &*r   rb  processor_t.make_code  r/  r#   c                	0    V P                  R 4      ! V!   R# )	make_dataNr
  rS   s   &*r   re  processor_t.make_data  r/  r#   c                	0    V P                  R 4      ! V!   R# )renamedNr
  rS   s   &*r   rh  processor_t.renamed  s    #T*r#   )rO
  r.   r0
  )r0
  NTN)]r   r   r8   r9   r  PY_ICID_OPAQUE__idc_cvt_id__rU   r[
  r_
  rb
  re
  rj
  rn
  rv
  r|
  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r
  r  r  r  r  r  r  r  r"  r$  r*  r,  r.  r0  r2  r@  rB  rF  rH  rL  rT  r  r-  r1  r4  r7  r:  r>  rA  rE  rL  rP  rT  rW  r[  r_  rb  re  rh  r<   r$   r#   r   rK
  rK
  U  s   ..NA474A(12244-;GGOH(
E4;O=L
43?17766=;=P8:'6;A8;>3-,.63/803203*--+r#   rK
  c                  6   ] tR tRt]! R 4      t]! R 4      t]! R 4      t]! R 4      t]! R 4      t	]! R 4      t
]! R 4      t]! R	 4      t]! R
 4      t]! R 4      t]! R 4      t]! R 4      t]! R 4      t]! R 4      t]! R 4      t]! R 4      tRtR# )__phi  c                	    \        4       # r.   )r  rg   s   &r   rF   __ph.<lambda>  s    y{r#   c                	    \        4       # r.   )r  rg   s   &r   rF   rp        =?r#   c                	    \        4       # r.   )r  rg   s   &r   rF   rp    rr  r#   c                	    \        4       # r.   )r  rg   s   &r   rF   rp    s    r#   c                	    \        4       # r.   )r  rg   s   &r   rF   rp    s    )<)>r#   c                	    \        4       # r.   )r  rg   s   &r   rF   rp        N$4r#   c                	    \        4       # r.   )r  rg   s   &r   rF   rp        (:(<r#   c                	    \        4       # r.   )r  rg   s   &r   rF   rp        *>*@r#   c                	    \        4       # r.   )r  rg   s   &r   rF   rp    r{  r#   c                	    \        4       # r.   )r  rg   s   &r   rF   rp    r{  r#   c                	    \        4       # r.   )r  rg   s   &r   rF   rp    s    +@+Br#   c                	    \        4       # r.   )r  rg   s   &r   rF   rp    r{  r#   c                	    \        4       # r.   )r  rg   s   &r   rF   rp    s    _%6r#   c                	    \        4       # r.   )r  rg   s   &r   rF   rp    ry  r#   c                	    \        4       # r.   )r  rg   s   &r   rF   rp    s    '8':r#   c                	    \        4       # r.   )r  rg   s   &r   rF   rp    rw  r#   r$   N)r   r   r8   r9   r   idcnbitsdnbitsrI  icode_returninstrucinstruc_endinstruc_startreg_code_sregreg_data_sregreg_first_sregreg_last_sregregnamessegreg_size
tbyte_sizer  r<   r$   r#   r   rn  rn    s    	*	+B23F23F./D>?L45G<=K@AM@AM@AMBCN@AM67H<=K:;J45Gr#   rn  c                   V ^8  d   QhRR/# )rX   r   rK  r$   )rZ   s   "r   r[   r[     s      3 r#   c                    \        4       p\        \        4       \        4       ^,           4       F0  pV P	                  4       W,          P	                  4       8X  g   K.  Vu # 	  R# )z/get segment register number from its name or -1r
  )r  r  r  r  lower)r   rnr   s   &  r   str2sregr    sK    		B(*,@,BQ,FG::<25;;=(H H Ir#   c                     ] tR tRt]! R R RR7      t]tRR R lltR R	 lt	R
 R lt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR( R) ltR* R+ ltR, R- ltR. R/ ltR0 R1 ltR2 R3 ltR4 R5 ltR6 R7 lt R8 R9 lt!R: R; lt"R< R= lt#R> R? lt$R@ RA lt%RB RC lt&RD RE lt'RF RG lt(RH RI lt)RJ RK lt*RL RM lt+RN RO lt,RP RQ lt-RR RS lt.RT RU lt/RV RW lt0RX RY lt1RZ R[ lt2R\ R] lt3R^ R_ lt4R` Ra lt5Rb Rc lt6Rd Re lt7Rf Rg lt8Rh Ri lt9Rj Rk lt:Rl Rm lt;Rn Ro lt<Rp Rq lt=Rr Rs lt>Rt Ru lt?Rv Rw lt@Rx Ry ltARz R{ ltBR| R} ltCR~ R ltDR R ltER R ltFR R ltGR R ltHR R ltIR R ltJR R ltKR R ltLR R ltMR R ltNR R ltOR R ltPR R ltQR R ltRR R ltSR R ltTR R ltUR R ltVR R ltWR R ltXR R ltYR R ltZR R lt[R R lt\R R lt]R R lt^R R lt_R R lt`R R ltaR R ltbR R ltcR R ltdR R lteR R ltf]gP                  tiR tjRtkR# )	IDB_Hooksi  c                	6    V P                   P                  4       # r.   rC   rD   s   &r   rF   IDB_Hooks.<lambda>  rH   r#   c                	8    V P                   P                  V4      # r.   rC   rJ   s   &&r   rF   r    rL   r#   rM   rN   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   IDB_Hooks.__annotate__  r  r#   c                	    V P                   \        8X  d   R pMT p\        P                  ! V \        P                  ! VW4      4       R # r.   )r   r  r   IDB_Hooks_swiginitnew_IDB_Hooksr  s   &&& r   rU   IDB_Hooks.__init__  r  r#   c                   V ^8  d   QhRR/# rt   r$   )rZ   s   "r   r[   r    r  r#   c                	.    \         P                  ! V 4      # r.   )r   IDB_Hooks_hookrg   s   &r   r  IDB_Hooks.hook  r  r#   c                   V ^8  d   QhRR/# rt   r$   )rZ   s   "r   r[   r    r  r#   c                	.    \         P                  ! V 4      # r.   )r   IDB_Hooks_unhookrg   s   &r   r  IDB_Hooks.unhook  r  r#   c                   V ^8  d   QhRR/# rb   r$   )rZ   s   "r   r[   r    s     2 2$ 2r#   c                .    \         P                  ! V 4      # )z!The database will be closed now.
)r   IDB_Hooks_closebaserg   s   &r   r-  IDB_Hooks.closebase  r&
  r#   c                   V ^8  d   QhRR/# rb   r$   )rZ   s   "r   r[   r  
  s     1 1 1r#   c                .    \         P                  ! V 4      # )zThe database is being saved.
)r   IDB_Hooks_savebaserg   s   &r   r1  IDB_Hooks.savebase
  s     **400r#   c                    V ^8  d   QhRRRR/# )rX   ri  rm   rY   rc   r$   )rZ   s   "r   r[   r    s     8 8c 8T 8r#   c                .    \         P                  ! W4      # )zXThe database has been upgraded and the receiver can upgrade its info as well 
          )r   IDB_Hooks_upgraded)r   ri  s   &&r   upgradedIDB_Hooks.upgraded  s     **477r#   c                   V ^8  d   QhRR/# rb   r$   )rZ   s   "r   r[   r    s     3 34 3r#   c                .    \         P                  ! V 4      # )zInfo: all analysis queues are empty. This callback is called once when the initial analysis is finished. If the queue is not empty upon the return from this callback, it will be called later again. 
          )r   IDB_Hooks_auto_emptyrg   s   &r   r4  IDB_Hooks.auto_empty  rV	  r#   c                   V ^8  d   QhRR/# rb   r$   )rZ   s   "r   r[   r    s     ; ;4 ;r#   c                .    \         P                  ! V 4      # )z`Info: all analysis queues are empty definitively. This callback is called only once. 
          )r   IDB_Hooks_auto_empty_finallyrg   s   &r   r7  IDB_Hooks.auto_empty_finally  s     44T::r#   c                    V ^8  d   QhRRRR/# )rX   mainr  rY   rc   r$   )rZ   s   "r   r[   r         > >O >t >r#   c                .    \         P                  ! W4      # )ziThe main() function has been determined. 
          
:param main: (::ea_t) address of the main() function)r   IDB_Hooks_determined_main)r   r  s   &&r   r:  IDB_Hooks.determined_main  s     11$==r#   c               (    V ^8  d   QhRRRRRRRR/# )rX   kindrm   elz'extlang_t *'r/  rY   rc   r$   )rZ   s   "r   r[   r  $  s.     G GC G] G G Gr#   c                0    \         P                  ! WW#4      # )zThe list of extlangs or the default extlang was changed. 
          
:param kind: (int) 0: extlang installed 1: extlang removed 2: default extlang changed
:param el: (extlang_t *) pointer to the extlang affected
:param idx: (int) extlang index)r   IDB_Hooks_extlang_changed)r   r  r  r/  s   &&&&r   extlang_changedIDB_Hooks.extlang_changed$  s     11$bFFr#   c                    V ^8  d   QhRRRR/# )rX   short_sig_namerK  rY   rc   r$   )rZ   s   "r   r[   r  ,  s     F FC F4 Fr#   c                .    \         P                  ! W4      # )zFLIRT signature has been loaded for normal processing (not for recognition of startup sequences). 
          
:param short_sig_name: (const char *))r   IDB_Hooks_idasgn_loaded)r   r  s   &&r   r>  IDB_Hooks.idasgn_loaded,  s     //EEr#   c                    V ^8  d   QhRRRR/# )rX   pass_numberrm   rY   rc   r$   )rZ   s   "r   r[   r  2  s     J J Jt Jr#   c                .    \         P                  ! W4      # )zRThis event is issued when ida.cfg is parsed. 
          
:param pass_number: (int))r   IDB_Hooks_kernel_config_loaded)r   r  s   &&r   rA  IDB_Hooks.kernel_config_loaded2  s     66tIIr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r  r  neflagsr+  filetypenamerK  rY   rc   r$   )rZ   s   "r   r[   r  8  s*      ,  !r#   c                2    \         P                  ! WVV4      # )zExternal file loader finished its work. Use this event to augment the existing loader functionality. 
          
:param li: (linput_t *)
:param neflags: (uint16) Load file flags
:param filetypename: (const char *))r   IDB_Hooks_loader_finished)r   r  r  r  s   &&&&r   loader_finishedIDB_Hooks.loader_finished8  s     11$G 	r#   c                    V ^8  d   QhRRRR/# )rX   fcz'qflow_chart_t'rY   rc   r$   )rZ   s   "r   r[   r  B       ? ?_ ? ?r#   c                .    \         P                  ! W4      # )zGui has retrieved a function flow chart. Plugins may modify the flow chart in this callback. 
          
:param fc: (qflow_chart_t *))r   IDB_Hooks_flow_chart_created)r   r  s   &&r   flow_chart_createdIDB_Hooks.flow_chart_createdB       44T>>r#   c                    V ^8  d   QhRRRR/# )rX   adjust_inf_fieldsru   rY   rc   r$   )rZ   s   "r   r[   r  H  s     L L$ L$ Lr#   c                .    \         P                  ! W4      # )zThe kernel has changed the compiler information. ( idainfo::cc structure; get_abi_name) 
          
:param adjust_inf_fields: (::bool) may change inf fields?)r   IDB_Hooks_compiler_changed)r   r  s   &&r   rE  IDB_Hooks.compiler_changedH  s     224KKr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r  r  new_type'type_t const *'
new_fnames'p_list const *'rY   rc   r$   )rZ   s   "r   r[   r  N  s1     N No N9I N$N(,Nr#   c                0    \         P                  ! WW#4      # )zAn item typestring (c/c++ prototype) is to be changed. 
          
:param ea: (::ea_t)
:param new_type: (const type_t *)
:param new_fnames: (const p_list *))r   IDB_Hooks_changing_ti)r   r  r  r  s   &&&&r   changing_tiIDB_Hooks.changing_tiN  s     --dMMr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r  r  r   r  fnamesr  rY   rc   r$   )rZ   s   "r   r[   r  W  s1     E E_ E4D E E$(Er#   c                0    \         P                  ! WW#4      # )zAn item typestring (c/c++ prototype) has been changed. 
          
:param ea: (::ea_t)
:param type: (const type_t *)
:param fnames: (const p_list *))r   IDB_Hooks_ti_changed)r   r  r   r  s   &&&&r   
ti_changedIDB_Hooks.ti_changedW  s     ,,TtDDr#   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rX   r  r  r  rm   r  r  r  r  rY   rc   r$   )rZ   s   "r   r[   r  `  s2     	 	 	S 		&6	:>	r#   c                2    \         P                  ! WW#V4      # )zAn operand typestring (c/c++ prototype) is to be changed. 
          
:param ea: (::ea_t)
:param n: (int)
:param new_type: (const type_t *)
:param new_fnames: (const p_list *))r   IDB_Hooks_changing_op_ti)r   r  r  r  r  s   &&&&&r   changing_op_tiIDB_Hooks.changing_op_ti`  s     001 	r#   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rX   r  r  r  rm   r   r  r  r  rY   rc   r$   )rZ   s   "r   r[   r  k  s9     K K KC KK"2K6:Kr#   c                2    \         P                  ! WW#V4      # )zAn operand typestring (c/c++ prototype) has been changed. 
          
:param ea: (::ea_t)
:param n: (int)
:param type: (const type_t *)
:param fnames: (const p_list *))r   IDB_Hooks_op_ti_changed)r   r  r  r   r  s   &&&&&r   op_ti_changedIDB_Hooks.op_ti_changedk  s     //!6JJr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r  r  r  rm   opinfoz
'opinfo_t'rY   rc   r$   )rZ   s   "r   r[   r  u  s/     H H? Hs HJ HHr#   c                0    \         P                  ! WW#4      # )zAn operand type (offset, hex, etc...) is to be changed. 
          
:param ea: (::ea_t)
:param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL
:param opinfo: (const opinfo_t *) additional operand info)r   IDB_Hooks_changing_op_type)r   r  r  r  s   &&&&r   changing_op_typeIDB_Hooks.changing_op_typeu  s     224QGGr#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r  r  rm   rY   rc   r$   )rZ   s   "r   r[   r  ~  s!     ? ?/ ?c ?T ?r#   c                0    \         P                  ! WV4      # )zAn operand type (offset, hex, etc...) has been set or deleted. 
          
:param ea: (::ea_t)
:param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL)r   IDB_Hooks_op_type_changed)r   r  r  s   &&&r   op_type_changedIDB_Hooks.op_type_changed~  s    
 11$A>>r#   c                    V ^8  d   QhRRRR/# rX   r   r  rY   rc   r$   )rZ   s   "r   r[   r    s     6 6M 6T 6r#   c                .    \         P                  ! W4      # )zXA new segment has been created. 
          
:param s: (segment_t *) See also adding_segm)r   IDB_Hooks_segm_addedr   r   s   &&r   
segm_addedIDB_Hooks.segm_added  s     ,,T55r#   c                    V ^8  d   QhRRRR/# )rX   r  r  rY   rc   r$   )rZ   s   "r   r[   r    s     @ @o @ @r#   c                .    \         P                  ! W4      # )zAA segment is to be deleted. 
          
:param start_ea: (::ea_t))r   IDB_Hooks_deleting_segmrk  s   &&r   deleting_segmIDB_Hooks.deleting_segm  s     //??r#   c               (    V ^8  d   QhRRRRRRRR/# )rX   r  r  r
  r  rm   rY   rc   r$   )rZ   s   "r   r[   r    s1     N N_ NN #N'+Nr#   c                0    \         P                  ! WW#4      # )zmA segment has been deleted. 
          
:param start_ea: (::ea_t)
:param end_ea: (::ea_t)
:param flags: (int))r   IDB_Hooks_segm_deleted)r   r  r
  r  s   &&&&r   segm_deletedIDB_Hooks.segm_deleted  s     ..tvMMr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r   r  	new_startr  segmod_flagsrm   rY   rc   r$   )rZ   s   "r   r[   r    s+      ] '*.2r#   c                2    \         P                  ! WVV4      # )zSegment start address is to be changed. 
          
:param s: (segment_t *)
:param new_start: (::ea_t)
:param segmod_flags: (int))r   IDB_Hooks_changing_segm_start)r   r   r   r!  s   &&&&r   changing_segm_startIDB_Hooks.changing_segm_start  s     55dy 	r#   c               $    V ^8  d   QhRRRRRR/# )rX   r   r  oldstartr  rY   rc   r$   )rZ   s   "r   r[   r    s'     H HM H_ HHr#   c                0    \         P                  ! WV4      # )zeSegment start address has been changed. 
          
:param s: (segment_t *)
:param oldstart: (::ea_t))r   IDB_Hooks_segm_start_changed)r   r   r'  s   &&&r   segm_start_changedIDB_Hooks.segm_start_changed  s     44ThGGr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r   r  new_endr  r!  rm   rY   rc   r$   )rZ   s   "r   r[   r    s*      = ? !r#   c                2    \         P                  ! WVV4      # )z}Segment end address is to be changed. 
          
:param s: (segment_t *)
:param new_end: (::ea_t)
:param segmod_flags: (int))r   IDB_Hooks_changing_segm_end)r   r   r-  r!  s   &&&&r   changing_segm_endIDB_Hooks.changing_segm_end  s     33DW 	r#   c               $    V ^8  d   QhRRRRRR/# )rX   r   r  oldendr  rY   rc   r$   )rZ   s   "r   r[   r    s'     D D- D DDr#   c                0    \         P                  ! WV4      # )zaSegment end address has been changed. 
          
:param s: (segment_t *)
:param oldend: (::ea_t))r   IDB_Hooks_segm_end_changed)r   r   r3  s   &&&r   segm_end_changedIDB_Hooks.segm_end_changed  s     224FCCr#   c               $    V ^8  d   QhRRRRRR/# )rX   r   r  oldnamerK  rY   rc   r$   )rZ   s   "r   r[   r    s&     G GM GC G4 Gr#   c                0    \         P                  ! WV4      # )zaSegment name is being changed. 
          
:param s: (segment_t *)
:param oldname: (const char *))r   IDB_Hooks_changing_segm_name)r   r   r9  s   &&&r   changing_segm_nameIDB_Hooks.changing_segm_name  s    
 44TgFFr#   c               $    V ^8  d   QhRRRRRR/# )rX   r   r  r   rK  rY   rc   r$   )rZ   s   "r   r[   r    s&     C C= C Ct Cr#   c                0    \         P                  ! WV4      # )z^Segment name has been changed. 
          
:param s: (segment_t *)
:param name: (const char *))r   IDB_Hooks_segm_name_changed)r   r   r   s   &&&r   segm_name_changedIDB_Hooks.segm_name_changed  s    
 33DTBBr#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r         ? ?] ?d ?r#   c                .    \         P                  ! W4      # )zCSegment class is being changed. 
          
:param s: (segment_t *))r   IDB_Hooks_changing_segm_classr  s   &&r   changing_segm_classIDB_Hooks.changing_segm_class  s     55d>>r#   c               $    V ^8  d   QhRRRRRR/# )rX   r   r  r
  rK  rY   rc   r$   )rZ   s   "r   r[   r    s&     F FM F3 F$ Fr#   c                0    \         P                  ! WV4      # )zaSegment class has been changed. 
          
:param s: (segment_t *)
:param sclass: (const char *))r   IDB_Hooks_segm_class_changed)r   r   r
  s   &&&r   segm_class_changedIDB_Hooks.segm_class_changed  s    
 44TfEEr#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r    s     > >M >T >r#   c                .    \         P                  ! W4      # )zSegment attributes has been changed. 
          
:param s: (segment_t *) This event is generated for secondary segment attributes (examples: color, permissions, etc))r   IDB_Hooks_segm_attrs_updatedr  s   &&r   segm_attrs_updatedIDB_Hooks.segm_attrs_updated  s     44T==r#   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
rX   ri  r  rc  rp   r,  rK  ru   rY   rc   r$   )rZ   s   "r   r[   r    s2       _ #'+/r#   c                2    \         P                  ! WW#V4      # )zSegment has been moved. 
          
:param to: (::ea_t)
:param size: (::asize_t)
:param changed_netmap: (bool) See also idb_event::allsegs_moved)r   IDB_Hooks_segm_moved)r   ri  rc  rp   rK  s   &&&&&r   rL  IDB_Hooks.segm_moved  s     ,,T" 	r#   c                    V ^8  d   QhRRRR/# )rX   infoz'segm_move_infos_t *'rY   rc   r$   )rZ   s   "r   r[   r    s     < <"7 <4 <r#   c                .    \         P                  ! W4      # )zProgram rebasing is complete. This event is generated after series of segm_moved events 
          
:param info: (segm_move_infos_t *))r   IDB_Hooks_allsegs_moved)r   rX  s   &&r   allsegs_movedIDB_Hooks.allsegs_moved  s     //;;r#   c                    V ^8  d   QhRRRR/# rX   r-  r.  rY   rc   r$   )rZ   s   "r   r[   r    s     8 8j 8D 8r#   c                .    \         P                  ! W4      # )zCThe kernel has added a function. 
          
:param pfn: (func_t *))r   IDB_Hooks_func_addedr  s   &&r   rP  IDB_Hooks.func_added  s     ,,T77r#   c                    V ^8  d   QhRRRR/# r^  r$   )rZ   s   "r   r[   r    s     : :
 :d :r#   c                .    \         P                  ! W4      # )zEThe kernel has updated a function. 
          
:param pfn: (func_t *))r   IDB_Hooks_func_updatedr  s   &&r   func_updatedIDB_Hooks.func_updated  s     ..t99r#   c               $    V ^8  d   QhRRRRRR/# )rX   r-  r.  r   r  rY   rc   r$   )rZ   s   "r   r[   r    s'     G G* G GGr#   c                0    \         P                  ! WV4      # )zkFunction chunk start address will be changed. 
          
:param pfn: (func_t *)
:param new_start: (::ea_t))r   IDB_Hooks_set_func_start)r   r-  r   s   &&&r   rT  IDB_Hooks.set_func_start  s     00IFFr#   c               $    V ^8  d   QhRRRRRR/# )rX   r-  r.  r-  r  rY   rc   r$   )rZ   s   "r   r[   r    s&     C C
 C_ C Cr#   c                0    \         P                  ! WV4      # )zgFunction chunk end address will be changed. 
          
:param pfn: (func_t *)
:param new_end: (::ea_t))r   IDB_Hooks_set_func_end)r   r-  r-  s   &&&r   rW  IDB_Hooks.set_func_end  s    
 ..t'BBr#   c                    V ^8  d   QhRRRR/# r^  r$   )rZ   s   "r   r[   r  
       ; ; ;t ;r#   c                .    \         P                  ! W4      # )zLThe kernel is about to delete a function. 
          
:param pfn: (func_t *))r   IDB_Hooks_deleting_funcr  s   &&r   r[  IDB_Hooks.deleting_func
       //::r#   c                    V ^8  d   QhRRRR/# r^  r$   )rZ   s   "r   r[   r    rp  r#   c                .    \         P                  ! W4      # )zdThe kernel has deleted a function frame. 
          
:param pfn: (func_t *) idb_event::frame_created)r   IDB_Hooks_frame_deletedr  s   &&r   frame_deletedIDB_Hooks.frame_deleted  rt  r#   c                    V ^8  d   QhRRRR/# r^  r$   )rZ   s   "r   r[   r         @ @j @D @r#   c                .    \         P                  ! W4      # )zKA thunk bit has been set for a function. 
          
:param pfn: (func_t *))r   IDB_Hooks_thunk_func_createdr  s   &&r   thunk_func_createdIDB_Hooks.thunk_func_created       44T??r#   c               $    V ^8  d   QhRRRRRR/# )rX   r-  r.  tailrY   rc   r$   )rZ   s   "r   r[   r    s&     F Fj F
 Fd Fr#   c                0    \         P                  ! WV4      # )zcA function tail chunk has been appended. 
          
:param pfn: (func_t *)
:param tail: (func_t *))r   IDB_Hooks_func_tail_appendedr   r-  r  s   &&&r   func_tail_appendedIDB_Hooks.func_tail_appended      
 44TEEr#   c               $    V ^8  d   QhRRRRRR/# )rX   r-  r.  r  r  rY   rc   r$   )rZ   s   "r   r[   r  #  s&     F Fj F	 FT Fr#   c                0    \         P                  ! WV4      # )ziA function tail chunk is to be removed. 
          
:param pfn: (func_t *)
:param tail: (const range_t *))r   IDB_Hooks_deleting_func_tailr  s   &&&r   deleting_func_tailIDB_Hooks.deleting_func_tail#  r  r#   c               $    V ^8  d   QhRRRRRR/# )rX   r-  r.  tail_ear  rY   rc   r$   )rZ   s   "r   r[   r  *  s'     H HZ H/ HHr#   c                0    \         P                  ! WV4      # )zcA function tail chunk has been removed. 
          
:param pfn: (func_t *)
:param tail_ea: (::ea_t))r   IDB_Hooks_func_tail_deleted)r   r-  r  s   &&&r   func_tail_deletedIDB_Hooks.func_tail_deleted*  s     33DwGGr#   c               (    V ^8  d   QhRRRRRRRR/# )rX   r  r.  
owner_funcr  	old_ownerrY   rc   r$   )rZ   s   "r   r[   r  2  s+      z $37;r#   c                2    \         P                  ! WVV4      # )zA tail chunk owner has been changed. 
          
:param tail: (func_t *)
:param owner_func: (::ea_t)
:param old_owner: (::ea_t))r   IDB_Hooks_tail_owner_changed)r   r  r  r  s   &&&&r   tail_owner_changedIDB_Hooks.tail_owner_changed2  s     44T 	r#   c                    V ^8  d   QhRRRR/# r^  r$   )rZ   s   "r   r[   r  <  r{  r#   c                .    \         P                  ! W4      # )zCFUNC_NORET bit has been changed. 
          
:param pfn: (func_t *))r   IDB_Hooks_func_noret_changedr  s   &&r   func_noret_changedIDB_Hooks.func_noret_changed<  r  r#   c                    V ^8  d   QhRRRR/# r^  r$   )rZ   s   "r   r[   r  B  s     = =: = =r#   c                .    \         P                  ! W4      # )zJStack change points have been modified. 
          
:param pfn: (func_t *))r   IDB_Hooks_stkpnts_changedr  s   &&r   stkpnts_changedIDB_Hooks.stkpnts_changedB       11$<<r#   c                    V ^8  d   QhRRRR/# rX   tbvz'tryblks_t const *'rY   rc   r$   )rZ   s   "r   r[   r  H  s     > >$7 >4 >r#   c                .    \         P                  ! W4      # )zPAbout to update tryblk information 
          
:param tbv: (const ::tryblks_t *))r   IDB_Hooks_updating_tryblksr   r  s   &&r   updating_tryblksIDB_Hooks.updating_tryblksH  s     224==r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r  N  s     = =#6 =$ =r#   c                .    \         P                  ! W4      # )zHUpdated tryblk information 
          
:param tbv: (const ::tryblks_t *))r   IDB_Hooks_tryblks_updatedr  s   &&r   tryblks_updatedIDB_Hooks.tryblks_updatedN  r  r#   c                    V ^8  d   QhRRRR/# )rX   r  r  rY   rc   r$   )rZ   s   "r   r[   r  T  s     @ @i @4 @r#   c                .    \         P                  ! W4      # )z]About to delete tryblk information in given range 
          
:param range: (const range_t *))r   IDB_Hooks_deleting_tryblks)r   r  s   &&r   deleting_tryblksIDB_Hooks.deleting_tryblksT  s     224??r#   c               4    V ^8  d   QhRRRRRRRRRRR	R
RR/# )rX   r  r  r
  rV  rm   r   r  	old_valuer  r  rY   rc   r$   )rZ   s   "r   r[   r  Z  sC     + +O ++!$+-4+AH+++r#   c           	     4    \         P                  ! WVW4WV4      # )zThe kernel has changed a segment register value. 
          
:param start_ea: (::ea_t)
:param end_ea: (::ea_t)
:param regnum: (int)
:param value: (::sel_t)
:param old_value: (::sel_t)
:param tag: (uchar) Segment register range tags)r   IDB_Hooks_sgr_changed)r   r  r
  rV  r   r  r  s   &&&&&&&r   r_  IDB_Hooks.sgr_changedZ  s      --df9+ 	+r#   c                    V ^8  d   QhRRRR/# )rX   r1  r  rY   rc   r$   )rZ   s   "r   r[   r  h  s     8 8. 8$ 8r#   c                .    \         P                  ! W4      # )zIAn instruction is being created. 
          
:param insn: (const insn_t*))r   IDB_Hooks_make_coder"  s   &&r   rb  IDB_Hooks.make_codeh  s     ++D77r#   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rX   r  r  r  r)  r  r  r   r,  rY   rc   r$   )rZ   s   "r   r[   r  n  s9     G GO GK GGG#'Gr#   c                2    \         P                  ! WW#V4      # )zA data item is being created. 
          
:param ea: (::ea_t)
:param flags: (flags64_t)
:param tid: (tid_t)
:param len: (::asize_t))r   IDB_Hooks_make_data)r   r  r  r  r   s   &&&&&r   re  IDB_Hooks.make_datan  s     ++De#FFr#   c               (    V ^8  d   QhRRRRRRRR/# )rX   ea1r  ea2will_disable_rangeru   rY   rc   r$   )rZ   s   "r   r[   r  x  s*        ?      $( r#   c                2    \         P                  ! WVV4      # )zInstructions/data have been destroyed in [ea1,ea2). 
          
:param ea1: (::ea_t)
:param ea2: (::ea_t)
:param will_disable_range: (bool))r   IDB_Hooks_destroyed_items)r   r  r  r  s   &&&&r   destroyed_itemsIDB_Hooks.destroyed_itemsx  s     11$S  	 r#   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
rX   r  r  r  rK  
local_nameru   old_namerY   rc   r$   )rZ   s   "r   r[   r    s1     	 	/ 	S 	d 			r#   c                2    \         P                  ! WW#V4      # )zThe kernel has renamed a byte. See also the rename event 
          
:param ea: (::ea_t)
:param new_name: (const char *) can be nullptr
:param local_name: (bool)
:param old_name: (const char *) can be nullptr)r   IDB_Hooks_renamed)r   r  r  r  r  s   &&&&&r   rh  IDB_Hooks.renamed  s     ))$H 	r#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r  r  rm   rY   rc   r$   )rZ   s   "r   r[   r    s&     D D D3 D$ Dr#   c                0    \         P                  ! WV4      # )zSA byte has been patched. 
          
:param ea: (::ea_t)
:param old_value: (uint32))r   IDB_Hooks_byte_patched)r   r  r  s   &&&r   byte_patchedIDB_Hooks.byte_patched  s    
 ..tCCr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r  r  repeatable_cmtru   newcmtrK  rY   rc   r$   )rZ   s   "r   r[   r    s*        r#   c                0    \         P                  ! WW#4      # )z}An item comment is to be changed. 
          
:param ea: (::ea_t)
:param repeatable_cmt: (bool)
:param newcmt: (const char *))r   IDB_Hooks_changing_cmt)r   r  r  r  s   &&&&r   changing_cmtIDB_Hooks.changing_cmt  s     ..t  	r#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r  r  ru   rY   rc   r$   )rZ   s   "r   r[   r    s&     H Ho Ht Ht Hr#   c                0    \         P                  ! WV4      # )z_An item comment has been changed. 
          
:param ea: (::ea_t)
:param repeatable_cmt: (bool))r   IDB_Hooks_cmt_changed)r   r  r  s   &&&r   cmt_changedIDB_Hooks.cmt_changed  s    
 --dGGr#   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# rX   r  z'range_kind_t'ar  r
  rK  
repeatableru   rY   rc   r$   )rZ   s   "r   r[   r    s2     	 	~ 	) 			!%	r#   c                2    \         P                  ! WW#V4      # )zRange comment is to be changed. 
          
:param kind: (range_kind_t)
:param a: (const range_t *)
:param cmt: (const char *)
:param repeatable: (bool))r   IDB_Hooks_changing_range_cmtr   r  r  r
  r  s   &&&&&r   changing_range_cmtIDB_Hooks.changing_range_cmt  s     44T 	r#   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# r  r$   )rZ   s   "r   r[   r    s2     	 	n 	 			!%	r#   c                2    \         P                  ! WW#V4      # )zRange comment has been changed. 
          
:param kind: (range_kind_t)
:param a: (const range_t *)
:param cmt: (const char *)
:param repeatable: (bool))r   IDB_Hooks_range_cmt_changedr  s   &&&&&r   range_cmt_changedIDB_Hooks.range_cmt_changed  s     33D 	r#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r  r  line_idxrm   r
  rK  rY   rc   r$   )rZ   s   "r   r[   r    s/     M MO Ms M MMr#   c                0    \         P                  ! WW#4      # )ztAn extra comment has been changed. 
          
:param ea: (::ea_t)
:param line_idx: (int)
:param cmt: (const char *))r   IDB_Hooks_extra_cmt_changed)r   r  r  r
  s   &&&&r   extra_cmt_changedIDB_Hooks.extra_cmt_changed  s     33DhLLr#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r  rW  z'bgcolor_t'rY   rc   r$   )rZ   s   "r   r[   r    s'     F F_ F[ FFr#   c                0    \         P                  ! WV4      # )zAn item color has been changed. 
          
:param ea: (::ea_t)
:param color: (bgcolor_t) if color==DEFCOLOR, the color is deleted.)r   IDB_Hooks_item_color_changed)r   r  rW  s   &&&r   item_color_changedIDB_Hooks.item_color_changed  s     44TuEEr#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r  calleerY   rc   r$   )rZ   s   "r   r[   r    s'     H Ho H HHr#   c                0    \         P                  ! WV4      # )zdCallee address has been updated by the user. 
          
:param ea: (::ea_t)
:param callee: (::ea_t))r   IDB_Hooks_callee_addr_changed)r   r  r  s   &&&r   callee_addr_changedIDB_Hooks.callee_addr_changed  s     55dGGr#   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
rX   indexrm   posz'lochist_entry_t const *'descrK  	operationrY   rc   r$   )rZ   s   "r   r[   r    s3     	 	c 	0I 		!	%)	r#   c                2    \         P                  ! WW#V4      # )zBookmarked position changed. 
          
:param index: (uint32)
:param pos: (::const lochist_entry_t *)
:param desc: (::const char *)
:param operation: (int) 0-added, 1-updated, 2-deleted if desc==nullptr, then the bookmark was deleted.)r   IDB_Hooks_bookmark_changed)r   r  r  r  r  s   &&&&&r   bookmark_changedIDB_Hooks.bookmark_changed  s     224 	r#   c               (    V ^8  d   QhRRRRRRRR/# )rX   r  r  r
  rV  rm   rY   rc   r$   )rZ   s   "r   r[   r    s1     N NO NN!$N(,Nr#   c                0    \         P                  ! WW#4      # )zThe kernel has deleted a segment register value. 
          
:param start_ea: (::ea_t)
:param end_ea: (::ea_t)
:param regnum: (int))r   IDB_Hooks_sgr_deleted)r   r  r
  rV  s   &&&&r   sgr_deletedIDB_Hooks.sgr_deleted  s     --dfMMr#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r    s     7 7] 7d 7r#   c                .    \         P                  ! W4      # )z?A segment is being created. 
          
:param s: (segment_t *))r   IDB_Hooks_adding_segmr  s   &&r   adding_segmIDB_Hooks.adding_segm  s     --d66r#   c                    V ^8  d   QhRRRR/# rX   func_ear  rY   rc   r$   )rZ   s   "r   r[   r    r  r#   c                .    \         P                  ! W4      # )zAA function has been deleted. 
          
:param func_ea: (::ea_t))r   IDB_Hooks_func_deletedr   r  s   &&r   func_deletedIDB_Hooks.func_deleted  s     ..t==r#   c               $    V ^8  d   QhRRRRRR/# rX   dt'dirtree_t *'pathrK  rY   rc   r$   )rZ   s   "r   r[   r    &     @ @ @S @D @r#   c                0    \         P                  ! WV4      # )ziDirtree: a directory has been created. 
          
:param dt: (dirtree_t *)
:param path: (::const char *))r   IDB_Hooks_dirtree_mkdirr   r   r"  s   &&&r   dirtree_mkdirIDB_Hooks.dirtree_mkdir      
 //$??r#   c               $    V ^8  d   QhRRRRRR/# r  r$   )rZ   s   "r   r[   r    r#  r#   c                0    \         P                  ! WV4      # )ziDirtree: a directory has been deleted. 
          
:param dt: (dirtree_t *)
:param path: (::const char *))r   IDB_Hooks_dirtree_rmdirr&  s   &&&r   dirtree_rmdirIDB_Hooks.dirtree_rmdir  r)  r#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r   r!  r"  rK  linkru   rY   rc   r$   )rZ   s   "r   r[   r    s.     E E} EC Et Et Er#   c                0    \         P                  ! WW#4      # )zDirtree: an item has been linked/unlinked. 
          
:param dt: (dirtree_t *)
:param path: (::const char *)
:param link: (::bool))r   IDB_Hooks_dirtree_link)r   r   r"  r0  s   &&&&r   dirtree_linkIDB_Hooks.dirtree_link       ..tDDr#   c               (    V ^8  d   QhRRRRRRRR/# )rX   r   r!  ri  rK  rc  rY   rc   r$   )rZ   s   "r   r[   r  
  s.     D D} DS Dc DT Dr#   c                0    \         P                  ! WW#4      # )zmDirtree: a directory or item has been moved. 
          
:param dt: (dirtree_t *)
:param to: (::const char *))r   IDB_Hooks_dirtree_move)r   r   ri  rc  s   &&&&r   dirtree_moveIDB_Hooks.dirtree_move
  s    
 ..tCCr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r   r!  r"  rK  rankrm   rY   rc   r$   )rZ   s   "r   r[   r    s.     E E} EC Es Ed Er#   c                0    \         P                  ! WW#4      # )zDirtree: a directory or item rank has been changed. 
          
:param dt: (dirtree_t *)
:param path: (::const char *)
:param rank: (::size_t))r   IDB_Hooks_dirtree_rank)r   r   r"  r<  s   &&&&r   dirtree_rankIDB_Hooks.dirtree_rank  r5  r#   c               $    V ^8  d   QhRRRRRR/# )rX   r   r!  inodez	'inode_t'rY   rc   r$   )rZ   s   "r   r[   r    s&     C C- C	 CT Cr#   c                0    \         P                  ! WV4      # )zbDirtree: an inode became unavailable. 
          
:param dt: (dirtree_t *)
:param inode: (inode_t))r   IDB_Hooks_dirtree_rminode)r   r   rB  s   &&&r   dirtree_rminodeIDB_Hooks.dirtree_rminode  s    
 11$EBBr#   c                    V ^8  d   QhRRRR/# )rX   r   r!  rY   rc   r$   )rZ   s   "r   r[   r     rD  r#   c                .    \         P                  ! W4      # )zqDirtree: inodes were changed due to a segment movement or a program rebasing 
          
:param dt: (dirtree_t *))r   IDB_Hooks_dirtree_segm_moved)r   r   s   &&r   dirtree_segm_movedIDB_Hooks.dirtree_segm_moved   r  r#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   ltcz'local_type_change_t'ordinalrm   r   rK  rY   rc   r$   )rZ   s   "r   r[   r  &  s1     P P'< Ps PPPr#   c                0    \         P                  ! WW#4      # )zLocal types have been changed 
          
:param ltc: (local_type_change_t)
:param ordinal: (uint32) 0 means ordinal is unknown
:param name: (const char *) nullptr means name is unknown)r   IDB_Hooks_local_types_changed)r   rM  rN  r   s   &&&&r   local_types_changedIDB_Hooks.local_types_changed&  s     55dOOr#   c               $    V ^8  d   QhRRRRRR/# )rX   udtnamerK  udmr  rY   rc   r$   )rZ   s   "r   r[   r  /  s&     E Ec E E4 Er#   c                0    \         P                  ! WV4      # )zolocal type udt member has been added 
          
:param udtname: (::const char *)
:param udm: (::const udm_t *))r   IDB_Hooks_lt_udm_created)r   rT  rU  s   &&&r   lt_udm_createdIDB_Hooks.lt_udm_created/  s    
 00DDr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   rT  rK  udm_tidr  rU  r  rY   rc   r$   )rZ   s   "r   r[   r  6  s/     N Nc NG N' NNr#   c                0    \         P                  ! WW#4      # )zlocal type udt member has been deleted 
          
:param udtname: (::const char *)
:param udm_tid: (tid_t)
:param udm: (::const udm_t *))r   IDB_Hooks_lt_udm_deleted)r   rT  r[  rU  s   &&&&r   lt_udm_deletedIDB_Hooks.lt_udm_deleted6  s     00MMr#   c               (    V ^8  d   QhRRRRRRRR/# )rX   rT  rK  rU  r  r9  rY   rc   r$   )rZ   s   "r   r[   r  ?  s.     N Nc N N# N Nr#   c                0    \         P                  ! WW#4      # )zlocal type udt member has been renamed 
          
:param udtname: (::const char *)
:param udm: (::const udm_t *)
:param oldname: (::const char *))r   IDB_Hooks_lt_udm_renamed)r   rT  rU  r9  s   &&&&r   lt_udm_renamedIDB_Hooks.lt_udm_renamed?  s     00MMr#   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
rX   rT  rK  r[  r  udmoldr  udmnewrY   rc   r$   )rZ   s   "r   r[   r  G  s2     	 	c 	G 		 	$(	r#   c                2    \         P                  ! WVW44      # )zlocal type udt member has been changed 
          
:param udtname: (::const char *)
:param udm_tid: (tid_t)
:param udmold: (::const udm_t *)
:param udmnew: (::const udm_t *))r   IDB_Hooks_lt_udm_changed)r   rT  r[  rf  rg  s   &&&&&r   lt_udm_changedIDB_Hooks.lt_udm_changedG  s     00 	r#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   rT  rK  r[  r  r  r  rY   rc   r$   )rZ   s   "r   r[   r  R  s)      s W Y r#   c                0    \         P                  ! WW#4      # )zA structure type has been expanded/shrank. 
          
:param udtname: (::const char *)
:param udm_tid: (tid_t) the gap was added/removed before this member
:param delta: (::adiff_t) number of added/removed bytes)r   IDB_Hooks_lt_udt_expanded)r   rT  r[  r  s   &&&&r   lt_udt_expandedIDB_Hooks.lt_udt_expandedR  s     11$  	r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r  \  r  r#   c                .    \         P                  ! W4      # )z`A function frame has been created. 
          
:param func_ea: (::ea_t) idb_event::frame_deleted)r   IDB_Hooks_frame_createdr  s   &&r   frame_createdIDB_Hooks.frame_created\  s     //>>r#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r  rU  r  rY   rc   r$   )rZ   s   "r   r[   r  b  s&     H H Hw H$ Hr#   c                0    \         P                  ! WV4      # )z_Frame member has been added. 
          
:param func_ea: (::ea_t)
:param udm: (::const udm_t *))r   IDB_Hooks_frame_udm_created)r   r  rU  s   &&&r   frame_udm_createdIDB_Hooks.frame_udm_createdb  s    
 33D3GGr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r  r  r[  r  rU  r  rY   rc   r$   )rZ   s   "r   r[   r  i  s*       7 r#   c                0    \         P                  ! WW#4      # )zyFrame member has been deleted. 
          
:param func_ea: (::ea_t)
:param udm_tid: (tid_t)
:param udm: (::const udm_t *))r   IDB_Hooks_frame_udm_deleted)r   r  r[  rU  s   &&&&r   frame_udm_deletedIDB_Hooks.frame_udm_deletedi  s     33D7  	r#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r  r  rU  r  r9  rK  rY   rc   r$   )rZ   s   "r   r[   r  s  s*       w r#   c                0    \         P                  ! WW#4      # )zFrame member has been renamed. 
          
:param func_ea: (::ea_t)
:param udm: (::const udm_t *)
:param oldname: (::const char *))r   IDB_Hooks_frame_udm_renamed)r   r  rU  r9  s   &&&&r   frame_udm_renamedIDB_Hooks.frame_udm_renameds  s     33D3  	r#   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
rX   r  r  r[  r  rf  r  rg  rY   rc   r$   )rZ   s   "r   r[   r  }  s2     	 	 	7 		!(	,0	r#   c                2    \         P                  ! WVW44      # )zFrame member has been changed. 
          
:param func_ea: (::ea_t)
:param udm_tid: (tid_t)
:param udmold: (::const udm_t *)
:param udmnew: (::const udm_t *))r   IDB_Hooks_frame_udm_changed)r   r  r[  rf  rg  s   &&&&&r   frame_udm_changedIDB_Hooks.frame_udm_changed}  s     33D7 	r#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r  r  r[  r  r  r  rY   rc   r$   )rZ   s   "r   r[   r    s0     P Po P PP Pr#   c                0    \         P                  ! WW#4      # )zA frame type has been expanded/shrank. 
          
:param func_ea: (::ea_t)
:param udm_tid: (tid_t) the gap was added/removed before this member
:param delta: (::adiff_t) number of added/removed bytes)r   IDB_Hooks_frame_expanded)r   r  r[  r  s   &&&&r   frame_expandedIDB_Hooks.frame_expanded  s     00OOr#   c               (    V ^8  d   QhRRRRRRRR/# )rX   r  r  r   rK  lib_namerY   rc   r$   )rZ   s   "r   r[   r    s/     N NO N3 N# NNr#   c                0    \         P                  ! WW#4      # )zA FLIRT match has been found 
          
:param ea: (::ea_t) the matching address
:param name: (::const char *) the matched name
:param lib_name: (::const char *) library name extracted from signature file)r   IDB_Hooks_idasgn_matched_ea)r   r  r   r  s   &&&&r   idasgn_matched_eaIDB_Hooks.idasgn_matched_ea  s     33DdMMr#   c               $    V ^8  d   QhRRRRRR/# )rX   enumnamerK  edm'edm_t'rY   rc   r$   )rZ   s   "r   r[   r    s&     F Fs F FD Fr#   c                0    \         P                  ! WV4      # )zqlocal type enum member has been added 
          
:param enumname: (::const char *)
:param edm: (::const edm_t *))r   IDB_Hooks_lt_edm_created)r   r  r  s   &&&r   lt_edm_createdIDB_Hooks.lt_edm_created  s    
 00EEr#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r  rK  edm_tidr  r  r  rY   rc   r$   )rZ   s   "r   r[   r    s/     O Os OW O7 OOr#   c                0    \         P                  ! WW#4      # )zlocal type enum member has been deleted 
          
:param enumname: (::const char *)
:param edm_tid: (tid_t)
:param edm: (::const edm_t *))r   IDB_Hooks_lt_edm_deleted)r   r  r  r  s   &&&&r   lt_edm_deletedIDB_Hooks.lt_edm_deleted  s     00NNr#   c               (    V ^8  d   QhRRRRRRRR/# )rX   r  rK  r  r  r9  rY   rc   r$   )rZ   s   "r   r[   r    s.     O Os O O3 O$ Or#   c                0    \         P                  ! WW#4      # )zlocal type enum member has been renamed 
          
:param enumname: (::const char *)
:param edm: (::const edm_t *)
:param oldname: (::const char *))r   IDB_Hooks_lt_edm_renamed)r   r  r  r9  s   &&&&r   lt_edm_renamedIDB_Hooks.lt_edm_renamed  s     00NNr#   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
rX   r  rK  r  r  edmoldr  edmnewrY   rc   r$   )rZ   s   "r   r[   r    s2     	 	s 	W 		 	$(	r#   c                2    \         P                  ! WVW44      # )zlocal type enum member has been changed 
          
:param enumname: (::const char *)
:param edm_tid: (tid_t)
:param edmold: (::const edm_t *)
:param edmnew: (::const edm_t *))r   IDB_Hooks_lt_edm_changed)r   r  r  r  r  s   &&&&&r   lt_edm_changedIDB_Hooks.lt_edm_changed  s     00 	r#   c               (    V ^8  d   QhRRRRRRRR/# )rX   rN  rm   r9  rK  newnamerY   rc   r$   )rZ   s   "r   r[   r    s)      #  c r#   c                2    \         P                  ! WVV4      # )zLocal type has been renamed 
          
:param ordinal: (uint32) 0 means ordinal is unknown
:param oldname: (const char *) nullptr means name is unknown
:param newname: (const char *) nullptr means name is unknown)r   IDB_Hooks_local_type_renamed)r   rN  r9  r  s   &&&&r   local_type_renamedIDB_Hooks.local_type_renamed  s     44TG 	r#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r   r!  diridxz
'diridx_t'naturalru   rY   rc   r$   )rZ   s   "r   r[   r    s+      = !%)r#   c                2    \         P                  ! WVV4      # )zDirtree: a directory's "natural" ordering changed 
          
:param dt: (dirtree_t *)
:param diridx: (diridx_t)
:param natural: (::bool))r   "IDB_Hooks_dirtree_ordering_changed)r   r   r  r  s   &&&&r   dirtree_ordering_changed"IDB_Hooks.dirtree_ordering_changed  s     ::4V 	r#   c               0    V ^8  d   QhRRRRRRRRR	R
RR/# )rX   r   r!  sourcesz'dirtree_bulk_results_t *'moved_itemsz'dirtree_cursor_vec_t *'dstdirrK  dstrankrM  rY   rc   r$   )rZ   s   "r   r[   r    s;     * *M *"*1I**'*+/*r#   c                4    \         P                  ! WVW4V4      # )a  Dirtree: many items have been moved. 
          
:param dt: (dirtree_t *)
:param sources: (::dirtree_bulk_results_t *)
:param moved_items: (::dirtree_cursor_vec_t *)
:param dstdir: (::const char *)
:param dstrank: (ssize_t) SOURCES and MOVED_ITEMS correspond to each other)r   IDB_Hooks_dirtree_bulk_move)r   r   r  r  r  r  s   &&&&&&r   dirtree_bulk_moveIDB_Hooks.dirtree_bulk_move  s      33Dg* 	*r#   c                	    V P                   P                  4        \        P                  ! V 4       \        P
                  ! V 4      # r.   )r	   r(
  r   disown_IDB_Hooksr*
  r+
  rg   s   &r   r,
  IDB_Hooks.__disown__  r.
  r#   r$   Nr/
  )lr   r   r8   r9   r   r   r   r
   rU   r  r  r-  r1  r  r4  r7  r:  r  r>  rA  r  r  rE  r  r  r  r  r  r  r  r  r  r$  r*  r0  r6  r<  rA  rG  rL  rQ  rL  r[  rP  re  rT  rW  r[  rx  r~  r  r  r  r  r  r  r  r  r  r_  rb  re  r  rh  r  r  r  r  r  r  r  r  r
  r  r  r  r'  r-  r3  r9  r?  rE  rJ  rQ  rX  r^  rc  rj  ro  rt  ry  r~  r  r  r  r  r  r  r  r  r  r  r  r   delete_IDB_Hooksr  r,
  r<   r$   r#   r   r  r    s6   -/I!#GH"-/2
1
8
3
;
>GFJ?LNE	KH?6@NHDGC?F><8:GC;;@FFH@=>=@+8G 	DH		MFH	N7>@@EDEC?PENN	?H	PNFOO	*  00#r#   r  c                    V ^8  d   QhRRRR/# r4
  r$   )rZ   s   "r   r[   r[     r6
  r#   c                .    \         P                  ! V 4      # r.   rh
  r:
  s   &r   ri
  ri
    r;
  r#   c                    V ^8  d   QhRRRR/# )rX   r=
  z'IDB_Hooks'rY   r  r$   )rZ   s   "r   r[   r[     r>
  r#   c                .    \         P                  ! V 4      # r.   )r   rm
  rB
  s   &r   rm
  rm
    rC
  r#   c                  (    ] tR tRtR tR tR tRtR# )rN
  i  c                	   \         P                  V \        P                  \        P                  ,          4       ^ RIpVP                  ! V4      V n        \        V 4       F_  pVP                  R4      '       d   K  VR9   d   K%  \        W4      p\        VR4      '       g   KD  \        WV P                  V4      4       Ka  	  R# )r0
  N___call__proc)r  rU   r  rM
  HBF_VOLATILE_METHOD_SETr*
  refr  dir
startswithr   r   setattr5_processor_t_Trampoline_IDB_Hooks__make_parent_caller)r   r  r*
  r~  things   &&   r   rU   *_processor_t_Trampoline_IDB_Hooks.__init__  s    4!B!B.."/ 	0KK%	t9C>>#&&sh*5*--Dt'@'@'EF	 r#   c                	    ^ # rj  r$   rS   s   &*r   __dummy)_processor_t_Trampoline_IDB_Hooks.__dummy  s    r#   c                	   a a VV 3R  lpV# )c                 V   < \        SP                  4       SSP                  4      ! V !  # r.   )r   r  (_processor_t_Trampoline_IDB_Hooks__dummy)rT   r~  r   s   *r   call_parentK_processor_t_Trampoline_IDB_Hooks.__make_parent_caller.<locals>.call_parent  s!    499;T\\:DAAr#   r$   )r   r~  r  s   ff r   __make_parent_caller6_processor_t_Trampoline_IDB_Hooks.__make_parent_caller   s    	Br#   r  N)r   r   r8   r9   rU   r  r  r<   r$   r#   r   rN
  rN
    s    	Gr#   rN
  c                  n    ] tR tRt ! R R4      t ! R R]4      t ! R R]4      tR t	R	 t
R
 tR tRtR# )_notify_when_dispatcher_ti
  c                      ] tR tRtR tRtR# )%_notify_when_dispatcher_t._callback_ti  c                	     Wn         ^ V n        R# )r0
  Nfunslots)r   r  s   &&r   rU   ._notify_when_dispatcher_t._callback_t.__init__  s    HDJr#   r  N)r   r   r8   r9   rU   r<   r$   r#   r   _callback_tr    s    	r#   r  c                  (    ] tR tRtR tR tR tRtR# )$_notify_when_dispatcher_t._IDP_Hooksi  c                	f    \         P                  V 4       \        P                  ! V4      V n        R # r.   )r  rU   r*
  r  
dispatcherr   r  s   &&r   rU   -_notify_when_dispatcher_t._IDP_Hooks.__init__       t$%kk*5DOr#   c                	^    V P                  4       P                  \        P                  ^ 4      # rj  r  dispatchr  
NW_OPENIDBr   r   s   &&r   r  /_notify_when_dispatcher_t._IDP_Hooks.ev_newfile  "    ??$--j.C.CQGGr#   c                	^    V P                  4       P                  \        P                  ^4      # )r1
  r  r  s   &&r   r  /_notify_when_dispatcher_t._IDP_Hooks.ev_oldfile  r  r#   r  N)r   r   r8   r9   rU   r  r  r<   r$   r#   r   
_IDP_Hooksr    s    	6	H	Hr#   r   c                  "    ] tR tRtR tR tRtR# )$_notify_when_dispatcher_t._IDB_Hooksi!  c                	f    \         P                  V 4       \        P                  ! V4      V n        R # r.   )r  rU   r*
  r  r  r  s   &&r   rU   -_notify_when_dispatcher_t._IDB_Hooks.__init__#  r  r#   c                	\    V P                  4       P                  \        P                  4      # r.   )r  r  r  NW_CLOSEIDBrg   s   &r   r-  ._notify_when_dispatcher_t._IDB_Hooks.closebase'  s     ??$--j.D.DEEr#   r  N)r   r   r8   r9   rU   r-  r<   r$   r#   r   
_IDB_Hooksr  !  s    	6	Fr#   r  c                	    V P                  V 4      V n        V P                  P                  4        V P                  V 4      V n        V P                  P                  4        . V n        R # r.   )r   	idp_hooksr  r  rO
  	callbacksrg   s   &r   rU   "_notify_when_dispatcher_t.__init__*  sI    ..r#   c                	n    \        V P                  4       F  w  r#VP                  V8X  g   K  W#3u # 	  R# )Nr  )	enumerater  r  )r   r  r/  ry  s   &&  r   _find_notify_when_dispatcher_t._find1  s1     0GCvv}w 1 r#   c                	    V P                   R ,           F1  pVP                  V,          ^ 8w  g   K  VP                  ! V.VO5!   K3  	  ^ # ):NNN)r  r  r  )r   slotrT   ry  s   &&* r   r  "_notify_when_dispatcher_t.dispatch7  s>    ..##Bxx$!#t#d# $ r#   c                	   V P                  V4      w  r4Vf-   V P                  V4      pV P                  P                  V4       V\        P
                  ,          ^ 8w  d2   V;P                  V\        P
                  ( ,          ( ,          un        MV;P                  V,          un        VP                  ^ 8X  d+   V P                  VP                  4      w  rTV P                  V R# )NT)r  r  r  r  r  	NW_REMOVEr  r  )r   whenr  r  ry  r/  s   &&&   r   notify_when%_notify_when_dispatcher_t.notify_when=  s    

3:!!#&BNN!!"%*&&&!+HH$*"6"6!6677HHHH88q=jj(GCs#r#   )r  rO
  r
  N)r   r   r8   r9   r  r  r   r  r  rU   r  r  r  r<   r$   r#   r   r  r  
  s<     
HY 
HFY Fr#   r  r
  )r
  r  )rX   (  r:   
__future__r   sysr   _swig_python_version_info__package__r   r   r   builtinsr   ImportErrorr   r%   r+   r5   r   r7   r*
  SWIG_PYTHON_LEGACY_BOOLtypingr=   r>   r?   r  objectrA   reg_access_vec_t_swigregisterIDP_INTERFACE_VERSIONCF_STOPCF_CALLCF_CHG1CF_CHG2CF_CHG3CF_CHG4CF_CHG5CF_CHG6CF_USE1CF_USE2CF_USE3CF_USE4CF_USE5CF_USE6CF_JUMPCF_SHFTCF_HLLCF_CHG7CF_CHG8CF_USE7CF_USE8r#  r(  r.  r5  IRI_EXTENDEDIRI_RET_LITERALLYIRI_SKIP_RETTARGET
IRI_STRICTr9  r=  rB  rE  asm_t_swigregisterAS_OFFSTAS_COLONAS_UDATAAS_2CHREAS_NCHREAS_N2CHRAS_1TEXTAS_NHIASAS_NCMASAS_HEXFM	ASH_HEXF0	ASH_HEXF1	ASH_HEXF2	ASH_HEXF3	ASH_HEXF4	ASH_HEXF5AS_DECFM	ASD_DECF0	ASD_DECF1	ASD_DECF2	ASD_DECF3AS_OCTFM	ASO_OCTF0	ASO_OCTF1	ASO_OCTF2	ASO_OCTF3	ASO_OCTF4	ASO_OCTF5	ASO_OCTF6	ASO_OCTF7AS_BINFM	ASB_BINF0	ASB_BINF1	ASB_BINF2	ASB_BINF3	ASB_BINF4	ASB_BINF5AS_UNEQU	AS_ONEDUPAS_NOXRFAS_XTRNTYPE	AS_RELSUP	AS_LALIGNAS_NOCODECLN
AS_NOSPACE	AS_ALIGN2	AS_ASCIIC	AS_ASCIIZ	AS2_BRACE
AS2_STRINVAS2_BYTE1CHARAS2_IDEALDSCRAS2_TERSESTRAS2_COLONSUF	AS2_YWORD	AS2_ZWORDHKCB_GLOBALPLFM_386PLFM_Z80	PLFM_I860	PLFM_8051PLFM_TMS	PLFM_6502PLFM_PDPPLFM_68K	PLFM_JAVA	PLFM_6800PLFM_ST7PLFM_MC6812	PLFM_MIPSPLFM_ARM
PLFM_TMSC6PLFM_PPC
PLFM_80196PLFM_Z8PLFM_SHPLFM_NETPLFM_AVRPLFM_H8PLFM_PIC
PLFM_SPARC
PLFM_ALPHA	PLFM_HPPA
PLFM_H8500PLFM_TRICOREPLFM_DSP56K	PLFM_C166	PLFM_ST20	PLFM_IA64	PLFM_I960	PLFM_F2MCPLFM_TMS320C54PLFM_TMS320C55PLFM_TRIMEDIA	PLFM_M32RPLFM_NEC_78K0PLFM_NEC_78K0S	PLFM_M740
PLFM_M7700PLFM_ST9PLFM_FRPLFM_MC6816
PLFM_M7900PLFM_TMS320C3PLFM_KR1878PLFM_AD218XPLFM_OAKDSPPLFM_TLCS900PLFM_C39	PLFM_CR16PLFM_MN102L00PLFM_TMS320C1XPLFM_NEC_V850XPLFM_SCR_ADPTPLFM_EBCPLFM_MSP430PLFM_SPUPLFM_DALVIKPLFM_65C816	PLFM_M16CPLFM_ARC	PLFM_UNSPPLFM_TMS320C28PLFM_DSP96KPLFM_SPC700PLFM_AD2106X
PLFM_PIC16	PLFM_S390PLFM_XTENSA
PLFM_RISCV	PLFM_RL78PLFM_RX	PLFM_WASM
PLFM_NDS32PR_SEGSPR_USE32PR_DEFSEG32PR_RNAMESOK
PR_ADJSEGS	PR_DEFNUMPRN_HEXPRN_OCTPRN_DECPRN_BINPR_WORD_INSPR_NOCHANGEPR_ASSEMBLEPR_ALIGNPR_TYPEINFOPR_USE64PR_SGROTHERPR_STACK_UP	PR_BINMEMPR_SEGTRANSPR_CHK_XREFPR_NO_SEGMOVEPR_USE_ARG_TYPESPR_SCALE_STKVARS
PR_DELAYEDPR_ALIGN_INSN
PR_PURGINGPR_CNDINSNSPR_USE_TBYTEPR_DEFSEG64PR_OUTERPR2_MAPPINGSPR2_IDP_OPTSPR2_CODE16_BIT	PR2_MACROPR2_USE_CALCRELPR2_REL_BITSPR2_FORCE_16BITPR2_IGNORE_IDA_GUESSOP_FP_BASEDOP_SP_BASED	OP_SP_ADD	OP_SP_SUBCUSTOM_INSN_ITYPE	REG_SPOILr  _processor_t_swigregisterr  r  r>  r  r  r  reg_info_t_swigregisterr  	NO_ACCESSWRITE_ACCESSREAD_ACCESS	RW_ACCESSr  reg_access_t_swigregisterr6  reg_accesses_t_swigregisterSETPROC_IDBSETPROC_LOADERSETPROC_LOADER_NON_FATALSETPROC_USERrC  rF  rI  LTC_NONE	LTC_ADDEDLTC_DELETED
LTC_EDITEDLTC_ALIASEDLTC_COMPILERLTC_TIL_LOADEDLTC_TIL_UNLOADEDLTC_TIL_COMPACTEDr-  r1  r  r4  r7  r:  r  r>  rA  r  r  rE  r  r  r  r  r  r  r  r  r  r$  r*  r0  r6  r<  rA  rG  rL  rQ  rL  r[  rP  re  rT  rW  r[  rx  r~  r  r  r  r  r  r  r  r  r  r_  rb  re  r  rh  r  r  r  r  r  r  r  r  r
  r  r  r  r'  r-  r3  r9  r?  rE  rJ  rQ  rX  r^  rc  rj  ro  rt  ry  r~  r  r  r  r  r  r  r  r  r  r  r  rL  
IDPOPT_CST
IDPOPT_JVLIDPOPT_PRI_DEFAULTIDPOPT_PRI_HIGHIDPOPT_NUM_INTIDPOPT_NUM_CHARIDPOPT_NUM_SHORTIDPOPT_NUM_RANGEIDPOPT_NUM_UNSIDPOPT_BIT_UINTIDPOPT_BIT_UCHARIDPOPT_BIT_USHORTIDPOPT_BIT_BOOLIDPOPT_STR_QSTRINGIDPOPT_STR_LONGIDPOPT_I64_RANGEIDPOPT_I64_UNSIDPOPT_CST_PARAMSIDPOPT_MBROFFrN  num_range_t_swigregisterrc  params_t_swigregister
cik_stringcik_filenamecik_pathr|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  IDP_Hooks_swigregisterr9
  rA
  r  r  r  REAL_ERROR_FORMATREAL_ERROR_RANGEREAL_ERROR_BADDATA
IDPOPT_STR
IDPOPT_NUM
IDPOPT_BIT
IDPOPT_FLT
IDPOPT_I64r
  IDPOPT_BADKEYIDPOPT_BADTYPEIDPOPT_BADVALUEr
  	ida_funcsr
  ida_uarK
  rn  r  phr  IDB_Hooks_swigregisterri
  rm
  rN
  r  r$   r#   r   <module>r0     s?   # 9#/"
 L$ L
 "::  % % f4v f4R 	 & &'7 8 66 















































	











//1' $$ .. 00   
'0DJ-F J-Z 	  E "																									""		$$  
				  
&&&&$$$$		""					""	  
  









  
  
	  
$$""					((((&&	&&((	  



""  
&&""""""$$	&&((((&&""""""		((""""$$  
	""  
	


	  



""""  
	











""""""""""""	""""&&,, ,,   
&&  
""$$""$$$$((	**$$**44 """"		.. 	D46 D4N 	 " "< 0&4$2 $2N 	     ,0 	$$""	46 4B 	 " "< 06% 6 	 $ $^ 4""((#<< $$8#1 	""  
""$$((,, .. 	  
00 ****&&44 **00 ,, ""  
((&&,, **  
&&$$22 00 .. ,, 00 .. 22 00 00   
&&  
$$(($$&&&&00 00 00 .. 00 00 **,, **,, ""		**


$$$$""00 .. .. 00 22 ,, """"$$&&&&$$$$$$**00 22 ((((((((**&&.. .. .. .. ((.. ((((((((00 #<< .. )   
  
00 **((**,, ,, ((**,, .. **00 **,, ((.. &&3& 3 	 ! !+ .	0v 	0 	  x (  
$$; ;
*239B B	:
6 
%
"
$
$
,
+
)
+
+
*
+
)
(
%&
	/#1/=
*x# x#v' 	  	 *0464"    




	    {+) {+|66 6& 
Vp# p#f 	  	 *04	 . ? ?eW  s   AU( U(AU7U6AU7