Русское сообщество по скриптингу

Alias Checker от mazdan: вся правда

Флуд, который не касается других разделов форума.

Модератор: Модераторы

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

Alias Checker от mazdan: вся правда

Сообщение creator_52 » 03 янв 2017, 14:03

Всем привет, начал декомпилировать aliases checker от mazdan (версия 051), уже готова половина исходного кода.
Специально зашел к нему и скачал самую раннюю доступную версию, чтобы всем в итоге было понятно откуда растут ноги.

Во-первых, друзья, пока что это полная копия моего "HD Aliases":
Вы должны зарегистрироваться, чтобы видеть ссылки.
Вы должны зарегистрироваться, чтобы видеть ссылки.

Во-вторых это жесткий говнокод поверх копии моей работы, который добавляет пару кваров и по еще по мелочи.

В-третьих, что самое интересное, mazdan даже не потрудился изменить названия переменных, названия функций и т.п.

Нагло ворованный код, причем когда я разрабатывал свой плагин, mazdan раньше всех отписывался и расспрашивал про алгоритмы.

Я начну с этого свою серию разоблачения этого "автора" и ему подобных, я постараюсь быть объективным и справедливым, чуть позже выложу исходный код, может не тут, но выложу все что получится.

Название темы скорректировано // Subb98
Аватара пользователя
creator_52
 
Сообщения: 513
Зарегистрирован: 02 мар 2011, 15:45
Откуда: Нижний Новгород
Благодарил (а): 116 раз.
Поблагодарили: 206 раз.
Опыт программирования: Больше трех лет

Re: Alias Checker от mazdan: вся правда

Сообщение Subb98 » 03 янв 2017, 14:17

Не буду давать никаких оценок этой теме (по крайней мере, пока не будет пруфов), чтобы не нарушать объективный настрой. Го разведём холивар на тему open/closed source? :-)
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5454
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1319 раз.
Поблагодарили: 2324 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP, Ruby

Re: Alias Checker от mazdan: вся правда

Сообщение creator_52 » 03 янв 2017, 14:28

Subb98 писал(а):Не буду давать никаких оценок этой теме (по крайней мере, пока не будет пруфов), чтобы не нарушать объективный настрой. Го разведём холивар на тему open/closed source? :-)

Ну для начала можно убедиться в достоверности моих слов насчет названий переменных и функций:
Код: Выделить всё
 0x0         HALT                    0x0

Start of C:\Documents and Settings\Admin\Ðàáî÷èé ñòîë\project\scripting\Compiler 1.8.1\include\string.inc file

 0x8         PROC                        ; is_str_num
 0xC         BREAK     
 0x10        BREAK     
 0x14        PUSH.C                  0x0
 0x1C        BREAK     
 0x20        BREAK      ; target:jump_0004
 0x24        LOAD.S.pri             -0x4
 0x2C        LOAD.S.alt              0xC   ; g_a_RandCmd
 0x34        IDXADDR   
 0x38        LOAD.I   
 0x3C        JZER              jump_0000
 0x44        LOAD.S.pri             -0x4
 0x4C        LOAD.S.alt              0xC   ; g_a_RandCmd
 0x54        IDXADDR   
 0x58        LOAD.I   
 0x5C        PUSH.pri 
 0x60        PUSH.C                  0x4
 0x68        SYSREQ.C            isdigit
 0x70        STACK                   0x8
 0x78        JZER              jump_0000
 0x80        CONST.pri               0x1
 0x88        JUMP              jump_0002
 0x90        ZERO.pri   ; target:jump_0000
 0x94        JZER              jump_0003 ; target:jump_0002
 0x9C        BREAK     
 0xA0        INC.S                  -0x4
 0xA8        JUMP              jump_0004
 0xB0        BREAK      ; target:jump_0003
 0xB4        LOAD.S.pri             -0x4
 0xBC        LOAD.S.alt              0xC   ; g_a_RandCmd
 0xC4        IDXADDR   
 0xC8        LOAD.I   
 0xCC        JNZ               jump_0005
 0xD4        LOAD.S.pri             -0x4
 0xDC        JZER              jump_0005
 0xE4        CONST.pri               0x1
 0xEC        JUMP              jump_0007
 0xF4        ZERO.pri   ; target:jump_0005
 0xF8        STACK                   0x4 ; target:jump_0007
 0x100       RETN     

 0x104       PROC                        ; replace_all
 0x108       BREAK     
 0x10C       BREAK     
 0x110       PUSH.C                  0x0
 0x118       BREAK     
 0x11C       PUSH.S                 0x14
 0x124       PUSH.S                  0xC
 0x12C       PUSH.C                  0x8
 0x134       SYSREQ.C            contain
 0x13C       STACK                   0xC
 0x144       STOR.S.pri             -0x4
 0x14C       EQ.C.pri               -0x1
 0x154       JZER              jump_0008
 0x15C       BREAK     
 0x160       ZERO.pri 
 0x164       STACK                   0x4
 0x16C       RETN     
 0x170       BREAK      ; target:jump_0008
 0x174       PUSH.C                  0x0
 0x17C       BREAK     
 0x180       STACK                  -0x4
 0x188       PUSH.S                 0x18
 0x190       PUSH.C                  0x4
 0x198       SYSREQ.C             strlen
 0x1A0       STACK                   0x8
 0x1A8       STOR.S.pri             -0xC
 0x1B0       BREAK     
 0x1B4       STACK                  -0x4
 0x1BC       PUSH.S                 0x14
 0x1C4       PUSH.C                  0x4
 0x1CC       SYSREQ.C             strlen
 0x1D4       STACK                   0x8
 0x1DC       MOVE.alt 
 0x1E0       LOAD.S.pri             -0xC
 0x1E8       SUB.alt   
 0x1EC       STOR.S.pri            -0x10
 0x1F4       BREAK     
 0x1F8       STACK                  -0x4
 0x200       PUSH.S                  0xC
 0x208       PUSH.C                  0x4
 0x210       SYSREQ.C             strlen
 0x218       STACK                   0x8
 0x220       STOR.S.pri            -0x14
 0x228       BREAK     
 0x22C       PUSH.C                  0x0
 0x234       BREAK     
 0x238       BREAK      ; target:jump_0014
 0x23C       PUSH.S                 0x18
 0x244       PUSH.S                 0x14
 0x24C       LOAD.S.pri             -0x4
 0x254       LOAD.S.alt             0x10
 0x25C       SUB.alt   
 0x260       PUSH.pri 
 0x264       LOAD.S.pri             -0x4
 0x26C       LOAD.S.alt              0xC   ; g_a_RandCmd
 0x274       IDXADDR   
 0x278       PUSH.pri 
 0x27C       PUSH.C                 0x10
 0x284       SYSREQ.C            replace
 0x28C       STACK                  0x14
 0x294       JZER              jump_0009
 0x29C       BREAK     
 0x2A0       LOAD.S.pri             -0xC
 0x2A8       LOAD.S.alt             -0x4
 0x2B0       ADD       
 0x2B4       STOR.S.pri             -0x4
 0x2BC       BREAK     
 0x2C0       LOAD.S.pri            -0x10
 0x2C8       LOAD.S.alt            -0x14
 0x2D0       SUB.alt   
 0x2D4       STOR.S.pri            -0x14
 0x2DC       BREAK     
 0x2E0       LOAD.S.pri             -0x4
 0x2E8       LOAD.S.alt            -0x14
 0x2F0       JSLESS            jump_0010
 0x2F8       BREAK     
 0x2FC       JUMP              jump_0009
 0x304       BREAK      ; target:jump_0010
 0x308       PUSH.S                 0x14
 0x310       LOAD.S.pri             -0x4
 0x318       LOAD.S.alt              0xC   ; g_a_RandCmd
 0x320       IDXADDR   
 0x324       PUSH.pri 
 0x328       PUSH.C                  0x8
 0x330       SYSREQ.C            contain
 0x338       STACK                   0xC
 0x340       STOR.S.pri            -0x18
 0x348       BREAK     
 0x34C       LOAD.S.pri            -0x18
 0x354       EQ.C.pri               -0x1
 0x35C       JZER              jump_0012
 0x364       BREAK     
 0x368       JUMP              jump_0009
 0x370       BREAK      ; target:jump_0012
 0x374       LOAD.S.pri            -0x18
 0x37C       LOAD.S.alt             -0x4
 0x384       ADD       
 0x388       STOR.S.pri             -0x4
 0x390       BREAK     
 0x394       INC.S                  -0x8
 0x39C       JUMP              jump_0014
 0x3A4       BREAK      ; target:jump_0009
 0x3A8       LOAD.S.pri             -0x8
 0x3B0       STACK                  0x18
 0x3B8       RETN     

