+
    iwc                       ^ 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]P6                  ! ]4       ]P8                  t ! R R]4      t]P<                  ! ]4       R R ltRR R llt RR R llt!R R lt"R R lt#R R lt$R#   ] d    ^ RI
t
 Li ; i)    )annotations)version_info.)_ida_regfinderNc                     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   & EC:\Users\user\Downloads\ida93sp2\portable_win\python\ida_regfinder.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_attr(   s:    3j1CX&N&N5! !H3!NOOr$   r%   )r!   r*   s   f r   '_swig_setattr_nondynamic_class_variabler,   &   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>.wrapper3   s'    s}}cll6G6G6IJJr$   r%   )r3   r4   s   f r   _swig_add_metaclassr6   0   s    KNr$   c                  >    ] tR t^8t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   r8   r8   8   s    U9$:J:JKKr$   r8   )TupleListUnionc                     ] tR t^Ct$ ]! 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,                  4      t ]! ]P0                  4      t ]! ]P4                  4      t R tR R ltR R ltR R ltR R lt R R lt!]PD                  t# ]PH                  t% ]PL                  t' ]PP                  t) RR R llt*]PV                  t,Rt-R# )reg_value_def_tc                	6    V P                   P                  4       # r/   r
   r   xs   &r   <lambda>reg_value_def_t.<lambda>D       r$   c                	8    V P                   P                  V4      # r/   rD   rF   vs   &&r   rG   rH   D       AFFJJqMr$   The membership flagdocz'uint64'valida_idaapi.ea_tdef_ea'uint16'	def_itypeflagsc                	X    \         P                  ! V \         P                  ! V!  4       R # r/   )r   reg_value_def_t_swiginitnew_reg_value_def_tr   argss   &*r   __init__reg_value_def_t.__init__b   s'    //n7 !%7' 	(r$   c                   V ^8  d   QhRR/#    returnboolr%   )formats   "r   __annotate__reg_value_def_t.__annotate__f   s     I IT Ir$   c                2    \         P                  ! V .VO5!  # )zThis function has the following signatures:

    0. is_short_insn() -> bool
    1. is_short_insn(insn: const insn_t &) -> bool

# 0: is_short_insn() -> bool


# 1: is_short_insn(insn: const insn_t &) -> bool

)r   reg_value_def_t_is_short_insnrZ   s   &*r   is_short_insnreg_value_def_t.is_short_insnf   s     ;;DH4HHr$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   re   t        @ @D @r$   c                	.    \         P                  ! V 4      # r/   )r   reg_value_def_t_is_pc_basedr   s   &r   is_pc_basedreg_value_def_t.is_pc_basedt       99$??r$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   re   w   rk   r$   c                	.    \         P                  ! V 4      # r/   )r   reg_value_def_t_is_like_gotrn   s   &r   is_like_gotreg_value_def_t.is_like_gotw   rq   r$   c                    V ^8  d   QhRRRR/# r`   rz'reg_value_def_t'ra   rb   r%   )rc   s   "r   rd   re   z        > >) >T >r$   c                	.    \         P                  ! W4      # r/   )r   reg_value_def_t___eq__r   ry   s   &&r   __eq__reg_value_def_t.__eq__z       44T==r$   c                    V ^8  d   QhRRRR/# rx   r%   )rc   s   "r   rd   re   }   rz   r$   c                	.    \         P                  ! W4      # r/   )r   reg_value_def_t___lt__r}   s   &&r   __lt__reg_value_def_t.__lt__}   r   r$   Nc               $    V ^8  d   QhRRRRRR/# )r`   howz'reg_value_def_t::dstr_val_t'pm'procmod_t'ra   strr%   )rc   s   "r   rd   re      s(     B B5 B; BBr$   c                0    \         P                  ! WV4      # )z"Return the string representation.
)r   reg_value_def_t_dstr)r   r   r   s   &&&r   dstrreg_value_def_t.dstr   s     224bAAr$   r%   r/   ).r   r   r9   r:   r   r   r   r   r   reg_value_def_t_val_getreg_value_def_t_val_setrQ   __annotations__reg_value_def_t_def_ea_getreg_value_def_t_def_ea_setrS   reg_value_def_t_def_itype_getreg_value_def_t_def_itype_setrU   reg_value_def_t_flags_getreg_value_def_t_flags_setrV   reg_value_def_t_SHORT_INSN_get
SHORT_INSNreg_value_def_t_PC_BASED_getPC_BASEDreg_value_def_t_LIKE_GOT_getLIKE_GOTr\   rh   ro   ru   r~   r   reg_value_def_t_NOVALNOVALreg_value_def_t_UVALUVALreg_value_def_t_SPVALSPVALreg_value_def_t_ABORTEDABORTEDr   delete_reg_value_def_t__swig_destroy__r=   r%   r$   r   rB   rB   C   sj   -/I!#GH^CC..0C 0&~""N$M$MOFO O">%%~%%'Ix '~GG002E8 2.GGHJCCDHCCDH(I@@>>00E..D00E44GB
 &<<r$   rB   c                     ] tR t^t]! R R RR7      t]tR tR R lt	R R	 lt
