diff options
author | Toni Uhlig <matzeton@googlemail.com> | 2020-05-24 16:48:22 +0200 |
---|---|---|
committer | Toni Uhlig <matzeton@googlemail.com> | 2020-05-25 21:57:14 +0200 |
commit | 31c69b6ca1b91e7fd9fd8e14082fd2584c5f538c (patch) | |
tree | 16e789c7d68608831b498f41f54d9482b82a711a /source/disasm.c |
first public release
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'source/disasm.c')
-rw-r--r-- | source/disasm.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/source/disasm.c b/source/disasm.c new file mode 100644 index 0000000..b36abae --- /dev/null +++ b/source/disasm.c @@ -0,0 +1,24 @@ +#include "compat.h" +#include "disasm.h" +#include "distorm/distorm.h" + + +_DecodeResult disasm(_OffsetType codeOffset, const unsigned char* code, int codeLen, _DecodeType dt, _DInst instructions[], unsigned int maxInstructions, unsigned int* usedInstructionsCount) +{ + _DecodeResult res; + _CodeInfo ci; + unsigned int instsCount = 0; + + ci.codeOffset = codeOffset; + ci.code = code; + ci.codeLen = codeLen; + ci.dt = dt; + ci.features = DF_NONE; + + if (dt == Decode16Bits) ci.features = DF_MAXIMUM_ADDR16; + else if (dt == Decode32Bits) ci.features = DF_MAXIMUM_ADDR32; + + res = distorm_decompose(&ci, instructions, maxInstructions, &instsCount); + *usedInstructionsCount = instsCount; + return res; +} |