c++ - lvalue required as left operand of assignment - LOBYTE / HIBYTE -
i'm receiving lvalue required left operand error on lobyte/hibyte/lodword lines in function below: typedef dword _dword; typedef byte _byte; typedef word _word; signed int __stdcall checkserial(int serial, int seriallength) { int v2; // ecx@1 int v3; // ecx@3 int v4; // ecx@5 int v5; // ecx@7 int v6; // dx@9 signed int v7; // ecx@10 char v8; // dl@11 __int16 v9; // cx@13 signed int result; // eax@21 v2 = 0; { *(_dword *)(v2 + serial) ^= 0x1234567u; *(_byte *)(v2 + serial) &= 0xeu; v2 += 4; } while ( v2 != 8 ); v3 = 0; *(_byte *)(serial + 8) += *(_byte *)(v3++ + serial); while ( v3 != seriallength ); v4 = 0; { *(_dword *)(v4 + serial) ^= 0x89abcdeu; *(_byte *)(v4 + serial) &= 0xeu; v4 += 4; } while ( v4 != 8 ); v5 = 0; *(_byte *)(serial + 9) += *(_byte *)(v5++ + serial); while ( v5 != seriallength ); lobyte(v6) = *(_byte *)(serial + 9); hibyte(v6) = *(_byte *)(serial + 8); if ( v