Start of alias_detector.sma file

 0x3BC       PROC                        ; plugin_init
 0x3C0       BREAK     
 0x3C4       BREAK     
 0x3C8       PUSH.C               0x2538   ; str_002
 0x3D0       PUSH.C               0x2520   ; str_001
 0x3D8       PUSH.C               0x24E0   ; str_000
 0x3E0       PUSH.C                  0xC
 0x3E8       SYSREQ.C      register_plugin
 0x3F0       STACK                  0x10
 0x3F8       BREAK     
 0x3FC       PUSH.C                 0x20
 0x404       PUSH.C                 0x40
 0x40C       PUSH.C                  0x8
 0x414       SYSREQ.C        ArrayCreate
 0x41C       STACK                   0xC
 0x424       STOR.pri                0x0   ; g_a_Aliases
 0x42C       BREAK     
 0x430       PUSH.C                 0x20
 0x438       PUSH.C                  0x1
 0x440       PUSH.C                  0x8
 0x448       SYSREQ.C        ArrayCreate
 0x450       STACK                   0xC
 0x458       STOR.pri                0x4   ; g_a_Alias_levels
 0x460       BREAK     
 0x464       PUSH.C                  0x0
 0x46C       SYSREQ.C         TrieCreate
 0x474       STACK                   0x4
 0x47C       STOR.pri                0x8   ; g_t_Alias_stuff
 0x484       BREAK     
 0x488       PUSH.C               0x25B0   ; str_005
 0x490       PUSH.C                 -0x1
 0x498       PUSH.C               0x2588   ; str_004
 0x4A0       PUSH.C               0x2554   ; str_003
 0x4A8       PUSH.C                 0x10
 0x4B0       SYSREQ.C      register_srvcmd
 0x4B8       STACK                  0x14
 0x4C0       BREAK     
 0x4C4       PUSH.C               0x26B8   ; str_008
 0x4CC       PUSH.C                 -0x1
 0x4D4       PUSH.C               0x2674   ; str_007
 0x4DC       PUSH.C               0x2624   ; str_006
 0x4E4       PUSH.C                 0x10
 0x4EC       SYSREQ.C      register_srvcmd
 0x4F4       STACK                  0x14
 0x4FC       BREAK     
 0x500       PUSH.C               0x27D0   ; str_011
 0x508       PUSH.C                 -0x1
 0x510       PUSH.C               0x2794   ; str_010
 0x518       PUSH.C               0x274C   ; str_009
 0x520       PUSH.C                 0x10
 0x528       SYSREQ.C      register_srvcmd
 0x530       STACK                  0x14
 0x538       BREAK     
 0x53C       PUSH.C               0x28E8   ; str_014
 0x544       PUSH.C                 -0x1
 0x54C       PUSH.C               0x28A4   ; str_013
 0x554       PUSH.C               0x2854   ; str_012
 0x55C       PUSH.C                 0x10
 0x564       SYSREQ.C      register_srvcmd
 0x56C       STACK                  0x14
 0x574       BREAK     
 0x578       PUSH.C                  0x0
 0x580       PUSH.C                  0x0
 0x588       PUSH.C               0x29A0   ; str_016
 0x590       PUSH.C               0x2974   ; str_015
 0x598       PUSH.C                 0x10
 0x5A0       SYSREQ.C      register_cvar
 0x5A8       STACK                  0x14
 0x5B0       BREAK     
 0x5B4       PUSH.C                  0x0
 0x5BC       PUSH.C                  0x0
 0x5C4       PUSH.C               0x29CC   ; str_018
 0x5CC       PUSH.C               0x29AC   ; str_017
 0x5D4       PUSH.C                 0x10
 0x5DC       SYSREQ.C      register_cvar
 0x5E4       STACK                  0x14
 0x5EC       BREAK     
 0x5F0       PUSH.C               0x29D4   ; str_019
 0x5F8       PUSH.C                  0x4
 0x600       SYSREQ.C         server_cmd
 0x608       STACK                   0x8
 0x610       ZERO.pri 
 0x614       RETN     

 0x618       PROC                        ; plugin_cfg
 0x61C       BREAK     
 0x620       BREAK     
 0x624       PUSH.C               0x2A74   ; str_020
 0x62C       PUSH.C                  0x4
 0x634       SYSREQ.C       get_cvar_num
 0x63C       STACK                   0x8
 0x644       STOR.pri             0x2498   ; g_logdays
 0x64C       BREAK     
 0x650       PUSH.C               0x2AA0   ; str_021
 0x658       PUSH.C                  0x4
 0x660       SYSREQ.C       get_cvar_num
 0x668       STACK                   0x8
 0x670       STOR.pri             0x249C   ; g_logs
 0x678       BREAK     
 0x67C       PUSH.C               0x2AC0   ; str_022
 0x684       PUSH.C                  0x4
 0x68C       SYSREQ.C         server_cmd
 0x694       STACK                   0x8
 0x69C       BREAK     
 0x6A0       PUSH.C               0x2B6C   ; str_023
 0x6A8       PUSH.C                  0x4
 0x6B0       SYSREQ.C         server_cmd
 0x6B8       STACK                   0x8
 0x6C0       BREAK     
 0x6C4       LOAD.pri             0x249C   ; g_logs
 0x6CC       EQ.C.pri                0x1
 0x6D4       JZER              jump_0015
 0x6DC       BREAK     
 0x6E0       STACK                 -0x2C
 0x6E8       CONST.pri            0x2C2C   ; arr_000
 0x6F0       ADDR.alt              -0x2C
 0x6F8       MOVS                   0x2C
 0x700       BREAK     
 0x704       PUSH.C                 0x7F
 0x70C       PUSH.C               0x2298   ; g_szLogFile
 0x714       PUSHADDR              -0x2C
 0x71C       PUSH.C                  0xC
 0x724       SYSREQ.C      get_localinfo
 0x72C       STACK                  0x10
 0x734       BREAK     
 0x738       PUSH.C                  0x0
 0x740       PUSH.C               0x2C58   ; str_024
 0x748       PUSH.C                 0x7F
 0x750       PUSH.C               0x2298   ; g_szLogFile
 0x758       PUSH.C                 0x10
 0x760       SYSREQ.C                add
 0x768       STACK                  0x14
 0x770       BREAK     
 0x774       PUSH.C               0x2298   ; g_szLogFile
 0x77C       PUSH.C                  0x4
 0x784       SYSREQ.C         dir_exists
 0x78C       STACK                   0x8
 0x794       NOT       
 0x798       JZER              jump_0016
 0x7A0       BREAK     
 0x7A4       PUSH.C               0x2298   ; g_szLogFile
 0x7AC       PUSH.C                  0x4
 0x7B4       SYSREQ.C              mkdir
 0x7BC       STACK                   0x8
 0x7C4       BREAK      ; target:jump_0016
 0x7C8       STACK                 -0x80
 0x7D0       ZERO.pri 
 0x7D4       ADDR.alt              -0xAC
 0x7DC       FILL                   0x80
 0x7E4       BREAK     
 0x7E8       PUSH.C                 0x1F
 0x7F0       PUSHADDR              -0xAC
 0x7F8       PUSH.C               0x2C68   ; str_025
 0x800       PUSH.C                  0xC
 0x808       SYSREQ.C           get_time
 0x810       STACK                  0x10
 0x818       BREAK     
 0x81C       PUSHADDR              -0xAC
 0x824       PUSH.C               0x2298   ; g_szLogFile
 0x82C       PUSH.C               0x2C8C   ; str_026
 0x834       PUSH.C                 0x7F
 0x83C       PUSH.C               0x2298   ; g_szLogFile
 0x844       PUSH.C                 0x14
 0x84C       SYSREQ.C             format
 0x854       STACK                  0x18
 0x85C       BREAK     
 0x860       LOAD.pri             0x2498   ; g_logdays
 0x868       CONST.alt               0x1
 0x870       JSLEQ             jump_0017
 0x878       BREAK     
 0x87C       PUSH.C                  0x0
 0x884       PUSH.C               0x2CE0   ; var_001
 0x88C       PUSH.C                  0x0
 0x894       PUSH.C               0x2CDC   ; var_000
 0x89C       PUSH.C                  0x0
 0x8A4       PUSH.C               0x2CB4   ; str_027
 0x8AC       PUSH.C           0x41200000
 0x8B4       PUSH.C           0x40400000
 0x8BC       PUSH.C                  0x8
 0x8C4       SYSREQ.C       random_float
 0x8CC       STACK                   0xC
 0x8D4       PUSH.pri 
 0x8D8       PUSH.C                 0x1C
 0x8E0       SYSREQ.C           set_task
 0x8E8       STACK                  0x20
 0x8F0       STACK                  0xAC ; target:jump_0017
 0x8F8       BREAK      ; target:jump_0015
 0x8FC       PUSH.C                  0x0
 0x904       JUMP              jump_0018
 0x90C       BREAK      ; target:jump_0023
 0x910       INC.S                  -0x4
 0x918       LOAD.S.pri             -0x4 ; target:jump_0018
 0x920       CONST.alt               0x6
 0x928       JSGEQ             jump_0019
 0x930       BREAK     
 0x934       CONST.alt            0x24A0   ; g_static_rnd
 0x93C       LOAD.S.pri             -0x4
 0x944       BOUNDS                  0xF
 0x94C       IDXADDR   
 0x950       PUSH.pri 
 0x954       PUSH.C                 0x7A
 0x95C       PUSH.C                 0x61
 0x964       PUSH.C                  0x8
 0x96C       SYSREQ.C         random_num
 0x974       STACK                   0xC
 0x97C       POP.alt   
 0x980       STOR.I   
 0x984       BREAK     
 0x988       PUSH.C                  0x0
 0x990       JUMP              jump_0020
 0x998       BREAK      ; target:jump_0022
 0x99C       INC.S                  -0x8
 0x9A4       LOAD.S.pri             -0x8 ; target:jump_0020
 0x9AC       CONST.alt              0x20
 0x9B4       JSGEQ             jump_0021
 0x9BC       BREAK     
 0x9C0       CONST.alt               0xC   ; g_a_RandCmd
 0x9C8       LOAD.S.pri             -0x8
 0x9D0       BOUNDS                 0x20
 0x9D8       IDXADDR   
 0x9DC       MOVE.alt 
 0x9E0       LOAD.I   
 0x9E4       ADD       
 0x9E8       PUSH.pri 
 0x9EC       LOAD.S.pri             -0x4
 0x9F4       BOUNDS                 0x3F
 0x9FC       POP.alt   
 0xA00       IDXADDR   
 0xA04       PUSH.pri 
 0xA08       CONST.alt            0x24A0   ; g_static_rnd
 0xA10       LOAD.S.pri             -0x4
 0xA18       BOUNDS                  0xF
 0xA20       LIDX     
 0xA24       POP.alt   
 0xA28       STOR.I   
 0xA2C       JUMP              jump_0022
 0xA34       STACK                   0x4 ; target:jump_0021
 0xA3C       JUMP              jump_0023
 0xA44       STACK                   0x4 ; target:jump_0019
 0xA4C       ZERO.pri 
 0xA50       RETN     

 0xA54       PROC                        ; form_rand_string
 0xA58       BREAK     
 0xA5C       BREAK     
 0xA60       PUSH.C                  0x6
 0xA68       JUMP              jump_0024
 0xA70       BREAK      ; target:jump_0026
 0xA74       INC.S                  -0x4
 0xA7C       LOAD.S.pri             -0x4 ; target:jump_0024
 0xA84       CONST.alt               0xC   ; g_a_RandCmd
 0xA8C       JSGEQ             jump_0025
 0xA94       BREAK     
 0xA98       CONST.alt               0xC   ; g_a_RandCmd
 0xAA0       LOAD.S.pri              0xC   ; g_a_RandCmd
 0xAA8       BOUNDS                 0x20
 0xAB0       IDXADDR   
 0xAB4       MOVE.alt 
 0xAB8       LOAD.I   
 0xABC       ADD       
 0xAC0       PUSH.pri 
 0xAC4       LOAD.S.pri             -0x4
 0xACC       BOUNDS                 0x3F
 0xAD4       POP.alt   
 0xAD8       IDXADDR   
 0xADC       PUSH.pri 
 0xAE0       PUSH.C                 0x7A
 0xAE8       PUSH.C                 0x61
 0xAF0       PUSH.C                  0x8
 0xAF8       SYSREQ.C         random_num
 0xB00       STACK                   0xC
 0xB08       POP.alt   
 0xB0C       STOR.I   
 0xB10       JUMP              jump_0026
 0xB18       STACK                   0x4 ; target:jump_0025
 0xB20       ZERO.pri 
 0xB24       RETN     

 0xB28       PROC                        ; client_disconnect
 0xB2C       BREAK     
 0xB30       BREAK     
 0xB34       PUSH.C                  0x0
 0xB3C       PUSH.S                  0xC
 0xB44       PUSH.C                  0x8
 0xB4C       SYSREQ.C        task_exists
 0xB54       STACK                   0xC
 0xB5C       JZER              jump_0027
 0xB64       BREAK     
 0xB68       PUSH.C                  0x0
 0xB70       PUSH.S                  0xC
 0xB78       PUSH.C                  0x8
 0xB80       SYSREQ.C        remove_task
 0xB88       STACK                   0xC
 0xB90       BREAK      ; target:jump_0027
 0xB94       PUSH.C                  0x0
 0xB9C       LOAD.S.pri              0xC   ; g_a_RandCmd
 0xBA4       ADD.C                  0x40
 0xBAC       PUSH.pri 
 0xBB0       PUSH.C                  0x8
 0xBB8       SYSREQ.C        task_exists
 0xBC0       STACK                   0xC
 0xBC8       JZER              jump_0028
 0xBD0       BREAK     
 0xBD4       PUSH.C                  0x0
 0xBDC       LOAD.S.pri              0xC   ; g_a_RandCmd
 0xBE4       ADD.C                  0x40
 0xBEC       PUSH.pri 
 0xBF0       PUSH.C                  0x8
 0xBF8       SYSREQ.C        remove_task
 0xC00       STACK                   0xC
 0xC08       ZERO.pri   ; target:jump_0028
 0xC0C       RETN     

 0xC10       PROC                        ; client_putinserver
 0xC14       BREAK     
 0xC18       BREAK     
 0xC1C       PUSH.S                  0xC
 0xC24       PUSH.C                  0x4
 0xC2C       SYSREQ.C        is_user_bot
 0xC34       STACK                   0x8
 0xC3C       JNZ               jump_0029
 0xC44       PUSH.S                  0xC
 0xC4C       PUSH.C                  0x4
 0xC54       SYSREQ.C       is_user_hltv
 0xC5C       STACK                   0x8
 0xC64       JNZ               jump_0029
 0xC6C       ZERO.pri 
 0xC70       JUMP              jump_0031
 0xC78       CONST.pri               0x1 ; target:jump_0029
 0xC80       JZER              jump_0032 ; target:jump_0031
 0xC88       BREAK     
 0xC8C       ZERO.pri 
 0xC90       RETN     
 0xC94       BREAK      ; target:jump_0032
 0xC98       CONST.alt            0x2190   ; g_i_AliasNum
 0xCA0       LOAD.S.pri              0xC   ; g_a_RandCmd
 0xCA8       BOUNDS                 0x20
 0xCB0       IDXADDR   
 0xCB4       MOVE.alt 
 0xCB8       ZERO.pri 
 0xCBC       STOR.I   
 0xCC0       BREAK     
 0xCC4       CONST.alt            0x2214   ; g_i_Warnings
 0xCCC       LOAD.S.pri              0xC   ; g_a_RandCmd
 0xCD4       BOUNDS                 0x20
 0xCDC       IDXADDR   
 0xCE0       MOVE.alt 
 0xCE4       ZERO.pri 
 0xCE8       STOR.I   
 0xCEC       BREAK     
 0xCF0       PUSH.C                  0x0
 0xCF8       PUSH.C               0x2CE0   ; var_001
 0xD00       PUSH.C                  0x0
 0xD08       PUSH.C               0x2CDC   ; var_000
 0xD10       PUSH.S                  0xC
 0xD18       PUSH.C               0x2CE4   ; str_028
 0xD20       PUSH.C           0x41A00000
 0xD28       PUSH.C           0x41100000
 0xD30       PUSH.C                  0x8
 0xD38       SYSREQ.C       random_float
 0xD40       STACK                   0xC
 0xD48       PUSH.pri 
 0xD4C       PUSH.C                 0x1C
 0xD54       SYSREQ.C           set_task
 0xD5C       STACK                  0x20
 0xD64       BREAK     
 0xD68       ZERO.pri 
 0xD6C       RETN     

 0xD70       PROC                        ; start_check_aliases
 0xD74       BREAK     
 0xD78       BREAK     
 0xD7C       PUSH.S                  0xC
 0xD84       PUSH.C                  0x4   ; g_a_Alias_levels
 0xD8C       CALL          form_rand_string
 0xD94       BREAK     
 0xD98       LOAD.S.pri              0xC   ; g_a_RandCmd
 0xDA0       ADD.C                  0x40
 0xDA8       PUSH.pri 
 0xDAC       PUSH.C                  0x4   ; g_a_Alias_levels
 0xDB4       CALL          check_aliases
 0xDBC       ZERO.pri 
 0xDC0       RETN     

 0xDC4       PROC                        ; check_aliases
 0xDC8       BREAK     
 0xDCC       BREAK     
 0xDD0       LOAD.S.pri              0xC   ; g_a_RandCmd
 0xDD8       ADD.C                 -0x40
 0xDE0       STOR.S.pri              0xC   ; g_a_RandCmd
 0xDE8       BREAK     
 0xDEC       CONST.alt            0x2190   ; g_i_AliasNum
 0xDF4       LOAD.S.pri              0xC   ; g_a_RandCmd
 0xDFC       BOUNDS                 0x20
 0xE04       LIDX     
 0xE08       PUSH.pri 
 0xE0C       PUSH                    0x0
 0xE14       PUSH.C                  0x4
 0xE1C       SYSREQ.C          ArraySize
 0xE24       STACK                   0x8
 0xE2C       POP.alt   
 0xE30       JSGRTR            jump_0033
 0xE38       BREAK     
 0xE3C       PUSH.C                  0x0
 0xE44       PUSH.C               0x2CE0   ; var_001
 0xE4C       PUSH.C                  0x0
 0xE54       PUSH.C               0x2CDC   ; var_000
 0xE5C       PUSH.S                  0xC
 0xE64       PUSH.C               0x2D34   ; str_029
 0xE6C       PUSH.C           0x44160000
 0xE74       PUSH.C                 0x1C
 0xE7C       SYSREQ.C           set_task
 0xE84       STACK                  0x20
 0xE8C       BREAK     
 0xE90       CONST.alt            0x2190   ; g_i_AliasNum
 0xE98       LOAD.S.pri              0xC   ; g_a_RandCmd
 0xEA0       BOUNDS                 0x20
 0xEA8       IDXADDR   
 0xEAC       MOVE.alt 
 0xEB0       ZERO.pri 
 0xEB4       STOR.I   
 0xEB8       BREAK     
 0xEBC       CONST.pri               0x1
 0xEC4       RETN     
 0xEC8       BREAK      ; target:jump_0033
 0xECC       STACK                -0x100
 0xED4       ZERO.pri 
 0xED8       ADDR.alt             -0x100
 0xEE0       FILL                  0x100
 0xEE8       BREAK     
 0xEEC       PUSH.C                 0x3F
 0xEF4       PUSHADDR             -0x100
 0xEFC       CONST.alt            0x2190   ; g_i_AliasNum
 0xF04       LOAD.S.pri              0xC   ; g_a_RandCmd
 0xF0C       BOUNDS                 0x20
 0xF14       LIDX     
 0xF18       PUSH.pri 
 0xF1C       PUSH                    0x0
 0xF24       PUSH.C                 0x10
 0xF2C       SYSREQ.C      ArrayGetString
 0xF34       STACK                  0x14
 0xF3C       BREAK     
 0xF40       CONST.alt               0xC   ; g_a_RandCmd
 0xF48       LOAD.S.pri              0xC   ; g_a_RandCmd
 0xF50       BOUNDS                 0x20
 0xF58       IDXADDR   
 0xF5C       MOVE.alt 
 0xF60       LOAD.I   
 0xF64       ADD       
 0xF68       PUSH.pri 
 0xF6C       PUSH.S                  0xC
 0xF74       PUSH.C                  0x8
 0xF7C       SYSREQ.C         client_cmd
 0xF84       STACK                   0xC
 0xF8C       BREAK     
 0xF90       PUSHADDR             -0x100
 0xF98       PUSH.S                  0xC
 0xFA0       PUSH.C                  0x8
 0xFA8       SYSREQ.C         client_cmd
 0xFB0       STACK                   0xC
 0xFB8       BREAK     
 0xFBC       ZERO.pri 
 0xFC0       STACK                 0x100
 0xFC8       RETN     
 0xFCC       BREAK     
 0xFD0       ZERO.pri 
 0xFD4       RETN     

 0xFD8       PROC                        ; client_command
 0xFDC       BREAK     
 0xFE0       BREAK     
 0xFE4       PUSH.S                  0xC
 0xFEC       PUSH.C                  0x4
 0xFF4       SYSREQ.C      is_user_connected
 0xFFC       STACK                   0x8
 0x1004      NOT       
 0x1008      JNZ               jump_0034
 0x1010      PUSH.S                  0xC
 0x1018      PUSH.C                  0x4
 0x1020      SYSREQ.C        is_user_bot
 0x1028      STACK                   0x8
 0x1030      JNZ               jump_0034
 0x1038      PUSH.S                  0xC
 0x1040      PUSH.C                  0x4
 0x1048      SYSREQ.C       is_user_hltv
 0x1050      STACK                   0x8
 0x1058      JNZ               jump_0034
 0x1060      ZERO.pri 
 0x1064      JUMP              jump_0037
 0x106C      CONST.pri               0x1 ; target:jump_0034
 0x1074      JZER              jump_0038 ; target:jump_0037
 0x107C      BREAK     
 0x1080      ZERO.pri 
 0x1084      RETN     
 0x1088      BREAK      ; target:jump_0038
 0x108C      PUSH                    0x0
 0x1094      PUSH.C                  0x4
 0x109C      SYSREQ.C          ArraySize
 0x10A4      STACK                   0x8
 0x10AC      NOT       
 0x10B0      JZER              jump_0039
 0x10B8      BREAK     
 0x10BC      ZERO.pri 
 0x10C0      RETN     
 0x10C4      BREAK      ; target:jump_0039
 0x10C8      STACK                -0x100
 0x10D0      ZERO.pri 
 0x10D4      ADDR.alt             -0x100
 0x10DC      FILL                  0x100
 0x10E4      STACK                -0x100
 0x10EC      ZERO.pri 
 0x10F0      ADDR.alt             -0x200
 0x10F8      FILL                  0x100
 0x1100      BREAK     
 0x1104      CONST.alt            0x2190   ; g_i_AliasNum
 0x110C      LOAD.S.pri              0xC   ; g_a_RandCmd
 0x1114      BOUNDS                 0x20
 0x111C      LIDX     
 0x1120      PUSH.pri 
 0x1124      PUSH                    0x0
 0x112C      PUSH.C                  0x4
 0x1134      SYSREQ.C          ArraySize
 0x113C      STACK                   0x8
 0x1144      POP.alt   
 0x1148      JNEQ              jump_0040
 0x1150      BREAK     
 0x1154      CONST.alt            0x2190   ; g_i_AliasNum
 0x115C      LOAD.S.pri              0xC   ; g_a_RandCmd
 0x1164      BOUNDS                 0x20
 0x116C      IDXADDR   
 0x1170      PUSH.pri 
 0x1174      PUSH                    0x0
 0x117C      PUSH.C                  0x4
 0x1184      SYSREQ.C          ArraySize
 0x118C      STACK                   0x8
 0x1194      MOVE.alt 
 0x1198      CONST.pri               0x1
 0x11A0      SUB.alt   
 0x11A4      POP.alt   
 0x11A8      STOR.I   
 0x11AC      BREAK      ; target:jump_0040
 0x11B0      PUSH.C                 0x3F
 0x11B8      PUSHADDR             -0x200
 0x11C0      CONST.alt            0x2190   ; g_i_AliasNum
 0x11C8      LOAD.S.pri              0xC   ; g_a_RandCmd
 0x11D0      BOUNDS                 0x20
 0x11D8      LIDX     
 0x11DC      PUSH.pri 
 0x11E0      PUSH                    0x0
 0x11E8      PUSH.C                 0x10
 0x11F0      SYSREQ.C      ArrayGetString
 0x11F8      STACK                  0x14
 0x1200      BREAK     
 0x1204      PUSH.C                 0x3F
 0x120C      PUSHADDR             -0x100
 0x1214      PUSH.C                  0x0
 0x121C      PUSH.C                  0xC
 0x1224      SYSREQ.C          read_argv
 0x122C      STACK                  0x10
 0x1234      BREAK     
 0x1238      PUSH.C                  0x0
 0x1240      PUSHADDR             -0x100
 0x1248      PUSHADDR             -0x200
 0x1250      PUSH.C                  0xC
 0x1258      SYSREQ.C              equal
 0x1260      STACK                  0x10
 0x1268      JZER              jump_0041
 0x1270      BREAK     
 0x1274      CONST.alt            0x2190   ; g_i_AliasNum
 0x127C      LOAD.S.pri              0xC   ; g_a_RandCmd
 0x1284      BOUNDS                 0x20
 0x128C      LIDX     
 0x1290      PUSH.pri 
 0x1294      PUSH                    0x0
 0x129C      PUSH.C                  0x4
 0x12A4      SYSREQ.C          ArraySize
 0x12AC      STACK                   0x8
 0x12B4      POP.alt   
 0x12B8      JSLEQ             jump_0042
 0x12C0      BREAK     
 0x12C4      CONST.alt            0x2190   ; g_i_AliasNum
 0x12CC      LOAD.S.pri              0xC   ; g_a_RandCmd
 0x12D4      BOUNDS                 0x20
 0x12DC      IDXADDR   
 0x12E0      PUSH.pri 
 0x12E4      LOAD.I   
 0x12E8      SWAP.pri 
 0x12EC      INC.I     
 0x12F0      POP.pri   
 0x12F4      BREAK      ; target:jump_0042
 0x12F8      CONST.alt            0x2214   ; g_i_Warnings
 0x1300      LOAD.S.pri              0xC   ; g_a_RandCmd
 0x1308      BOUNDS                 0x20
 0x1310      IDXADDR   
 0x1314      MOVE.alt 
 0x1318      ZERO.pri 
 0x131C      STOR.I   
 0x1320      BREAK     
 0x1324      PUSH.C                  0x0
 0x132C      LOAD.S.pri              0xC   ; g_a_RandCmd
 0x1334      ADD.C                  0x40
 0x133C      PUSH.pri 
 0x1340      PUSH.C                  0x8
 0x1348      SYSREQ.C        remove_task
 0x1350      STACK                   0xC
 0x1358      BREAK     
 0x135C      PUSH.C                  0x0
 0x1364      PUSH.C               0x2CE0   ; var_001
 0x136C      PUSH.C                  0x0
 0x1374      PUSH.C               0x2CDC   ; var_000
 0x137C      LOAD.S.pri              0xC   ; g_a_RandCmd
 0x1384      ADD.C                  0x40
 0x138C      PUSH.pri 
 0x1390      PUSH.C               0x2D84   ; str_030
 0x1398      PUSH.C           0x3F800000
 0x13A0      PUSH.C                 0x1C
 0x13A8      SYSREQ.C           set_task
 0x13B0      STACK                  0x20
 0x13B8      BREAK     
 0x13BC      CONST.pri               0x1
 0x13C4      STACK                 0x200
 0x13CC      RETN     
 0x13D0      BREAK      ; target:jump_0041
 0x13D4      PUSH.C                  0x0
 0x13DC      PUSHADDR             -0x100
 0x13E4      CONST.alt               0xC   ; g_a_RandCmd
 0x13EC      LOAD.S.pri              0xC   ; g_a_RandCmd
 0x13F4      BOUNDS                 0x20
 0x13FC      IDXADDR   
 0x1400      MOVE.alt 
 0x1404      LOAD.I   
 0x1408      ADD       
 0x140C      PUSH.pri 
 0x1410      PUSH.C                  0xC
 0x1418      SYSREQ.C              equal
 0x1420      STACK                  0x10
 0x1428      JZER              jump_0043
 0x1430      BREAK     
 0x1434      CONST.alt            0x2214   ; g_i_Warnings
 0x143C      LOAD.S.pri              0xC   ; g_a_RandCmd
 0x1444      BOUNDS                 0x20
 0x144C      IDXADDR   
 0x1450      INC.I     
 0x1454      LOAD.I   
 0x1458      MOVE.alt 
 0x145C      CONST.pri               0x5
 0x1464      JSGEQ             jump_0044
 0x146C      BREAK     
 0x1470      PUSH.S                  0xC
 0x1478      PUSH.C                  0x4   ; g_a_Alias_levels
 0x1480      CALL              punisment
 0x1488      JUMP              jump_0045
 0x1490      BREAK      ; target:jump_0044
 0x1494      PUSH.C                  0x0
 0x149C      PUSH.C               0x2CE0   ; var_001
 0x14A4      PUSH.C                  0x0
 0x14AC      PUSH.C               0x2CDC   ; var_000
 0x14B4      LOAD.S.pri              0xC   ; g_a_RandCmd
 0x14BC      ADD.C                  0x40
 0x14C4      PUSH.pri 
 0x14C8      PUSH.C               0x2DBC   ; str_031
 0x14D0      PUSH.C           0x3F000000
 0x14D8      PUSH.C                 0x1C
 0x14E0      SYSREQ.C           set_task
 0x14E8      STACK                  0x20
 0x14F0      BREAK      ; target:jump_0045
 0x14F4      CONST.pri               0x1
 0x14FC      STACK                 0x200
 0x1504      RETN     
 0x1508      BREAK      ; target:jump_0043
 0x150C      PUSH.C                  0x5
 0x1514      PUSH.C               0x24A0   ; g_static_rnd
 0x151C      PUSHADDR             -0x100
 0x1524      PUSH.C                  0xC
 0x152C      SYSREQ.C              equal
 0x1534      STACK                  0x10
 0x153C      JZER              jump_0046
 0x1544      BREAK     
 0x1548      CONST.pri               0x1
 0x1550      STACK                 0x200
 0x1558      RETN     
 0x155C      BREAK      ; target:jump_0046
 0x1560      ZERO.pri 
 0x1564      STACK                 0x200
 0x156C      RETN     
 0x1570      STACK                 0x200
 0x1578      BREAK     
 0x157C      ZERO.pri 
 0x1580      RETN     

 0x1584      PROC                        ; punisment
 0x1588      BREAK     
 0x158C      BREAK     
 0x1590      STACK                 -0x20
 0x1598      ZERO.pri 
 0x159C      ADDR.alt              -0x20
 0x15A4      FILL                   0x20
 0x15AC      STACK                 -0x80
 0x15B4      ZERO.pri 
 0x15B8      ADDR.alt              -0xA0
 0x15C0      FILL                   0x80
 0x15C8      STACK                -0x100
 0x15D0      ZERO.pri 
 0x15D4      ADDR.alt             -0x1A0
 0x15DC      FILL                  0x100
 0x15E4      STACK                -0x100
 0x15EC      ZERO.pri 
 0x15F0      ADDR.alt             -0x2A0
 0x15F8      FILL                  0x100
 0x1600      BREAK     
 0x1604      STACK                -0x400
 0x160C      ZERO.pri 
 0x1610      ADDR.alt             -0x6A0
 0x1618      FILL                  0x400
 0x1620      STACK                -0x100
 0x1628      ZERO.pri 
 0x162C      ADDR.alt             -0x7A0
 0x1634      FILL                  0x100
 0x163C      STACK                -0x100
 0x1644      ZERO.pri 
 0x1648      ADDR.alt             -0x8A0
 0x1650      FILL                  0x100
 0x1658      STACK                 -0x40
 0x1660      ZERO.pri 
 0x1664      ADDR.alt             -0x8E0
 0x166C      FILL                   0x40
 0x1674      BREAK     
 0x1678      PUSH.C                  0x0
 0x1680      BREAK     
 0x1684      CONST.alt            0x2190   ; g_i_AliasNum
 0x168C      LOAD.S.pri              0xC   ; g_a_RandCmd
 0x1694      BOUNDS                 0x20
 0x169C      LIDX     
 0x16A0      PUSH.pri 
 0x16A4      PUSH                    0x4   ; g_a_Alias_levels
 0x16AC      PUSH.C                  0x8
 0x16B4      SYSREQ.C       ArrayGetCell
 0x16BC      STACK                   0xC
 0x16C4      STOR.S.pri           -0x8E4
 0x16CC      BREAK     
 0x16D0      PUSH.C                 0x3F
 0x16D8      PUSHADDR             -0x8A0
 0x16E0      CONST.alt            0x2190   ; g_i_AliasNum
 0x16E8      LOAD.S.pri              0xC   ; g_a_RandCmd
 0x16F0      BOUNDS                 0x20
 0x16F8      LIDX     
 0x16FC      PUSH.pri 
 0x1700      PUSH                    0x0
 0x1708      PUSH.C                 0x10
 0x1710      SYSREQ.C      ArrayGetString
 0x1718      STACK                  0x14
 0x1720      BREAK     
 0x1724      STACK                 -0x40
 0x172C      ZERO.pri 
 0x1730      ADDR.alt             -0x924
 0x1738      FILL                   0x40
 0x1740      BREAK     
 0x1744      PUSHADDR             -0x8E4
 0x174C      PUSH.C               0x2DF4   ; str_032
 0x1754      PUSH.C                  0xF
 0x175C      PUSHADDR             -0x924
 0x1764      PUSH.C                 0x10
 0x176C      SYSREQ.C           formatex
 0x1774      STACK                  0x14
 0x177C      BREAK     
 0x1780      PUSHADDR             -0x924
 0x1788      PUSH                    0x8   ; g_t_Alias_stuff
 0x1790      PUSH.C                  0x8
 0x1798      SYSREQ.C      TrieKeyExists
 0x17A0      STACK                   0xC
 0x17A8      NOT       
 0x17AC      JZER              jump_0047
 0x17B4      BREAK     
 0x17B8      LOAD.pri             0x249C   ; g_logs
 0x17C0      EQ.C.pri                0x1
 0x17C8      JZER              jump_0048
 0x17D0      BREAK     
 0x17D4      PUSHADDR             -0x8E4
 0x17DC      PUSH.C               0x2E1C   ; str_033
 0x17E4      PUSH.C               0x2298   ; g_szLogFile
 0x17EC      PUSH.C                  0xC
 0x17F4      SYSREQ.C        log_to_file
 0x17FC      STACK                  0x10
 0x1804      BREAK      ; target:jump_0048
 0x1808      LOAD.pri             0x249C   ; g_logs
 0x1810      EQ.C.pri                0x2
 0x1818      JZER              jump_0049
 0x1820      BREAK     
 0x1824      PUSHADDR             -0x8E4
 0x182C      PUSH.C               0x2EC0   ; str_034
 0x1834      PUSH.C                  0x8
 0x183C      SYSREQ.C            log_amx
 0x1844      STACK                   0xC
 0x184C      BREAK      ; target:jump_0049
 0x1850      ADDR.alt             -0x7A0
 0x1858      CONST.pri            0x2F64   ; arr_001
 0x1860      MOVS                   0x3C
 0x1868      JUMP              jump_0050
 0x1870      BREAK      ; target:jump_0047
 0x1874      PUSH.C                 0x3F
 0x187C      PUSHADDR             -0x7A0
 0x1884      PUSHADDR             -0x924
 0x188C      PUSH                    0x8   ; g_t_Alias_stuff
 0x1894      PUSH.C                 0x10
 0x189C      SYSREQ.C      TrieGetString
 0x18A4      STACK                  0x14
 0x18AC      BREAK      ; target:jump_0050
 0x18B0      PUSHADDR             -0x8E4
 0x18B8      PUSH.C               0x2FA0   ; str_035
 0x18C0      PUSH.C                  0xF
 0x18C8      PUSHADDR             -0x924
 0x18D0      PUSH.C                 0x10
 0x18D8      SYSREQ.C           formatex
 0x18E0      STACK                  0x14
 0x18E8      BREAK     
 0x18EC      PUSHADDR             -0x924
 0x18F4      PUSH                    0x8   ; g_t_Alias_stuff
 0x18FC      PUSH.C                  0x8
 0x1904      SYSREQ.C      TrieKeyExists
 0x190C      STACK                   0xC
 0x1914      NOT       
 0x1918      JZER              jump_0051
 0x1920      BREAK     
 0x1924      LOAD.pri             0x249C   ; g_logs
 0x192C      EQ.C.pri                0x1
 0x1934      JZER              jump_0052
 0x193C      BREAK     
 0x1940      PUSHADDR             -0x8E4
 0x1948      PUSH.C               0x2FC8   ; str_036
 0x1950      PUSH.C               0x2298   ; g_szLogFile
 0x1958      PUSH.C                  0xC
 0x1960      SYSREQ.C        log_to_file
 0x1968      STACK                  0x10
 0x1970      BREAK      ; target:jump_0052
 0x1974      LOAD.pri             0x249C   ; g_logs
 0x197C      EQ.C.pri                0x2
 0x1984      JZER              jump_0053
 0x198C      BREAK     
 0x1990      PUSHADDR             -0x8E4
 0x1998      PUSH.C               0x307C   ; str_037
 0x19A0      PUSH.C                  0x8
 0x19A8      SYSREQ.C            log_amx
 0x19B0      STACK                   0xC
 0x19B8      BREAK      ; target:jump_0053
 0x19BC      ADDR.alt             -0x6A0
 0x19C4      CONST.pri            0x3130   ; arr_002
 0x19CC      MOVS                   0x44
 0x19D4      JUMP              jump_0054
 0x19DC      BREAK      ; target:jump_0051
 0x19E0      PUSH.C                 0x7F
 0x19E8      PUSHADDR             -0x6A0
 0x19F0      PUSHADDR             -0x924
 0x19F8      PUSH                    0x8   ; g_t_Alias_stuff
 0x1A00      PUSH.C                 0x10
 0x1A08      SYSREQ.C      TrieGetString
 0x1A10      STACK                  0x14
 0x1A18      BREAK      ; target:jump_0054
 0x1A1C      PUSHADDR             -0x8E4
 0x1A24      PUSH.C               0x3174   ; str_038
 0x1A2C      PUSH.C                  0xF
 0x1A34      PUSHADDR             -0x924
 0x1A3C      PUSH.C                 0x10
 0x1A44      SYSREQ.C           formatex
 0x1A4C      STACK                  0x14
 0x1A54      BREAK     
 0x1A58      PUSHADDR             -0x924
 0x1A60      PUSH                    0x8   ; g_t_Alias_stuff
 0x1A68      PUSH.C                  0x8
 0x1A70      SYSREQ.C      TrieKeyExists
 0x1A78      STACK                   0xC
 0x1A80      NOT       
 0x1A84      JZER              jump_0055
 0x1A8C      BREAK     
 0x1A90      LOAD.pri             0x249C   ; g_logs
 0x1A98      EQ.C.pri                0x1
 0x1AA0      JZER              jump_0056
 0x1AA8      BREAK     
 0x1AAC      PUSHADDR             -0x8E4
 0x1AB4      PUSH.C               0x3194   ; str_039
 0x1ABC      PUSH.C               0x2298   ; g_szLogFile
 0x1AC4      PUSH.C                  0xC
 0x1ACC      SYSREQ.C        log_to_file
 0x1AD4      STACK                  0x10
 0x1ADC      BREAK      ; target:jump_0056
 0x1AE0      LOAD.pri             0x249C   ; g_logs
 0x1AE8      EQ.C.pri                0x2
 0x1AF0      JZER              jump_0057
 0x1AF8      BREAK     
 0x1AFC      PUSHADDR             -0x8E4
 0x1B04      PUSH.C               0x3238   ; str_040
 0x1B0C      PUSH.C                  0x8
 0x1B14      SYSREQ.C            log_amx
 0x1B1C      STACK                   0xC
 0x1B24      BREAK      ; target:jump_0057
 0x1B28      ADDR.alt             -0x8E0
 0x1B30      CONST.pri            0x32DC   ; arr_003
 0x1B38      MOVS                   0x10
 0x1B40      JUMP              jump_0058
 0x1B48      BREAK      ; target:jump_0055
 0x1B4C      PUSH.C                  0xF
 0x1B54      PUSHADDR             -0x8E0
 0x1B5C      PUSHADDR             -0x924
 0x1B64      PUSH                    0x8   ; g_t_Alias_stuff
 0x1B6C      PUSH.C                 0x10
 0x1B74      SYSREQ.C      TrieGetString
 0x1B7C      STACK                  0x14
 0x1B84      BREAK      ; target:jump_0058
 0x1B88      PUSH.S                  0xC
 0x1B90      PUSH.C                  0x4
 0x1B98      SYSREQ.C      get_user_userid
 0x1BA0      STACK                   0x8
 0x1BA8      HEAP                    0x4
 0x1BB0      STOR.I   
 0x1BB4      PUSH.alt 
 0x1BB8      PUSH.C               0x32EC   ; str_041
 0x1BC0      PUSH.C                  0x7
 0x1BC8      PUSHADDR              -0x20
 0x1BD0      PUSH.C                 0x10
 0x1BD8      SYSREQ.C             format
 0x1BE0      STACK                  0x14
 0x1BE8      HEAP                   -0x4
 0x1BF0      BREAK     
 0x1BF4      PUSH.C                 0x3F
 0x1BFC      PUSHADDR             -0x1A0
 0x1C04      PUSH.C               0x32FC   ; str_042
 0x1C0C      PUSH.S                  0xC
 0x1C14      PUSH.C                 0x10
 0x1C1C      SYSREQ.C      get_user_info
 0x1C24      STACK                  0x14
 0x1C2C      BREAK     
 0x1C30      PUSH.C                  0x0
 0x1C38      PUSH.C                 0x1F
 0x1C40      PUSHADDR              -0xA0
 0x1C48      PUSH.S                  0xC
 0x1C50      PUSH.C                 0x10
 0x1C58      SYSREQ.C        get_user_ip
 0x1C60      STACK                  0x14
 0x1C68      BREAK     
 0x1C6C      PUSH.C                 0x3F
 0x1C74      PUSHADDR             -0x2A0
 0x1C7C      PUSH.S                  0xC
 0x1C84      PUSH.C                  0xC
 0x1C8C      SYSREQ.C      get_user_authid
 0x1C94      STACK                  0x10
 0x1C9C      BREAK     
 0x1CA0      PUSHADDR              -0x20
 0x1CA8      PUSH.C               0x3310   ; str_043
 0x1CB0      PUSH.C                0x100
 0x1CB8      PUSHADDR             -0x6A0
 0x1CC0      PUSH.C                 0x10
 0x1CC8      CALL            replace_all
 0x1CD0      BREAK     
 0x1CD4      PUSHADDR             -0x8E0
 0x1CDC      PUSH.C               0x3334   ; str_044
 0x1CE4      PUSH.C                0x100
 0x1CEC      PUSHADDR             -0x6A0
 0x1CF4      PUSH.C                 0x10
 0x1CFC      CALL            replace_all
 0x1D04      BREAK     
 0x1D08      PUSHADDR              -0xA0
 0x1D10      PUSH.C               0x3350   ; str_045
 0x1D18      PUSH.C                0x100
 0x1D20      PUSHADDR             -0x6A0
 0x1D28      PUSH.C                 0x10
 0x1D30      CALL            replace_all
 0x1D38      BREAK     
 0x1D3C      PUSHADDR             -0x2A0
 0x1D44      PUSH.C               0x3364   ; str_046
 0x1D4C      PUSH.C                0x100
 0x1D54      PUSHADDR             -0x6A0
 0x1D5C      PUSH.C                 0x10
 0x1D64      CALL            replace_all
 0x1D6C      BREAK     
 0x1D70      PUSHADDR             -0x7A0
 0x1D78      PUSH.C               0x3380   ; str_047
 0x1D80      PUSH.C                0x100
 0x1D88      PUSHADDR             -0x6A0
 0x1D90      PUSH.C                 0x10
 0x1D98      CALL            replace_all
 0x1DA0      BREAK     
 0x1DA4      PUSHADDR             -0x1A0
 0x1DAC      PUSH.C               0x33A4   ; str_048
 0x1DB4      PUSH.C                0x100
 0x1DBC      PUSHADDR             -0x6A0
 0x1DC4      PUSH.C                 0x10
 0x1DCC      CALL            replace_all
 0x1DD4      BREAK     
 0x1DD8      PUSHADDR             -0x6A0
 0x1DE0      PUSH.C                  0x4
 0x1DE8      SYSREQ.C         server_cmd
 0x1DF0      STACK                   0x8
 0x1DF8      BREAK     
 0x1DFC      PUSHADDR             -0x6A0
 0x1E04      PUSH.C                  0x4
 0x1E0C      SYSREQ.C            log_amx
 0x1E14      STACK                   0x8
 0x1E1C      BREAK     
 0x1E20      LOAD.pri             0x249C   ; g_logs
 0x1E28      EQ.C.pri                0x1
 0x1E30      JZER              jump_0059
 0x1E38      BREAK     
 0x1E3C      PUSHADDR             -0x8E4
 0x1E44      PUSHADDR             -0x8A0
 0x1E4C      PUSHADDR              -0x20
 0x1E54      PUSHADDR              -0xA0
 0x1E5C      PUSHADDR             -0x1A0
 0x1E64      PUSH.C               0x33C0   ; str_049
 0x1E6C      PUSH.C               0x2298   ; g_szLogFile
 0x1E74      PUSH.C                 0x1C
 0x1E7C      SYSREQ.C        log_to_file
 0x1E84      STACK                  0x20
 0x1E8C      BREAK      ; target:jump_0059
 0x1E90      LOAD.pri             0x249C   ; g_logs
 0x1E98      EQ.C.pri                0x2
 0x1EA0      JZER              jump_0060
 0x1EA8      BREAK     
 0x1EAC      PUSHADDR             -0x8E4
 0x1EB4      PUSHADDR             -0x8A0
 0x1EBC      PUSHADDR              -0x20
 0x1EC4      PUSHADDR              -0xA0
 0x1ECC      PUSHADDR             -0x1A0
 0x1ED4      PUSH.C               0x348C   ; str_050
 0x1EDC      PUSH.C                 0x18
 0x1EE4      SYSREQ.C            log_amx
 0x1EEC      STACK                  0x1C
 0x1EF4      STACK                 0x924 ; target:jump_0060
 0x1EFC      ZERO.pri 
 0x1F00      RETN     

 0x1F04      PROC                        ; clear_log
 0x1F08      BREAK     
 0x1F0C      BREAK     
 0x1F10      STACK                 -0x2C
 0x1F18      CONST.pri            0x3558   ; arr_004
 0x1F20      ADDR.alt              -0x2C
 0x1F28      MOVS                   0x2C
 0x1F30      BREAK     
 0x1F34      STACK                -0x200
 0x1F3C      ZERO.pri 
 0x1F40      ADDR.alt             -0x22C
 0x1F48      FILL                  0x200
 0x1F50      BREAK     
 0x1F54      PUSH.C                 0x7F
 0x1F5C      PUSHADDR             -0x22C
 0x1F64      PUSHADDR              -0x2C
 0x1F6C      PUSH.C                  0xC
 0x1F74      SYSREQ.C      get_localinfo
 0x1F7C      STACK                  0x10
 0x1F84      BREAK     
 0x1F88      PUSH.C                  0x0
 0x1F90      PUSH.C               0x3584   ; str_051
 0x1F98      PUSH.C                 0x7F
 0x1FA0      PUSHADDR             -0x22C
 0x1FA8      PUSH.C                 0x10
 0x1FB0      SYSREQ.C                add
 0x1FB8      STACK                  0x14
 0x1FC0      BREAK     
 0x1FC4      STACK                 -0x40
 0x1FCC      ZERO.pri 
 0x1FD0      ADDR.alt             -0x26C
 0x1FD8      FILL                   0x40
 0x1FE0      BREAK     
 0x1FE4      STACK                  -0x4
 0x1FEC      PUSH.C                  0xF
 0x1FF4      PUSHADDR             -0x26C
 0x1FFC      PUSHADDR             -0x22C
 0x2004      PUSH.C                  0xC
 0x200C      SYSREQ.C           open_dir
 0x2014      STACK                  0x10
 0x201C      STOR.S.pri           -0x270
 0x2024      BREAK     
 0x2028      LOAD.S.pri           -0x270
 0x2030      JZER              jump_0061
 0x2038      BREAK     
 0x203C      BREAK      ; target:jump_0065
 0x2040      PUSH.C                  0xF
 0x2048      PUSHADDR             -0x26C
 0x2050      PUSH.S               -0x270
 0x2058      PUSH.C                  0xC
 0x2060      SYSREQ.C          next_file
 0x2068      STACK                  0x10
 0x2070      JZER              jump_0061
 0x2078      BREAK     
 0x207C      PUSH.C                 -0x1
 0x2084      PUSH.C               0x3594   ; str_052
 0x208C      PUSHADDR             -0x26C
 0x2094      PUSH.C                  0xC
 0x209C      SYSREQ.C         parse_time
 0x20A4      STACK                  0x10
 0x20AC      MOVE.alt 
 0x20B0      ZERO.pri 
 0x20B4      JSGEQ             jump_0063
 0x20BC      BREAK     
 0x20C0      PUSH.C                 -0x1
 0x20C8      PUSH.C               0x35C8   ; str_053
 0x20D0      PUSHADDR             -0x26C
 0x20D8      PUSH.C                  0xC
 0x20E0      SYSREQ.C         parse_time
 0x20E8      STACK                  0x10
 0x20F0      PUSH.pri 
 0x20F4      PUSH.C                  0x0
 0x20FC      PUSH.C                  0x4
 0x2104      SYSREQ.C        get_systime
 0x210C      STACK                   0x8
 0x2114      PUSH.pri 
 0x2118      LOAD.pri             0x2498   ; g_logdays
 0x2120      SMUL.C                 0x3C
 0x2128      SMUL.C                 0x3C
 0x2130      SMUL.C                 0x18
 0x2138      POP.alt   
 0x213C      SUB.alt   
 0x2140      POP.alt   
 0x2144      JSLEQ             jump_0063
 0x214C      BREAK     
 0x2150      STACK                -0x140
 0x2158      ZERO.pri 
 0x215C      ADDR.alt             -0x3B0
 0x2164      FILL                  0x140
 0x216C      BREAK     
 0x2170      PUSHADDR             -0x26C
 0x2178      PUSHADDR             -0x22C
 0x2180      PUSH.C               0x35FC   ; str_054
 0x2188      PUSH.C                 0x50
 0x2190      PUSHADDR             -0x3B0
 0x2198      PUSH.C                 0x14
 0x21A0      SYSREQ.C             format
 0x21A8      STACK                  0x18
 0x21B0      BREAK     
 0x21B4      PUSHADDR             -0x3B0
 0x21BC      PUSH.C                  0x4
 0x21C4      SYSREQ.C        delete_file
 0x21CC      STACK                   0x8
 0x21D4      STACK                 0x140
 0x21DC      JUMP              jump_0065 ; target:jump_0063
 0x21E4      BREAK      ; target:jump_0061
 0x21E8      PUSH.S               -0x270
 0x21F0      PUSH.C                  0x4
 0x21F8      SYSREQ.C          close_dir
 0x2200      STACK                   0x8
 0x2208      STACK                 0x270
 0x2210      ZERO.pri 
 0x2214      RETN     

 0x2218      PROC                        ; alias_add_time
 0x221C      BREAK     
 0x2220      BREAK     
 0x2224      STACK                 -0x10
 0x222C      ZERO.pri 
 0x2230      ADDR.alt              -0x10
 0x2238      FILL                   0x10
 0x2240      BREAK     
 0x2244      STACK                 -0x40
 0x224C      ZERO.pri 
 0x2250      ADDR.alt              -0x50
 0x2258      FILL                   0x40
 0x2260      BREAK     
 0x2264      PUSH.C                  0x3
 0x226C      PUSHADDR              -0x10
 0x2274      PUSH.C                  0x1
 0x227C      PUSH.C                  0xC
 0x2284      SYSREQ.C          read_argv
 0x228C      STACK                  0x10
 0x2294      BREAK     
 0x2298      PUSHADDR              -0x10
 0x22A0      PUSH.C                  0x4
 0x22A8      SYSREQ.C               trim
 0x22B0      STACK                   0x8
 0x22B8      BREAK     
 0x22BC      PUSHADDR              -0x10
 0x22C4      PUSH.C                  0x4   ; g_a_Alias_levels
 0x22CC      CALL             is_str_num
 0x22D4      JZER              jump_0066
 0x22DC      PUSHADDR              -0x10
 0x22E4      PUSH.C                  0x4
 0x22EC      SYSREQ.C             strlen
 0x22F4      STACK                   0x8
 0x22FC      MOVE.alt 
 0x2300      ZERO.pri 
 0x2304      XCHG     
 0x2308      JSLEQ             jump_0066
 0x2310      PUSHADDR              -0x10
 0x2318      PUSH.C                  0x4
 0x2320      SYSREQ.C         str_to_num
 0x2328      STACK                   0x8
 0x2330      MOVE.alt 
 0x2334      ZERO.pri 
 0x2338      XCHG     
 0x233C      JSLEQ             jump_0066
 0x2344      CONST.pri               0x1
 0x234C      JUMP              jump_0069
 0x2354      ZERO.pri   ; target:jump_0066
 0x2358      JZER              jump_0070 ; target:jump_0069
 0x2360      BREAK     
 0x2364      PUSH.C                  0xF
 0x236C      PUSHADDR              -0x50
 0x2374      PUSH.C                  0x2
 0x237C      PUSH.C                  0xC
 0x2384      SYSREQ.C          read_argv
 0x238C      STACK                  0x10
 0x2394      BREAK     
 0x2398      ADDR.pri              -0x50
 0x23A0      LOAD.I   
 0x23A4      NOT       
 0x23A8      JNZ               jump_0071
 0x23B0      PUSHADDR              -0x50
 0x23B8      PUSH.C                  0x4   ; g_a_Alias_levels
 0x23C0      CALL             is_str_num
 0x23C8      NOT       
 0x23CC      JNZ               jump_0071
 0x23D4      ZERO.pri 
 0x23D8      JUMP              jump_0073
 0x23E0      CONST.pri               0x1 ; target:jump_0071
 0x23E8      JZER              jump_0074 ; target:jump_0073
 0x23F0      BREAK     
 0x23F4      PUSH.C               0x3614   ; str_055
 0x23FC      PUSH.C                  0x0
 0x2404      PUSH.C                  0x8
 0x240C      SYSREQ.C      console_print
 0x2414      STACK                   0xC
 0x241C      BREAK     
 0x2420      PUSH.C               0x36AC   ; str_056
 0x2428      PUSH.C                  0x0
 0x2430      PUSH.C                  0x8
 0x2438      SYSREQ.C      console_print
 0x2440      STACK                   0xC
 0x2448      JUMP              jump_0075
 0x2450      BREAK      ; target:jump_0074
 0x2454      STACK                 -0x40
 0x245C      ZERO.pri 
 0x2460      ADDR.alt              -0x90
 0x2468      FILL                   0x40
 0x2470      BREAK     
 0x2474      PUSHADDR              -0x10
 0x247C      PUSH.C               0x3738   ; str_057
 0x2484      PUSH.C                  0xF
 0x248C      PUSHADDR              -0x90
 0x2494      PUSH.C                 0x10
 0x249C      SYSREQ.C           formatex
 0x24A4      STACK                  0x14
 0x24AC      BREAK     
 0x24B0      PUSHADDR              -0x50
 0x24B8      PUSHADDR              -0x90
 0x24C0      PUSH                    0x8   ; g_t_Alias_stuff
 0x24C8      PUSH.C                  0xC
 0x24D0      SYSREQ.C      TrieSetString
 0x24D8      STACK                  0x10
 0x24E0      STACK                  0x40
 0x24E8      JUMP              jump_0076 ; target:jump_0075
 0x24F0      BREAK      ; target:jump_0070
 0x24F4      PUSH.C               0x3758   ; str_058
 0x24FC      PUSH.C                  0x0
 0x2504      PUSH.C                  0x8
 0x250C      SYSREQ.C      console_print
 0x2514      STACK                   0xC
 0x251C      BREAK     
 0x2520      PUSH.C               0x37F0   ; str_059
 0x2528      PUSH.C                  0x0
 0x2530      PUSH.C                  0x8
 0x2538      SYSREQ.C      console_print
 0x2540      STACK                   0xC
 0x2548      STACK                  0x50 ; target:jump_0076
 0x2550      ZERO.pri 
 0x2554      RETN     

 0x2558      PROC                        ; alias_add_reason
 0x255C      BREAK     
 0x2560      BREAK     
 0x2564      STACK                 -0x10
 0x256C      ZERO.pri 
 0x2570      ADDR.alt              -0x10
 0x2578      FILL                   0x10
 0x2580      BREAK     
 0x2584      STACK                -0x200
 0x258C      ZERO.pri 
 0x2590      ADDR.alt             -0x210
 0x2598      FILL                  0x200
 0x25A0      BREAK     
 0x25A4      PUSH.C                  0x3
 0x25AC      PUSHADDR              -0x10
 0x25B4      PUSH.C                  0x1
 0x25BC      PUSH.C                  0xC
 0x25C4      SYSREQ.C          read_argv
 0x25CC      STACK                  0x10
 0x25D4      BREAK     
 0x25D8      PUSHADDR              -0x10
 0x25E0      PUSH.C                  0x4
 0x25E8      SYSREQ.C               trim
 0x25F0      STACK                   0x8
 0x25F8      BREAK     
 0x25FC      PUSHADDR              -0x10
 0x2604      PUSH.C                  0x4   ; g_a_Alias_levels
 0x260C      CALL             is_str_num
 0x2614      JZER              jump_0077
 0x261C      PUSHADDR              -0x10
 0x2624      PUSH.C                  0x4
 0x262C      SYSREQ.C             strlen
 0x2634      STACK                   0x8
 0x263C      MOVE.alt 
 0x2640      ZERO.pri 
 0x2644      XCHG     
 0x2648      JSLEQ             jump_0077
 0x2650      PUSHADDR              -0x10
 0x2658      PUSH.C                  0x4
 0x2660      SYSREQ.C         str_to_num
 0x2668      STACK                   0x8
 0x2670      MOVE.alt 
 0x2674      ZERO.pri 
 0x2678      XCHG     
 0x267C      JSLEQ             jump_0077
 0x2684      CONST.pri               0x1
 0x268C      JUMP              jump_0080
 0x2694      ZERO.pri   ; target:jump_0077
 0x2698      JZER              jump_0081 ; target:jump_0080
 0x26A0      BREAK     
 0x26A4      PUSH.C                 0x7F
 0x26AC      PUSHADDR             -0x210
 0x26B4      PUSH.C                  0x2
 0x26BC      PUSH.C                  0xC
 0x26C4      SYSREQ.C          read_argv
 0x26CC      STACK                  0x10
 0x26D4      BREAK     
 0x26D8      PUSHADDR             -0x210
 0x26E0      PUSH.C                  0x4
 0x26E8      SYSREQ.C             strlen
 0x26F0      STACK                   0x8
 0x26F8      MOVE.alt 
 0x26FC      CONST.pri               0x3
 0x2704      JSLEQ             jump_0082
 0x270C      BREAK     
 0x2710      PUSH.C               0x387C   ; str_060
 0x2718      PUSH.C                  0x0
 0x2720      PUSH.C                  0x8
 0x2728      SYSREQ.C      console_print
 0x2730      STACK                   0xC
 0x2738      BREAK     
 0x273C      PUSH.C               0x3924   ; str_061
 0x2744      PUSH.C                  0x0
 0x274C      PUSH.C                  0x8
 0x2754      SYSREQ.C      console_print
 0x275C      STACK                   0xC
 0x2764      JUMP              jump_0083
 0x276C      BREAK      ; target:jump_0082
 0x2770      STACK                 -0x40
 0x2778      ZERO.pri 
 0x277C      ADDR.alt             -0x250
 0x2784      FILL                   0x40
 0x278C      BREAK     
 0x2790      PUSHADDR              -0x10
 0x2798      PUSH.C               0x39E0   ; str_062
 0x27A0      PUSH.C                  0xF
 0x27A8      PUSHADDR             -0x250
 0x27B0      PUSH.C                 0x10
 0x27B8      SYSREQ.C           formatex
 0x27C0      STACK                  0x14
 0x27C8      BREAK     
 0x27CC      PUSHADDR             -0x210
 0x27D4      PUSH.C               0x3A08   ; str_063
 0x27DC      PUSH.C                 0x7F
 0x27E4      PUSHADDR             -0x210
 0x27EC      PUSH.C                 0x10
 0x27F4      SYSREQ.C             format
 0x27FC      STACK                  0x14
 0x2804      BREAK     
 0x2808      PUSHADDR             -0x210
 0x2810      PUSHADDR             -0x250
 0x2818      PUSH                    0x8   ; g_t_Alias_stuff
 0x2820      PUSH.C                  0xC
 0x2828      SYSREQ.C      TrieSetString
 0x2830      STACK                  0x10
 0x2838      STACK                  0x40
 0x2840      JUMP              jump_0084 ; target:jump_0083
 0x2848      BREAK      ; target:jump_0081
 0x284C      PUSH.C               0x3A1C   ; str_064
 0x2854      PUSH.C                  0x0
 0x285C      PUSH.C                  0x8
 0x2864      SYSREQ.C      console_print
 0x286C      STACK                   0xC
 0x2874      BREAK     
 0x2878      PUSH.C               0x3AC4   ; str_065
 0x2880      PUSH.C                  0x0
 0x2888      PUSH.C                  0x8
 0x2890      SYSREQ.C      console_print
 0x2898      STACK                   0xC
 0x28A0      STACK                 0x210 ; target:jump_0084
 0x28A8      ZERO.pri 
 0x28AC      RETN     

 0x28B0      PROC                        ; alias_add_punish
 0x28B4      BREAK     
 0x28B8      BREAK     
 0x28BC      STACK                 -0x10
 0x28C4      ZERO.pri 
 0x28C8      ADDR.alt              -0x10
 0x28D0      FILL                   0x10
 0x28D8      BREAK     
 0x28DC      STACK                -0x200
 0x28E4      ZERO.pri 
 0x28E8      ADDR.alt             -0x210
 0x28F0      FILL                  0x200
 0x28F8      BREAK     
 0x28FC      PUSH.C                  0x3
 0x2904      PUSHADDR              -0x10
 0x290C      PUSH.C                  0x1
 0x2914      PUSH.C                  0xC
 0x291C      SYSREQ.C          read_argv
 0x2924      STACK                  0x10
 0x292C      BREAK     
 0x2930      PUSHADDR              -0x10
 0x2938      PUSH.C                  0x4
 0x2940      SYSREQ.C               trim
 0x2948      STACK                   0x8
 0x2950      BREAK     
 0x2954      PUSHADDR              -0x10
 0x295C      PUSH.C                  0x4   ; g_a_Alias_levels
 0x2964      CALL             is_str_num
 0x296C      JZER              jump_0085
 0x2974      PUSHADDR              -0x10
 0x297C      PUSH.C                  0x4
 0x2984      SYSREQ.C             strlen
 0x298C      STACK                   0x8
 0x2994      MOVE.alt 
 0x2998      ZERO.pri 
 0x299C      XCHG     
 0x29A0      JSLEQ             jump_0085
 0x29A8      PUSHADDR              -0x10
 0x29B0      PUSH.C                  0x4
 0x29B8      SYSREQ.C         str_to_num
 0x29C0      STACK                   0x8
 0x29C8      MOVE.alt 
 0x29CC      ZERO.pri 
 0x29D0      XCHG     
 0x29D4      JSLEQ             jump_0085
 0x29DC      CONST.pri               0x1
 0x29E4      JUMP              jump_0088
 0x29EC      ZERO.pri   ; target:jump_0085
 0x29F0      JZER              jump_0089 ; target:jump_0088
 0x29F8      BREAK     
 0x29FC      PUSH.C                 0x7F
 0x2A04      PUSHADDR             -0x210
 0x2A0C      PUSH.C                  0x2
 0x2A14      PUSH.C                  0xC
 0x2A1C      SYSREQ.C          read_argv
 0x2A24      STACK                  0x10
 0x2A2C      BREAK     
 0x2A30      PUSHADDR             -0x210
 0x2A38      PUSH.C                  0x4
 0x2A40      SYSREQ.C             strlen
 0x2A48      STACK                   0x8
 0x2A50      MOVE.alt 
 0x2A54      CONST.pri               0xA
 0x2A5C      XCHG     
 0x2A60      SLESS     
 0x2A64      JNZ               jump_0090
 0x2A6C      PUSH.C               0x3B80   ; str_066
 0x2A74      PUSHADDR             -0x210
 0x2A7C      PUSH.C                  0x8
 0x2A84      SYSREQ.C            contain
 0x2A8C      STACK                   0xC
 0x2A94      MOVE.alt 
 0x2A98      ZERO.pri 
 0x2A9C      XCHG     
 0x2AA0      SLESS     
 0x2AA4      JNZ               jump_0090
 0x2AAC      ZERO.pri 
 0x2AB0      JUMP              jump_0092
 0x2AB8      CONST.pri               0x1 ; target:jump_0090
 0x2AC0      JZER              jump_0093 ; target:jump_0092
 0x2AC8      BREAK     
 0x2ACC      PUSH.C               0x3B88   ; str_067
 0x2AD4      PUSH.C                  0x0
 0x2ADC      PUSH.C                  0x8
 0x2AE4      SYSREQ.C      console_print
 0x2AEC      STACK                   0xC
 0x2AF4      BREAK     
 0x2AF8      PUSH.C               0x3C40   ; str_068
 0x2B00      PUSH.C                  0x0
 0x2B08      PUSH.C                  0x8
 0x2B10      SYSREQ.C      console_print
 0x2B18      STACK                   0xC
 0x2B20      JUMP              jump_0094
 0x2B28      BREAK      ; target:jump_0093
 0x2B2C      STACK                 -0x40
 0x2B34      ZERO.pri 
 0x2B38      ADDR.alt             -0x250
 0x2B40      FILL                   0x40
 0x2B48      BREAK     
 0x2B4C      PUSHADDR              -0x10
 0x2B54      PUSH.C               0x3D48   ; str_069
 0x2B5C      PUSH.C                  0xF
 0x2B64      PUSHADDR             -0x250
 0x2B6C      PUSH.C                 0x10
 0x2B74      SYSREQ.C           formatex
 0x2B7C      STACK                  0x14
 0x2B84      BREAK     
 0x2B88      PUSHADDR             -0x210
 0x2B90      PUSHADDR             -0x250
 0x2B98      PUSH                    0x8   ; g_t_Alias_stuff
 0x2BA0      PUSH.C                  0xC
 0x2BA8      SYSREQ.C      TrieSetString
 0x2BB0      STACK                  0x10
 0x2BB8      STACK                  0x40
 0x2BC0      JUMP              jump_0095 ; target:jump_0094
 0x2BC8      BREAK      ; target:jump_0089
 0x2BCC      PUSH.C               0x3D70   ; str_070
 0x2BD4      PUSH.C                  0x0
 0x2BDC      PUSH.C                  0x8
 0x2BE4      SYSREQ.C      console_print
 0x2BEC      STACK                   0xC
 0x2BF4      BREAK     
 0x2BF8      PUSH.C               0x3E28   ; str_071
 0x2C00      PUSH.C                  0x0
 0x2C08      PUSH.C                  0x8
 0x2C10      SYSREQ.C      console_print
 0x2C18      STACK                   0xC
 0x2C20      STACK                 0x210 ; target:jump_0095
 0x2C28      ZERO.pri 
 0x2C2C      RETN     

 0x2C30      PROC                        ; alias_add
 0x2C34      BREAK     
 0x2C38      BREAK     
 0x2C3C      STACK                 -0x10
 0x2C44      ZERO.pri 
 0x2C48      ADDR.alt              -0x10
 0x2C50      FILL                   0x10
 0x2C58      BREAK     
 0x2C5C      STACK                -0x100
 0x2C64      ZERO.pri 
 0x2C68      ADDR.alt             -0x110
 0x2C70      FILL                  0x100
 0x2C78      BREAK     
 0x2C7C      PUSH.C                  0x3
 0x2C84      PUSHADDR              -0x10
 0x2C8C      PUSH.C                  0x1
 0x2C94      PUSH.C                  0xC
 0x2C9C      SYSREQ.C          read_argv
 0x2CA4      STACK                  0x10
 0x2CAC      BREAK     
 0x2CB0      PUSHADDR              -0x10
 0x2CB8      PUSH.C                  0x4
 0x2CC0      SYSREQ.C               trim
 0x2CC8      STACK                   0x8
 0x2CD0      BREAK     
 0x2CD4      PUSHADDR              -0x10
 0x2CDC      PUSH.C                  0x4   ; g_a_Alias_levels
 0x2CE4      CALL             is_str_num
 0x2CEC      JZER              jump_0096
 0x2CF4      PUSHADDR              -0x10
 0x2CFC      PUSH.C                  0x4
 0x2D04      SYSREQ.C             strlen
 0x2D0C      STACK                   0x8
 0x2D14      MOVE.alt 
 0x2D18      ZERO.pri 
 0x2D1C      XCHG     
 0x2D20      JSLEQ             jump_0096
 0x2D28      PUSHADDR              -0x10
 0x2D30      PUSH.C                  0x4
 0x2D38      SYSREQ.C         str_to_num
 0x2D40      STACK                   0x8
 0x2D48      MOVE.alt 
 0x2D4C      ZERO.pri 
 0x2D50      XCHG     
 0x2D54      JSLEQ             jump_0096
 0x2D5C      CONST.pri               0x1
 0x2D64      JUMP              jump_0099
 0x2D6C      ZERO.pri   ; target:jump_0096
 0x2D70      JZER              jump_0100 ; target:jump_0099
 0x2D78      BREAK     
 0x2D7C      PUSH.C                 0x40
 0x2D84      PUSHADDR             -0x110
 0x2D8C      PUSH.C                  0x2
 0x2D94      PUSH.C                  0xC
 0x2D9C      SYSREQ.C          read_argv
 0x2DA4      STACK                  0x10
 0x2DAC      BREAK     
 0x2DB0      ADDR.pri             -0x110
 0x2DB8      LOAD.I   
 0x2DBC      NOT       
 0x2DC0      JZER              jump_0101
 0x2DC8      BREAK     
 0x2DCC      PUSH.C               0x3F30   ; str_072
 0x2DD4      PUSH.C                  0x0
 0x2DDC      PUSH.C                  0x8
 0x2DE4      SYSREQ.C      console_print
 0x2DEC      STACK                   0xC
 0x2DF4      BREAK     
 0x2DF8      PUSH.C               0x3FB8   ; str_073
 0x2E00      PUSH.C                  0x0
 0x2E08      PUSH.C                  0x8
 0x2E10      SYSREQ.C      console_print
 0x2E18      STACK                   0xC
 0x2E20      JUMP              jump_0102
 0x2E28      BREAK      ; target:jump_0101
 0x2E2C      PUSHADDR             -0x110
 0x2E34      PUSH                    0x0
 0x2E3C      PUSH.C                  0x8
 0x2E44      SYSREQ.C      ArrayPushString
 0x2E4C      STACK                   0xC
 0x2E54      BREAK     
 0x2E58      PUSHADDR              -0x10
 0x2E60      PUSH.C                  0x4
 0x2E68      SYSREQ.C         str_to_num
 0x2E70      STACK                   0x8
 0x2E78      PUSH.pri 
 0x2E7C      PUSH                    0x4   ; g_a_Alias_levels
 0x2E84      PUSH.C                  0x8
 0x2E8C      SYSREQ.C      ArrayPushCell
 0x2E94      STACK                   0xC
 0x2E9C      JUMP              jump_0103 ; target:jump_0102
 0x2EA4      BREAK      ; target:jump_0100
 0x2EA8      PUSH.C               0x404C   ; str_074
 0x2EB0      PUSH.C                  0x0
 0x2EB8      PUSH.C                  0x8
 0x2EC0      SYSREQ.C      console_print
 0x2EC8      STACK                   0xC
 0x2ED0      BREAK     
 0x2ED4      PUSH.C               0x40D4   ; str_075
 0x2EDC      PUSH.C                  0x0
 0x2EE4      PUSH.C                  0x8
 0x2EEC      SYSREQ.C      console_print
 0x2EF4      STACK                   0xC
 0x2EFC      STACK                 0x110 ; target:jump_0103
 0x2F04      ZERO.pri 
 0x2F08      RETN     

