Please C++ TO Delphi
IMAGE_NT_HEADERS* inh;
IMAGE_SECTION_HEADER* ish;
DWORD newRVA = (ish + inh->FileHeader.NumberOfSections - 1)->VirtualAddress + ((ish + inh->FileHeader.NumberOfSections - 1)->Misc.VirtualSize + (inh->OptionalHeader.SectionAlignment - (((ish + inh->FileHeader.NumberOfSections - 1)->Misc.VirtualSize % inh->OptionalHeader.SectionAlignment) ? ((ish + inh->FileHeader.NumberOfSections - 1)->Misc.VirtualSize % inh->OptionalHeader.SectionAlignment) : inh->OptionalHeader.SectionAlignment)));
newSecSize = (newSecSize + (inh->OptionalHeader.FileAlignment - ((newSecSize % inh->OptionalHeader.FileAlignment) ? (newSecSize % inh->OptionalHeader.FileAlignment) : inh->OptionalHeader.FileAlignment)));
ish->Misc.VirtualSize = (newSecSize + (inh->OptionalHeader.SectionAlignment - ((newSecSize % inh->OptionalHeader.SectionAlignment) ? (newSecSize % inh->OptionalHeader.SectionAlignment) : inh->OptionalHeader.SectionAlignment)));
DWORD* hVMImg;
DWORD _ssss = (*(DWORD*)(hVMImg + 7))*4 + (*(DWORD*)(hVMImg + 8))*8 + 4;
BYTE* outCodeBuf;
int outPos = 0;
BYTE* instr;
*(DWORD*)(outCodeBuf + outPos + 4) = (int)*((char*)instr + 3);
*(DWORD*)(outCodeBuf + outPos + 4) = *(DWORD*)(instr + 2);
BYTE* outCodeBuf;
int outPos = 0;
BYTE* codeBase;
int curPos = 0;
struct
{
DWORD disasm_len;
} dis;
memmove(outCodeBuf + outPos + 1, codeBase + curPos, dis.disasm_len);