Главная | Форум | Статьи | Фaйлы| Картинки WoW | Профиль | Регистрация | Вход

[ Новые сообщения · Правила форума · Поиск · RSS ]

WoW-Info — информационный World of Warcraft портал

Оружейная World of Warcraft (Armory) - Форум

  • Сторінка 1 з 1
  • 1
Оружейная World of Warcraft (Armory)
booyoodsДата: Четвер, 16.06.2011, 05:36 | Сообщение # 1



booyoods
Старший Маршал
Группа: V.I.P
Сообщений: 1333

Замечания:

Оффлайн

Оружейная - это обширная база данных с прозрачным и удобным интерфейсом, по которой можно производить поиск. Все данные поступают напрямую из игровых миров, поэтому в Оружейной вы найдете самую полную и свежую информацию о персонажах, командах Арены, гильдиях, предметах и наградах для фракций World of Warcraft.
Хочу представить свой проект - WoWArmory. Это написанный на PHP движок, который позволяет вам просматривать информацию о персонажах, гильдиях, предметах и т.д. Поддерживаемые языки: русский (осн.), английский и испанский (на данный момент - не полная поддержка). В процессе перевода находится испанский, в планах - немецкий и французский (все поддерживаемые WoW языки).

Особенности:
- Работает с версией 3.3.3а
- Работает с MaNGOS и Trinity Core (c ревизии 200)
- Страница персонажа
- Достижения персонажа
- Репутация персонажа
- Таланты персонажа
- Страница гильдии
- Статистика гильдии
- Банк гильдии
- Список команд арен (2v2, 3v3, 5v5)
- Страница команды арены
- Информация о предмете (с источником, информацией о распылении, необходимые реагенты, эквиваленты для разных фракций и т.д.)
- Поиск по базе (персонажи, гильдии, предметы, команды арены)
- Близзлайк дизайн
- Калькулятор талантов персонажей/питомцев и калькулятор арены.
- Поддержка профилей

TODO:
- Перейти к использованию XSLT шаблонов вместо шаблонов Smarty. // Реализовано, ревизия 122
- Необходимо завершить функции профайлов для возможности создавать закладки персонажей, управлять правами к гильдейскому банку, календарю (когда он будет реализован в ядре MaNGOS). // Реализовано, ревизия 49
- Корректно отображать прогресс достижений и репутацию персонажа.
- Поддержка фильтров для поиска вещей // Частичная поддержка добавлена в ревизии 82
- Поддержка нескольких игровых миров // Реализовано, ревизия 168
- Поддержка 3D просмотра // Реализовано, ревизия 101

Известные ошибки:
- Большинство операций, которые требуют JavaScript не работают в Internet Explorer
- Некоторые части комплектов предметов и их бонусы не отображаются в подсказках/на странице предмета. // Исправлено в 256й ревизии

Системные требования & установка:
1. Загрузите исходники с репозитария GitHub.
2. Прочитайте файл INSTALL и следуйте описанным шагам.
3. Для установки 3D просмотрщика прочтите 3DViewer_info.txt
Рекомендуемый браузер: Opera 10.

Скриншоты:
Галерея ImagesHack

F.A.Q:
Q.: При попытке открыть профиль персонажа появляется ошибка

Code
Файл не найден    
Профиль этого персонажа недоступен по одной из следующих причин:


A.: Убедитесь, что вы установили патч для ядра MaNGOS/Trinity и применили SQL-обновление для базы персонажей. Так же, включите дебаг лог в файле configuration.php ($ArmoryConfig['settings']['useDebug'] = true; $ArmoryConfig['settings']['loglevel'] = 2; ), откройте страницу персонажа заново и скопируйте получившийся лог из http://armory_url/cache/_debug/. Пожалуйста, используйте сервис http://paste2.org, если ваш код слишком большой, или используйте теги code.

Q.: При поиске или открытии страницы персонажа появляется ошибка mysql_errno():

Code
Warning: mysql_errno() expects parameter 1 to be resource, boolean given in ***\includes\classes\libs\DbSimple\Mysql.php on line 184