HD Aliases (для сравнения)
Код: Выделить всё
#include <amxmodx>
#include <amxmisc>

#define VERSION    "1"
#define OFFSET    64

static Array:g_a_Aliases;
static g_a_Reason[33][64],g_a_RandCmd[33][64];
static g_i_AliasNum[33],g_i_Warnings[33];
static g_p_MessType,g_p_BanType;

public plugin_init() {
    register_plugin("Aliases checker",VERSION,"creator_52");
    get_aliases();
    g_p_MessType=register_cvar("ac_mess_type","1");
    g_p_BanType=register_cvar("ac_ban_type","kick <userid>  <reason> detected!");
}

public get_aliases() {
    new s_File[128];
    get_configsdir(s_File,127);
    format(s_File,127,"%s/aliases.ini",s_File);
    if(!file_exists(s_File)) {
        server_print("[Aliases checker] File 'aliases.ini' not found!");
        return PLUGIN_CONTINUE;
    }
    else {
        g_a_Aliases=ArrayCreate(64);
        new i_File=fopen(s_File,"rt");
        new s_Buffer[64];
        while(!feof(i_File)) {
            fgets(i_File,s_Buffer,63);
            trim(s_Buffer);
            if(!s_Buffer[0] || s_Buffer[0]==';' || (s_Buffer[0]=='/' && s_Buffer[1]=='/')) {
                continue;
            }
            ArrayPushString(g_a_Aliases,s_Buffer);
        }
        fclose(i_File);
        new i_Size=ArraySize(g_a_Aliases);
        if(!i_Size) {
            server_print("[Aliases checker] No aliases loaded!");
            return PLUGIN_CONTINUE;
        }
        else {
            server_print("[Aliases checker] Loaded %d aliases.",i_Size);
        }
    }
    return PLUGIN_CONTINUE;
}