R
 R lt]R R l4       t]RR R ll4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R  R! l4       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t0RT RU lt1RV RW lt2RX RY lt3RZ R[ lt4R\ R] lt5R^ R_ lt6R` Ra lt7Rb Rc lt8Rd Re lt9Rf Rg lt:Rh Ri lt;Rj Rk lt<Rl Rm lt=RRn Ro llt>Rp Rq lt?]@P                  tB ]@P                  tD ]@P                  tF ]@P                  tH Rr Rs ltIRt Ru ltJRv Rw ltK]@P                  tM]@P                  tO]@P                  tQ]@P                  tS]@P                  tU]@P                  tW]@P                  tY]@P                  t[]@P                  t]]@P                  t_]@P                  ta]@P                  tcRx Ry ltdRz 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tu]@P                  twRtxR# )reg_value_info_tc                	6    V P                   P                  4       # r/   rD   rE   s   &r   rG   reg_value_info_t.<lambda>   rI   r$   c                	8    V P                   P                  V4      # r/   rD   rK   s   &&r   rG   r      rM   r$   rN   rO   c                	Z    \         P                  ! V \         P                  ! 4       4       R # r/   )r   reg_value_info_t_swiginitnew_reg_value_info_trn   s   &r   r\   reg_value_info_t.__init__   s$    00~  8! 8# 	$r$   c                   V ^8  d   QhRR/# r`   ra   Noner%   )rc   s   "r   rd   reg_value_info_t.__annotate__        ; ;d ;r$   c                .    \         P                  ! V 4      # )zUndefine the value.
)r   reg_value_info_t_clearrn   s   &r   clearreg_value_info_t.clear        44T::r$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   r      r   r$   c                .    \         P                  ! V 4      # )z0Return 'true' if we know nothing about a value.
)r   reg_value_info_t_emptyrn   s   &r   emptyreg_value_info_t.empty   r   r$   c                    V ^8  d   QhRRRR/# )r`   ry   'reg_value_info_t'ra   r   r%   )rc   s   "r   rd   r      s     = =( =D =r$   c                	.    \         P                  ! W4      # r/   )r   reg_value_info_t_swapr}   s   &&r   swapreg_value_info_t.swap   s    33D<<r$   c                    V ^8  d   QhRRRR/# )r`   dead_end_earR   ra   r   r%   )rc   s   "r   rd   r      s     J J? J6H Jr$   c                .    \         P                  ! V 4      # )z;Return the undefined value because of a dead end. 
        )r   reg_value_info_t_make_dead_end)r   s   &r   make_dead_endreg_value_info_t.make_dead_end   s     <<[IIr$   c               $    V ^8  d   QhRRRRRR/# )r`   bblk_earR   aborting_depthintra   r   r%   )rc   s   "r   rd   r      s"      o s r$   c                0    \         P                  ! V V4      # )z*Return the value after aborting. 
        )r   reg_value_info_t_make_aborted)r   r   s   &&r   make_abortedreg_value_info_t.make_aborted   s    
 ;;G 	r$   c                    V ^8  d   QhRRRR/# )r`   insn_earR   ra   r   r%   )rc   s   "r   rd   r           E Eo E1C Er$   c                .    \         P                  ! V 4      # )z4Return the unknown value after a bad insn. 
        )r   reg_value_info_t_make_badinsn)r   s   &r   make_badinsnreg_value_info_t.make_badinsn        ;;GDDr$   c                    V ^8  d   QhRRRR/# )r`   insn'insn_t const &'ra   r   r%   )rc   s   "r   rd   r      s      B B+ B/A Br$   c                .    \         P                  ! V 4      # )z<Return the unknown value after executing the insn. 
        )r   reg_value_info_t_make_unkinsn)r   s   &r   make_unkinsnreg_value_info_t.make_unkinsn   s     ;;DAAr$   c                    V ^8  d   QhRRRR/# r`   func_earR   ra   r   r%   )rc   s   "r   rd   r      r   r$   c                .    \         P                  ! V 4      # )z;Return the unknown value from the function start. 
        )r   reg_value_info_t_make_unkfuncr   s   &r   make_unkfuncreg_value_info_t.make_unkfunc   r   r$   c                    V ^8  d   QhRRRR/# r`   r   rR   ra   r   r%   )rc   s   "r   rd   r      r   r$   c                .    \         P                  ! V 4      # )z;Return the unknown value if it changes in a loop. 
        )r   reg_value_info_t_make_unkloopr   s   &r   make_unkloopreg_value_info_t.make_unkloop   r   r$   c                    V ^8  d   QhRRRR/# r   r%   )rc   s   "r   rd   r      r   r$   c                .    \         P                  ! V 4      # )zKReturn the unknown value if the register has incompatible values. 
        )r   reg_value_info_t_make_unkmultr   s   &r   make_unkmultreg_value_info_t.make_unkmult   r   r$   c                    V ^8  d   QhRRRR/# r   r%   )rc   s   "r   rd   r      r   r$   c                .    \         P                  ! V 4      # )z?Return the unknown value if there are too many xrefs. 
        )r   reg_value_info_t_make_unkxrefr   s   &r   make_unkxrefreg_value_info_t.make_unkxref   r   r$   c                    V ^8  d   QhRRRR/# r   r%   )rc   s   "r   rd   r      r   r$   c                .    \         P                  ! V 4      # )zGReturn the unknown value if the register has too many values. 
        )r   reg_value_info_t_make_unkvalsr   s   &r   make_unkvalsreg_value_info_t.make_unkvals   r   r$   c                   V ^8  d   QhRR/# )r`   ra   r   r%   )rc   s   "r   rd   r      s     ? ?, ?r$   c                 *    \         P                  ! V !  # )a  This function has the following signatures:

    0. make_num(rval: int, insn: const insn_t &, val_flags: uint16=0) -> reg_value_info_t
    1. make_num(rval: int, val_ea: ida_idaapi.ea_t, val_flags: uint16=0) -> reg_value_info_t

