# Interface: com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IECall

IR statement used to represent calls to sub\-routines. 

 Default [memory access information](#getMemoryAccessInfo()) is set to null to indicate it should be determined by the IR itself.

## Method: addSpoiledVariables
- parameter: `spoiledVariables`, type: `java.util.List<com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEVar>`

Description: Use only if a dummy/failsafe prototype was set

## Method: getArgument
- parameter: `index`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric`

Description: Get the Nth argument of this ECall. This method is safe and will return null if the index is out of bounds.
parameter: index: 
return: 

## Method: getArguments
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric>`

Description: Retrieve a read\-only list of arguments provided to this ECall.
return: 

## Method: getCallSite
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric`


## Method: getCountOfArguments
- return type: `int`

Description: Retrieve the number of arguments.
return: 

## Method: getCountOfReturns
- return type: `int`

Description: Retrieve the number of return values.
return: 

## Method: getDynamicTargetCandidates
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEVar>`


## Method: getHintArgumentPointsToExternalMemory
- parameter: `argIndex`, type: `int`
- return type: `boolean`


## Method: getMemoryAccessInfo
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.MemoryAccessInfo`

Description: 
return: 

## Method: getNonReturning
- return type: `java.lang.Boolean`

Description: Indicate whether the call is non\-returning. Typically, a non\-returning call is a call terminating the program, or a call performing a long branch to another area of code, without the intention of returning to what would be the 'Normal' call return\-address \(that is, the subsequent instruction\). The value of this flag is normally computed internally, by the ECall itself. If this cannot be determined, the function returns null.
return: 

## Method: getPrototype
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardPrototype`


## Method: getReturnExpression
- parameter: `index`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric`

Description: Get the Nth return expression of this ECall. This method is safe and will return null if the index is out of bounds.
parameter: index: 
return: 

## Method: getReturnExpressions
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric>`

Description: Retrieve a read\-only list of return expressions. In most cases, the list will return 0 or 1 arguments.
return: 

## Method: getReturnLocation
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric`

Description: Retrieve the return address for this call. The return address may be null if the call\-to\-sub is a regular call that returns at the subsequent instruction.
return: the return address, possibly null

## Method: getSpoiledExpressions
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric>`

Description: Retrieve a read\-only list of expressions spoiled by this ECall.
return: 

## Method: getStackPointerDeltaAfterExecution
- return type: `int`


## Method: getStaticCallsite
- return type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem`


## Method: isFailsafePrototype
- return type: `boolean`


## Method: isReturnExpressionUnused
- return type: `boolean`

Description: Retrieve a hint \(for the AST generator\) indicating whether the return value of this call, if any, appears to be used by subsequent instructions in the CFG.
return: 

## Method: isStaticCallsite
- return type: `boolean`


## Method: isTentativeCall
- return type: `boolean`


## Method: setCallsite
- parameter: `callsite`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric`


## Method: setFailsafePrototype
- parameter: `enabled`, type: `boolean`


## Method: setHintArgumentPointsToExternalMemory
- parameter: `argIndex`, type: `int`
- parameter: `enabled`, type: `boolean`
- return type: `boolean`


## Method: setMemoryAccessInfo
- parameter: `info`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.MemoryAccessInfo`

Description: 
parameter: info: 

## Method: setNonReturning
- parameter: `forcedNonReturning`, type: `java.lang.Boolean`

Description: Force the value of the internal non\-returning flag to a custom value.
parameter: forcedNonReturning: null to reset to the internal ECall's logic; else, true or false,            which may allow some optimizers to perform better

## Method: setPrototype
- parameter: `prototype`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardPrototype`
- parameter: `failsafe`, type: `boolean`

Description: Dangerous method, will be removed from API. The prototype compatibility with the current call attributes \(returns, params, etc.\) is not verified.
parameter: prototype: 
parameter: failsafe: 

## Method: setReturnExpression
- parameter: `index`, type: `int`
- parameter: `exp`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric`

Description: Update a return expression.
parameter: index: the index must be valid, i.e. be in the \[0, count\_returns\) range else the method            will throw
parameter: exp: non\-null IRE

## Method: setReturnExpressionUnused
- parameter: `enabled`, type: `boolean`

Description: Set a hint \(for the AST generator\) indicating whether the return value of this call, if any, appears to be used by subsequent instructions in the CFG.
parameter: enabled: 

## Method: setReturnLocation
- parameter: `loc`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric`

Description: Set the optional return location \(address\) for the call. Null means a normal call, i.e., the return address is the address that immediately follows the call.
parameter: loc: the optional return address

## Method: setStackPointerDeltaAfterExecution
- parameter: `delta`, type: `int`

Description: Use only if a dummy/failsafe prototype was set

## Method: setTentativeCall
- parameter: `enabled`, type: `boolean`