public form_rand_string(i_Player) {
    for(new a;a<15;a++) {
        g_a_RandCmd[i_Player][a]=random_num('a','z');
    }
}

public client_disconnect(i_Player) {
    if(task_exists(i_Player)) {
        remove_task(i_Player);
    }
    if(task_exists(i_Player+OFFSET)) {
        remove_task(i_Player+OFFSET);
    }
}

public client_putinserver(i_Player) {
    if(is_user_bot(i_Player) || is_user_hltv(i_Player)) {
        return PLUGIN_CONTINUE;
    }
    else {
        g_i_AliasNum[i_Player]=0;
        g_i_Warnings[i_Player]=0;
        set_task(5.0,"start_check_aliases",i_Player);
    }
    return PLUGIN_CONTINUE;
}

public start_check_aliases(i_Player) {
    form_rand_string(i_Player);
    check_aliases(i_Player+OFFSET);
    set_task(3.0,"check_aliases",i_Player+OFFSET,_,_,"a",4);
    set_task(15.0,"final_check",i_Player+OFFSET);
}

public check_aliases(i_Player) {
    i_Player-=OFFSET;
    if(g_i_AliasNum[i_Player]>=ArraySize(g_a_Aliases)-1) {
        g_i_AliasNum[i_Player]=0;
    }
    new s_Buffer[64];
    ArrayGetString(g_a_Aliases,g_i_AliasNum[i_Player],s_Buffer,63);
    new i_StrLen=strlen(s_Buffer);
    if(s_Buffer[0]=='[' && s_Buffer[i_StrLen-1]==']') {
        format(g_a_Reason[i_Player],i_StrLen-2,s_Buffer[1]);
        g_i_AliasNum[i_Player]++;
        ArrayGetString(g_a_Aliases,g_i_AliasNum[i_Player],s_Buffer,63);
    }
    client_cmd(i_Player,g_a_RandCmd[i_Player]);
    client_cmd(i_Player,s_Buffer);
    return PLUGIN_CONTINUE;
}