# 0: make_num(rval: int, insn: const insn_t &, val_flags: uint16=0) -> reg_value_info_t

Return the value that is the RVAL number. 
        

# 1: make_num(rval: int, val_ea: ida_idaapi.ea_t, val_flags: uint16=0) -> reg_value_info_t

Return the value that is the RVAL number. 
        
)r   reg_value_info_t_make_numr[   s   *r   make_numreg_value_info_t.make_num   s    " 77>>r$   c                    V ^8  d   QhRRRR/# r   r%   )rc   s   "r   rd   r      s     H H H4F Hr$   c                .    \         P                  ! V 4      # )z=Return the value that is the initial stack pointer. 
        )r    reg_value_info_t_make_initial_spr   s   &r   make_initial_sp reg_value_info_t.make_initial_sp   s     >>wGGr$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   r      s     A AD Ar$   c                .    \         P                  ! V 4      # )z?Return 'true' if the value is undefined because of a dead end.
)r   reg_value_info_t_is_dead_endrn   s   &r   is_dead_endreg_value_info_t.is_dead_end   s     ::4@@r$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   r          = = =r$   c                .    \         P                  ! V 4      # )z3Return 'true' if the tracking process was aborted.
)r   reg_value_info_t_abortedrn   s   &r   abortedreg_value_info_t.aborted       66t<<r$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   r   	       @ @4 @r$   c                .    \         P                  ! V 4      # )z6Return 'true' if the value requires special handling.
)r   reg_value_info_t_is_specialrn   s   &r   
is_specialreg_value_info_t.is_special	       99$??r$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   r     r  r$   c                .    \         P                  ! V 4      # )z=Return 'true' if the value is unknown because of a bad insn.
)r   reg_value_info_t_is_badinsnrn   s   &r   
is_badinsnreg_value_info_t.is_badinsn  r  r$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   r     r  r$   c                .    \         P                  ! V 4      # )z@Return 'true' if the value is unknown after executing the insn.
)r   reg_value_info_t_is_unkinsnrn   s   &r   
is_unkinsnreg_value_info_t.is_unkinsn  r  r$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   r     r  r$   c                .    \         P                  ! V 4      # )z?Return 'true' if the value is unknown from the function start.
)r   reg_value_info_t_is_unkfuncrn   s   &r   
is_unkfuncreg_value_info_t.is_unkfunc  r  r$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   r     r  r$   c                .    \         P                  ! V 4      # )zDReturn 'true' if the value is unknown because it changes in a loop.
)r   reg_value_info_t_is_unklooprn   s   &r   
is_unkloopreg_value_info_t.is_unkloop  r  r$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   r   "  r  r$   c                .    \         P                  ! V 4      # )zuReturn 'true' if the value is unknown because the register has incompatible values (a number and SP delta). 
        )r   reg_value_info_t_is_unkmultrn   s   &r   
is_unkmultreg_value_info_t.is_unkmult"  r  r$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   r   '  r  r$   c                .    \         P                  ! V 4      # )zHReturn 'true' if the value is unknown because there are too many xrefs.
)r   reg_value_info_t_is_unkxrefrn   s   &r   
is_unkxrefreg_value_info_t.is_unkxref'  r  r$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   r   ,  r  r$   c                .    \         P                  ! V 4      # )zYReturn 'true' if the value is unknown because the register has too many values. 
        )r   reg_value_info_t_is_unkvalsrn   s   &r   
