SKIPDATA: @offset of callback function should indicate the position of examining byte in input buffer
diff --git a/cs.c b/cs.c
index ec74c50..4253880 100644
--- a/cs.c
+++ b/cs.c
@@ -382,6 +382,7 @@
 		return &cache[f - 1];
 }
 
+// generate @op_str for data instruction of SKIPDATA
 static void skipdata_opstr(char *opstr, const uint8_t *buffer, size_t size)
 {
 	char *p = opstr;
@@ -417,6 +418,7 @@
 	bool r;
 	void *tmp;
 	size_t skipdata_bytes;
+	uint64_t offset_org;
 
 	if (!handle) {
 		// FIXME: how to handle this case:
@@ -431,6 +433,7 @@
 
 	memset(insn_cache, 0, sizeof(insn_cache));
 
+	offset_org = offset;
 	while (size > 0) {
 		MCInst_Init(&mci);
 		mci.csh = handle;
@@ -513,7 +516,7 @@
 				break;
 
 			if (handle->skipdata_setup.callback) {
-				skipdata_bytes = handle->skipdata_setup.callback(offset,
+				skipdata_bytes = handle->skipdata_setup.callback(offset - offset_org,
 						handle->skipdata_setup.user_data);
 				if (skipdata_bytes > size)
 					// remaining data is not enough