public final_check(i_Player) {
    i_Player-=OFFSET;
    if(g_i_Warnings[i_Player]>=3) {
        new s_Punishment[128],s_UserId[8],s_Ip[32],s_Name[64],s_SteamId[64];
        num_to_str(get_user_userid(i_Player),s_UserId,7);
        format(s_UserId,7,"#%s",s_UserId);
        get_user_info(i_Player,"name",s_Name,63);
        get_user_ip(i_Player,s_Ip,31,0);
        get_user_authid(i_Player,s_SteamId,63);
        get_pcvar_string(g_p_BanType,s_Punishment,127);
        replace_all(s_Punishment,127,"<userid>",s_UserId);
        replace_all(s_Punishment,127,"<name>",s_Name);
        replace_all(s_Punishment,127,"<ip>",s_Ip);
        replace_all(s_Punishment,127,"<steamid>",s_SteamId);
        replace_all(s_Punishment,127,"<reason>",g_a_Reason[i_Player]);
        server_cmd(s_Punishment);
        switch(get_pcvar_num(g_p_MessType)) {
            case 1:client_print(0,print_chat,"Violation by %s: %s detected!",s_Name,g_a_Reason[i_Player]);
            case 2:show_hudmessage(0,"Violation by %s: %s detected!",s_Name,g_a_Reason[i_Player]);
        }
    }
    else {
        g_i_Warnings[i_Player]=0;
        set_task(20.0,"start_check_aliases",i_Player);
    }
}