is_unkvalsreg_value_info_t.is_unkvals,  r  r$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   r   1  r  r$   c                .    \         P                  ! V 4      # )z'Return 'true' if the value is unknown.
)r   reg_value_info_t_is_unknownrn   s   &r   
is_unknownreg_value_info_t.is_unknown1  r  r$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   r   6       < <t <r$   c                .    \         P                  ! V 4      # )z*Return 'true' if the value is a constant.
)r   reg_value_info_t_is_numrn   s   &r   is_numreg_value_info_t.is_num6       55d;;r$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   r   ;  rH  r$   c                .    \         P                  ! V 4      # )z9Return 'true' if the value depends on the stack pointer.
)r   reg_value_info_t_is_spdrn   s   &r   is_spdreg_value_info_t.is_spd;  rM  r$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   r   @  s     > > >r$   c                .    \         P                  ! V 4      # )zGReturn 'true' if the value is known (i.e. it is a number or SP delta).
)r   reg_value_info_t_is_knownrn   s   &r   is_knownreg_value_info_t.is_known@  s     77==r$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   r   E  r  r$   c                .    \         P                  ! V 4      # )z7Return the number if the value is a constant. 
        )r   reg_value_info_t_get_numrn   s   &r   get_numreg_value_info_t.get_numE  r  r$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   r   J  r  r$   c                .    \         P                  ! V 4      # )zHReturn the SP delta if the value depends on the stack pointer. 
        )r   reg_value_info_t_get_spdrn   s   &r   get_spdreg_value_info_t.get_spdJ  r  r$   c                   V ^8  d   QhRR/# )r`   ra   rR   r%   )rc   s   "r   rd   r   O  s     @ @? @r$   c                .    \         P                  ! V 4      # )zReturn the defining address.
)r   reg_value_info_t_get_def_earn   s   &r   
get_def_eareg_value_info_t.get_def_eaO  r  r$   c                   V ^8  d   QhRR/# )r`   ra   rT   r%   )rc   s   "r   rd   r   T  s     C Ch Cr$   c                .    \         P                  ! V 4      # )z;Return the defining instruction code (processor specific).
)r   reg_value_info_t_get_def_itypern   s   &r   get_def_itypereg_value_info_t.get_def_itypeT  s     <<TBBr$   c                   V ^8  d   QhRR/# r`   ra   r   r%   )rc   s   "r   rd   r   Y  s     H H3 Hr$   c                .    \         P                  ! V 4      # )z3Return the aborting depth if the value is ABORTED.
)r   #reg_value_info_t_get_aborting_depthrn   s   &r   get_aborting_depth#reg_value_info_t.get_aborting_depthY  s     AA$GGr$   c                    V ^8  d   QhRRRR/# )r`   r   r   ra   rb   r%   )rc   s   "r   rd   r   ^  s      *: d r$   c                .    \         P                  ! W4      # )zSet the defining instruction The value of the destination register after the mov instruction is equal to the value of the source register before it. Therefore, we can consider this instruction as defining that value. 
        )r   &reg_value_info_t_set_def_itype_for_movr   r   s   &&r   set_def_itype_for_mov&reg_value_info_t.set_def_itype_for_mov^  s     DDT  	r$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   r   d  s     E E Er$   c                .    \         P                  ! V 4      # )z Check that the value is unique.
)r    reg_value_info_t_is_value_uniquern   s   &r   is_value_unique reg_value_info_t.is_value_uniqued  s     >>tDDr$   c                    V ^8  d   QhRRRR/# r`   	val_flagsrT   ra   rb   r%   )rc   s   "r   rd   r   i  s      H  r$   c                0    \         P                  ! V V4      # )z%Check the given flag for each value.
)r   #reg_value_info_t_have_all_vals_flagr   r  s   &&r   have_all_vals_flag#reg_value_info_t.have_all_vals_flagi  s     AA$ 	r$   c                    V ^8  d   QhRRRR/# r~  r%   )rc   s   "r   rd   r   o  s      8 t r$   c                	0    \         P                  ! V V4      # r/   )r   "reg_value_info_t_has_any_vals_flagr  s   &&r   has_any_vals_flag"reg_value_info_t.has_any_vals_flago  s    @@ 	r$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   r   s       J JT Jr$   c                	.    \         P                  ! V 4      # r/   )r   %reg_value_info_t_is_all_vals_pc_basedrn   s   &r   is_all_vals_pc_based%reg_value_info_t.is_all_vals_pc_baseds      CCDIIr$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   r   v  r  r$   c                	.    \         P                  ! V 4      # r/   )r   %reg_value_info_t_is_any_vals_pc_basedrn   s   &r   is_any_vals_pc_based%reg_value_info_t.is_any_vals_pc_basedv  r  r$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   r   y  r  r$   c                	.    \         P                  ! V 4      # r/   )r   %reg_value_info_t_is_all_vals_like_gotrn   s   &r   is_all_vals_like_got%reg_value_info_t.is_all_vals_like_goty  r  r$   c                   V ^8  d   QhRR/# r_   r%   )rc   s   "r   rd   r   |  r  r$   c                	.    \         P                  ! V 4      # r/   )r   %reg_value_info_t_is_any_vals_like_gotrn   s   &r   is_any_vals_like_got%reg_value_info_t.is_any_vals_like_got|  r  r$   c                    V ^8  d   QhRRRR/# )r`   r  rT   ra   r   r%   )rc   s   "r   rd   r     s      8 t r$   c                0    \         P                  ! V V4      # )z#Set the given flag for each value.
)r   "reg_value_info_t_set_all_vals_flagr  s   &&r   set_all_vals_flag"reg_value_info_t.set_all_vals_flag  s     @@ 	r$   c                   V ^8  d   QhRR/# r   r%   )rc   s   "r   rd   r     s     K Kd Kr$   c                	.    \         P                  ! V 4      # r/   )r   &reg_value_info_t_set_all_vals_pc_basedrn   s   &r   set_all_vals_pc_based&reg_value_info_t.set_all_vals_pc_based  s    DDTJJr$   c                   V ^8  d   QhRR/# r   r%   )rc   s   "r   rd   r     s     L Lt Lr$   c                	.    \         P                  ! V 4      # r/   )r   'reg_value_info_t_set_all_vals_got_basedrn   s   &r   set_all_vals_got_based'reg_value_info_t.set_all_vals_got_based  s    EEdKKr$   c                    V ^8  d   QhRRRR/# )r`   r   rR   ra   r   r%   )rc   s   "r   rd   r     s     O O O4 Or$   c                .    \         P                  ! W4      # )z>Set the value to be undefined because of a dead end. 
        )r   reg_value_info_t_set_dead_end)r   r   s   &&r   set_dead_endreg_value_info_t.set_dead_end  s     ;;DNNr$   c                    V ^8  d   QhRRRR/# )r`   r   rR   ra   r   r%   )rc   s   "r   rd   r          J J? Jd Jr$   c                .    \         P                  ! W4      # )z7Set the value to be unknown after a bad insn. 
        )r   reg_value_info_t_set_badinsn)r   r   s   &&r   set_badinsnreg_value_info_t.set_badinsn       ::4IIr$   c                    V ^8  d   QhRRRR/# r`   r   r   ra   r   r%   )rc   s   "r   rd   r     s     G G 0 GD Gr$   c                .    \         P                  ! W4      # )z?Set the value to be unknown after executing the insn. 
        )r   reg_value_info_t_set_unkinsnru  s   &&r   set_unkinsnreg_value_info_t.set_unkinsn  s     ::4FFr$   c                    V ^8  d   QhRRRR/# )r`   r   rR   ra   r   r%   )rc   s   "r   rd   r     r  r$   c                .    \         P                  ! W4      # )z>Set the value to be unknown from the function start. 
        )r   reg_value_info_t_set_unkfunc)r   r   s   &&r   set_unkfuncreg_value_info_t.set_unkfunc  r  r$   c                    V ^8  d   QhRRRR/# r`   r   rR   ra   r   r%   )rc   s   "r   rd   r     r  r$   c                .    \         P                  ! W4      # )zCSet the value to be unknown because it changes in a loop. 
        )r   reg_value_info_t_set_unkloopr   r   s   &&r   set_unkloopreg_value_info_t.set_unkloop  r  r$   c                    V ^8  d   QhRRRR/# r  r%   )rc   s   "r   rd   r     r  r$   c                .    \         P                  ! W4      # )zSSet the value to be unknown because the register has incompatible values. 
        )r   reg_value_info_t_set_unkmultr  s   &&r   set_unkmultreg_value_info_t.set_unkmult  r  r$   c                    V ^8  d   QhRRRR/# r  r%   )rc   s   "r   rd   r     r  r$   c                .    \         P                  ! W4      # )zGSet the value to be unknown because there are too many xrefs. 
        )r   reg_value_info_t_set_unkxrefr  s   &&r   set_unkxrefreg_value_info_t.set_unkxref  r  r$   c                    V ^8  d   QhRRRR/# r  r%   )rc   s   "r   rd   r     r  r$   c                .    \         P                  ! W4      # )zOSet the value to be unknown because the register has too many values. 
        )r   reg_value_info_t_set_unkvalsr  s   &&r   set_unkvalsreg_value_info_t.set_unkvals  r  r$   c               $    V ^8  d   QhRRRRRR/# )r`   r   rR   r   r   ra   r   r%   )rc   s   "r   rd   r     s"      ? C r$   c                0    \         P                  ! WV4      # )z'Set the value after aborting. 
        )r   reg_value_info_t_set_aborted)r   r   r   s   &&&r   set_abortedreg_value_info_t.set_aborted  s     ::4 	r$   c                   V ^8  d   QhRR/# r   r%   )rc   s   "r   rd   r     s     D Dt Dr$   c                2    \         P                  ! V .VO5!  # )a  This function has the following signatures:

    0. set_num(rval: int, insn: const insn_t &, val_flags: uint16=0) -> None
    1. set_num(rvals: uvalvec_t *, insn: const insn_t &) -> None
    2. set_num(rval: int, val_ea: ida_idaapi.ea_t, val_flags: uint16=0) -> None

