Hello!
Which program is this? This looks as though you need to contact the developers. I shall give them the disassembly:
00CDBE7E C3 ret
00CDBE7F 8B 54 24 14 mov edx,dword ptr [esp+14h]
00CDBE83 8B CA mov ecx,edx
00CDBE85 90 nop
00CDBE86 90 nop
00CDBE87 E8 14 04 00 00 call 00CDC2A0
00CDBE8C 8B 54 24 14 mov edx,dword ptr [esp+14h]
00CDBE90 89 04 24 mov dword ptr [esp],eax
00CDBE93 8B 4C 24 10 mov ecx,dword ptr [esp+10h]
00CDBE97 E8 24 08 00 00 call 00CDC6C0
00CDBE9C 8D 44 24 18 lea eax,[esp+18h]
00CDBEA0 8B 78 04 mov edi,dword ptr [eax+4]
00CDBEA3 8B 37 mov esi,dword ptr [edi]
00CDBEA5 83 E6 07 and esi,7
00CDBEA8 83 FE 05 cmp esi,5
00CDBEAB 0F 84 14 00 00 00 je 00CDBEC5
00CDBEB1 8B 30 mov esi,dword ptr [eax]
00CDBEB3 85 F6 test esi,esi
00CDBEB5 0F 84 0A 00 00 00 je 00CDBEC5
00CDBEBB F0 0F B1 37 lock cmpxchg dword ptr [edi],esi
00CDBEBF 0F 85 C4 00 00 00 jne 00CDBF89
00CDBEC5 8B E5 mov esp,ebp
00CDBEC7 5D pop ebp
00CDBEC8 85 05 00 01 9F 00 test dword ptr ds:[9F0100h],eax // Crash - notice the ptr - notice the pop operations on the stack a line above - notice the locks - 9F0100h:10420480, eax:78444200
00CDBECE C3 ret
My best guess is that they are popping more off the stack than there is data on the stack, and the conditional jumps, je and jne, and what is on that stack may go someway to explaining this.
I have jumped into the deep end here...I haven't used assembly for ages, and so this might be wrong!
Richard