public client_command(i_Player) {
    if(!is_user_connected(i_Player) || is_user_bot(i_Player) || is_user_hltv(i_Player)) {
        return PLUGIN_CONTINUE;
    }
    else {
        new s_Arg[64],s_CurAlias[64];
        ArrayGetString(g_a_Aliases,g_i_AliasNum[i_Player],s_CurAlias,63);
        read_argv(0,s_Arg,63);
        if(equal(s_CurAlias,s_Arg)) {
            if(task_exists(i_Player+OFFSET)) {
                remove_task(i_Player+OFFSET);
            }
            g_i_AliasNum[i_Player]++;
            g_i_Warnings[i_Player]=0;
            start_check_aliases(i_Player);
        }
        else if(equal(g_a_RandCmd[i_Player],s_Arg)) {
            g_i_Warnings[i_Player]++;
        }
        else {
            return PLUGIN_CONTINUE;
        }
        return PLUGIN_HANDLED;
    }
    return PLUGIN_CONTINUE;
}

Кстати, я не говорю о том что мой код был идеальным в 2011 году, но меня немного вскипятил сам факт хищения, я всегда знал что mazdan вор, но никогда не высказывал это вслух, потому что не думал что до такой степени.
Аватара пользователя
creator_52
 
Сообщения: 513
Зарегистрирован: 02 мар 2011, 15:45
Откуда: Нижний Новгород
Благодарил (а): 116 раз.
Поблагодарили: 206 раз.
Опыт программирования: Больше трех лет