# 0: set_num(rval: int, insn: const insn_t &, val_flags: uint16=0) -> None

Set the value to be a number after executing an insn. 
        

# 1: set_num(rvals: uvalvec_t *, insn: const insn_t &) -> None

Set the value to be numbers after executing an insn. 
        

# 2: set_num(rval: int, val_ea: ida_idaapi.ea_t, val_flags: uint16=0) -> None

Set the value to be a number before an address. 
        
)r   reg_value_info_t_set_numrZ   s   &*r   set_numreg_value_info_t.set_num  s    , 66tCdCCr$   c                    V ^8  d   QhRRRR/# )r`   ry   r   ra   z%'reg_value_info_t::set_compare_res_t'r%   )rc   s   "r   rd   r     s      C C. C1Cr$   c                .    \         P                  ! W4      # )zAdd values from R into THIS ignoring duplicates. 
        
:returns: EQUAL: THIS is not changed
:returns: CONTAINS: THIS is not changed
:returns: CONTAINED: THIS is a copy of R
:returns: NOT_COMPARABLE: values from R are added to THIS)r   reg_value_info_t_vals_unionr}   s   &&r   
vals_unionreg_value_info_t.vals_union  s     99$BBr$   c               (    V ^8  d   QhRRRRRRRR/# )	r`   r   r   widthr   	is_signedrb   ra   r   r%   )rc   s   "r   rd   r     s(       S T T r$   c                2    \         P                  ! WVV4      # )zSign-, or zero-extend the number or SP delta value to full size. The initial value is considered to be of size WIDTH. 
        )r   reg_value_info_t_extend)r   r   r  r  s   &&&&r   extendreg_value_info_t.extend  s     55d 	r$   c                    V ^8  d   QhRRRR/# )r`   r   r   ra   r   r%   )rc   s   "r   rd   r     s     D D[ DD Dr$   c                .    \         P                  ! W4      # )z9Truncate the number to the application bitness. 
        )r   reg_value_info_t_trunc_uval)r   r   s   &&r   
