R0 CREW

Внедрение X кода в PE файл

Коничива.
Жму CFF Explorer >> Import Adder >> там добавляю нужную мне dll. >> добавляю секцию где будет мой код >> меняю EP.

Иду в отладчик, прописываю нужный мне код, делаю call на функцию из dll, готово.
Вопрос: Работать работает, но виснет на инструкции movzx edx, byte ptr ds:[eax]
Код который идет в dll:

#include <windows.h>

constexpr bool Cmp(const char *p1, const char *p2) {
    return *p1 == *p2 && (!(*p1) || Cmp(p1+1, p2+1));
}

int main(int argc, char **argv) {
	if (argc <= 1)
		return 0;

	if (Cmp(argv[1], "--hello"))
		MessageBox(0, "Hello", "World!", 0);
	
	return 0;
}

Как сделать, чтобы он работал, а не ломался?
Пациент ; DLL

p.s если например добавлять обычный MessageBox то работает без проблем.
В кратце, хочу чтобы по работало только при передачи X аргумента из командой строки, может есть вариант проще?

p.s.s учусь.

А зачем вы всунули constexpr если аргумент приходит динамически?