Re: Alias Checker от mazdan: вся правда

Сообщение RevCrew » 03 янв 2017, 14:49

creator_52, возможно, в последней версии что то изменилось?
Skype revcrew77
https://vk.com/cssuite
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1502
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 257 раз.
Поблагодарили: 319 раз.
Языки программирования: Unkown

Re: Alias Checker от mazdan: вся правда

Сообщение creator_52 » 03 янв 2017, 15:10

RevCrew писал(а):creator_52, возможно, в последней версии что то изменилось?

Ну это не суть важно на самом деле, да, что-то изменилось, я посмотрел, но это повторюсь не имеет никакого значения) Даже в последней версии есть куча так и не измененных изначально скопированных шмотков кода)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
creator_52
 
Сообщения: 513
Зарегистрирован: 02 мар 2011, 15:45
Откуда: Нижний Новгород
Благодарил (а): 116 раз.
Поблагодарили: 206 раз.
Опыт программирования: Больше трех лет

Re: Alias Checker от mazdan: вся правда

Сообщение Subb98 » 03 янв 2017, 15:18

Для всё того же сравнения, версия 0.5.1:

Код: Выделить всё
[email protected]:~/lysis > ./Lysis.exe ad.amxx
Missing method Count in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable
Missing method Count in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable
Missing method Count in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable
Missing method Count in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable
Missing method Count in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable
Missing method Count in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable
Missing method Count in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable
Missing method Count in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable
#pragma semicolon 1
#pragma ctrlchar '\'

