23477ccb5f
x86 cflow and x86 constant decryption Backport of LINQ (LinqBridge) Shift left/right emulation fixes in de4dot core Block class extended to hold additional information
27 lines
781 B
C#
27 lines
781 B
C#
using System.Collections.Generic;
|
|
using de4dot.Bea;
|
|
|
|
namespace ConfuserDeobfuscator.Engine.Routines.Ex.x86.Instructions
|
|
{
|
|
class X86PUSH : X86Instruction
|
|
{
|
|
public X86PUSH(Disasm rawInstruction) : base()
|
|
{
|
|
Operands = new IX86Operand[1];
|
|
Operands[0] = GetOperand(rawInstruction.Argument1);
|
|
}
|
|
|
|
public override X86OpCode OpCode { get { return X86OpCode.PUSH; } }
|
|
|
|
public override void Execute(Dictionary<string, int> registers, Stack<int> localStack)
|
|
{
|
|
// Pretend to pop stack
|
|
if (localStack.Count < 1)
|
|
return;
|
|
|
|
registers[((X86RegisterOperand) Operands[0]).Register.ToString()] = localStack.Pop();
|
|
}
|
|
|
|
}
|
|
}
|