\r
#include "Bra.h"\r
\r
-#define Test86MSByte(b) ((((b) + 1) & 0xFE) == 0)\r
+#define Test86MSByte(b) ((((b) + 1) & 0xFE) == 0)\r
\r
-SizeT x86_Convert(Byte *data, SizeT size, UInt32 ip, UInt32 *state, int encoding)\r
+SizeT\r
+x86_Convert (\r
+ Byte *data,\r
+ SizeT size,\r
+ UInt32 ip,\r
+ UInt32 *state,\r
+ int encoding\r
+ )\r
{\r
- SizeT pos = 0;\r
- UInt32 mask = *state & 7;\r
- if (size < 5)\r
+ SizeT pos = 0;\r
+ UInt32 mask = *state & 7;\r
+\r
+ if (size < 5) {\r
return 0;\r
+ }\r
+\r
size -= 4;\r
- ip += 5;\r
+ ip += 5;\r
\r
- for (;;)\r
- {\r
- Byte *p = data + pos;\r
- const Byte *limit = data + size;\r
- for (; p < limit; p++)\r
- if ((*p & 0xFE) == 0xE8)\r
+ for ( ; ;) {\r
+ Byte *p = data + pos;\r
+ const Byte *limit = data + size;\r
+ for ( ; p < limit; p++) {\r
+ if ((*p & 0xFE) == 0xE8) {\r
break;\r
+ }\r
+ }\r
\r
{\r
- SizeT d = (SizeT)(p - data - pos);\r
+ SizeT d = (SizeT)(p - data - pos);\r
pos = (SizeT)(p - data);\r
- if (p >= limit)\r
- {\r
+ if (p >= limit) {\r
*state = (d > 2 ? 0 : mask >> (unsigned)d);\r
return pos;\r
}\r
- if (d > 2)\r
+\r
+ if (d > 2) {\r
mask = 0;\r
- else\r
- {\r
+ } else {\r
mask >>= (unsigned)d;\r
- if (mask != 0 && (mask > 4 || mask == 3 || Test86MSByte(p[(size_t)(mask >> 1) + 1])))\r
- {\r
+ if ((mask != 0) && ((mask > 4) || (mask == 3) || Test86MSByte (p[(size_t)(mask >> 1) + 1]))) {\r
mask = (mask >> 1) | 4;\r
pos++;\r
continue;\r
}\r
}\r
\r
- if (Test86MSByte(p[4]))\r
- {\r
- UInt32 v = ((UInt32)p[4] << 24) | ((UInt32)p[3] << 16) | ((UInt32)p[2] << 8) | ((UInt32)p[1]);\r
- UInt32 cur = ip + (UInt32)pos;\r
+ if (Test86MSByte (p[4])) {\r
+ UInt32 v = ((UInt32)p[4] << 24) | ((UInt32)p[3] << 16) | ((UInt32)p[2] << 8) | ((UInt32)p[1]);\r
+ UInt32 cur = ip + (UInt32)pos;\r
pos += 5;\r
- if (encoding)\r
+ if (encoding) {\r
v += cur;\r
- else\r
+ } else {\r
v -= cur;\r
- if (mask != 0)\r
- {\r
- unsigned sh = (mask & 6) << 2;\r
- if (Test86MSByte((Byte)(v >> sh)))\r
- {\r
+ }\r
+\r
+ if (mask != 0) {\r
+ unsigned sh = (mask & 6) << 2;\r
+ if (Test86MSByte ((Byte)(v >> sh))) {\r
v ^= (((UInt32)0x100 << sh) - 1);\r
- if (encoding)\r
+ if (encoding) {\r
v += cur;\r
- else\r
+ } else {\r
v -= cur;\r
+ }\r
}\r
+\r
mask = 0;\r
}\r
+\r
p[1] = (Byte)v;\r
p[2] = (Byte)(v >> 8);\r
p[3] = (Byte)(v >> 16);\r
p[4] = (Byte)(0 - ((v >> 24) & 1));\r
- }\r
- else\r
- {\r
+ } else {\r
mask = (mask >> 1) | 4;\r
pos++;\r
}\r