new Array:g_a_Aliases;
new Array:g_a_Alias_levels;
new Trie:g_t_Alias_stuff;
new g_a_RandCmd[33][64];
new g_i_AliasNum[33];
new g_i_Warnings[33];
new g_szLogFile[128];
new g_logdays;
new g_logs;
new g_static_rnd[16];

Missing method Contains in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable

/ * ERROR! Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. * /
 function "is_str_num"
bool:is_str_num(String:sString[])

Missing method Contains in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable

/ * ERROR! Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. * /
 function "replace_all"
replace_all(String:string[], len, String:what[], String:with[])

Missing method Contains in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable
public plugin_init()
{
    register_plugin("Aliases checker", "0.5.1", "mazdan");
    g_a_Aliases = ArrayCreate(64, 32);
    g_a_Alias_levels = ArrayCreate("", 32);
    g_t_Alias_stuff = TrieCreate();
    register_srvcmd("ac_add_alias", "alias_add", -1, "ad_add_alias <level> <alias>");
    register_srvcmd("ac_set_alias_reason", "alias_add_reason", -1, "ac_set_alias_reason <level> <reason>");
    register_srvcmd("ac_set_alias_time", "alias_add_time", -1, "ac_set_alias_time <level> <time>");
    register_srvcmd("ac_set_alias_punish", "alias_add_punish", -1, "ac_set_alias_punish <level> <time>");
    register_cvar("ac_logdays", "14", g_a_Aliases, g_a_Aliases);
    register_cvar("ac_logs", "1", g_a_Aliases, g_a_Aliases);
    server_cmd("exec addons/amxmodx/configs/AC/main.cfg");
    return 0;
}

Missing method Contains in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable

/ * ERROR! Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. * /
 function "plugin_cfg"
public plugin_cfg()

Missing method Contains in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable

/ * ERROR! Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. * /
 function "form_rand_string"
public form_rand_string(i_Player)

Missing method Contains in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable

/ * ERROR! Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. * /
 function "client_disconnect"
public client_disconnect(i_Player)

Missing method Contains in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable

/ * ERROR! Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. * /
 function "client_putinserver"
public client_putinserver(i_Player)

Missing method ElementAt in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable

/ * ERROR! Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. * /
 function "start_check_aliases"
public start_check_aliases(i_Player)

Missing method Contains in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable

/ * ERROR! Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. * /
 function "check_aliases"
public check_aliases(i_Player)

Missing method Contains in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable

/ * ERROR! Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. * /
 function "client_command"
public client_command(i_Player)

Missing method Contains in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable

/ * ERROR! Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. * /
 function "punisment"
public punisment(i_Player)

Missing method Contains in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable

/ * ERROR! Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. * /
 function "clear_log"
public clear_log()

Missing method Contains in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable

/ * ERROR! Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. * /
 function "alias_add_time"
public alias_add_time()

Missing method Contains in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable

/ * ERROR! Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. * /
 function "alias_add_reason"
public alias_add_reason()

Missing method Contains in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable

/ * ERROR! Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. * /
 function "alias_add_punish"
public alias_add_punish()

Missing method Contains in assembly /home/subb98/lysis/Lysis.exe, type System.Linq.Enumerable

/ * ERROR! Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. * /
 function "alias_add"
public alias_add()

[email protected]:~/lysis >

Я делаю вывод, что mazdan воспользовался готовым кодом от creator_52, но добавил в него и некоторые правки. Предложение похоливарить на тему open/closed source было не случайным.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5454
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1319 раз.
Поблагодарили: 2324 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP, Ruby

Re: Alias Checker от mazdan: вся правда

Сообщение creator_52 » 03 янв 2017, 15:34

Ну да, типа того и все в этом духе
Код: Выделить всё
#include <amxmodx>
#include <amxmisc>

static Array:g_a_Aliases;
static Array:g_a_Alias_levels;
static Trie:g_t_Alias_stuff;

static g_logdays, g_logs, g_szLogFile[128];

public plugin_init () {
    register_plugin ("Aliases checker", "0.5.1", "mazdan");
    g_a_Aliases = ArrayCreate (128);
    g_a_Alias_levels = ArrayCreate (8);
    g_t_Alias_stuff = TrieCreate ();
    register_srvcmd ("ac_add_alias", "alias_add", ???, "ad_add_alias <level> <alias>");
    register_srvcmd ("ac_set_alias_reason", "alias_add_reason", ???, "ac_set_alias_reason <level> <reason>");
    register_srvcmd ("ac_set_alias_time", "alias_add_time", ???, "ac_set_alias_reason <level> <time>");
    register_srvcmd ("ac_set_alias_punish", "alias_add_punish", ???, "ac_set_alias_punish <level> <time>");
    register_cvar ("ac_logdays", "14");
    register_cvar ("ac_logs", "1");
    server_cmd ("exec addons/amxmodx/configs/AC/main.cfg");
}

public plugin_cfg () {
    g_logdays = get_cvar_num ("ac_logdays");
    g_logs = get_cvar_num ("ac_logs");
    server_cmd ("exec addons/amxmodx/configs/AC/aliases.cfg");
    server_cmd ("exec addons/amxmodx/configs/AC/alias_levels.cfg");
    if (g_logs) {
        add (g_szLogFile, 127, "/AC");
        if (!dir_exists (g_szLogFile)) {
            mkdir (g_szLogFile);
        }
        new DECOMP_time[64];
        get_time ("%Y %m %d", DECOMP_time, 63);
        format (g_szLogFile, 127, "%s/%s.log", g_szLogFile, DECOMP_time);
        set_task (random_float (???, ???), "clear_log");
    }
}

public form_rand_string(i_Player) {
    for(new a;a<15;a++) {
        g_a_RandCmd[i_Player][a]=random_num('a','z');
    }
}

public client_disconnect(i_Player) {
    if(task_exists(i_Player)) {
        remove_task(i_Player);
    }
    if(task_exists(i_Player+OFFSET)) {
        remove_task(i_Player+OFFSET);
    }
}

public client_putinserver(i_Player) {
    if(is_user_bot(i_Player) || is_user_hltv(i_Player)) {
        return PLUGIN_CONTINUE;
    }
    else {
        g_i_AliasNum[i_Player]=0;
        g_i_Warnings[i_Player]=0;
        set_task(5.0,"start_check_aliases",i_Player);
    }
    return PLUGIN_CONTINUE;
}
... 


Добавлено спустя 2 минуты 24 секунды:
Ну давайте, братцы кролики, кидайте приват маздановский в личку чтобы он ваши драгоценные привязки не подрубил, буду исходники выкладывать.
Я правда сначала хочу hd прикончить, а потом за это взяться, благо дело не очень долгое.
Аватара пользователя
creator_52
 
Сообщения: 513
Зарегистрирован: 02 мар 2011, 15:45
Откуда: Нижний Новгород
Благодарил (а): 116 раз.
Поблагодарили: 206 раз.
Опыт программирования: Больше трех лет

Re: Alias Checker от mazdan: вся правда

Сообщение Subb98 » 03 янв 2017, 15:36

creator_52, кстати, я нашёл лучший ответ на подобные вопросы / претензии:

Q: Did AMX Mod X steal the AMX Mod source code?
A: Since the AMX Mod source code is under the GPL, it's not stolen if we also license it under the GPL. AMX Mod X was "forked" from the code-base. Even though we've rewritten a huge amount of the code from scratch, we always attach the following credit to each file, whether written by OLO or not: "Originally developed by OLO" After all, if it weren't for OLO, we wouldn't be writing this ;]

Вы должны зарегистрироваться, чтобы видеть ссылки.

Добавлено спустя 1 минуту 30 секунд:
Так что, облом, друзья, с точки зрения GNU GPL, это не воровство, это следование принципам open source.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5454
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1319 раз.
Поблагодарили: 2324 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP, Ruby

Re: Alias Checker от mazdan: вся правда

Сообщение creator_52 » 03 янв 2017, 15:40

Насчет авторских прав можете не беспокоиться, у нас все равно никакие лицензии не действуют, так что ничьи права мы не нарушим. Смысл не в том, чтобы зануленную авторскую работу выложить, а чтобы глаза у народа раскрыть кто обманщик и спекулянт, а кто достойно ведет себя (если что это я не про себя, а про к примеру парня который додумался до кукисов в мотде, простите запамятовал его псевдоним).

Добавлено спустя 1 минуту 2 секунды:
Subb98, спасибо большое за пруф, теперь все еще лучше чем было)
Аватара пользователя
creator_52
 
Сообщения: 513
Зарегистрирован: 02 мар 2011, 15:45
Откуда: Нижний Новгород
Благодарил (а): 116 раз.
Поблагодарили: 206 раз.
Опыт программирования: Больше трех лет

Re: Alias Checker от mazdan: вся правда

Сообщение Subb98 » 03 янв 2017, 15:41

creator_52, суть понятна, обсуждение о том, стоит ли публиковать сорцы чего-то стоящего как-никогда атуально. С другой стороны, если всё можно декомпильнуть, то, наверное, стоит.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5454
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1319 раз.
Поблагодарили: 2324 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP, Ruby

След.

Вернуться в Болтовня

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 5