The patch attached in the OP is bad for sure, it makes unnecessary changes (why?) that breaks some things as mentioned above. The attitude.exe patch is better, but still has an issue where is messes up the stack:
It changes
.text:00561FBD mov eax, [ebp+var_30]
.text:00561FC0 push eax
.text:00561FC1 mov eax, [ebp+arg_4]
.text:00561FC4 push eax
.text:00561FC5 mov eax, [ebp+arg_0]
.text:00561FC8 push eax
.text:00561FC9 call sub_4018E3
.text:00561FCE add esp, 0Ch
to
.text:00561FBD mov eax, [ebp+var_30]
.text:00561FC0 push eax
.text:00561FC1 mov eax, [ebp+arg_4]
.text:00561FC4 push eax
.text:00561FC5 mov eax, [ebp+arg_0]
.text:00561FC8 push eax
.text:00561FC9 nop
.text:00561FCA nop
.text:00561FCB nop
.text:00561FCC nop
.text:00561FCD nop
.text:00561FCE nop
.text:00561FCF nop
.text:00561FD0 nop
The instruction "add esp, 0Ch" is there adjust the stack pointer after the function call(to remove the three arguments passed to the call from the top of stack), but it is removed in the patch without also removing the three push instructions. To properly patch, you'd want to just nop the call by itself or all the code above.