trunc_uvalreg_value_info_t.trunc_uval  s     99$CCr$   c               $    V ^8  d   QhRRRRRR/# r`   ry   r   r   r   ra   r   r%   )rc   s   "r   rd   r     (     B B' B/? B4 Br$   c                0    \         P                  ! WV4      # )zBAdd R to the value, save INSN as a defining instruction. 
        )r   reg_value_info_t_addr   ry   r   s   &&&r   addreg_value_info_t.add       224DAAr$   c               $    V ^8  d   QhRRRRRR/# r  r%   )rc   s   "r   rd   r     r  r$   c                0    \         P                  ! WV4      # )zISubtract R from the value, save INSN as a defining instruction. 
        )r   reg_value_info_t_subr  s   &&&r   subreg_value_info_t.sub  r  r$   c               $    V ^8  d   QhRRRRRR/# r  r%   )rc   s   "r   rd   r   	  r  r$   c                0    \         P                  ! WV4      # )zQMake bitwise OR of R to the value, save INSN as a defining instruction. 
        )r   reg_value_info_t_borr  s   &&&r   borreg_value_info_t.bor	  r  r$   c               $    V ^8  d   QhRRRRRR/# r  r%   )rc   s   "r   rd   r     (     C C( C0@ CD Cr$   c                0    \         P                  ! WV4      # )zRMake bitwise AND of R to the value, save INSN as a defining instruction. 
        )r   reg_value_info_t_bandr  s   &&&r   bandreg_value_info_t.band       33DTBBr$   c               $    V ^8  d   QhRRRRRR/# r  r%   )rc   s   "r   rd   r     r  r$   c                0    \         P                  ! WV4      # )z[Make bitwise eXclusive OR of R to the value, save INSN as a defining instruction. 
        )r   reg_value_info_t_bxorr  s   &&&r   bxorreg_value_info_t.bxor  r  r$   c               $    V ^8  d   QhRRRRRR/# r  r%   )rc   s   "r   rd   r     s(     F F+ F3C Ft Fr$   c                0    \         P                  ! WV4      # )zaMake bitwise AND of the inverse of R to the value, save INSN as a defining instruction. 
        )r   reg_value_info_t_bandnotr  s   &&&r   bandnotreg_value_info_t.bandnot  s     66tEEr$   c               $    V ^8  d   QhRRRRRR/# r  r%   )rc   s   "r   rd   r     r  r$   c                0    \         P                  ! WV4      # )zIShift the value left by R, save INSN as a defining instruction. 
        )r   reg_value_info_t_sllr  s   &&&r   sllreg_value_info_t.sll  r  r$   c               $    V ^8  d   QhRRRRRR/# r  r%   )rc   s   "r   rd   r   "  r  r$   c                0    \         P                  ! WV4      # )zTShift logically the value right by R, save INSN as a defining instruction. 
        )r   reg_value_info_t_slrr  s   &&&r   slrreg_value_info_t.slr"  r  r$   c               $    V ^8  d   QhRRRRRR/# r  r%   )rc   s   "r   rd   r   '  r  r$   c                0    \         P                  ! WV4      # )zYShift arithmetically the value right by R, save INSN as a defining instruction. 
        )r   reg_value_info_t_sarr  s   &&&r   sarreg_value_info_t.sar'  r  r$   c               $    V ^8  d   QhRRRRRR/# r  r%   )rc   s   "r   rd   r   ,  r  r$   c                0    \         P                  ! WV4      # )zReplace the top 16 bits with bottom 16 bits of R, leaving the bottom 16 bits untouched, save INSN as a defining instruction. 
        )r   reg_value_info_t_movtr  s   &&&r   movtreg_value_info_t.movt,  r  r$   c                    V ^8  d   QhRRRR/# r  r%   )rc   s   "r   rd   r   1  s     ? ?( ?D ?r$   c                .    \         P                  ! W4      # )z7Negate the value, save INSN as a defining instruction.
)r   reg_value_info_t_negru  s   &&r   negreg_value_info_t.neg1  s     224>>r$   c                    V ^8  d   QhRRRR/# r  r%   )rc   s   "r   rd   r   6  s     @ @) @T @r$   c                .    \         P                  ! W4      # )zQMake bitwise inverse of the value, save INSN as a defining instruction. 
        )r   reg_value_info_t_bnotru  s   &&r   bnotreg_value_info_t.bnot6  s     33D??r$   c                   V ^8  d   QhRR/# r   r%   )rc   s   "r   rd   r   ;  s     D Dt Dr$   c                2    \         P                  ! V .VO5!  # )a_  This function has the following signatures:

    0. add_num(r: int, insn: const insn_t &) -> None
    1. add_num(r: int) -> None

