Так-с, ребятки, я вот чё выяснил. В том, что DLL-ка работает только в 2011 году виноват
steamCooker. Точнее, он сделал это специально и я не знаю, почему. Вот то, что я нарыл за это время:
Код: Выделить всё
.text:10001081 lea eax, [esp+64h+Time]
.text:10001085 push eax ; Time
.text:10001086 call __time32
.text:1000108B add esp, 4
.text:1000108E push 0
.text:10001090 push 0
.text:10001092 push 0
.text:10001094 push 1
.text:10001096 push 1
.text:10001098 push 7DCh ; 0x7DC = 2012. WTF?! IDK
.text:1000109D lea esi, [esp+7Ch+var_40]
.text:100010A1 call sub_10018A20
.text:100010A6 lea ecx, [esp+64h+var_28]
.text:100010AA push ecx
.text:100010AB mov [esp+68h+var_4], 0
.text:100010B3 call sub_101FDAC9
.text:100010B8 mov edx, [esp+68h+var_34]
.text:100010BC mov eax, [esp+68h+var_38]
.text:100010C0 add esp, 4
.text:100010C3 push 0
.text:100010C5 push 3E8h
.text:100010CA push edx
.text:100010CB push eax
.text:100010CC call __aulldiv
.text:100010D1 mov [esp+64h+var_4C], edx
.text:100010D5 mov edx, dword_10276900
.text:100010DB add edx, [esp+64h+var_28]
.text:100010DF cmp eax, edx
.text:100010E1 sbb eax, eax
.text:100010E3 neg eax
.text:100010E5 cmp byte_1027690D, 0
.text:100010EC mov dword_102768D4, eax ; Now this is that fucking var that is always checked for zero-nonzero
.text:100010F1 jnz short loc_10001105
.text:100010F3 push offset CriticalSection ; lpCriticalSection
.text:100010F8 call ds:InitializeCriticalSection
.text:100010FE mov byte_1027690D, 1
Патч сделал, т.к. связаться с этим интересным челом можно только через cs.rin.ru, который оффлайн вот уже сколько времени. Много думать не пришлось. Но это всё же странно. Типа "бета-срок истёк" или что? Ну о-очень странно.
Сегодня-завтра перезалью CFU и обновлю Phoenix чуть пораньше, потому что, вообще говоря, эта штука серьёзная.
Добавлено спустя 15 часов 24 минуты 9 секунд:
Пофиксил. Теперь, вроде, чуть лучше %)