A.: Обновите ваш configuration.php до последней версии (из configuration.php.default) и установите правильные значения в части $ArmoryConfig['multiRealm']
  • ['**_characters'].
    * - realm ID
    ** - названия параметров
    Q.: Модель персонажа отображается голой или же не грузится совсем.
    A.: Просмотрите лог сервера Apache и постарайтесь найти ошибки, связанные с путями к файлам ***/models/items/***/***.png. Если текстуры отсутствуют, то в большинстве случаев модель не прогрузится (предметы рейдовых комплектов Tier-10 и 8го сезона Арены добавлены в архив не полностью). Так же, просмотрите результат работы файла character-model.xml?r=REALM_NAME&cn=CHARACTER_NAME. Возможно, там появляются какие-либо ошибки, препятствующие правильному парсингу XML. Если у вас *NIX система, прочтите этот и этот посты и попробуйте выполнить указанные команды.

    Q.: Поддержка 3D просмотрщика реализована?
    A.: Да, но не полностью. Для большей информации прочитайте 3DViewer_info.txt.

    Q.: При открытии списка команд определенного брекета, появляется сообщение об ошибке.
    A.: Это стандартное сообщение, если в данном брекете нет ни одной команды арены.

    Q.: Некоторые критерии достижений не отображаются/отображаются неверно.
    A.: Прочтите секцию "Известные ошибки". Работаю над этим.

    Q.: Я установил оружейную, но при открытии любой страницы появляется сообщение с ошибкой "DbVersion Error".
    A.: Обновите базу оружейной всеми необходимыми обновлениями из папки sql/updates.




  • Сообщение отредактировал booyoods - Четвер, 16.06.2011, 05:39
     
    StalkerДата: Субота, 18.06.2011, 11:53 | Сообщение # 2



    Stalker
    Капрал
    Группа: Пользователи
    Сообщений: 55

    Замечания:

    Оффлайн
    те кто хочет ставить на готовую сборку можете сразу забыть об этом чуде, если только не будете дизкомпилить happy
     
    dddcsДата: Понеділок, 20.06.2011, 13:43 | Сообщение # 3



    dddcs
    Скаут
    Группа: Пользователи
    Сообщений: 26

    Замечания:

    Оффлайн
    Quote (Stalker)
    те кто хочет ставить на готовую сборку можете сразу забыть об этом чуде, если только не будете дизкомпилить

    Полный бред..
    Я поставил на готовую сборку (ради интереса, ну или из принципов), все работает идеально... Знаю много серверов где стоит эта армори на готовых сборках...
    Quote (Stalker)
    если только не будете дизкомпилить

    О_о, парень, ты думаешь что пишешь?
    Ты все-таки выдумал обратный процесс компиляции?
    вау, сразу патентуй, масса желающих будет....
    Совет, в следующий раз Stalker, прежде чем писать, подумайте 10 раз.


    Мой новый профиль Тык
     
    StalkerДата: Понеділок, 20.06.2011, 13:58 | Сообщение # 4



    Stalker
    Капрал
    Группа: Пользователи
    Сообщений: 55

    Замечания:

    Оффлайн
    Данный вопрос на вовжп поднимали год назад многие нашли способ как это сделать, так что не нада говорить что это не возможно, сложно не значит невозмоно.
     
    dddcsДата: Понеділок, 20.06.2011, 14:10 | Сообщение # 5



    dddcs
    Скаут
    Группа: Пользователи
    Сообщений: 26

    Замечания:

    Оффлайн
    Stalker,
    Нет, ну я просто в шоке....
    Ты знаешь что такое процесс компиляции? Ммм... почитай в интернете..
    А по простому, то что ты написал что якобы возможно, это все равно что из пицы, пытаться сырое тесто достать...!


    Мой новый профиль Тык
     
    DiyvolДата: Вівторок, 21.06.2011, 13:29 | Сообщение # 6



    Diyvol
    ЗлОй-АйТИшник
    Центурион
    Группа: Best of the Best user Wow-info
    Сообщений: 356

    Замечания:

    Оффлайн
    Stalker чувак красавчик спасибо поднял мое мрачное натсроение что аш терь смех на весь дом ))) crazy
    а так поделу ну раз ты у нас тут токой умный распиши по этапно нам FQ как это делается )))) deal



    Веб-дизайнер.
    Работа, учеба и тренажерный зал. Жизнь это когда ты рад тому, что ты устал. Я не вижу смысла в жизни наркоманов. Наркотик в роли пастуха для всех этих баранов. Я иду вперед и не думаю сворачивать.
     
    NestДата: Вівторок, 21.06.2011, 15:46 | Сообщение # 7



    Nest
    Скаут
    Группа: Пользователи
    Сообщений: 36

    Замечания:

    Оффлайн
    Вообщето можно декомпилить программу!,для этого существуют дизассемблеры с функцией перевода машинного кода в язык ассемблера и исполняемый C код,так что я поддерживаю мнение Stalker

    Добавлено (21.06.2011, 15:46)
    ---------------------------------------------

    часть кода ядра trinity на ассемблере
    Code

    _MINIDUMP_EXCEPTION_INFORMATION    struc ;    (sizeof=0xC, standard type)
    ThreadId dd ?
    ExceptionPointers dd ?    ; offset
    ClientPointers dd ?
    _MINIDUMP_EXCEPTION_INFORMATION    ends

    tagPOINT struc ; (sizeof=0x8, standard type)
    x dd ?
    y dd ?
    tagPOINT ends

    SERVICE_TABLE_ENTRYA struc ; (sizeof=0x8, standard type)
    lpServiceName dd ?    ; offset
    lpServiceProc dd ?    ; offset
    SERVICE_TABLE_ENTRYA ends

    _SERVICE_STATUS    struc ;    (sizeof=0x1C, standard type)
    dwServiceType dd ?
    dwCurrentState dd ?
    dwControlsAccepted dd ?
    dwWin32ExitCode    dd ?
    dwServiceSpecificExitCode dd ?
    dwCheckPoint dd    ?
    dwWaitHint dd ?
    _SERVICE_STATUS    ends

    _SYSTEMTIME struc ; (sizeof=0x10, standard type)
    wYear dw ?
    wMonth dw ?
    wDayOfWeek dw ?
    wDay dw    ?
    wHour dw ?
    wMinute    dw ?
    wSecond    dw ?
    wMilliseconds dw ?
    _SYSTEMTIME ends

    FLOATING_SAVE_AREA struc ; (sizeof=0x70, standard type)
    ControlWord dd ?
    StatusWord dd ?
    TagWord    dd ?
    ErrorOffset dd ?
    ErrorSelector dd ?
    DataOffset dd ?
    DataSelector dd    ?
    RegisterArea db    80 dup(?)
    Cr0NpxState dd ?
    FLOATING_SAVE_AREA ends

    CONTEXT    struc ;    (sizeof=0x2CC, standard    type)
    ContextFlags dd    ?
    Dr0 dd ?
    Dr1 dd ?
    Dr2 dd ?
    Dr3 dd ?
    Dr6 dd ?
    Dr7 dd ?
    FloatSave FLOATING_SAVE_AREA ?
    SegGs dd ?
    SegFs dd ?
    SegEs dd ?
    SegDs dd ?
    _Edi dd    ?
    _Esi dd    ?
    _Ebx dd    ?
    _Edx dd    ?
    _Ecx dd    ?
    _Eax dd    ?
    _Ebp dd    ?
    _Eip dd    ?
    SegCs dd ?
    EFlags dd ?
    _Esp dd    ?
    SegSs dd ?
    ExtendedRegisters db 512 dup(?)
    CONTEXT    ends

    THREADENTRY32 struc ; (sizeof=0x1C, standard type)
    dwSize dd ?
    cntUsage dd ?
    th32ThreadID dd    ?
    th32OwnerProcessID dd ?
    tpBasePri dd ?
    tpDeltaPri dd ?
    dwFlags    dd ?
    THREADENTRY32 ends

    _IMAGEHLP_STACK_FRAME struc ; (sizeof=0x80, standard type)
    InstructionOffset dq ?
    ReturnOffset dq    ?
    FrameOffset dq ?
    StackOffset dq ?
    BackingStoreOffset dq ?
    FuncTableEntry dq ?
    Params dq 4 dup(?)
    Reserved dq 5 dup(?)
    Virtual    dd ?
    Reserved2 dd ?
    _IMAGEHLP_STACK_FRAME ends

    _IMAGEHLP_LINE64 struc ; (sizeof=0x18, standard    type)
    SizeOfStruct dd    ?
    Key dd ?  ; offset
    LineNumber dd ?
    FileName dd ?  ; offset
    Address    dq ?
    _IMAGEHLP_LINE64 ends

    _SYMBOL_INFO struc ; (sizeof=0x54, standard type)
    SizeOfStruct dd    ?
    TypeIndex dd ?
    Reserved dq 2 dup(?)
    Index dd ?
    Size dd    ?
    ModBase    dq ?
    Flags dd ?
    Value dq ?
    Address    dq ?
    Register dd ?
    Scope dd ?
    Tag dd ?
    NameLen    dd ?
    MaxNameLen dd ?
    Name db    ?
    _padding db 3 dup(?)
    _SYMBOL_INFO ends

    _MEMORYSTATUS struc ; (sizeof=0x20, standard type)
    dwLength dd ?
    dwMemoryLoad dd    ?
    dwTotalPhys dd ?
    dwAvailPhys dd ?
    dwTotalPageFile    dd ?
    dwAvailPageFile    dd ?
    dwTotalVirtual dd ?
    dwAvailVirtual dd ?
    _MEMORYSTATUS ends

    _SYSTEM_INFO::$844D9DC795B618992E421200B564E811::$AA04DEB0C6383F89F13D312A174572A9 struc ; (sizeof=0x4,    standard type)
    wProcessorArchitecture dw ?
    wReserved dw ?
    _SYSTEM_INFO::$844D9DC795B618992E421200B564E811::$AA04DEB0C6383F89F13D312A174572A9 ends

    _SYSTEM_INFO::$844D9DC795B618992E421200B564E811    union ;    (sizeof=0x4, standard type)
    dwOemId    dd ?
    anonymous_0 _SYSTEM_INFO::$844D9DC795B618992E421200B564E811::$AA04DEB0C6383F89F13D312A174572A9 ?
    _SYSTEM_INFO::$844D9DC795B618992E421200B564E811    ends

    KEY_EVENT_RECORD struc ; (sizeof=0x10, standard    type)
    bKeyDown dd ?
    wRepeatCount dw    ?
    wVirtualKeyCode    dw ?
    wVirtualScanCode dw ?
    uChar _KEY_EVENT_RECORD::$0E79EC4DAC98A4AB202537FA8C3F69FC ?
    dwControlKeyState dd ?
    KEY_EVENT_RECORD ends

    _INPUT_RECORD::$56C9F45CD5AB058B1B4FD5A9AB9216C4 union ; (sizeof=0x10, standard    type)
    KeyEvent KEY_EVENT_RECORD ?
    MouseEvent MOUSE_EVENT_RECORD ?
    WindowBufferSizeEvent WINDOW_BUFFER_SIZE_RECORD    ?
    MenuEvent MENU_EVENT_RECORD ?
    FocusEvent FOCUS_EVENT_RECORD ?
    _INPUT_RECORD::$56C9F45CD5AB058B1B4FD5A9AB9216C4 ends

    ; +-------------------------------------------------------------------------+
    ; | This file    has been generated by The Interactive Disassembler (IDA) |
    ; |  Copyright (c) 2009 by Hex-Rays, <support@hex-rays.com>  |
    ; |    License info: 36-DE73-413A-E6    |
    ; |     Licensed User     |
    ; +-------------------------------------------------------------------------+
    ;
    ; Input    MD5 :    1BD3CCD6C2C524AF167B5E5A4EC4FCE9

    ; File Name :    home\ilyanes\\worldserver.exe
    ; Format :    Portable executable for    80386 (PE)
    ; Imagebase :    400000
    ; Section 1. (virtual address 00001000)
    ; Virtual size   : 004C8AD4 (5016276.)
    ; Section size in file  : 004C8C00 (5016576.)
    ; Offset to raw    data for section: 00000400
    ; Flags    60000020: Text Executable Readable
    ; Alignment    : default

    include    uni.inc    ; see unicode subdir of    ida for    info on    unicode

    .686p
    .mmx
    .model flat

    ; Segment type:    Pure code
    ; Segment permissions: Read/Execute
    _text segment para public 'CODE' use32
    assume cs:_text
    ;org 401000h
    assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing

    ; Attributes: bp-based frame

    sub_401000 proc    near

    arg_0= dword ptr 8

    push    ebp
    mov    ebp, esp
    mov    eax, [ebp+arg_0]
    movzx    eax, word ptr [eax+6]
    cmp    eax, 4000h
    ja    short loc_401022
    jz    short loc_40102C
    test    eax, eax
    jz    short loc_40102C
    cmp    eax, 1F50h
    jz    short loc_40102C

    loc_40101E:
    mov    al, 1
    pop    ebp
    retn

    loc_401022:
    add    eax, 0FFFF0F00h
    cmp    eax, 1
    ja    short loc_40101E

    loc_40102C:
    xor    al, al
    pop    ebp
    retn
    sub_401000 endp

    sub_401030 proc    near
    mov    dword ptr [ecx], offset    off_8CAF4C
    jmp    ds:__imp_??1exception@std@@UAE@XZ ; std::exception::~exception(void)
    sub_401030 endp

    align 10h

    ; Attributes: bp-based frame

    ; int __thiscall sub_401040(void *, char)
    sub_401040 proc    near

    arg_0= byte ptr  8

    push    ebp
    mov    ebp, esp
    push    esi
    mov    esi, ecx
    mov    dword ptr [esi], offset    off_8CAF4C
    call    ds:__imp_??1exception@std@@UAE@XZ ; std::exception::~exception(void)
    test    [ebp+arg_0], 1
    jz    short loc_401061
    push    esi  ; void *
    call    ??3@YAXPAX@Z    ; operator delete(void *)
    add    esp, 4

    loc_401061:
    mov    eax, esi
    pop    esi
    pop    ebp
    retn    4
    sub_401040 endp

    align 10h

    ; Attributes: bp-based frame

    sub_401070 proc    near

    arg_0= word ptr  8

    push    ebp
    mov    ebp, esp
    push    esi
    push    edi
    movzx    edi, [ebp+arg_0]
    mov    esi, ecx
    movzx    eax, word ptr [esi+18h]
    lea    ecx, [edi+1]
    cmp    ecx, eax
    jl    short loc_4010C4
    push    0
    push    edi
    mov    ecx, esi
    call    sub_410D40
    test    al, al
    jnz    short loc_4010C4
    push    offset aIndex1M_values ; "index    + 1 < m_valuesCount || PrintIndex"...
    push    offset aObjectGetuint6 ; "Object::GetUInt64Value"
    push    0BAh
    push    offset aDTrinitycoreTr ; "D:\\TrinityCore-TrinityCore-UP36-281-g66"...
    push    offset Format    ; "\n%s:%i in %s ASSERTION FAILED2:\n %s\n"
    call    ds:__iob_func
    add    eax, 40h
    push    eax  ; File
    call    ds:fprintf
    add    esp, 18h
    xor    edx, edx
    call    edx

    loc_4010C4:
    mov    eax, [esi+10h]
    lea    eax, [eax+edi*4]
    pop    edi
    pop    esi
    pop    ebp
    retn    4
    sub_401070 endp

    ; START    OF FUNCTION CHUNK FOR sub_89BB50

    loc_4010D0:
    mov    ecx, [ecx]
    test    ecx, ecx
    jz    short locret_4010EA
    call    ds:?_Decref@facet@locale@std@@QAEPAV123@XZ ; std::locale::facet::_Decref(void)
    test    eax, eax
    jz    short locret_4010EA
    mov    edx, [eax]
    mov    ecx, eax
    mov    eax, [edx]
    push    1
    call    eax

    locret_4010EA:
    retn
    ; END OF FUNCTION CHUNK    FOR sub_89BB50
    align 10h

    ; Attributes: bp-based frame

    sub_4010F0 proc    near

    var_4658= dword    ptr -4658h
    szSrc= word ptr    -4654h
    Format=    byte ptr -1774h
    var_4= dword ptr -4
    arg_4= dword ptr 0Ch

    push    ebp
    mov    ebp, esp
    mov    eax, 4658h
    call    sub_89AA70
    mov    eax, dword_A53044
    xor    eax, ebp
    mov    [ebp+var_4], eax
    mov    edx, [ebp+arg_4]
    mov    eax, edx
    push    esi
    mov    [ebp+var_4658],    176Fh
    lea    esi, [eax+1]
    lea    ebx, [ebx+0]

    loc_401120:
    mov    cl, [eax]
    inc    eax
    test    cl, cl
    jnz    short loc_401120
    lea    ecx, [ebp+var_4658]
    push    ecx
    lea    ecx, [ebp+szSrc]
    push    ecx
    sub    eax, esi
    push    eax
    push    edx
    call    sub_6B6960
    add    esp, 10h
    pop    esi
    test    al, al
    jz    short loc_401172
    mov    edx, [ebp+var_4658]
    inc    edx
    push    edx  ; cchDstLength
    lea    eax, [ebp+Format]
    push    eax  ; lpszDst
    lea    ecx, [ebp+szSrc]
    push    ecx  ; lpszSrc
    call    ds:CharToOemBuffW
    lea    edx, [ebp+Format]
    push    edx  ; Format
    call    ds:printf
    add    esp, 4

    loc_401172:
    mov    ecx, [ebp+var_4]
    xor    ecx, ebp
    call    sub_89AA52
    mov    esp, ebp
    pop    ebp
    retn
    sub_4010F0 endp

    sub_401180 proc    near
    push    offset aTc_0    ; "TC> "
    call    ds:printf
    call    ds:__iob_func
    add    eax, 20h
    push    eax  ; File
    call    ds:fflush
    add    esp, 8
    retn
    sub_401180 endp

    align 10h

    sub_4011A0 proc    near
    mov    eax, [ecx+4]
    test    eax, eax
    jnz    short loc_4011A8
    retn

    loc_4011A8:
    cmp    byte ptr [ecx+0Ch], 0
    jz    short loc_4011B1
    mov    eax, [eax]
    retn

    loc_4011B1:  ; Radix
    push    0Ah
    push    0  ; EndPtr
    push    eax  ; Str
    call    ds:strtoul
    add    esp, 0Ch
    retn
    sub_4011A0 endp

    ; Attributes: bp-based frame

    ; int __stdcall    sub_4011C0(int,    void *Src, int,    int)
    sub_4011C0 proc    near

    arg_0= dword ptr 8
    Src= dword ptr    0Ch
    arg_8= dword ptr 10h
    arg_C= dword ptr 14h

    push    ebp
    mov    ebp, esp
    mov    eax, [ebp+arg_0]
    mov    edx, [ebp+arg_C]
    push    ebx
    mov    ebx, [ebp+Src]
    push    esi
    mov    esi, ecx
    mov    ecx, [ebp+arg_8]
    mov    [esi], eax
    mov    eax, ebx
    mov    [esi+0Ch], edx
    push    edi
    mov    [esi+8], ecx
    lea    edx, [eax+1]

    loc_4011E1:
    mov    cl, [eax]
    inc    eax
    test    cl, cl
    jnz    short loc_4011E1
    sub    eax, edx
    lea    edi, [eax+1]
    push    edi
    call    sub_89A9A6
    push    edi  ; Size
    push    ebx  ; Src
    push    eax  ; Dst
    mov    [esi+4], eax
    call    memcpy
    add    esp, 10h
    pop    edi
    mov    eax, esi
    pop    esi
    pop    ebx
    pop    ebp
    retn    10h
    sub_4011C0 endp

    align 10h

    ; Attributes: bp-based frame

    sub_401210 proc    near

    arg_0= dword ptr 8

    push    ebp
    mov    ebp, esp
    mov    eax, [ebp+arg_0]
    cmp    eax, 8Ah
    jge    short loc_401228
    mov    eax, [ecx+eax*4+2D4h]
    pop    ebp
    retn    4

    loc_401228:
    xor    eax, eax
    pop    ebp
    retn    4
    sub_401210 endp

    align 10h

    ; Attributes: bp-based frame

    sub_401230 proc    near

    arg_0= dword ptr 8

    push    ebp
    mov    ebp, esp
    mov    ecx, [ebp+arg_0]
    mov    al, [ecx]
    test    al, al
    jz    short loc_40124E
    lea    esp, [esp+0]

    loc_401240:
    sub    al, 30h
    cmp    al, 9
    ja    short loc_401252
    mov    al, [ecx+1]
    inc    ecx
    test    al, al
    jnz    short loc_401240

    loc_40124E:
    mov    al, 1
    pop    ebp
    retn

    loc_401252:
    xor    al, al
    pop    ebp
    retn
    sub_401230 endp

    align 10h
    ; START    OF FUNCTION CHUNK FOR sub_89B8F0

    loc_401260:
    push    esi
    mov    esi, ecx
    mov    eax, [esi]
    mov    ecx, [eax]
    mov    ecx, [ecx+4]
    add    ecx, eax
    call    ds:?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ    ; std::basic_ios<char,std::char_traits<char>>::rdbuf(void)
    test    eax, eax
    jz    short loc_40128F
    mov    eax, [esi]
    mov    edx, [eax]
    mov    ecx, [edx+4]
    add    ecx, eax
    call    ds:?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ    ; std::basic_ios<char,std::char_traits<char>>::rdbuf(void)
    mov    edx, [eax]
    mov    ecx, eax
    mov    eax, [edx+8]
    pop    esi
    jmp    eax

    loc_40128F:
    pop    esi
    retn
    ; END OF FUNCTION CHUNK    FOR sub_89B8F0
    align 10h

    ; Attributes: bp-based frame

    ; int __stdcall    sub_4012A0(int,    size_t Size, char)
    sub_4012A0 proc    near

    arg_0= dword ptr 8
    Size= dword ptr  0Ch
    arg_8= byte ptr  10h

    push    ebp
    mov    ebp, esp
    mov    eax, [ebp+Size]
    cmp    eax, 1
    jnz    short loc_4012C0
    cmp    dword ptr [ecx+14h], 10h
    jb    short loc_4012B3
    mov    ecx, [ecx]
    ; Attributes: bp-based frame

    sub_401340 proc    near

    var_20=    byte ptr -20h
    var_14=    byte ptr -14h
    var_10=    dword ptr -10h
    var_C= dword ptr -0Ch
    var_4= dword ptr -4
    arg_0= dword ptr 8

    push    ebp
    mov    ebp, esp
    push    0FFFFFFFFh
    push    offset loc_89B899
    mov    eax, large fs:0
    push    eax
    sub    esp, 14h
    push    esi
    push    edi
    mov    eax, dword_A53044
    xor    eax, ebp
    push    eax
    lea    eax, [ebp+var_C]
    mov    large fs:0, eax
    push    0
    lea    ecx, [ebp+var_14]
    call    ds:??0_Lockit@std@@QAE@H@Z ; std::_Lockit::_Lockit(int)
    mov    eax, dword_A53060
    mov    ecx, ds:?id@?$ctype@D@std@@2V0locale@2@A ; std::locale::id std::ctype<char>::id
    mov    [ebp+var_4], 0
    mov    [ebp+var_10], eax
    call    ds:??Bid@locale@std@@QAEIXZ ; std::locale::id::operator    uint(void)
    mov    edi, [ebp+arg_0]
    mov    esi, eax
    mov    eax, [edi]
    cmp    esi, [eax+0Ch]
    jnb    short loc_4013BC
    mov    ecx, [eax+8]
    mov    ecx, [ecx+esi*4]
    test    ecx, ecx
    jnz    short loc_4013C0

    loc_4013A3:
    cmp    byte ptr [eax+14h], 0
    jz    short loc_4013C0
    call    ds:?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ ; std::locale::_Getgloballocale(void)
    cmp    esi, [eax+0Ch]
    jnb    short loc_4013C6
    mov    edx, [eax+8]
    mov    esi, [edx+esi*4]
    jmp    short loc_4013C2

    loc_4013BC:
    xor    ecx, ecx
    jmp    short loc_4013A3

    loc_4013C0:
    mov    esi, ecx

    loc_4013C2:
    test    esi, esi
    jnz    short loc_401418

    loc_4013C6:
    mov    esi, [ebp+var_10]
    test    esi, esi
    jnz    short loc_401418
    lea    eax, [ebp+var_10]
    push    edi
    push    eax
    call    ds:?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@PBV42@@Z ; std::ctype<char>::_Getcat(std::locale::facet const    * *,std::locale    const *)
    add    esp, 8
    cmp    eax, 0FFFFFFFFh
    jnz    short loc_4013FC
    push    offset aBadCast    ; "bad cast"
    lea    ecx, [ebp+var_20]
    call    ds:??0bad_cast@std@@QAE@PBD@Z ;    std::bad_cast::bad_cast(char const *)
    push    offset unk_9EDE48
    lea    ecx, [ebp+var_20]
    push    ecx
    call    _CxxThrowException

    loc_4013FC:
    mov    ecx, [ebp+var_10]
    mov    esi, ecx
    mov    dword_A53060, ecx
    mov    edi, ecx
    call    ds:?_Incref@facet@locale@std@@QAEXXZ ; std::locale::facet::_Incref(void)
    push    edi
    call    sub_89A92C
    add    esp, 4

    loc_401418:
    lea    ecx, [ebp+var_14]
    mov    [ebp+var_4], 0FFFFFFFFh
    call    ds:??1_Lockit@std@@QAE@XZ ; std::_Lockit::~_Lockit(void)
    mov    eax, esi
    mov    ecx, [ebp+var_C]
    mov    large fs:0, ecx
    pop    ecx
    pop    edi
    pop    esi
    mov    esp, ebp
    pop    ebp
    retn
    sub_401340 endp

    align 10h

    ; Attributes: bp-based frame

    sub_401440 proc    near

    arg_0= dword ptr 8

    push    ebp
    mov    ebp, esp
    mov    eax, [ebp+arg_0]
    push    esi
    push    eax
    mov    esi, ecx
    call    ds:__imp_??0exception@std@@QAE@ABV01@@Z    ; std::exception::exception(exception::exception const &)
    mov    dword ptr [esi], offset    off_8CAF4C
    mov    eax, esi
    pop    esi
    pop    ebp
    retn    4
    sub_401440 endp

    sub_4014D0 proc    near
    push    esi
    mov    esi, ecx
    call    ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void)
    test    eax, eax
    jnz    short loc_4014E2
    or    eax, 0FFFFFFFFh
    pop    esi
    retn

    loc_4014E2:
    mov    eax, [esi+30h]
    mov    ecx, [esi+20h]
    push    edi
    mov    edi, [eax]
    add    edi, [ecx]
    mov    ecx, esi
    call    ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void)
    cmp    eax, edi
    jnb    short loc_401507
    mov    ecx, esi
    call    ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void)
    movzx    eax, byte ptr [eax]
    pop    edi
    pop    esi
    retn

    loc_401507:
    test    byte ptr [esi+40h], 4
    jnz    short loc_401585
    mov    ecx, esi
    call    ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void)
    test    eax, eax
    jz    short loc_401585
    mov    ecx, esi
    call    ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void)
    mov    ecx, esi
    mov    edi, eax
    call    ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void)
    cmp    edi, eax
    ja    short loc_40153C
    mov    ecx, esi
    call    ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void)
    cmp    [esi+3Ch], eax
    jbe    short loc_401585

    loc_40153C:
    mov    ecx, esi
    call    ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void)
    cmp    [esi+3Ch], eax
    jnb    short loc_401554
    mov    ecx, esi
    call    ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void)
    mov    [esi+3Ch], eax

    loc_401554:
    mov    edx, [esi+10h]
    mov    edi, [esi+3Ch]
    push    ebx
    mov    ebx, [edx]
    mov    ecx, esi
    call    ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void)
    mov    ecx, [esi+10h]
    mov    [ecx], ebx
    mov    edx, [esi+20h]
    mov    [edx], eax
    sub    edi, eax
    mov    eax, [esi+30h]
    mov    ecx, esi
    mov    [eax], edi
    call    ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void)
    movzx    eax, byte ptr [eax]
    pop    ebx
    pop    edi
    pop    esi
    retn

    loc_401585:
    pop    edi
    or    eax, 0FFFFFFFFh
    pop    esi
    retn
    sub_4014D0 endp

    align 10h

    ; Attributes: bp-based frame

    sub_401590 proc    near

    arg_0= dword ptr 8

    push    ebp
    mov    ebp, esp
    push    ebx
    push    esi
    mov    esi, ecx
    call    ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void)
    test    eax, eax
    jz    short loc_4015F8
    mov    eax, [esi+10h]
    push    edi
    mov    edi, [eax]
    mov    ecx, esi
    call    ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void)
    cmp    eax, edi
    pop    edi
    jbe    short loc_4015F8
    mov    ebx, [ebp+arg_0]
    cmp    ebx, 0FFFFFFFFh
    jz    short loc_4015CF
    mov    ecx, esi
    call    ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void)
    cmp    bl, [eax-1]
    jz    short loc_4015CF
    test    byte ptr [esi+40h], 2
    jnz    short loc_4015F8

    loc_4015CF:
    push    0FFFFFFFFh
    mov    ecx, esi
    call    ds:?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z ; std::basic_streambuf<char,std::char_traits<char>>::gbump(int)
    cmp    ebx, 0FFFFFFFFh
    jz    short loc_4015F0
    mov    ecx, esi
    call    ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void)
    mov    [eax], bl
    pop    esi
    mov    eax, ebx
    pop    ebx
    pop    ebp
    retn    4

    loc_4015F0:
    pop    esi
    xor    eax, eax
    pop    ebx
    pop    ebp
    retn    4

    loc_4015F8:
    pop    esi
    or    eax, 0FFFFFFFFh
    pop    ebx
    pop    ebp
    retn    4
    sub_401590 endp

    align 10h

    ; Attributes: bp-based frame

    sub_401610 proc    near

    arg_0= dword ptr 8
    arg_4= dword ptr 0Ch
    arg_8= dword ptr 10h
    arg_C= dword ptr 14h
    arg_10=    dword ptr 18h

    push    ebp
    mov    ebp, esp
    push    ebx
    push    esi
    push    edi
    mov    esi, ecx
    call    ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void)
    test    eax, eax
    jz    short loc_40163A
    mov    ecx, esi
    call    ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void)
    cmp    [esi+3Ch], eax
    jnb    short loc_40163A
    mov    ecx, esi
    call    ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void)
    mov    [esi+3Ch], eax

    loc_40163A:
    mov    bl, byte ptr [ebp+arg_10]
    test    bl, 1
    jz    loc_40174D
    mov    ecx, esi
    call    ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void)
    test    eax, eax
    jz    loc_40174D
    mov    eax, [ebp+arg_C]
    cmp    eax, 2
    jnz    short loc_401673
    mov    ecx, [esi+10h]
    mov    eax, [esi+3Ch]
    sub    eax, [ecx]
    mov    edi, [ebp+arg_4]
    mov    ebx, [ebp+arg_8]
    cdq
    add    edi, eax
    adc    ebx, edx
    jmp    short loc_4016AF

    loc_401673:
    cmp    eax, 1
    jnz    short loc_401699
    test    bl, 2
    jnz    short loc_40169D
    mov    edx, [esi+10h]
    mov    edi, [edx]
    mov    ecx, esi
    call    ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void)
    mov    ebx, [ebp+arg_8]
    sub    eax, edi
    mov    edi, [ebp+arg_4]
    cdq
    add    edi, eax
    adc    ebx, edx
    jmp    short loc_4016AF

    loc_401699:
    test    eax, eax
    jz    short loc_4016A9

    loc_40169D:  ; __int64 const    std::_BADOFF
    mov    eax, ds:?_BADOFF@std@@3_JB
    mov    edi, [eax]
    mov    ebx, [eax+4]
    jmp    short loc_4016AF

    loc_4016A9:
    mov    ebx, [ebp+arg_8]
    mov    edi, [ebp+arg_4]

    loc_4016AF:
    test    ebx, ebx
    jl    loc_401803
    jg    short loc_4016C1
    test    edi, edi
    jb    loc_401803

    loc_4016C1:
    mov    eax, [esi+10h]
    mov    ecx, [eax]
    mov    eax, [esi+3Ch]
    sub    eax, ecx
    cdq
    mov    [ebp+arg_C], ecx
    cmp    ebx, edx
    jg    loc_401803
    jl    short loc_4016E1
    cmp    edi, eax
    ja    loc_401803

    loc_4016E1:
    mov    ecx, esi
    call    ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void)
    mov    ecx, [ebp+arg_C]
    lea    edx, [edi+ecx]
    sub    edx, eax
    push    edx
    mov    ecx, esi
    call    ds:?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z ; std::basic_streambuf<char,std::char_traits<char>>::gbump(int)
    test    byte ptr [ebp+arg_10], 2
    jz    loc_40180D
    mov    ecx, esi
    call    ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void)
    test    eax, eax
    jz    loc_40180D
    mov    eax, [esi+24h]
    mov    ecx, [esi+34h]
    mov    eax, [eax]
    add    eax, [ecx]
    mov    edx, [esi+14h]
    mov    [ebp+arg_C], eax
    mov    eax, [edx]
    mov    ecx, esi
    mov    [ebp+arg_10], eax
    call    ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void)
    mov    ecx, [esi+14h]
    mov    edx, [ebp+arg_10]
    mov    [ecx], edx
    mov    ecx, [esi+24h]
    mov    [ecx], eax
    mov    ecx, [ebp+arg_C]
    mov    edx, [esi+34h]
    sub    ecx, eax
    mov    [edx], ecx
    jmp    loc_40180D

    loc_40174D:
    test    bl, 2
    jz    loc_4017F7
    mov    ecx, esi
    call    ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void)
    test    eax, eax
    jz    loc_4017F7
    mov    eax, [ebp+arg_C]
    cmp    eax, 2
    jnz    short loc_401783
    mov    ecx, [esi+10h]
    mov    eax, [esi+3Ch]
    sub    eax, [ecx]
    mov    edi, [ebp+arg_4]
    mov    ebx, [ebp+arg_8]
    cdq
    add    edi, eax
    adc    ebx, edx
    jmp    short loc_4017BA

    loc_401783:
    cmp    eax, 1
    jnz    short loc_4017A4
    mov    edx, [esi+10h]
    mov    edi, [edx]
    mov    ecx, esi
    call    ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void)
    mov    ebx, [ebp+arg_8]
    sub    eax, edi
    mov    edi, [ebp+arg_4]
    cdq
    add    edi, eax
    adc    ebx, edx
    jmp    short loc_4017BA

    loc_4017A4:
    test    eax, eax
    jz    short loc_4017B4
    mov    eax, ds:?_BADOFF@std@@3_JB ; __int64 const std::_BADOFF
    mov    edi, [eax]
    mov    ebx, [eax+4]
    jmp    short loc_4017BA

    loc_4017B4:
    mov    ebx, [ebp+arg_8]
    mov    edi, [ebp+arg_4]

    loc_4017BA:
    test    ebx, ebx
    jl    short loc_401803
    jg    short loc_4017C4
    test    edi, edi
    jb    short loc_401803

    loc_4017C4:
    mov    eax, [esi+10h]
    mov    ecx, [eax]
    mov    eax, [esi+3Ch]
    sub    eax, ecx
    cdq
    mov    [ebp+arg_C], ecx
    cmp    ebx, edx
    jg    short loc_401803
    jl    short loc_4017DC
    cmp    edi, eax
    ja    short loc_401803

    ; Attributes: bp-based frame

    sub_401830 proc    near

    var_8= dword ptr -8
    var_4= dword ptr -4
    arg_0= dword ptr 8
    arg_4= dword ptr 0Ch
    arg_8= dword ptr 10h
    arg_C= dword ptr 14h
    arg_1C=    dword ptr 24h

    push    ebp
    mov    ebp, esp
    sub    esp, 0Ch
    mov    eax, [ebp+arg_C]
    push    ebx
    push    esi
    cdq
    push    edi
    mov    edi, eax
    add    edi, [ebp+arg_4]
    mov    ebx, edx
    adc    ebx, [ebp+arg_8]
    mov    esi, ecx
    mov    [ebp+var_8], ebx
    call    ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void)
    test    eax, eax
    jz    short loc_40186E
    mov    ecx, esi
    call    ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void)
    cmp    [esi+3Ch], eax
    jnb    short loc_40186E
    mov    ecx, esi
    call    ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void)
    mov    [esi+3Ch], eax

    loc_40186E:  ; __int64 const    std::_BADOFF
    mov    eax, ds:?_BADOFF@std@@3_JB
    cmp    edi, [eax]
    jnz    short loc_401880
    cmp    ebx, [eax+4]
    jz    loc_4019A2

    loc_401880:
    test    byte ptr [ebp+arg_1C], 1
    jz    loc_401934
    mov    ecx, esi
    call    ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void)
    test    eax, eax
    jz    loc_40192F
    test    ebx, ebx
    jl    loc_401992
    jg    short loc_4018AC
    test    edi, edi
    jb    loc_401992

    loc_4018AC:
    mov    eax, [esi+10h]
    mov    ecx, [eax]
    mov    eax, [esi+3Ch]
    sub    eax, ecx
    cdq
    mov    [ebp+var_4], ecx
    cmp    ebx, edx
    jg    loc_401992
    jl    short loc_4018CC
    cmp    edi, eax
    ja    loc_401992

    loc_4018CC:
    mov    ecx, esi
    call    ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void)
    mov    ecx, [ebp+var_4]
    lea    edx, [edi+ecx]
    sub    edx, eax
    push    edx
    mov    ecx, esi
    call    ds:?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z ; std::basic_streambuf<char,std::char_traits<char>>::gbump(int)
    test    byte ptr [ebp+arg_1C], 2
    jz    loc_4019A2
    mov    ecx, esi
    call    ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void)
    test    eax, eax
    jz    loc_4019A2
    mov    eax, [esi+34h]
    mov    ecx, [esi+24h]
    mov    ebx, [eax]
    mov    edx, [esi+14h]
    add    ebx, [ecx]
    mov    eax, [edx]
    mov    ecx, esi
    mov    [ebp+arg_1C], eax
    call    ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void)
    mov    ecx, [esi+14h]
    mov    edx, [ebp+arg_1C]
    mov    [ecx], edx
    mov    ecx, [esi+24h]
    mov    [ecx], eax
    mov    edx, [esi+34h]
    sub    ebx, eax
    mov    [edx], ebx
    jmp    short loc_40199F

    loc_401968:
    mov    ecx, esi
    call    ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void)
    mov    edx, [ebp+var_4]
    lea    ecx, [edi+edx]
    sub    ecx, eax
    push    ecx
    mov    ecx, esi
    call    ds:?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z ; std::basic_streambuf<char,std::char_traits<char>>::pbump(int)
    jmp    short loc_4019A2

    loc_401983:  ; __int64 const    std::_BADOFF
    mov    eax, ds:?_BADOFF@std@@3_JB
    mov    edx, [eax+4]
    mov    edi, [eax]
    mov    [ebp+var_8], edx
    jmp    short loc_40199F

    sub_4019C0 proc    near
    mov    eax, ecx
    cmp    dword ptr [eax+14h], 10h
    jb    short locret_4019CA
    mov    eax, [eax]

    locret_4019CA:
    retn
    sub_4019C0 endp

    align 10h

    ; Attributes: bp-based frame

    ; int __thiscall sub_4019D0(void *, char)
    sub_4019D0 proc    near

    var_10=    dword ptr -10h
    var_C= dword ptr -0Ch
    var_4= dword ptr -4
    arg_0= byte ptr  8

    push    ebp
    mov    ebp, esp
    push    0FFFFFFFFh
    push    offset sub_89B8C9
    mov    eax, large fs:0
    push    eax
    push    ecx
    push    esi
    mov    eax, dword_A53044
    xor    eax, ebp
    push    eax
    lea    eax, [ebp+var_C]
    mov    large fs:0, eax
    mov    esi, ecx
    mov    [ebp+var_10], esi
    mov    dword ptr [esi], offset    off_8CB0FC
    mov    [ebp+var_4], 0
    call    sub_4012E0
    mov    ecx, esi
    mov    [ebp+var_4], 0FFFFFFFFh
    call    ds:??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_streambuf<char,std::char_traits<char>>::~basic_streambuf<char,std::char_traits<char>>(void)
    test    [ebp+arg_0], 1
    jz    short loc_401A29
    push    esi  ; void *
    call    ??3@YAXPAX@Z    ; operator delete(void *)
    add    esp, 4

    loc_401A29:
    mov    eax, esi
    mov    ecx, [ebp+var_C]
    mov    large fs:0, ecx
    pop    ecx
    pop    esi
    mov    esp, ebp
    pop    ebp
    retn    4
    sub_4019D0 endp

    align 10h

    ; Attributes: bp-based frame

    ; int __stdcall    sub_401A40(char    *Src)
    sub_401A40 proc    near

    var_C= dword ptr -0Ch
    var_4= dword ptr -4
    Src= dword ptr    8

    loc_401A91:
    mov    ecx, [edi]
    push    0
    push    eax
    mov    [ebp+var_4], 0FFFFFFFFh
    call    ds:?enqueue@ACE_Activation_Queue@@QAEHPAVACE_Method_Request@@PAVACE_Time_Value@@@Z ; ACE_Activation_Queue::enqueue(ACE_Method_Request *,ACE_Time_Value *)

    loc_401B18:
    mov    ecx, [esi]
    mov    ecx, [ecx+4]
    add    ecx, esi
    mov    [ebp+var_4], 0
    call    ds:?good@ios_base@std@@QBE_NXZ ; std::ios_base::good(void)
    test    al, al
    jz    short loc_401B56
    mov    edx, [esi]
    mov    ecx, [edx+4]
    add    ecx, esi
    call    ds:?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ ; std::basic_ios<char,std::char_traits<char>>::tie(void)
    test    eax, eax
    jz    short loc_401B56
    mov    eax, [esi]
    mov    ecx, [eax+4]
    add    ecx, esi
    call    ds:?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ ; std::basic_ios<char,std::char_traits<char>>::tie(void)
    mov    ecx, eax
    call    ds:?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ ; std::basic_ostream<char,std::char_traits<char>>::flush(void)

    loc_401B56:
    mov    ecx, [esi]
    mov    ecx, [ecx+4]
    add    ecx, esi
    call    ds:?good@ios_base@std@@QBE_NXZ ; std::ios_base::good(void)
    mov    [edi+4], al
    mov    eax, edi
    mov    ecx, [ebp+var_C]
    mov    large fs:0, ecx
    pop    ecx
    pop    edi
    pop    esi
    mov    esp, ebp
    pop    ebp
    retn    4
    sub_401AC0 endp

    align 10h

    ; Attributes: bp-based frame

    sub_401B80 proc    near

    var_10=    dword ptr -10h
    var_C= dword ptr -0Ch
    var_4= dword ptr -4
    call    ds:?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ ;    std::basic_ostream<char,std::char_traits<char>>::_Osfx(void)

    loc_401BC2:
    mov    eax, [esi]
    mov    ecx, [eax]
    mov    ecx, [ecx+4]
    add    ecx, eax
    mov    [ebp+var_4], 0FFFFFFFFh
    call    ds:?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ    ; std::basic_ios<char,std::char_traits<char>>::rdbuf(void)
    test    eax, eax
    jz    short loc_401BF4
    mov    eax, [esi]
    mov    edx, [eax]
    mov    ecx, [edx+4]
    add    ecx, eax
    call    ds:?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ    ; std::basic_ios<char,std::char_traits<char>>::rdbuf(void)
    mov    edx, [eax]
    mov    ecx, eax
    mov    eax, [edx+8]
    call    eax

    loc_401BF4:
    mov    ecx, [ebp+var_C]
    mov    large fs:0, ecx
    pop    ecx
    pop    esi
    mov    esp, ebp
    pop    ebp
    retn
    sub_401B80 endp

    align 10h

    ; Attributes: bp-based frame

    sub_401C10 proc    near

    var_C= dword ptr -0Ch
    arg_0= dword ptr 8
    ; START    OF FUNCTION CHUNK FOR sub_89B950

    loc_401C60:
    or    eax, 0FFFFFFFFh
    cmp    [ecx+4], eax
    jz    short locret_401C73
    mov    [ecx+4], eax
    mov    ecx, [ecx]
    jmp    ds:?release@ACE_Thread_Mutex@@QAEHXZ ; ACE_Thread_Mutex::release(void)

    locret_401C73:
    retn
    ; END OF FUNCTION CHUNK    FOR sub_89B950
    align 10h
    loc_401D90:
    push    offset unk_A6B35C
    mov    ecx, offset off_A1A390
    call    ds:?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z ; type_info::_name_internal_method(__type_info_node *)
    push    eax
    mov    eax, dword_A53064
    push    0
    push    eax
    call    ds:?at_exit@ACE_Object_Manager@@SAHPAVACE_Cleanup@@PAXPBD@Z ; ACE_Object_Manager::at_exit(ACE_Cleanup *,void *,char const *)
    add    esp, 0Ch

    loc_401DB2:
    mov    ecx, edi
    mov    [ebp+var_4], 0FFFFFFFFh
    call    ds:?release@ACE_Thread_Mutex@@QAE



    Уехал на всё лето


    Сообщение отредактировал Nest - Вівторок, 21.06.2011, 15:49
     
    dddcsДата: Вівторок, 21.06.2011, 17:12 | Сообщение # 8



    dddcs
    Скаут
    Группа: Пользователи
    Сообщений: 26

    Замечания:

    Оффлайн
    Quote (Nest)
    Вообщето можно декомпилить программу!,для этого существуют дизассемблеры с функцией перевода машинного кода в язык ассемблера и исполняемый C код,так что я поддерживаю мнение Stalker,а

    Добавлено (21.06.2011, 15:46)
    ---------------------------------------------

    часть кода ядра trinity на ассемблере

    Вот именно! Код ты дизкомпелишь, а вот раскинешь по исходникам все? Нет, не просто повырезай код и распихай по файлах, а сделай активный hesh + TFM


    Мой новый профиль Тык
     
    NestДата: Вівторок, 21.06.2011, 19:27 | Сообщение # 9



    Nest
    Скаут
    Группа: Пользователи
    Сообщений: 36

    Замечания:

    Оффлайн
    Quote (dddcs)
    повырезай код и распихай по файлах
    Зачем мне это делать?это не люди пишут чтобы по файлам всё распаковывать,а машина,она просто не умеет создавать функции к каждому из файлов,она всё функции дизасемблерирут и записывает полученный ассемблерный код в отдельный файл, весом около 30 мг,в зависимости от веса самой подопытной программы,потом этот код ассемблера можно декомпилировать в C или C++ код.



    Уехал на всё лето
     
    TiTaN-WoWДата: Четвер, 07.07.2011, 11:33 | Сообщение # 10



    TiTaN-WoW
    Чемпион
    Группа: Пользователи
    Сообщений: 442

    Замечания:

    Оффлайн
    Помогите настроить ее немогу я
    Акк Root
    Пас 6655
    чар Characters, char1, char2, char3, char4, char5
    мир world, world1, world2, world3, world4, world5
    реалмы auth
    хост localhost
    готовое пожалуйста выложите=) ++ дам
     
    booyoodsДата: Четвер, 07.07.2011, 13:02 | Сообщение # 11



    booyoods
    Старший Маршал
    Группа: V.I.P
    Сообщений: 1333

    Замечания:

    Оффлайн
    Quote (TiTaN-WoW)
    Помогите настроить ее немогу я
    Акк Root
    Пас 6655
    чар Characters, char1, char2, char3, char4, char5
    мир world, world1, world2, world3, world4, world5
    реалмы auth
    хост localhost
    готовое пожалуйста выложите=) ++ дам


    Править очень много за + вряд ли кто возьмется за маленькую плату сделаю


     
    m[R]inoДата: Четвер, 07.07.2011, 13:18 | Сообщение # 12



    m[R]ino
    Центурион
    Группа: Пользователи
    Сообщений: 388

    Замечания:

    Оффлайн
    TiTaN-WoW, патч в ядре врядли есть, а без него, армори не будет работать (только фоновые функции работают без патча)
     
    TiTaN-WoWДата: Неділя, 24.07.2011, 15:10 | Сообщение # 13



    TiTaN-WoW
    Чемпион
    Группа: Пользователи
    Сообщений: 442

    Замечания:

    Оффлайн
    m[R]ino, я установил всё роботает на ура без патча!
     
    • Сторінка 1 з 1
    • 1
    Пошук:

    Новые сообщения в темах
    Сдам в аренду сервер и хостинг · (Хост Предложения)
    Автор: redlaine
    Последнее сообщение в 23:53
    хаха :D · (Приколы)
    Автор: [N1ke]Medved
    Последнее сообщение в 18:40
    Autobattle - новый боевой бот ... · (Боты для WoW)
    Автор: terrikon
    Последнее сообщение в 18:39
    PvE руководство для Чернокнижн... · (Чернокнижник)
    Автор: Darkensand
    Последнее сообщение в 18:38
    Пустой свиток (Часть 11) · (Истории WoW)
    Автор: R_a_Z_o_R
    Последнее сообщение в 18:37
    Друиды в Катаклизме: Официальн... · (Друид)
    Автор: Darkensand
    Последнее сообщение в 18:37
    [Баг 3.3.5] Фарм ледяных бадже... · (Читы для WoW)
    Автор: Darkensand
    Последнее сообщение в 18:35
    FarmBot (Бот для фарма руды и ... · (Боты для WoW)
    Автор: homma
    Последнее сообщение в 18:34
    Почему мы сражаемся: ролевая и... · (Воин)
    Автор: Darkensand
    Последнее сообщение в 18:34
    Книги по Wold of Warcraft · (Истории WoW)
    Автор: R_a_Z_o_R
    Последнее сообщение в 18:33
    Маг огня в Cataclysm · (Маг)
    Автор: Darkensand
    Последнее сообщение в 18:33
    Как начать играть в World of W... · (Полезно знать)
    Автор: Belkmondesh
    Последнее сообщение в 18:32
    Характеризация профессий · (Профессии)
    Автор: Darkensand
    Последнее сообщение в 18:31
    Что значит для арканов бета те... · (Маг)
    Автор: Darkensand
    Последнее сообщение в 18:31

    Контакты Контакты Copyright WoW-Info — World of Warcraft портал © 2025 | Условия и правила использования ресурса | Реклама / Услуги
    WoW-Info портал.World of Warcraft портал — готовые сервера, сайты, картинки, аддоны, патчи, читы, баги, mangos, ArcEmu, TrinityCore, Warcraft 3, новости, Cataclysm...
    Яндекс.Метрика Хостинг від uCoz