# 0: add_num(r: int, insn: const insn_t &) -> None

Add R to the value, save INSN as a defining instruction. 
        

# 1: add_num(r: int) -> None

Add R to the value, do not change the defining instructions. 
        
)r   reg_value_info_t_add_numrZ   s   &*r   add_numreg_value_info_t.add_num;  s      66tCdCCr$   c                    V ^8  d   QhRRRR/# r`   ry   r   ra   r   r%   )rc   s   "r   rd   r   M  s     C CC C4 Cr$   c                .    \         P                  ! W4      # )zMShift the value left by R, do not change the defining instructions. 
        )r   reg_value_info_t_shift_leftr}   s   &&r   
shift_leftreg_value_info_t.shift_leftM  s     99$BBr$   c                    V ^8  d   QhRRRR/# r?  r%   )rc   s   "r   rd   r   R  s     D DS DD Dr$   c                .    \         P                  ! W4      # )zNShift the value right by R, do not change the defining instructions. 
        )r   reg_value_info_t_shift_rightr}   s   &&r   shift_rightreg_value_info_t.shift_rightR  s     ::4CCr$   c                   V ^8  d   QhRR/# )r`   ra   r   r%   )rc   s   "r   rd   r   W       = = =r$   c                	.    \         P                  ! V 4      # r/   )r   reg_value_info_t___str__rn   s   &r   __str__reg_value_info_t.__str__W      66t<<r$   c                   V ^8  d   QhRR/# rm  r%   )rc   s   "r   rd   r   Z  rJ  r$   c                	.    \         P                  ! V 4      # r/   )r   reg_value_info_t___len__rn   s   &r   __len__reg_value_info_t.__len__Z  rO  r$   c                    V ^8  d   QhRRRR/# )r`   ir   ra   z'reg_value_def_t const &'r%   )rc   s   "r   rd   r   ]  s     D DS D$= Dr$   c                	.    \         P                  ! W4      # r/   )r   reg_value_info_t___getitem__)r   rV  s   &&r   __getitem__reg_value_info_t.__getitem__]  s    ::4CCr$   r%   N)yr   r   r9   r:   r   r   r   r   r\   r   r   r   staticmethodr   r   r   r   r   r   r   r   r   r  r
  r  r  r  r"  r'  r,  r1  r6  r;  r@  rE  rK  rQ  rV  r[  r`  re  rj  rp  rv  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   reg_value_info_t_EQUALEQUALreg_value_info_t_CONTAINSCONTAINSreg_value_info_t_CONTAINED	CONTAINEDreg_value_info_t_NOT_COMPARABLENOT_COMPARABLEr  r  r  reg_value_info_t_ADDADDreg_value_info_t_SUBSUBreg_value_info_t_ORORreg_value_info_t_ANDANDreg_value_info_t_XORXORreg_value_info_t_AND_NOTAND_NOTreg_value_info_t_SLLSLLreg_value_info_t_SLRSLRreg_value_info_t_SARSARreg_value_info_t_MOVTMOVTreg_value_info_t_NEGNEGreg_value_info_t_NOTNOTr  r  r  r  r  r  r  r#  r(  r-  r2  r7  r<  rB  rG  rM  rS  rY  delete_reg_value_info_tr   r=   r%   r$   r   r   r      sO   -/I!#GH$;
