Привожу псевдокод из IDA. Тут есть что-то похожее на ограничение количества элементов? Например кнопок с подобными текстурами: “L2UI_CH3.Minimap.MapButton_ZoomIn2 " в игре их ограниченное количество. Я хочу найти место, где это ограничение может быть…
.text:1018B050 ; =============== S U B R O U T I N E =======================================
.text:1018B050
.text:1018B050 ; Attributes: bp-based frame fpd=204h
.text:1018B050
.text:1018B050 ; void __thiscall sub_1018B050(_DWORD *this)
.text:1018B050 sub_1018B050    proc near               ; CODE XREF: sub_1018BAC0+1DC↓p
.text:1018B050
.text:1018B050 var_288         = byte ptr -288h
.text:1018B050 var_27C         = dword ptr -27Ch
.text:1018B050 var_278         = byte ptr -278h
.text:1018B050 var_26C         = dword ptr -26Ch
.text:1018B050 var_268         = byte ptr -268h
.text:1018B050 var_25C         = byte ptr -25Ch
.text:1018B050 pExceptionObject= dword ptr -250h
.text:1018B050 var_24C         = dword ptr -24Ch
.text:1018B050 var_248         = dword ptr -248h
.text:1018B050 var_244         = dword ptr -244h
.text:1018B050 var_240         = dword ptr -240h
.text:1018B050 var_23C         = dword ptr -23Ch
.text:1018B050 var_238         = dword ptr -238h
.text:1018B050 var_234         = dword ptr -234h
.text:1018B050 var_230         = dword ptr -230h
.text:1018B050 var_22C         = dword ptr -22Ch
.text:1018B050 var_228         = dword ptr -228h
.text:1018B050 var_224         = dword ptr -224h
.text:1018B050 var_220         = dword ptr -220h
.text:1018B050 var_21C         = dword ptr -21Ch
.text:1018B050 var_218         = dword ptr -218h
.text:1018B050 var_214         = dword ptr -214h
.text:1018B050 var_210         = dword ptr -210h
.text:1018B050 var_208         = dword ptr -208h
.text:1018B050 var_204         = word ptr -204h
.text:1018B050 var_4           = dword ptr -4
.text:1018B050 arg_4           = dword ptr  0Ch
.text:1018B050
.text:1018B050 ; FUNCTION CHUNK AT .text:10214EF0 SIZE 00000096 BYTES
.text:1018B050
.text:1018B050 ; __unwind { // SEH_1018B050
.text:1018B050                 push    ebp
.text:1018B051                 lea     ebp, [esp-204h]
.text:1018B058                 sub     esp, 204h
.text:1018B05E                 push    0FFFFFFFFh
.text:1018B060                 push    offset SEH_1018B050
.text:1018B065                 mov     eax, large fs:0
.text:1018B06B                 push    eax
.text:1018B06C                 sub     esp, 78h
.text:1018B06F                 mov     eax, dword_103554C4
.text:1018B074                 xor     eax, ebp
.text:1018B076                 mov     [ebp+204h+var_4], eax
.text:1018B07C                 push    ebx
.text:1018B07D                 push    esi
.text:1018B07E                 push    edi
.text:1018B07F                 push    eax
.text:1018B080                 lea     eax, [ebp+204h+var_210]
.text:1018B083                 mov     large fs:0, eax
.text:1018B089                 mov     [ebp+204h+var_214], esp
.text:1018B08C                 mov     edi, ecx
.text:1018B08E                 xor     ebx, ebx
.text:1018B090                 mov     [ebp+204h+var_218], ebx
.text:1018B093 ;   try {
.text:1018B093                 mov     [ebp+204h+var_208], ebx
.text:1018B096                 mov     eax, ds:?GL2GameData@@3VFL2GameData@@A ; FL2GameData GL2GameData
.text:1018B09B                 mov     eax, [eax+7F9CCh]
.text:1018B0A1                 mov     [ebp+204h+var_234], eax
.text:1018B0A4                 mov     [ebp+204h+var_230], eax
.text:1018B0A7                 mov     [ebp+204h+var_22C], ebx
.text:1018B0AA                 mov     [ebp+204h+var_228], ebx
.text:1018B0AA ;   } // starts at 1018B093
.text:1018B0AD ;   try {
.text:1018B0AD                 mov     byte ptr [ebp+204h+var_208], 1
.text:1018B0B1
.text:1018B0B1 loc_1018B0B1:                           ; CODE XREF: sub_1018B050+102↓j
.text:1018B0B1                 cmp     ebx, [eax+4]
.text:1018B0B4                 jge     loc_1018B157
.text:1018B0BA                 lea     esi, [ebx+ebx*2]
.text:1018B0BD                 add     esi, esi
.text:1018B0BF                 add     esi, esi
.text:1018B0C1                 mov     ecx, [eax]
.text:1018B0C3                 mov     eax, [esi+ecx+8]
.text:1018B0C7                 mov     [ebp+204h+var_21C], eax
.text:1018B0CA                 test    eax, eax
.text:1018B0CC                 jnz     short loc_1018B0E9
.text:1018B0CE                 push    10Ah
.text:1018B0D3                 push    offset aSrcNminimapwnd ; ".\\Src\\NMinimapWnd.cpp"
.text:1018B0D8                 push    offset aPzonenameinfo ; "pZoneNameInfo"
.text:1018B0DD                 call    ds:?appFailAssert@@YAXPBD0H@Z ; appFailAssert(char const *,char const *,int)
.text:1018B0E3                 add     esp, 0Ch
.text:1018B0E6                 mov     eax, [ebp+204h+var_21C]
.text:1018B0E9
.text:1018B0E9 loc_1018B0E9:                           ; CODE XREF: sub_1018B050+7C↑j
.text:1018B0E9                 push    offset szReferrer
.text:1018B0EE                 lea     ecx, [eax+40h]
.text:1018B0F1                 call    ds:??9FString@@QBEHPBG@Z ; FString::operator!=(ushort const *)
.text:1018B0F7                 test    eax, eax
.text:1018B0F9                 jz      short loc_1018B149
.text:1018B0FB                 push    4
.text:1018B0FD                 call    sub_10004ED0
.text:1018B102                 add     esp, 4
.text:1018B105                 mov     [ebp+204h+var_21C], eax
.text:1018B108                 mov     [ebp+204h+var_224], eax
.text:1018B10B                 test    eax, eax
.text:1018B10D                 jnz     short loc_1018B12A
.text:1018B10F                 push    10Fh
.text:1018B114                 push    offset aSrcNminimapwnd ; ".\\Src\\NMinimapWnd.cpp"
.text:1018B119                 push    offset aPtownmapinfo ; "pTownMapInfo"
.text:1018B11E                 call    ds:?appFailAssert@@YAXPBD0H@Z ; appFailAssert(char const *,char const *,int)
.text:1018B124                 add     esp, 0Ch
.text:1018B127                 mov     eax, [ebp+204h+var_21C]
.text:1018B12A
.text:1018B12A loc_1018B12A:                           ; CODE XREF: sub_1018B050+BD↑j
.text:1018B12A                 mov     dword ptr [eax], 0
.text:1018B130                 lea     edx, [ebp+204h+var_224]
.text:1018B133                 push    edx
.text:1018B134                 mov     eax, [ebp+204h+var_230]
.text:1018B137                 mov     ecx, [eax]
.text:1018B139                 lea     edx, [esi+ecx+4]
.text:1018B13D                 push    edx
.text:1018B13E                 lea     ecx, [edi+208h]
.text:1018B144                 call    sub_10087320
.text:1018B149
.text:1018B149 loc_1018B149:                           ; CODE XREF: sub_1018B050+A9↑j
.text:1018B149                 add     ebx, 1
.text:1018B14C                 mov     [ebp+204h+var_22C], ebx
.text:1018B14F                 mov     eax, [ebp+204h+var_230]
.text:1018B152                 jmp     loc_1018B0B1
.text:1018B152 ;   } // starts at 1018B0AD
.text:1018B157 ; ---------------------------------------------------------------------------
.text:1018B157
.text:1018B157 loc_1018B157:                           ; CODE XREF: sub_1018B050+64↑j
.text:1018B157 ;   try {
.text:1018B157                 mov     byte ptr [ebp+204h+var_208], 0
.text:1018B15B                 lea     ecx, [ebp+204h+var_234]
.text:1018B15E                 call    sub_100D10A0
.text:1018B163                 lea     ecx, [ebp+204h+var_25C] ; void *
.text:1018B166                 call    ds:??0FString@@QAE@XZ ; FString::FString(void)
.text:1018B166 ;   } // starts at 1018B157
.text:1018B16C ;   try {
.text:1018B16C                 mov     byte ptr [ebp+204h+var_208], 2
.text:1018B170                 lea     ecx, [ebp+204h+var_268] ; void *
.text:1018B173                 call    ds:??0FString@@QAE@XZ ; FString::FString(void)
.text:1018B173 ;   } // starts at 1018B16C
.text:1018B179 ;   try {
.text:1018B179                 mov     byte ptr [ebp+204h+var_208], 3
.text:1018B17D                 mov     eax, ds:?GCountryName@@3PAGA ; ushort * GCountryName
.text:1018B182                 push    eax
.text:1018B183                 push    offset aSTownmap ; "%s_TownMap"
.text:1018B188                 lea     ecx, [ebp+204h+var_204]
.text:1018B18B                 push    ecx
.text:1018B18C                 call    ds:?appSprintf@@YAHPAGPBGZZ ; appSprintf(ushort *,ushort const *,...)
.text:1018B192                 add     esp, 0Ch
.text:1018B195                 mov     edx, ds:?GConfig@@3PAVFConfigCache@@A ; FConfigCache * GConfig
.text:1018B19B                 mov     ecx, [edx]
.text:1018B19D                 mov     eax, [ecx]
.text:1018B19F                 push    offset aLocalizationIn ; "localization.ini"
.text:1018B1A4                 lea     edx, [ebp+204h+var_268]
.text:1018B1A7                 push    edx
.text:1018B1A8                 lea     edx, [ebp+204h+var_204]
.text:1018B1AB                 push    edx
.text:1018B1AC                 mov     edx, ds:?GCountryName@@3PAGA ; ushort * GCountryName
.text:1018B1B2                 push    edx
.text:1018B1B3                 mov     eax, [eax+0Ch]
.text:1018B1B6                 call    eax
.text:1018B1B8                 test    eax, eax
.text:1018B1BA                 jnz     short loc_1018B1CA
.text:1018B1BC                 push    offset aL2fontTownmap ; "L2Font.TownMap"
.text:1018B1C1                 lea     ecx, [ebp+204h+var_268]
.text:1018B1C4                 call    ds:??4FString@@QAEAAV0@PBG@Z ; FString::operator=(ushort const *)
.text:1018B1CA
.text:1018B1CA loc_1018B1CA:                           ; CODE XREF: sub_1018B050+16A↑j
.text:1018B1CA                 xor     esi, esi
.text:1018B1CC                 mov     [ebp+204h+var_220], esi
.text:1018B1CF                 lea     eax, [edi+208h]
.text:1018B1D5                 mov     [ebp+204h+var_24C], eax
.text:1018B1D8                 mov     [ebp+204h+var_248], eax
.text:1018B1DB                 mov     [ebp+204h+var_244], esi
.text:1018B1DE                 mov     [ebp+204h+var_240], esi
.text:1018B1DE ;   } // starts at 1018B179
.text:1018B1E1 ;   try {
.text:1018B1E1                 mov     byte ptr [ebp+204h+var_208], 4
.text:1018B1E5
.text:1018B1E5 loc_1018B1E5:                           ; CODE XREF: sub_1018B050+36B↓j
.text:1018B1E5                 cmp     esi, [eax+4]
.text:1018B1E8                 jge     loc_1018B3C0
.text:1018B1EE                 lea     ecx, [esi+esi*2]
.text:1018B1F1                 mov     edx, [eax]
.text:1018B1F3                 lea     eax, [edx+ecx*4]
.text:1018B1F6                 mov     ecx, [eax+4]
.text:1018B1F9                 mov     [ebp+204h+var_21C], ecx
.text:1018B1FC                 mov     eax, [eax+8]
.text:1018B1FF                 mov     [ebp+204h+var_224], eax
.text:1018B202                 test    eax, eax
.text:1018B204                 jz      loc_1018B3AE
.text:1018B20A                 lea     edx, [ebp+204h+var_21C]
.text:1018B20D                 push    edx
.text:1018B20E                 mov     eax, ds:?GL2GameData@@3VFL2GameData@@A ; FL2GameData GL2GameData
.text:1018B213                 mov     ecx, [eax+7F9CCh]
.text:1018B219                 call    sub_10187A60
.text:1018B21E                 mov     ebx, eax
.text:1018B220                 test    ebx, ebx
.text:1018B222                 jz      loc_1018B3AE
.text:1018B228                 cmp     dword ptr [ebx+24h], 0FFFFFFFFh
.text:1018B22C                 jz      loc_1018B33E
.text:1018B232                 push    0
.text:1018B234                 push    ecx
.text:1018B235                 mov     ecx, esp
.text:1018B237                 mov     [ebp+204h+var_26C], esp
.text:1018B23A                 push    0
.text:1018B23C                 call    ds:??0FName@@QAE@W4EName@@@Z ; FName::FName(EName)
.text:1018B242                 call    ds:?GetTransientPackage@UObject@@SAPAVUPackage@@XZ ; UObject::GetTransientPackage(void)
.text:1018B248                 push    eax
.text:1018B249                 push    33Ch
.text:1018B24E                 call    sub_1000A130
.text:1018B253                 add     esp, 10h
.text:1018B256                 mov     esi, eax
.text:1018B258                 test    esi, esi
.text:1018B25A                 jz      short loc_1018B2A4
.text:1018B25C                 push    offset aL2uiCh3Minimap ; "L2UI_CH3.Minimap.MapButton_ZoomIn2"
.text:1018B261                 lea     ecx, [ebp+204h+var_288]
.text:1018B267                 call    ds:??0FString@@QAE@PBG@Z ; FString::FString(ushort const *)
.text:1018B267 ;   } // starts at 1018B1E1
.text:1018B26D ;   try {
.text:1018B26D                 mov     byte ptr [ebp+204h+var_208], 5
.text:1018B271                 or      [ebp+204h+var_218], 1
.text:1018B275                 push    offset aL2uiCh3Minimap_0 ; "L2UI_CH3.Minimap.MapButton_ZoomIn1"
.text:1018B27A                 lea     ecx, [ebp+204h+var_278]
.text:1018B27D                 call    ds:??0FString@@QAE@PBG@Z ; FString::FString(ushort const *)
.text:1018B27D ;   } // starts at 1018B26D
.text:1018B283 ;   try {
.text:1018B283                 mov     [ebp+204h+var_208], 6
.text:1018B28A                 or      [ebp+204h+var_218], 2
.text:1018B28E                 push    0
.text:1018B290                 lea     ecx, [ebp+204h+var_288]
.text:1018B296                 push    ecx
.text:1018B297                 lea     edx, [ebp+204h+var_278]
.text:1018B29A                 push    edx
.text:1018B29B                 mov     ecx, esi
.text:1018B29D                 call    sub_10006980
.text:1018B2A2                 jmp     short loc_1018B2A6
.text:1018B2A4 ; ---------------------------------------------------------------------------
.text:1018B2A4
.text:1018B2A4 loc_1018B2A4:                           ; CODE XREF: sub_1018B050+20A↑j
.text:1018B2A4                 xor     eax, eax
.text:1018B2A6
.text:1018B2A6 loc_1018B2A6:                           ; CODE XREF: sub_1018B050+252↑j
.text:1018B2A6                 mov     esi, eax
.text:1018B2A8                 mov     [ebp+204h+var_23C], esi
.text:1018B2A8 ;   } // starts at 1018B283
.text:1018B2AB ;   try {
.text:1018B2AB                 mov     [ebp+204h+var_208], 5
.text:1018B2B2                 test    byte ptr [ebp+204h+var_218], 2
.text:1018B2B6                 jz      short loc_1018B2C5
.text:1018B2B8                 and     [ebp+204h+var_218], 0FFFFFFFDh
.text:1018B2BC                 lea     ecx, [ebp+204h+var_278] ; void *
.text:1018B2BF                 call    ds:??1FString@@QAE@XZ ; FString::~FString(void)
.text:1018B2BF ;   } // starts at 1018B2AB
.text:1018B2C5
.text:1018B2C5 loc_1018B2C5:                           ; CODE XREF: sub_1018B050+266↑j
.text:1018B2C5 ;   try {
.text:1018B2C5                 mov     [ebp+204h+var_208], 4
.text:1018B2CC                 test    byte ptr [ebp+204h+var_218], 1
.text:1018B2D0                 jz      short loc_1018B2E2
.text:1018B2D2                 and     [ebp+204h+var_218], 0FFFFFFFEh
.text:1018B2D6                 lea     ecx, [ebp+204h+var_288] ; void *
.text:1018B2DC                 call    ds:??1FString@@QAE@XZ ; FString::~FString(void)
.text:1018B2E2
.text:1018B2E2 loc_1018B2E2:                           ; CODE XREF: sub_1018B050+280↑j
.text:1018B2E2                 mov     eax, [ebp+204h+var_220]
.text:1018B2E5                 add     eax, 0B01000h
.text:1018B2EA                 mov     [esi+1CCh], eax
.text:1018B2F0                 push    100002h
.text:1018B2F5                 push    esi
.text:1018B2F6                 mov     ecx, edi
.text:1018B2F8                 call    sub_10060D40
.text:1018B2FD                 push    eax
.text:1018B2FE                 mov     ecx, esi
.text:1018B300                 call    sub_1005C1E0
.text:1018B305                 mov     edx, [esi]
.text:1018B307                 push    3
.text:1018B309                 push    0
.text:1018B30B                 push    0
.text:1018B30D                 push    1Ah
.text:1018B30F                 push    1Ah
.text:1018B311                 mov     eax, [ebx+28h]
.text:1018B314                 sub     eax, [edi+260h]
.text:1018B31A                 push    eax
.text:1018B31B                 mov     ecx, [ebx+24h]
.text:1018B31E                 sub     ecx, [edi+25Ch]
.text:1018B324                 push    ecx
.text:1018B325                 mov     ecx, esi
.text:1018B327                 mov     edx, [edx+0C0h]
.text:1018B32D                 call    edx
.text:1018B32F                 lea     eax, [ebp+204h+var_23C]
.text:1018B332                 push    eax
.text:1018B333                 lea     ecx, [edi+1E4h]
.text:1018B339                 call    sub_100D9A30
.text:1018B33E
.text:1018B33E loc_1018B33E:                           ; CODE XREF: sub_1018B050+1DC↑j
.text:1018B33E                 lea     esi, [ebx+40h]
.text:1018B341                 push    offset szReferrer
.text:1018B346                 mov     ecx, esi
.text:1018B348                 call    ds:??9FString@@QBEHPBG@Z ; FString::operator!=(ushort const *)
.text:1018B34E                 test    eax, eax
.text:1018B350                 jz      short loc_1018B3AB
.text:1018B352                 sub     esp, 0Ch
.text:1018B355                 mov     eax, esp
.text:1018B357                 mov     ecx, [esi]
.text:1018B359                 mov     [eax], ecx
.text:1018B35B                 mov     edx, [esi+4]
.text:1018B35E                 mov     [eax+4], edx
.text:1018B361                 mov     ecx, [esi+8]
.text:1018B364                 mov     [eax+8], ecx
.text:1018B367                 lea     ecx, [ebp+204h+var_268]
.text:1018B36A                 call    ds:??DFString@@QBEPBGXZ ; FString::operator*(void)
.text:1018B370                 push    eax
.text:1018B371                 push    offset aSS      ; "%s.%s"
.text:1018B376                 lea     edx, [ebp+204h+var_230]
.text:1018B379                 push    edx
.text:1018B37A                 call    ds:?Printf@FString@@SA?AV1@PBGZZ ; FString::Printf(ushort const *,...)
.text:1018B380                 add     esp, 18h
.text:1018B380 ;   } // starts at 1018B2C5
.text:1018B383 ;   try {
.text:1018B383                 mov     byte ptr [ebp+204h+var_208], 7
.text:1018B387                 push    1
.text:1018B389                 mov     ecx, eax
.text:1018B38B                 call    ds:??DFString@@QBEPBGXZ ; FString::operator*(void)
.text:1018B391                 push    eax
.text:1018B392                 mov     ecx, edi
.text:1018B394                 call    sub_1003F630
.text:1018B399                 mov     ecx, [ebp+204h+var_224]
.text:1018B39C                 mov     [ecx], eax
.text:1018B39C ;   } // starts at 1018B383
.text:1018B39E ;   try {
.text:1018B39E                 mov     byte ptr [ebp+204h+var_208], 4
.text:1018B3A2                 lea     ecx, [ebp+204h+var_230] ; void *
.text:1018B3A5                 call    ds:??1FString@@QAE@XZ ; FString::~FString(void)
.text:1018B3AB
.text:1018B3AB loc_1018B3AB:                           ; CODE XREF: sub_1018B050+300↑j
.text:1018B3AB                 mov     esi, [ebp+204h+var_244]
.text:1018B3AE
.text:1018B3AE loc_1018B3AE:                           ; CODE XREF: sub_1018B050+1B4↑j
.text:1018B3AE                                         ; sub_1018B050+1D2↑j
.text:1018B3AE                 add     esi, 1
.text:1018B3B1                 mov     [ebp+204h+var_244], esi
.text:1018B3B4                 add     [ebp+204h+var_220], 1
.text:1018B3B8                 mov     eax, [ebp+204h+var_248]
.text:1018B3BB                 jmp     loc_1018B1E5
.text:1018B3BB ;   } // starts at 1018B39E
.text:1018B3C0 ; ---------------------------------------------------------------------------
.text:1018B3C0
.text:1018B3C0 loc_1018B3C0:                           ; CODE XREF: sub_1018B050+198↑j
.text:1018B3C0 ;   try {
.text:1018B3C0                 mov     byte ptr [ebp+204h+var_208], 3
.text:1018B3C4                 lea     ecx, [ebp+204h+var_24C]
.text:1018B3C7                 call    sub_100D10A0
.text:1018B3CC                 mov     edx, ds:?GCountryName@@3PAGA ; ushort * GCountryName
.text:1018B3D2                 push    edx
.text:1018B3D3                 push    offset aSMinimap ; "%s_minimap"
.text:1018B3D8                 lea     eax, [ebp+204h+var_204]
.text:1018B3DB                 push    eax
.text:1018B3DC                 call    ds:?appSprintf@@YAHPAGPBGZZ ; appSprintf(ushort *,ushort const *,...)
.text:1018B3E2                 add     esp, 0Ch
.text:1018B3E5                 mov     ecx, ds:?GConfig@@3PAVFConfigCache@@A ; FConfigCache * GConfig
.text:1018B3EB                 mov     ecx, [ecx]
.text:1018B3ED                 mov     edx, [ecx]
.text:1018B3EF                 push    offset aLocalizationIn ; "localization.ini"
.text:1018B3F4                 lea     eax, [ebp+204h+var_25C]
.text:1018B3F7                 push    eax
.text:1018B3F8                 lea     eax, [ebp+204h+var_204]
.text:1018B3FB                 push    eax
.text:1018B3FC                 mov     eax, ds:?GCountryName@@3PAGA ; ushort * GCountryName
.text:1018B401                 push    eax
.text:1018B402                 mov     edx, [edx+0Ch]
.text:1018B405                 call    edx
.text:1018B407                 test    eax, eax
.text:1018B409                 jnz     short loc_1018B419
.text:1018B40B                 push    offset aL2fontMinimapC ; "L2Font.Minimap.ch4_worldmap"
.text:1018B410                 lea     ecx, [ebp+204h+var_25C]
.text:1018B413                 call    ds:??4FString@@QAEAAV0@PBG@Z ; FString::operator=(ushort const *)
.text:1018B419
.text:1018B419 loc_1018B419:                           ; CODE XREF: sub_1018B050+3B9↑j
.text:1018B419                 xor     esi, esi
.text:1018B41B
.text:1018B41B loc_1018B41B:                           ; CODE XREF: sub_1018B050+41F↓j
.text:1018B41B                 mov     [ebp+204h+var_238], esi
.text:1018B41E                 cmp     esi, 6
.text:1018B421                 jge     short loc_1018B471
.text:1018B423                 lea     ebx, [esi+1]
.text:1018B426                 push    ebx
.text:1018B427                 lea     ecx, [ebp+204h+var_25C]
.text:1018B42A                 call    ds:??DFString@@QBEPBGXZ ; FString::operator*(void)
.text:1018B430                 push    eax
.text:1018B431                 push    offset aSD      ; "%s%d"
.text:1018B436                 lea     eax, [ebp+204h+var_230]
.text:1018B439                 push    eax
.text:1018B43A                 call    ds:?Printf@FString@@SA?AV1@PBGZZ ; FString::Printf(ushort const *,...)
.text:1018B440                 add     esp, 10h
.text:1018B440 ;   } // starts at 1018B3C0
.text:1018B443 ;   try {
.text:1018B443                 mov     byte ptr [ebp+204h+var_208], 8
.text:1018B447                 push    1
.text:1018B449                 mov     ecx, eax
.text:1018B44B                 call    ds:??DFString@@QBEPBGXZ ; FString::operator*(void)
.text:1018B451                 push    eax
.text:1018B452                 mov     ecx, edi
.text:1018B454                 call    sub_1003F630
.text:1018B459                 mov     [edi+esi*4+1CCh], eax
.text:1018B459 ;   } // starts at 1018B443
.text:1018B460 ;   try {
.text:1018B460                 mov     byte ptr [ebp+204h+var_208], 3
.text:1018B464                 lea     ecx, [ebp+204h+var_230] ; void *
.text:1018B467                 call    ds:??1FString@@QAE@XZ ; FString::~FString(void)
.text:1018B46D                 mov     esi, ebx
.text:1018B46F                 jmp     short loc_1018B41B
.text:1018B46F ;   } // starts at 1018B460
.text:1018B471 ; ---------------------------------------------------------------------------
.text:1018B471
.text:1018B471 loc_1018B471:                           ; CODE XREF: sub_1018B050+3D1↑j
.text:1018B471 ;   try {
.text:1018B471                 mov     byte ptr [ebp+204h+var_208], 2
.text:1018B475                 lea     ecx, [ebp+204h+var_268] ; void *
.text:1018B478                 call    ds:??1FString@@QAE@XZ ; FString::~FString(void)
.text:1018B478 ;   } // starts at 1018B471
.text:1018B47E ;   try {
.text:1018B47E                 mov     byte ptr [ebp+204h+var_208], 0
.text:1018B482                 lea     ecx, [ebp+204h+var_25C] ; void *
.text:1018B485                 call    ds:??1FString@@QAE@XZ ; FString::~FString(void)
.text:1018B485 ;   } // starts at 1018B47E
.text:1018B48B                 mov     [ebp+204h+var_208], 0FFFFFFFFh
.text:1018B492                 mov     ecx, [ebp+204h+var_210]
.text:1018B495                 mov     large fs:0, ecx
.text:1018B49C                 pop     ecx
.text:1018B49D                 pop     edi
.text:1018B49E                 pop     esi
.text:1018B49F                 pop     ebx
.text:1018B4A0                 mov     ecx, [ebp+204h+var_4]
.text:1018B4A6                 xor     ecx, ebp
.text:1018B4A8                 call    sub_101C16C2
.text:1018B4AD                 add     ebp, 204h
.text:1018B4B3                 mov     esp, ebp
.text:1018B4B5                 pop     ebp
.text:1018B4B6                 retn
.text:1018B4B7 ; ---------------------------------------------------------------------------
.text:1018B4B7
.text:1018B4B7 loc_1018B4B7:                           ; DATA XREF: .rdata:stru_10316884↓o
.text:1018B4B7 ;   catch(ushort *) // owned by 1018B093
.text:1018B4B7 ;   catch(ushort *) // owned by 1018B0AD
.text:1018B4B7 ;   catch(ushort *) // owned by 1018B157
.text:1018B4B7 ;   catch(ushort *) // owned by 1018B16C
.text:1018B4B7 ;   catch(ushort *) // owned by 1018B179
.text:1018B4B7 ;   catch(ushort *) // owned by 1018B1E1
.text:1018B4B7 ;   catch(ushort *) // owned by 1018B26D
.text:1018B4B7 ;   catch(ushort *) // owned by 1018B283
.text:1018B4B7 ;   catch(ushort *) // owned by 1018B2AB
.text:1018B4B7 ;   catch(ushort *) // owned by 1018B2C5
.text:1018B4B7 ;   catch(ushort *) // owned by 1018B383
.text:1018B4B7 ;   catch(ushort *) // owned by 1018B39E
.text:1018B4B7 ;   catch(ushort *) // owned by 1018B3C0
.text:1018B4B7 ;   catch(ushort *) // owned by 1018B443
.text:1018B4B7 ;   catch(ushort *) // owned by 1018B460
.text:1018B4B7 ;   catch(ushort *) // owned by 1018B471
.text:1018B4B7 ;   catch(ushort *) // owned by 1018B47E
.text:1018B4B7                 mov     ecx, [ebp+204h+var_27C]
.text:1018B4BA                 mov     [ebp+204h+pExceptionObject], ecx
.text:1018B4BD                 push    offset __TI2PAG ; pThrowInfo
.text:1018B4C2                 lea     edx, [ebp+204h+pExceptionObject]
.text:1018B4C5                 push    edx             ; pExceptionObject
.text:1018B4C6                 call    __CxxThrowException@8 ; _CxxThrowException(x,x)
.text:1018B4CB ; ---------------------------------------------------------------------------
.text:1018B4CB
.text:1018B4CB loc_1018B4CB:                           ; DATA XREF: .rdata:10316894↓o
.text:1018B4CB ;   catch(...) // owned by 1018B093
.text:1018B4CB ;   catch(...) // owned by 1018B0AD
.text:1018B4CB ;   catch(...) // owned by 1018B157
.text:1018B4CB ;   catch(...) // owned by 1018B16C
.text:1018B4CB ;   catch(...) // owned by 1018B179
.text:1018B4CB ;   catch(...) // owned by 1018B1E1
.text:1018B4CB ;   catch(...) // owned by 1018B26D
.text:1018B4CB ;   catch(...) // owned by 1018B283
.text:1018B4CB ;   catch(...) // owned by 1018B2AB
.text:1018B4CB ;   catch(...) // owned by 1018B2C5
.text:1018B4CB ;   catch(...) // owned by 1018B383
.text:1018B4CB ;   catch(...) // owned by 1018B39E
.text:1018B4CB ;   catch(...) // owned by 1018B3C0
.text:1018B4CB ;   catch(...) // owned by 1018B443
.text:1018B4CB ;   catch(...) // owned by 1018B460
.text:1018B4CB ;   catch(...) // owned by 1018B471
.text:1018B4CB ;   catch(...) // owned by 1018B47E
.text:1018B4CB                 push    offset aNcminimapwndIn_1 ; "NCMinimapWnd::InitializeMapDisplay"
.text:1018B4D0                 push    offset aS       ; "%s"
.text:1018B4D5                 call    ds:?appUnwindf@@YAXPBGZZ ; appUnwindf(ushort const *,...)
.text:1018B4DB                 add     esp, 8
.text:1018B4DE                 push    0               ; pThrowInfo
.text:1018B4E0                 push    0               ; pExceptionObject
.text:1018B4E2                 call    __CxxThrowException@8 ; _CxxThrowException(x,x)
.text:1018B4E2 ; } // starts at 1018B050
.text:1018B4E2 sub_1018B050    endp
.text:1018B4E2
.text:1018B4E2 ; ---------------------------------------------------------------------------
.text:1018B4E7                 align 10h
.text:1018B4F0
.text:1018B4F0 ; =============== S U B R O U T I N E =======================================
.text:1018B4F0
.text:1018B4F0 ; Attributes: bp-based frame
.text:1018B4F0
.text:1018B4F0 ; BOOL __stdcall sub_1018B4F0(int, int, int, int)
.text:1018B4F0 sub_1018B4F0    proc near               ; CODE XREF: UUIAPI_MINIMAPCTRL::execIsOverlapped(FFrame &,void * const)+13A↑p
.text:1018B4F0
.text:1018B4F0 var_28          = dword ptr -28h
.text:1018B4F0 pExceptionObject= dword ptr -24h
.text:1018B4F0 var_20          = dword ptr -20h
.text:1018B4F0 var_1C          = dword ptr -1Ch
.text:1018B4F0 var_18          = dword ptr -18h
.text:1018B4F0 var_14          = dword ptr -14h
.text:1018B4F0 var_10          = dword ptr -10h
.text:1018B4F0 var_C           = dword ptr -0Ch
.text:1018B4F0 var_4           = dword ptr -4
.text:1018B4F0 arg_0           = dword ptr  8
.text:1018B4F0 arg_4           = dword ptr  0Ch
.text:1018B4F0 arg_8           = dword ptr  10h
.text:1018B4F0 arg_C           = dword ptr  14h
.text:1018B4F0
.text:1018B4F0 ; FUNCTION CHUNK AT .text:10214F90 SIZE 0000001B BYTES
.text:1018B4F0
.text:1018B4F0 ; __unwind { // SEH_1018B4F0
.text:1018B4F0                 push    ebp
.text:1018B4F1                 mov     ebp, esp
.text:1018B4F3                 push    0FFFFFFFFh
.text:1018B4F5                 push    offset SEH_1018B4F0
.text:1018B4FA                 mov     eax, large fs:0
.text:1018B500                 push    eax
.text:1018B501                 sub     esp, 1Ch
.text:1018B504                 push    ebx
.text:1018B505                 push    esi
.text:1018B506                 push    edi
.text:1018B507                 mov     eax, dword_103554C4
.text:1018B50C                 xor     eax, ebp
.text:1018B50E                 push    eax
.text:1018B50F                 lea     eax, [ebp+var_C]
.text:1018B512                 mov     large fs:0, eax
.text:1018B518                 mov     [ebp+var_10], esp
.text:1018B51B                 mov     esi, ecx
.text:1018B51D                 xor     eax, eax
.text:1018B51F ;   try {
.text:1018B51F                 mov     [ebp+var_4], eax
.text:1018B522                 mov     [ebp+var_14], eax
.text:1018B525                 mov     [ebp+var_1C], eax
.text:1018B528                 mov     [ebp+var_18], eax
.text:1018B52B                 mov     [ebp+var_20], eax
.text:1018B52E                 lea     eax, [ebp+var_1C]
.text:1018B531                 push    eax
.text:1018B532                 lea     ecx, [ebp+var_14]
.text:1018B535                 push    ecx
.text:1018B536                 mov     edx, [ebp+arg_4]
.text:1018B539                 push    edx
.text:1018B53A                 mov     eax, [ebp+arg_0]
.text:1018B53D                 push    eax
.text:1018B53E                 mov     ecx, esi
.text:1018B540                 call    sub_10189060
.text:1018B545                 lea     ecx, [ebp+var_20]
.text:1018B548                 push    ecx
.text:1018B549                 lea     edx, [ebp+var_18]
.text:1018B54C                 push    edx
.text:1018B54D                 mov     eax, [ebp+arg_C]
.text:1018B550                 push    eax
.text:1018B551                 mov     ecx, [ebp+arg_8]
.text:1018B554                 push    ecx
.text:1018B555                 mov     ecx, esi
.text:1018B557                 call    sub_10189060
.text:1018B55C                 mov     edx, [ebp+var_14]
.text:1018B55F                 cmp     edx, [ebp+var_18]
.text:1018B562                 jnz     short loc_1018B585
.text:1018B564                 mov     eax, [ebp+var_1C]
.text:1018B567                 cmp     eax, [ebp+var_20]
.text:1018B56A                 jnz     short loc_1018B585
.text:1018B56C                 mov     eax, 1
.text:1018B571                 mov     ecx, [ebp+var_C]
.text:1018B574                 mov     large fs:0, ecx
.text:1018B57B                 pop     ecx
.text:1018B57C                 pop     edi
.text:1018B57D                 pop     esi
.text:1018B57E                 pop     ebx
.text:1018B57F                 mov     esp, ebp
.text:1018B581                 pop     ebp
.text:1018B582                 retn    10h
.text:1018B585 ; ---------------------------------------------------------------------------
.text:1018B585
.text:1018B585 loc_1018B585:                           ; CODE XREF: sub_1018B4F0+72↑j
.text:1018B585                                         ; sub_1018B4F0+7A↑j
.text:1018B585                 xor     eax, eax
.text:1018B587                 mov     ecx, [ebp+var_C]
.text:1018B58A                 mov     large fs:0, ecx
.text:1018B591                 pop     ecx
.text:1018B592                 pop     edi
.text:1018B593                 pop     esi
.text:1018B594                 pop     ebx
.text:1018B595                 mov     esp, ebp
.text:1018B597                 pop     ebp
.text:1018B598                 retn    10h
.text:1018B59B ; ---------------------------------------------------------------------------
.text:1018B59B
.text:1018B59B loc_1018B59B:                           ; DATA XREF: .rdata:stru_1031693C↓o
.text:1018B59B ;   catch(ushort *) // owned by 1018B51F
.text:1018B59B                 mov     ecx, [ebp+var_28]
.text:1018B59E                 mov     [ebp+pExceptionObject], ecx
.text:1018B5A1                 push    offset __TI2PAG ; pThrowInfo
.text:1018B5A6                 lea     edx, [ebp+pExceptionObject]
.text:1018B5A9                 push    edx             ; pExceptionObject
.text:1018B5AA                 call    __CxxThrowException@8 ; _CxxThrowException(x,x)
.text:1018B5AF ; ---------------------------------------------------------------------------
.text:1018B5AF
.text:1018B5AF loc_1018B5AF:                           ; DATA XREF: .rdata:1031694C↓o
.text:1018B5AF ;   catch(...) // owned by 1018B51F
.text:1018B5AF                 push    offset aNcminimapwndIs ; "NCMinimapWnd::IsOverlapped"
.text:1018B5B4                 push    offset aS       ; "%s"
.text:1018B5B9                 call    ds:?appUnwindf@@YAXPBGZZ ; appUnwindf(ushort const *,...)
.text:1018B5BF                 add     esp, 8
.text:1018B5C2                 xor     eax, eax
.text:1018B5C4                 push    eax             ; pThrowInfo
.text:1018B5C5                 push    eax             ; pExceptionObject
.text:1018B5C6                 call    __CxxThrowException@8 ; _CxxThrowException(x,x)
.text:1018B5C6 ;   } // starts at 1018B51F
.text:1018B5C6 ; } // starts at 1018B4F0
.text:1018B5C6 sub_1018B4F0    endp
.text:1018B5C6
.text:1018B5C6 ; ---------------------------------------------------------------------------
.text:1018B5CB                 align 10h
.text:1018B5D0
.text:1018B5D0 ; =============== S U B R O U T I N E =======================================
.text:1018B5D0
.text:1018B5D0 ; Attributes: bp-based frame
.text:1018B5D0
.text:1018B5D0 ; int __thiscall sub_1018B5D0(int this, int, int)
.text:1018B5D0 sub_1018B5D0    proc near               ; DATA XREF: .rdata:1028EBF4↓o
.text:1018B5D0
.text:1018B5D0 anonymous_0     = dword ptr -78h
.text:1018B5D0 anonymous_1     = dword ptr -74h
.text:1018B5D0 var_68          = byte ptr -68h
.text:1018B5D0 var_64          = dword ptr -64h
.text:1018B5D0 var_60          = dword ptr -60h
.text:1018B5D0 var_4C          = byte ptr -4Ch
.text:1018B5D0 var_40          = dword ptr -40h
.text:1018B5D0 var_3C          = dword ptr -3Ch
.text:1018B5D0 var_38          = dword ptr -38h
.text:1018B5D0 var_34          = dword ptr -34h
.text:1018B5D0 var_30          = dword ptr -30h
.text:1018B5D0 var_2C          = dword ptr -2Ch
.text:1018B5D0 var_28          = dword ptr -28h
.text:1018B5D0 pExceptionObject= dword ptr -24h
.text:1018B5D0 var_20          = dword ptr -20h
.text:1018B5D0 var_1C          = dword ptr -1Ch
.text:1018B5D0 var_18          = dword ptr -18h
.text:1018B5D0 var_14          = dword ptr -14h
.text:1018B5D0 var_10          = dword ptr -10h
.text:1018B5D0 var_C           = dword ptr -0Ch
.text:1018B5D0 var_4           = dword ptr -4
.text:1018B5D0 arg_0           = dword ptr  8
.text:1018B5D0 arg_4           = dword ptr  0Ch
.text:1018B5D0
.text:1018B5D0 ; FUNCTION CHUNK AT .text:10214FB0 SIZE 0000002C BYTES
.text:1018B5D0
.text:1018B5D0 ; __unwind { // SEH_1018B5D0
.text:1018B5D0                 push    ebp
.text:1018B5D1                 mov     ebp, esp
.text:1018B5D3                 push    0FFFFFFFFh
.text:1018B5D5                 push    offset SEH_1018B5D0
.text:1018B5DA                 mov     eax, large fs:0
.text:1018B5E0                 push    eax
.text:1018B5E1                 sub     esp, 5Ch
.text:1018B5E4                 push    ebx
.text:1018B5E5                 push    esi
.text:1018B5E6                 push    edi
.text:1018B5E7                 mov     eax, dword_103554C4
.text:1018B5EC                 xor     eax, ebp
.text:1018B5EE                 push    eax
.text:1018B5EF                 lea     eax, [ebp+var_C]
.text:1018B5F2                 mov     large fs:0, eax
.text:1018B5F8                 mov     [ebp+var_10], esp
.text:1018B5FB                 mov     esi, ecx
.text:1018B5FD ;   try {
.text:1018B5FD                 mov     [ebp+var_4], 0
.text:1018B604                 wait
.text:1018B605                 mov     eax, [ebp+arg_4]
.text:1018B608                 movsx   ebx, ax
.text:1018B60B                 sub     ebx, [esi+80h]
.text:1018B611                 mov     [ebp+var_14], ebx
.text:1018B614                 shr     eax, 10h
.text:1018B617                 movsx   edi, ax
.text:1018B61A                 sub     edi, [esi+84h]
.text:1018B620                 mov     [ebp+arg_4], edi
.text:1018B623                 mov     eax, [ebp+arg_0]
.text:1018B626                 and     eax, 1
.text:1018B629                 mov     [ebp+arg_0], eax
.text:1018B62C                 jz      loc_1018B74E
.text:1018B632                 cmp     ebx, 1
.text:1018B635                 jl      loc_1018B74E
.text:1018B63B                 fld     dword ptr [esi+88h]
.text:1018B641                 call    __ftol2_sse
.text:1018B646                 cmp     ebx, eax
.text:1018B648                 jg      loc_1018B74E
.text:1018B64E                 cmp     edi, 1
.text:1018B651                 jl      loc_1018B74E
.text:1018B657                 fld     dword ptr [esi+8Ch]
.text:1018B65D                 call    __ftol2_sse
.text:1018B662                 cmp     edi, eax
.text:1018B664                 jg      loc_1018B74E
.text:1018B66A                 mov     edi, [esi+26Ch]
.text:1018B670                 sub     edi, ebx
.text:1018B672                 mov     ebx, [esi+270h]
.text:1018B678                 sub     ebx, [ebp+arg_4]
.text:1018B67B                 mov     ecx, [esi+250h]
.text:1018B681                 push    ecx
.text:1018B682                 mov     ecx, esi
.text:1018B684                 call    sub_10187E90
.text:1018B689                 mov     [ebp+arg_0], eax
.text:1018B68C                 mov     edx, [esi+250h]
.text:1018B692                 push    edx
.text:1018B693                 mov     ecx, esi
.text:1018B695                 call    sub_10187F50
.text:1018B69A                 mov     [ebp+var_1C], eax
.text:1018B69D                 test    edi, edi
.text:1018B69F                 jle     short loc_1018B6D2
.text:1018B6A1                 add     [esi+25Ch], edi
.text:1018B6A7                 mov     eax, [esi+25Ch]
.text:1018B6AD                 mov     [ebp+var_18], eax
.text:1018B6B0                 fild    [ebp+arg_0]
.text:1018B6B3                 fsub    dword ptr [esi+88h]
.text:1018B6B9                 fild    [ebp+var_18]
.text:1018B6BC                 fcomp   st(1)
.text:1018B6BE                 fnstsw  ax
.text:1018B6C0                 test    ah, 41h
.text:1018B6C3                 jnz     short loc_1018B6ED
.text:1018B6C5                 call    __ftol2_sse
.text:1018B6CA                 mov     [esi+25Ch], eax
.text:1018B6D0                 jmp     short loc_1018B6EF
.text:1018B6D2 ; ---------------------------------------------------------------------------
.text:1018B6D2
.text:1018B6D2 loc_1018B6D2:                           ; CODE XREF: sub_1018B5D0+CF↑j
.text:1018B6D2                 mov     eax, edi
.text:1018B6D4                 cdq
.text:1018B6D5                 xor     eax, edx
.text:1018B6D7                 sub     eax, edx
.text:1018B6D9                 sub     [esi+25Ch], eax
.text:1018B6DF                 jns     short loc_1018B6EF
.text:1018B6E1                 mov     dword ptr [esi+25Ch], 0
.text:1018B6EB                 jmp     short loc_1018B6EF
.text:1018B6ED ; ---------------------------------------------------------------------------
.text:1018B6ED
.text:1018B6ED loc_1018B6ED:                           ; CODE XREF: sub_1018B5D0+F3↑j
.text:1018B6ED                 fstp    st
.text:1018B6EF
.text:1018B6EF loc_1018B6EF:                           ; CODE XREF: sub_1018B5D0+100↑j
.text:1018B6EF                                         ; sub_1018B5D0+10F↑j ...
.text:1018B6EF                 test    ebx, ebx
.text:1018B6F1                 jle     short loc_1018B724
.text:1018B6F3                 add     [esi+260h], ebx
.text:1018B6F9                 mov     ecx, [esi+260h]
.text:1018B6FF                 mov     [ebp+arg_0], ecx
.text:1018B702                 fild    [ebp+var_1C]
.text:1018B705                 fsub    dword ptr [esi+8Ch]
.text:1018B70B                 fild    [ebp+arg_0]
.text:1018B70E                 fcomp   st(1)
.text:1018B710                 fnstsw  ax
.text:1018B712                 test    ah, 41h
.text:1018B715                 jnz     short loc_1018B73F
.text:1018B717                 call    __ftol2_sse
.text:1018B71C                 mov     [esi+260h], eax
.text:1018B722                 jmp     short loc_1018B741
.text:1018B724 ; ---------------------------------------------------------------------------
.text:1018B724
.text:1018B724 loc_1018B724:                           ; CODE XREF: sub_1018B5D0+121↑j
.text:1018B724                 mov     eax, ebx
.text:1018B726                 cdq
.text:1018B727                 xor     eax, edx
.text:1018B729                 sub     eax, edx
.text:1018B72B                 sub     [esi+260h], eax
.text:1018B731                 jns     short loc_1018B741
.text:1018B733                 mov     dword ptr [esi+260h], 0
.text:1018B73D                 jmp     short loc_1018B741
.text:1018B73F ; ---------------------------------------------------------------------------
.text:1018B73F
.text:1018B73F loc_1018B73F:                           ; CODE XREF: sub_1018B5D0+145↑j
.text:1018B73F                 fstp    st
.text:1018B741
.text:1018B741 loc_1018B741:                           ; CODE XREF: sub_1018B5D0+152↑j
.text:1018B741                                         ; sub_1018B5D0+161↑j ...
.text:1018B741                 mov     ecx, esi
.text:1018B743                 call    sub_1018A330
.text:1018B748                 mov     ebx, [ebp+var_14]
.text:1018B74B                 mov     edi, [ebp+arg_4]
.text:1018B74E
.text:1018B74E loc_1018B74E:                           ; CODE XREF: sub_1018B5D0+5C↑j
.text:1018B74E                                         ; sub_1018B5D0+65↑j ...
.text:1018B74E                 cmp     dword ptr [esi+254h], 0Ch
.text:1018B755                 jl      short loc_1018B7BC
.text:1018B757                 fld     dword ptr [esi+88h]
.text:1018B75D                 call    __ftol2_sse
.text:1018B762                 sub     eax, 0Ch
.text:1018B765                 cmp     [esi+254h], eax
.text:1018B76B                 jg      short loc_1018B7BC
.text:1018B76D                 cmp     dword ptr [esi+258h], 0Ch
.text:1018B774                 jl      short loc_1018B7BC
.text:1018B776                 fld     dword ptr [esi+8Ch]
.text:1018B77C                 call    __ftol2_sse
.text:1018B781                 sub     eax, 0Ch
.text:1018B784                 mov     ecx, [esi+258h]
.text:1018B78A                 cmp     ecx, eax
.text:1018B78C                 jge     short loc_1018B7BC
.text:1018B78E                 mov     eax, [esi+254h]
.text:1018B794                 lea     edx, [eax-0Ah]
.text:1018B797                 cmp     edx, ebx
.text:1018B799                 jg      short loc_1018B7BC
.text:1018B79B                 add     eax, 0Ah
.text:1018B79E                 cmp     ebx, eax
.text:1018B7A0                 jg      short loc_1018B7BC
.text:1018B7A2                 lea     eax, [ecx-0Ah]
.text:1018B7A5                 cmp     eax, edi
.text:1018B7A7                 jg      short loc_1018B7BC
.text:1018B7A9                 add     ecx, 0Ah
.text:1018B7AC                 cmp     edi, ecx
.text:1018B7AE                 jg      short loc_1018B7BC
.text:1018B7B0                 mov     dword ptr [esi+248h], 1
.text:1018B7BA                 jmp     short loc_1018B7C6
.text:1018B7BC ; ---------------------------------------------------------------------------
.text:1018B7BC
.text:1018B7BC loc_1018B7BC:                           ; CODE XREF: sub_1018B5D0+185↑j
.text:1018B7BC                                         ; sub_1018B5D0+19B↑j ...
.text:1018B7BC                 mov     dword ptr [esi+248h], 0
.text:1018B7C6
.text:1018B7C6 loc_1018B7C6:                           ; CODE XREF: sub_1018B5D0+1EA↑j
.text:1018B7C6                 cmp     dword ptr [esi+250h], 0
.text:1018B7CD                 jnz     loc_1018B904
.text:1018B7D3                 mov     [ebp+arg_0], 0FFFFFC19h
.text:1018B7DA                 lea     eax, [esi+21Ch]
.text:1018B7E0                 mov     [ebp+var_20], eax
.text:1018B7E3                 xor     edi, edi
.text:1018B7E5
.text:1018B7E5 loc_1018B7E5:                           ; CODE XREF: sub_1018B5D0+429↓j
.text:1018B7E5                 cmp     edi, [eax+4]
.text:1018B7E8                 jge     loc_1018B901
.text:1018B7EE                 lea     ecx, [edi+edi*4]
.text:1018B7F1                 mov     edx, [eax]
.text:1018B7F3                 lea     eax, [edx+ecx*8]
.text:1018B7F6                 push    eax
.text:1018B7F7                 lea     ecx, [ebp+var_68]
.text:1018B7FA                 call    sub_101870B0
.text:1018B7FA ;   } // starts at 1018B5FD
.text:1018B7FF ;   try {
.text:1018B7FF                 mov     byte ptr [ebp+var_4], 1
.text:1018B803                 mov     eax, [ebp+var_64]
.text:1018B806                 sub     eax, [esi+25Ch]
.text:1018B80C                 mov     ecx, [ebp+var_60]
.text:1018B80F                 sub     ecx, [esi+260h]
.text:1018B815                 cmp     ebx, eax
.text:1018B817                 jl      loc_1018B9DD
.text:1018B81D                 lea     edx, [eax+3Dh]
.text:1018B820                 cmp     ebx, edx
.text:1018B822                 jge     loc_1018B9DD
.text:1018B828                 mov     edx, [ebp+arg_4]
.text:1018B82B                 cmp     edx, ecx
.text:1018B82D                 jl      loc_1018B9DD
.text:1018B833                 lea     ebx, [ecx+3Dh]
.text:1018B836                 cmp     edx, ebx
.text:1018B838                 jge     loc_1018B9DA
.text:1018B83E                 mov     [esi+298h], eax
.text:1018B844                 mov     [esi+29Ch], ecx
.text:1018B84A                 fld     ds:flt_1028E964
.text:1018B850                 fst     dword ptr [esi+2A0h]
.text:1018B856                 fstp    dword ptr [esi+2A4h]
.text:1018B85C                 mov     ecx, [esi+2A8h]
.text:1018B862                 add     ecx, 24h ; '$'
.text:1018B865                 call    sub_10054CC0
.text:1018B86A                 lea     ecx, [ebp+var_4C]
.text:1018B86D                 call    ds:??DFString@@QBEPBGXZ ; FString::operator*(void)
.text:1018B873                 push    eax
.text:1018B874                 lea     ecx, [ebp+var_34]
.text:1018B877                 call    ds:??0FString@@QAE@PBG@Z ; FString::FString(ushort const *)
.text:1018B877 ;   } // starts at 1018B7FF
.text:1018B87D ;   try {
.text:1018B87D                 mov     byte ptr [ebp+var_4], 2
.text:1018B881                 push    0
.text:1018B883                 mov     eax, [esi+2A8h]
.text:1018B889                 add     eax, 24h ; '$'
.text:1018B88C                 push    eax
.text:1018B88D                 lea     ecx, [ebp+var_34]
.text:1018B890                 push    ecx
.text:1018B891                 mov     edx, dword_103663BC
.text:1018B897                 mov     ecx, [edx+511Ch]
.text:1018B89D                 call    sub_101B8AB0
.text:1018B89D ;   } // starts at 1018B87D
.text:1018B8A2 ;   try {
.text:1018B8A2                 mov     byte ptr [ebp+var_4], 1
.text:1018B8A6                 lea     ecx, [ebp+var_34] ; void *
.text:1018B8A9                 call    ds:??1FString@@QAE@XZ ; FString::~FString(void)
.text:1018B8AF                 push    0
.text:1018B8B1                 push    0
.text:1018B8B3                 push    0
.text:1018B8B5                 push    0
.text:1018B8B7                 push    0
.text:1018B8B9                 push    0
.text:1018B8BB                 lea     ecx, [ebp+var_4C]
.text:1018B8BE                 call    ds:??DFString@@QBEPBGXZ ; FString::operator*(void)
.text:1018B8C4                 push    eax
.text:1018B8C5                 lea     eax, [ebp+var_20]
.text:1018B8C8                 push    eax
.text:1018B8C9                 call    sub_10020BB0
.text:1018B8CE                 add     esp, 20h
.text:1018B8D1                 mov     eax, [ebp+var_20]
.text:1018B8D4                 cmp     [ebp+arg_0], eax
.text:1018B8D7                 jge     short loc_1018B8DC
.text:1018B8D9                 mov     [ebp+arg_0], eax
.text:1018B8DC
.text:1018B8DC loc_1018B8DC:                           ; CODE XREF: sub_1018B5D0+307↑j
.text:1018B8DC                 fild    [ebp+arg_0]
.text:1018B8DF                 mov     ecx, [esi+2A8h]
.text:1018B8E5                 fstp    dword ptr [ecx+30h]
.text:1018B8E8                 mov     dword ptr [esi+2ACh], 1
.text:1018B8E8 ;   } // starts at 1018B8A2
.text:1018B8F2 ;   try {
.text:1018B8F2                 mov     byte ptr [ebp+var_4], 0
.text:1018B8F6                 lea     ecx, [ebp+var_68]
.text:1018B8F9                 call    sub_10187540
.text:1018B8FE                 mov     ebx, [ebp+var_14]
.text:1018B901
.text:1018B901 loc_1018B901:                           ; CODE XREF: sub_1018B5D0+218↑j
.text:1018B901                 mov     edi, [ebp+arg_4]
.text:1018B904
.text:1018B904 loc_1018B904:                           ; CODE XREF: sub_1018B5D0+1FD↑j
.text:1018B904                 cmp     dword ptr [esi+244h], 0
.text:1018B90B                 jz      loc_1018BA0E
.text:1018B911                 mov     edx, dword_103663BC
.text:1018B917                 mov     eax, [edx+5110h]
.text:1018B91D                 mov     ecx, [eax+64h]
.text:1018B920                 mov     [ebp+var_34], ecx
.text:1018B923                 mov     edx, [eax+68h]
.text:1018B926                 mov     [ebp+var_30], edx
.text:1018B929                 mov     eax, [eax+6Ch]
.text:1018B92C                 mov     [ebp+var_2C], eax
.text:1018B92F                 fld     [ebp+var_34]
.text:1018B932                 call    __ftol2_sse
.text:1018B937                 mov     edi, eax
.text:1018B939                 mov     [ebp+var_40], edi
.text:1018B93C                 fld     [ebp+var_30]
.text:1018B93F                 call    __ftol2_sse
.text:1018B944                 mov     ebx, eax
.text:1018B946                 mov     [ebp+var_3C], ebx
.text:1018B949                 fld     [ebp+var_2C]
.text:1018B94C                 call    __ftol2_sse
.text:1018B951                 mov     [ebp+var_38], eax
.text:1018B954                 mov     ecx, [esi+250h]
.text:1018B95A                 push    ecx
.text:1018B95B                 lea     edx, [ebp+var_18]
.text:1018B95E                 push    edx
.text:1018B95F                 lea     eax, [ebp+arg_0]
.text:1018B962                 push    eax
.text:1018B963                 push    ebx
.text:1018B964                 push    edi
.text:1018B965                 mov     ecx, esi
.text:1018B967                 call    sub_10188400
.text:1018B96C                 mov     edi, [ebp+arg_0]
.text:1018B96F                 sub     edi, [esi+25Ch]
.text:1018B975                 mov     [ebp+arg_0], edi
.text:1018B978                 mov     ebx, [ebp+var_18]
.text:1018B97B                 sub     ebx, [esi+260h]
.text:1018B981                 mov     [ebp+var_18], ebx
.text:1018B984                 cmp     edi, 5
.text:1018B987                 jl      short loc_1018B9FE
.text:1018B989                 fld     dword ptr [esi+88h]
.text:1018B98F                 call    __ftol2_sse
.text:1018B994                 sub     eax, 5
.text:1018B997                 cmp     edi, eax
.text:1018B999                 jg      short loc_1018B9FE
.text:1018B99B                 cmp     ebx, 5
.text:1018B99E                 jl      short loc_1018B9FE
.text:1018B9A0                 fld     dword ptr [esi+8Ch]
.text:1018B9A6                 call    __ftol2_sse
.text:1018B9AB                 sub     eax, 5
.text:1018B9AE                 cmp     ebx, eax
.text:1018B9B0                 jge     short loc_1018B9FE
.text:1018B9B2                 mov     eax, [ebp+var_14]
.text:1018B9B5                 cmp     edi, eax
.text:1018B9B7                 jg      short loc_1018B9FE
.text:1018B9B9                 add     edi, 14h
.text:1018B9BC                 cmp     eax, edi
.text:1018B9BE                 jg      short loc_1018B9FE
.text:1018B9C0                 lea     ecx, [ebx-14h]
.text:1018B9C3                 mov     eax, [ebp+arg_4]
.text:1018B9C6                 cmp     ecx, eax
.text:1018B9C8                 jg      short loc_1018B9FE
.text:1018B9CA                 cmp     eax, ebx
.text:1018B9CC                 jg      short loc_1018B9FE
.text:1018B9CE                 mov     dword ptr [esi+24Ch], 1
.text:1018B9D8                 jmp     short loc_1018BA08
.text:1018B9DA ; ---------------------------------------------------------------------------
.text:1018B9DA
.text:1018B9DA loc_1018B9DA:                           ; CODE XREF: sub_1018B5D0+268↑j
.text:1018B9DA                 mov     ebx, [ebp+var_14]
.text:1018B9DD
.text:1018B9DD loc_1018B9DD:                           ; CODE XREF: sub_1018B5D0+247↑j
.text:1018B9DD                                         ; sub_1018B5D0+252↑j ...
.text:1018B9DD                 mov     dword ptr [esi+2ACh], 0
.text:1018B9DD ;   } // starts at 1018B8F2
.text:1018B9E7 ;   try {
.text:1018B9E7                 mov     byte ptr [ebp+var_4], 0
.text:1018B9EB                 lea     ecx, [ebp+var_68]
.text:1018B9EE                 call    sub_10187540
.text:1018B9F3                 add     edi, 1
.text:1018B9F6                 mov     eax, [ebp+var_20]
.text:1018B9F9                 jmp     loc_1018B7E5
.text:1018B9FE ; ---------------------------------------------------------------------------
.text:1018B9FE
.text:1018B9FE loc_1018B9FE:                           ; CODE XREF: sub_1018B5D0+3B7↑j
.text:1018B9FE                                         ; sub_1018B5D0+3C9↑j ...
.text:1018B9FE                 mov     dword ptr [esi+24Ch], 0
.text:1018BA08
.text:1018BA08 loc_1018BA08:                           ; CODE XREF: sub_1018B5D0+408↑j
.text:1018BA08                 mov     edi, [ebp+arg_4]
.text:1018BA0B                 mov     ebx, [ebp+var_14]
.text:1018BA0E
.text:1018BA0E loc_1018BA0E:                           ; CODE XREF: sub_1018B5D0+33B↑j
.text:1018BA0E                 mov     [esi+26Ch], ebx
.text:1018BA14                 mov     [esi+270h], edi
.text:1018BA1A                 mov     eax, 1
.text:1018BA1F                 wait
.text:1018BA20                 mov     ecx, [ebp+var_C]
.text:1018BA23                 mov     large fs:0, ecx
.text:1018BA2A                 pop     ecx
.text:1018BA2B                 pop     edi
.text:1018BA2C                 pop     esi
.text:1018BA2D                 pop     ebx
.text:1018BA2E                 mov     esp, ebp
.text:1018BA30                 pop     ebp
.text:1018BA31                 retn    8
.text:1018BA34 ; ---------------------------------------------------------------------------
.text:1018BA34
.text:1018BA34 loc_1018BA34:                           ; DATA XREF: .rdata:stru_10316994↓o
.text:1018BA34 ;   catch(ushort *) // owned by 1018B5FD
.text:1018BA34 ;   catch(ushort *) // owned by 1018B7FF
.text:1018BA34 ;   catch(ushort *) // owned by 1018B87D
.text:1018BA34 ;   catch(ushort *) // owned by 1018B8A2
.text:1018BA34 ;   catch(ushort *) // owned by 1018B8F2
.text:1018BA34 ;   catch(ushort *) // owned by 1018B9E7
.text:1018BA34                 mov     edx, [ebp+var_28]
.text:1018BA37                 mov     [ebp+pExceptionObject], edx
.text:1018BA3A                 push    offset __TI2PAG ; pThrowInfo
.text:1018BA3F                 lea     eax, [ebp+pExceptionObject]
.text:1018BA42                 push    eax             ; pExceptionObject
.text:1018BA43                 call    __CxxThrowException@8 ; _CxxThrowException(x,x)
.text:1018BA48 ; ---------------------------------------------------------------------------
.text:1018BA48
.text:1018BA48 loc_1018BA48:                           ; DATA XREF: .rdata:103169A4↓o
.text:1018BA48 ;   catch(...) // owned by 1018B5FD
.text:1018BA48 ;   catch(...) // owned by 1018B7FF
.text:1018BA48 ;   catch(...) // owned by 1018B87D
.text:1018BA48 ;   catch(...) // owned by 1018B8A2
.text:1018BA48 ;   catch(...) // owned by 1018B8F2
.text:1018BA48 ;   catch(...) // owned by 1018B9E7
.text:1018BA48                 push    offset aNcminimapwndOn_4 ; "NCMinimapWnd::OnMouseMove"
.text:1018BA4D                 push    offset aS       ; "%s"
.text:1018BA52                 call    ds:?appUnwindf@@YAXPBGZZ ; appUnwindf(ushort const *,...)
.text:1018BA58                 add     esp, 8
.text:1018BA5B                 push    0               ; pThrowInfo
.text:1018BA5D                 push    0               ; pExceptionObject
.text:1018BA5F                 call    __CxxThrowException@8 ; _CxxThrowException(x,x)
.text:1018BA5F ;   } // starts at 1018B9E7
.text:1018BA5F ; } // starts at 1018B5D0
.text:1018BA5F sub_1018B5D0    endp
.text:1018BA5F
.text:1018BA5F ; ---------------------------------------------------------------------------
.text:1018BA64                 align 10h
.text:1018BA70
.text:1018BA70 ; =============== S U B R O U T I N E =======================================
.text:1018BA70
.text:1018BA70
.text:1018BA70 ; int sub_1018BA70()
.text:1018BA70 sub_1018BA70    proc near               ; CODE XREF: sub_1018BCC0+8940E↓j
.text:1018BA70                                         ; sub_1018BE40+8931B↓j
.text:1018BA70
.text:1018BA70 var_10          = dword ptr -10h
.text:1018BA70 var_C           = dword ptr -0Ch
.text:1018BA70 var_4           = dword ptr -4
.text:1018BA70 arg_4           = dword ptr  8
.text:1018BA70
.text:1018BA70 ; FUNCTION CHUNK AT .text:10214FE0 SIZE 00000023 BYTES
.text:1018BA70
.text:1018BA70 ; __unwind { // SEH_1018BA70
.text:1018BA70                 push    0FFFFFFFFh
.text:1018BA72                 push    offset SEH_1018BA70
.text:1018BA77                 mov     eax, large fs:0
.text:1018BA7D                 push    eax
.text:1018BA7E                 push    ecx
.text:1018BA7F                 mov     eax, dword_103554C4
.text:1018BA84                 xor     eax, esp
.text:1018BA86                 push    eax
.text:1018BA87                 lea     eax, [esp+14h+var_C]
.text:1018BA8B                 mov     large fs:0, eax
.text:1018BA91                 mov     [esp+14h+var_10], ecx
.text:1018BA95                 mov     [esp+14h+var_4], 0FFFFFFFFh
.text:1018BA9D                 call    sub_1018AD60
.text:1018BAA2                 mov     ecx, [esp+14h+var_C]
.text:1018BAA6                 mov     large fs:0, ecx
.text:1018BAAD                 pop     ecx
.text:1018BAAE                 add     esp, 10h
.text:1018BAB1                 retn
.text:1018BAB1 ; } // starts at 1018BA70
.text:1018BAB1 sub_1018BA70    endp
.text:1018BAB1
.text:1018BAB1 ; ---------------------------------------------------------------------------
.text:1018BAB2                 align 10h
.text:1018BAC0
.text:1018BAC0 ; =============== S U B R O U T I N E =======================================
.text:1018BAC0
.text:1018BAC0
.text:1018BAC0 ; int __thiscall sub_1018BAC0(_DWORD *this)
.text:1018BAC0 sub_1018BAC0    proc near               ; DATA XREF: .rdata:1028EAEC↓o
.text:1018BAC0
.text:1018BAC0 var_30          = dword ptr -30h
.text:1018BAC0 var_2C          = dword ptr -2Ch
.text:1018BAC0 var_28          = dword ptr -28h
.text:1018BAC0 var_24          = byte ptr -24h
.text:1018BAC0 var_18          = dword ptr -18h
.text:1018BAC0 var_C           = dword ptr -0Ch
.text:1018BAC0 var_4           = dword ptr -4
.text:1018BAC0 arg_4           = dword ptr  8
.text:1018BAC0
.text:1018BAC0 ; FUNCTION CHUNK AT .text:10215010 SIZE 0000005A BYTES
.text:1018BAC0
.text:1018BAC0 ; __unwind { // SEH_1018BAC0
.text:1018BAC0                 push    0FFFFFFFFh
.text:1018BAC2                 push    offset SEH_1018BAC0
.text:1018BAC7                 mov     eax, large fs:0
.text:1018BACD                 push    eax
.text:1018BACE                 sub     esp, 24h
.text:1018BAD1                 push    ebx
.text:1018BAD2                 push    ebp
.text:1018BAD3                 push    esi
.text:1018BAD4                 push    edi
.text:1018BAD5                 mov     eax, dword_103554C4
.text:1018BADA                 xor     eax, esp
.text:1018BADC                 push    eax
.text:1018BADD                 lea     eax, [esp+44h+var_C]
.text:1018BAE1                 mov     large fs:0, eax
.text:1018BAE7                 mov     edi, ecx
.text:1018BAE9                 xor     ebx, ebx
.text:1018BAEB                 mov     [esp+44h+var_30], ebx
.text:1018BAEF                 call    sub_10061B40
.text:1018BAF4                 push    1
.text:1018BAF6                 push    offset aL2uiMinimapwnd ; "L2UI.MinimapWnd.MinimapPos"
.text:1018BAFB                 mov     ecx, edi
.text:1018BAFD                 call    sub_1003F630
.text:1018BB02                 push    1
.text:1018BB04                 push    offset aL2uiMinimapwnd_0 ; "L2UI.MinimapWnd.TargetPos"
.text:1018BB09                 mov     ecx, edi
.text:1018BB0B                 mov     [edi+234h], eax
.text:1018BB11                 call    sub_1003F630
.text:1018BB16                 push    1
.text:1018BB18                 push    offset aL2uiCh3Minimap_1 ; "L2UI_CH3.Minimap.MapIcon_Mark"
.text:1018BB1D                 mov     ecx, edi
.text:1018BB1F                 mov     [edi+238h], eax
.text:1018BB25                 call    sub_1003F630
.text:1018BB2A                 mov     [edi+23Ch], eax
.text:1018BB30                 mov     [edi+2ACh], ebx
.text:1018BB36                 mov     eax, ds:?GMalloc@@3PAVFMalloc@@A ; FMalloc * GMalloc
.text:1018BB3B                 mov     ecx, [eax]
.text:1018BB3D                 mov     edx, [ecx]
.text:1018BB3F                 mov     eax, [edx]
.text:1018BB41                 push    offset aNew     ; "new"
.text:1018BB46                 push    60h ; '`'
.text:1018BB48                 call    eax
.text:1018BB4A                 mov     [esp+44h+var_28], eax
.text:1018BB4E                 mov     [esp+44h+var_4], ebx
.text:1018BB52                 cmp     eax, ebx
.text:1018BB54                 jz      short loc_1018BB5F
.text:1018BB56                 mov     ecx, eax
.text:1018BB58                 call    sub_10055020
.text:1018BB5D                 jmp     short loc_1018BB61
.text:1018BB5F ; ---------------------------------------------------------------------------
.text:1018BB5F
.text:1018BB5F loc_1018BB5F:                           ; CODE XREF: sub_1018BAC0+94↑j
.text:1018BB5F                 xor     eax, eax
.text:1018BB61
.text:1018BB61 loc_1018BB61:                           ; CODE XREF: sub_1018BAC0+9D↑j
.text:1018BB61                 mov     [esp+44h+var_4], 0FFFFFFFFh
.text:1018BB69                 mov     [edi+2A8h], eax
.text:1018BB6F                 lea     esi, [edi+274h]
.text:1018BB75                 mov     [esp+44h+var_2C], 8
.text:1018BB7D
.text:1018BB7D loc_1018BB7D:                           ; CODE XREF: sub_1018BAC0+1CD↓j
.text:1018BB7D                 push    0
.text:1018BB7F                 lea     ecx, [esp+48h+var_28]
.text:1018BB83                 call    ds:??0FName@@QAE@W4EName@@@Z ; FName::FName(EName)
.text:1018BB89                 call    ds:?GetTransientPackage@UObject@@SAPAVUPackage@@XZ ; UObject::GetTransientPackage(void)
.text:1018BB8F                 mov     ecx, ds:?GError@@3PAVFOutputDeviceError@@A ; FOutputDeviceError * GError
.text:1018BB95                 mov     edx, [ecx]
.text:1018BB97                 mov     ecx, [esp+44h+var_28]
.text:1018BB9B                 push    0
.text:1018BB9D                 push    0
.text:1018BB9F                 push    edx
.text:1018BBA0                 push    0
.text:1018BBA2                 push    0
.text:1018BBA4                 push    ecx
.text:1018BBA5                 push    eax
.text:1018BBA6                 push    offset unk_10357870
.text:1018BBAB                 call    ds:?StaticAllocateObject@UObject@@SAPAV1@PAVUClass@@PAV1@VFName@@K1PAVFOutputDevice@@11@Z ; UObject::StaticAllocateObject(UClass *,UObject *,FName,ulong,UObject *,FOutputDevice *,UObject *,UObject *)
.text:1018BBB1                 mov     ebp, eax
.text:1018BBB3                 add     esp, 20h
.text:1018BBB6                 test    ebp, ebp
.text:1018BBB8                 jz      short loc_1018BC0B
.text:1018BBBA                 push    offset aL2uiCh3Minimap_2 ; "L2UI_CH3.Minimap.minimap_party"
.text:1018BBBF                 lea     ecx, [esp+48h+var_18]
.text:1018BBC3                 call    ds:??0FString@@QAE@PBG@Z ; FString::FString(ushort const *)
.text:1018BBC9                 mov     [esp+44h+var_4], 1
.text:1018BBD1                 or      ebx, 1
.text:1018BBD4                 push    offset aL2uiCh3Minimap_2 ; "L2UI_CH3.Minimap.minimap_party"
.text:1018BBD9                 lea     ecx, [esp+48h+var_24]
.text:1018BBDD                 mov     [esp+48h+var_30], ebx
.text:1018BBE1                 call    ds:??0FString@@QAE@PBG@Z ; FString::FString(ushort const *)
.text:1018BBE7                 mov     [esp+44h+var_4], 2
.text:1018BBEF                 push    2
.text:1018BBF1                 lea     edx, [esp+48h+var_18]
.text:1018BBF5                 push    edx
.text:1018BBF6                 lea     eax, [esp+4Ch+var_24]
.text:1018BBFA                 or      ebx, 2
.text:1018BBFD                 push    eax
.text:1018BBFE                 mov     ecx, ebp
.text:1018BC00                 mov     [esp+50h+var_30], ebx
.text:1018BC04                 call    sub_10006980
.text:1018BC09                 jmp     short loc_1018BC0D
.text:1018BC0B ; ---------------------------------------------------------------------------
.text:1018BC0B
.text:1018BC0B loc_1018BC0B:                           ; CODE XREF: sub_1018BAC0+F8↑j
.text:1018BC0B                 xor     eax, eax
.text:1018BC0D
.text:1018BC0D loc_1018BC0D:                           ; CODE XREF: sub_1018BAC0+149↑j
.text:1018BC0D                 mov     ebp, 1
.text:1018BC12                 mov     [esi], eax
.text:1018BC14                 mov     [esp+44h+var_4], ebp
.text:1018BC18                 test    bl, 2
.text:1018BC1B                 jz      short loc_1018BC2E
.text:1018BC1D                 and     ebx, 0FFFFFFFDh
.text:1018BC20                 lea     ecx, [esp+44h+var_24] ; void *
.text:1018BC24                 mov     [esp+44h+var_30], ebx
.text:1018BC28                 call    ds:??1FString@@QAE@XZ ; FString::~FString(void)
.text:1018BC2E
.text:1018BC2E loc_1018BC2E:                           ; CODE XREF: sub_1018BAC0+15B↑j
.text:1018BC2E                 mov     [esp+44h+var_4], 0FFFFFFFFh
.text:1018BC36                 test    bl, 1
.text:1018BC39                 jz      short loc_1018BC4C
.text:1018BC3B                 and     ebx, 0FFFFFFFEh
.text:1018BC3E                 lea     ecx, [esp+44h+var_18] ; void *
.text:1018BC42                 mov     [esp+44h+var_30], ebx
.text:1018BC46                 call    ds:??1FString@@QAE@XZ ; FString::~FString(void)
.text:1018BC4C
.text:1018BC4C loc_1018BC4C:                           ; CODE XREF: sub_1018BAC0+179↑j
.text:1018BC4C                 mov     ecx, [esi]
.text:1018BC4E                 mov     edx, [ecx]
.text:1018BC50                 mov     eax, [edx+0C0h]
.text:1018BC56                 push    3
.text:1018BC58                 push    0
.text:1018BC5A                 push    0
.text:1018BC5C                 push    10h
.text:1018BC5E                 push    10h
.text:1018BC60                 push    0
.text:1018BC62                 push    0
.text:1018BC64                 call    eax
.text:1018BC66                 mov     ecx, [esi]
.text:1018BC68                 push    22h ; '"'
.text:1018BC6A                 push    ecx
.text:1018BC6B                 mov     ecx, edi
.text:1018BC6D                 call    sub_10060D40
.text:1018BC72                 mov     ecx, [esi]
.text:1018BC74                 push    eax
.text:1018BC75                 call    sub_1005C1E0
.text:1018BC7A                 mov     ecx, [esi]
.text:1018BC7C                 mov     edx, [ecx]
.text:1018BC7E                 mov     eax, [edx+13Ch]
.text:1018BC84                 call    eax
.text:1018BC86                 add     esi, 4
.text:1018BC89                 sub     [esp+44h+var_2C], ebp
.text:1018BC8D                 jnz     loc_1018BB7D
.text:1018BC93                 mov     ecx, edi
.text:1018BC95                 call    sub_1018AE40
.text:1018BC9A                 mov     ecx, edi
.text:1018BC9C                 call    sub_1018B050
.text:1018BCA1                 mov     eax, ebp
.text:1018BCA3                 mov     ecx, [esp+44h+var_C]
.text:1018BCA7                 mov     large fs:0, ecx
.text:1018BCAE                 pop     ecx
.text:1018BCAF                 pop     edi
.text:1018BCB0                 pop     esi
.text:1018BCB1                 pop     ebp
.text:1018BCB2                 pop     ebx
.text:1018BCB3                 add     esp, 30h
.text:1018BCB6                 retn
.text:1018BCB6 ; } // starts at 1018BAC0
.text:1018BCB6 sub_1018BAC0    endp
.text:1018BCB6
.text:1018BCB6 ; ---------------------------------------------------------------------------
.text:1018BCB7                 align 10h
.text:1018BCC0
.text:1018BCC0 ; =============== S U B R O U T I N E =======================================
.text:1018BCC0
.text:1018BCC0
.text:1018BCC0 ; float *__thiscall sub_1018BCC0(float *this, char, char, char, char, char, char)
.text:1018BCC0 sub_1018BCC0    proc near               ; CODE XREF: sub_100E13F0+A0↑p
.text:1018BCC0                                         ; sub_1018BF40+14↓p
.text:1018BCC0
.text:1018BCC0 var_14          = dword ptr -14h
.text:1018BCC0 var_10          = dword ptr -10h
.text:1018BCC0 var_C           = dword ptr -0Ch
.text:1018BCC0 var_4           = dword ptr -4
.text:1018BCC0 arg_0           = byte ptr  4
.text:1018BCC0 arg_4           = dword ptr  8
.text:1018BCC0 arg_8           = byte ptr  0Ch
.text:1018BCC0 arg_C           = byte ptr  10h
.text:1018BCC0 arg_10          = byte ptr  14h
.text:1018BCC0 arg_14          = byte ptr  18h
.text:1018BCC0
.text:1018BCC0 ; FUNCTION CHUNK AT .text:10215070 SIZE 000000AC BYTES
.text:1018BCC0
.text:1018BCC0 ; __unwind { // SEH_1018BCC0
.text:1018BCC0                 push    0FFFFFFFFh
.text:1018BCC2                 push    offset SEH_1018BCC0
.text:1018BCC7                 mov     eax, large fs:0
.text:1018BCCD                 push    eax
.text:1018BCCE                 sub     esp, 8
.text:1018BCD1                 push    esi
.text:1018BCD2                 push    edi
.text:1018BCD3                 mov     eax, dword_103554C4
.text:1018BCD8                 xor     eax, esp
.text:1018BCDA                 push    eax
.text:1018BCDB                 lea     eax, [esp+20h+var_C]
.text:1018BCDF                 mov     large fs:0, eax
.text:1018BCE5                 mov     esi, ecx
.text:1018BCE7                 mov     [esp+20h+var_14], esi
.text:1018BCEB                 call    sub_10061FA0
.text:1018BCF0                 xor     edi, edi
.text:1018BCF2                 mov     [esp+20h+var_4], edi
.text:1018BCF6                 lea     ecx, [esi+1E4h]
.text:1018BCFC                 mov     dword ptr [esi], offset ??_7NCMinimapWnd@@6B@ ; const NCMinimapWnd::`vftable'
.text:1018BD02                 mov     [esp+20h+var_10], ecx
.text:1018BD06                 call    ds:??0FArray@@QAE@XZ ; FArray::FArray(void)
.text:1018BD0C                 mov     byte ptr [esp+20h+var_4], 2
.text:1018BD11                 lea     ecx, [esi+1F0h]
.text:1018BD17                 mov     [esp+20h+var_10], ecx
.text:1018BD1B                 call    ds:??0FArray@@QAE@XZ ; FArray::FArray(void)
.text:1018BD21                 mov     byte ptr [esp+20h+var_4], 4
.text:1018BD26                 lea     ecx, [esi+1FCh]
.text:1018BD2C                 mov     [esp+20h+var_10], ecx
.text:1018BD30                 call    ds:??0FArray@@QAE@XZ ; FArray::FArray(void)
.text:1018BD36                 mov     byte ptr [esp+20h+var_4], 6
.text:1018BD3B                 lea     ecx, [esi+208h]
.text:1018BD41                 mov     [esp+20h+var_10], ecx
.text:1018BD45                 call    sub_1018ACF0
.text:1018BD4A                 mov     byte ptr [esp+20h+var_4], 8
.text:1018BD4F                 lea     ecx, [esi+21Ch]
.text:1018BD55                 mov     [esp+20h+var_10], ecx
.text:1018BD59                 call    ds:??0FArray@@QAE@XZ ; FArray::FArray(void)
.text:1018BD5F                 mov     byte ptr [esp+20h+var_4], 0Ah
.text:1018BD64                 fldz
.text:1018BD66                 mov     [esi+234h], edi
.text:1018BD6C                 fst     dword ptr [esi+2A0h]
.text:1018BD72                 lea     ecx, [esi+2B0h]
.text:1018BD78                 fstp    dword ptr [esi+2A4h]
.text:1018BD7E                 mov     [esi+29Ch], edi
.text:1018BD84                 mov     [esi+298h], edi
.text:1018BD8A                 mov     [esp+20h+var_10], ecx
.text:1018BD8E                 call    ds:??0FArray@@QAE@XZ ; FArray::FArray(void)
.text:1018BD94                 mov     byte ptr [esp+20h+var_4], 0Ch
.text:1018BD99                 mov     al, [esp+20h+arg_0]
.text:1018BD9D                 mov     cl, byte ptr [esp+20h+arg_4]
.text:1018BDA1                 mov     dl, [esp+20h+arg_8]
.text:1018BDA5                 mov     [esi+228h], al
.text:1018BDAB                 mov     al, [esp+20h+arg_C]
.text:1018BDAF                 mov     [esi+229h], cl
.text:1018BDB5                 mov     cl, [esp+20h+arg_10]
.text:1018BDB9                 mov     [esi+22Ah], dl
.text:1018BDBF                 mov     dl, [esp+20h+arg_14]
.text:1018BDC3                 mov     [esi+254h], edi
.text:1018BDC9                 mov     [esi+258h], edi
.text:1018BDCF                 mov     [esi+25Ch], edi
.text:1018BDD5                 mov     [esi+260h], edi
.text:1018BDDB                 mov     [esi+264h], edi
.text:1018BDE1                 mov     [esi+268h], edi
.text:1018BDE7                 mov     [esi+250h], edi
.text:1018BDED                 mov     [esi+244h], edi
.text:1018BDF3                 mov     [esi+248h], edi
.text:1018BDF9                 mov     [esi+24Ch], edi
.text:1018BDFF                 mov     [esi+22Bh], al
.text:1018BE05                 mov     [esi+22Ch], cl
.text:1018BE0B                 mov     [esi+22Dh], dl
.text:1018BE11                 mov     [esi+294h], edi
.text:1018BE17                 mov     [esp+20h+var_4], 0FFFFFFFFh
.text:1018BE1F                 mov     eax, esi
.text:1018BE21                 mov     ecx, [esp+20h+var_C]
.text:1018BE25                 mov     large fs:0, ecx
.text:1018BE2C                 pop     ecx
.text:1018BE2D                 pop     edi
.text:1018BE2E                 pop     esi
.text:1018BE2F                 add     esp, 14h
.text:1018BE32                 retn    18h
.text:1018BE32 ; } // starts at 1018BCC0
.text:1018BE32 sub_1018BCC0    endp
.text:1018BE32
.text:1018BE32 ; ---------------------------------------------------------------------------
.text:1018BE35                 align 10h