Hi, it crashes not because of CC but there seem to be a problem with the Stack. After some tracing, it crashes at 00402E1D because it trying to return to 00000000.
For some reason at this address, there are some leftover bytes or maybe from unneeded Push 0.
0012FFC0 00 00 00 00 ....
Code:
00402E14 E8 9F000000 CALL <JMP.&user32.EndDialog>
00402E19 61 POPAD
00402E1A 33C0 XOR EAX,EAX
00402E1C C9 LEAVE
00402E1D C2 1000 RETN 10