;
= J J
   E E
 B B
 E E
 E E
 E E
 E E
 E E
 ? ?$ H H
A
=
@
@
@
@
@
@
@
@
@
<
<
>
=
=
@
C
H
E
JJJJKLO
J
G
J
J
J
J
J
D. 11E77H99I#CCNCD 
-
-C

-
-C		+	+B

-
-C

-
-C55G

-
-C

-
-C

-
-C//D

-
-C

-
-CB
B
B
C
C
F
B
B
B
C
?
@
D$C
D
==D%==r$   r   c               $    V ^8  d   QhRRRRRR/# )r`   earR   regr   ra   z
'uint64 *'r%   )rc   s   "r   rd   rd   e  s!     2 2 2S 2J 2r$   c                .    \         P                  ! W4      # )aO  Find register value using the register tracker. 
        
:param ea: the address to find a value at
:param reg: the register to find
:returns: 0: no value (the value is varying or the find depth is not enough to find a value)
:returns: 1: the found value is in VAL
:returns: -1: the processor module does not support a register tracker)r   find_reg_valuer  r  s   &&r   r  r  e  s     ((11r$   c               $    V ^8  d   QhRRRRRR/# )r`   r  rR   r  r   ra   z	'int64 *'r%   )rc   s   "r   rd   rd   p  s!     1 1o 1C 1i 1r$   c                .    \         P                  ! W4      # )a  Find a value of the SP based register using the register tracker. 
        
:param ea: the address to find a value at
:param reg: the register to find. by default the SP register is used.
:returns: 0: no value (the value is varying or the find depth is not enough to find a value)
:returns: 1: the found value is in VAL
:returns: -1: the processor module does not support a register tracker)r   find_sp_valuer  s   &&r   r  r  p  s     ''00r$   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r`   rvir   r  rR   r  r   	max_depthra   rb   r%   )rc   s   "r   rd   rd   {  s:     
G 
G/ 
G_ 
G
G
G!
Gr$   c                0    \         P                  ! WW#4      # )ag  Find register value using the register tracker. 
        
:param rvi: the found value with additional attributes
:param ea: the address to find a value at
:param reg: the register to find
:param max_depth: the number of basic blocks to look before aborting the search and returning the unknown value. 0 means the value of REGTRACK_MAX_DEPTH from ida.cfg for ordinal registers or REGTRACK_FUNC_MAX_DEPTH for the function-wide registers, -1 means the value of REGTRACK_FUNC_MAX_DEPTH from ida.cfg.
:returns: 'false': the processor module does not support a register tracker
:returns: 'true': the found value is in RVI)r   find_reg_value_info)r  r  r  r  s   &&&&r   r  r  {  s     --csFFr$   c               (    V ^8  d   QhRRRRRRRR/# )	r`   r  r   r  rR   r  z'int const [2]'ra   r   r%   )rc   s   "r   rd   rd     s+     9 9, 9/ 999r$   c                0    \         P                  ! WV4      # )a  Find the value of any of the two registers using the register tracker. First, this function tries to find the registers in the basic block of EA, and if it could not do this, then it tries to find in the entire function. 
        
:param rvi: the found value with additional attributes
:param ea: the address to find a value at
:param reg: the registers to find
:returns: the index of the found register or -1)r   find_nearest_rvi)r  r  r  s   &&&r   r  r    s     **3C88r$   c                   V ^8  d   QhRR/# r   r%   )rc   s   "r   rd   rd     s     < < <r$   c                 *    \         P                  ! V !  # )zThe control flow from FROM to TO has removed (CREF==fl_U) or added (CREF!=fl_U). Try to update the register tracker cache after this change. If TO == BADADDR then clear the entire cache. 
        )r   invalidate_regfinder_cacher  s   *r   r  r    s     44d;;r$   c                   V ^8  d   QhRR/# r   r%   )rc   s   "r   rd   rd     s     B Bd Br$   c                 *    \         P                  ! V !  # )zThe data reference to TO has added (DREF!=dr_O) or removed (DREF==dr_O). Update the regtracker xrefs cache after this change. If TO == BADADDR then clear the entire xrefs cache. 
        )r    invalidate_regfinder_xrefs_cacher  s   *r   r  r    s     ::DAAr$   r[  )r   )%
__future__r   sysr   _swig_python_version_info__package__r   r   r   builtinsr   ImportErrorr   r&   r,   r6   r   r8   weakrefSWIG_PYTHON_LEGACY_BOOLtypingr>   r?   r@   
ida_idaapiobjectrB   reg_value_def_t_swigregistercvarr   reg_value_info_t_swigregisterr  r  r  r  r  r  r%   r$   r   <module>r     s    " 9#/ "
 L$ L
 (@@  % % N=f N=b  + +O <G>v G>T  , ,-= >21
G9<Ba  s   C CC