Function at 0x513080
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x5bff17
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x318
mov eax, dword [ecx + 0x318]
push ebx
xor ebx, ebx
push ebp
push esi
cmp eax, ebx
push edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
je 0x5154f8
xor esi, esi
cmp eax, ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x70], esi
mov dword [esp + 0x60], ebx
jle 0x515446
mov esi, dword [esp + 0x70]
test esi, esi
je 0x5130ed
mov ecx, esi
call fcn.00518ce0
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [esp + 0x70], 0
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x40]
mov ecx, dword [eax + 0x314]
mov eax, dword [ecx + edx*4]
test eax, eax
mov dword [esp + 0x38], eax
je 0x51542b
mov ecx, dword [eax + 0x28]
xor ebx, ebx
xor ebp, ebp
mov byte [esp + 0x1f], 0
mov edi, dword [ecx]
mov byte [esp + 0x1e], 0
cmp edi, ebx
mov dword [esp + 0x2c], edi
mov dl, byte [edi + 8]
mov dword [esp + 0x10], ebp
mov byte [esp + 0x67], dl
mov dword [esp + 0x14], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x6c], ebx
mov byte [esp + 0x3f], 0
je 0x513274
mov eax, dword [edi]
cmp eax, ebx
je 0x513274
mov esi, dword [sym.imp.MSVCRT.dll__strnicmp]
push 5
push str.SI:NW
push eax
call esi
add esp, 0xc
test eax, eax
je 0x51317d
mov eax, dword [edi]
push 5
push str.SI_NW
push eax
call esi
add esp, 0xc
test eax, eax
jne 0x513274
mov ecx, dword [edi]
push ecx
lea ecx, [esp + 0x54]
call sub.MFC42.DLL_CString::CString_3
lea ecx, [esp + 0x50]
mov dword [esp + 0x330], ebx
call sub.MFC42.DLL_CString::TrimLeft
lea ecx, [esp + 0x50]
call sub.MFC42.DLL_CString::TrimRight
lea ecx, [esp + 0x50]
call sub.MFC42.DLL_CString::MakeUpper
push 0x63b90c
push str.SI:NW
lea ecx, [esp + 0x58]
call sub.MFC42.DLL_CString::Replace
push 0x63b90c
push str.SI_NW
lea ecx, [esp + 0x58]
call sub.MFC42.DLL_CString::Replace
push 0x619e98
push 0x616c88
lea ecx, [esp + 0x58]
call sub.MFC42.DLL_CString::Replace
push 0x619e98
push 0x60c220
lea ecx, [esp + 0x58]
call sub.MFC42.DLL_CString::Replace
lea ecx, [esp + 0x94]
call sub.MFC42.DLL_CStringArray::CStringArray
push 1
push 1
push 2
lea edx, [esp + 0xa0]
push 0x2f
push edx
push ecx
lea eax, [esp + 0x68]
mov ecx, esp
mov dword [esp + 0x30], esp
push eax
mov byte [esp + 0x34c], 1
call sub.MFC42.DLL_CString::CString_2
call fcn.004ec420
mov eax, dword [esp + 0xb4]
add esp, 0x18
cmp eax, ebx
je 0x515511
cmp eax, 2
je 0x515611
lea ecx, [esp + 0x94]
mov byte [esp + 0x330], 0
call fcn.0059ba94
lea ecx, [esp + 0x50]
mov dword [esp + 0x330], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x38]
mov esi, str.qt_group
mov ebp, dword [ecx + 4]
mov eax, ebp
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x5132a6
test cl, cl
je 0x5132a2
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x5132a6
add eax, 2
add esi, 2
test cl, cl
jne 0x513282
xor eax, eax
jmp 0x5132ab
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x5134c9
push 0x2c
call sub.MFC42.DLL_operatornew
mov esi, eax
add esp, 4
mov dword [esp + 0x18], esi
cmp esi, ebx
mov dword [esp + 0x330], 0x14
je 0x5132fe
lea ecx, [esi + 0x14]
call sub.MFC42.DLL_CString::CString_1
mov dword [esi + 0x18], 0x5d74d0
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x28], ebx
mov dword [esi + 0x24], ebx
mov dword [esi + 0x20], ebx
mov dword [esi], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
mov byte [esi + 0xc], 0
jmp 0x513300
xor esi, esi
mov eax, dword [esp + 0x20]
mov dword [esp + 0x330], 0xffffffff
mov byte [esi + 0xc], 1
mov dword [esp + 0x48], esi
mov ecx, dword [eax + 0x2f0]
mov dword [esp + 0x70], esi
cmp ecx, ebx
mov dword [esp + 0x5c], ebx
jle 0x5133d5
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x5c]
xor ebx, ebx
mov edx, dword [ecx + 0x2ec]
mov eax, dword [edx + eax*4]
lea esi, [eax + 0x20]
mov dword [esp + 0x44], esi
cmp dword [esi], 0
jle 0x5133ba
add eax, 0x1c
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov ebp, dword [edx + ebx*4]
mov eax, dword [ebp + 0x74]
mov cl, byte [eax + 0x51]
test cl, cl
jne 0x5133b3
mov cl, byte [eax + 0xe5]
test cl, cl
je 0x5133b3
mov ecx, dword [esp + 0x38]
add ecx, 0xc
cmp byte [ecx], 0
je 0x51338e
mov eax, dword [eax + 0x24]
push ecx
push eax
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x5133b3
mov edx, dword [esp + 0x48]
push 0xffffffffffffffff
mov edi, dword [edx + 0x20]
lea esi, [edx + 0x18]
mov ecx, esi
lea eax, [edi + 1]
push eax
call fcn.005343d0
mov ecx, dword [esi + 4]
mov dword [ecx + edi*4], ebp
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov eax, dword [esi]
inc ebx
cmp ebx, eax
jl 0x513353
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x5c]
inc eax
mov ecx, dword [edx + 0x2f0]
mov dword [esp + 0x5c], eax
cmp eax, ecx
jl 0x51332d
mov eax, dword [esp + 0x48]
xor ebx, ebx
mov dword [esp + 0x48], eax
lea ecx, [esp + 0x58]
call sub.MFC42.DLL_CString::CString_1
mov esi, dword [sym.imp.MSVCRT.dll__strnicmp]
mov dword [esp + 0x330], 0x19
mov edx, dword [edi]
push 6
push str.LOCK02
push edx
mov byte [esp + 0x37], 0
mov byte [esp + 0x42], 0
mov byte [esp + 0x5b], 0
mov dword [esp + 0x68], ebx
call esi
add esp, 0xc
test eax, eax
jne 0x513483
mov eax, dword [edi]
lea ecx, [esp + 0x54]
add eax, 6
push eax
call sub.MFC42.DLL_CString::CString_3
lea ecx, [esp + 0x54]
mov byte [esp + 0x330], 0x1a
call sub.MFC42.DLL_CString::TrimLeft
lea ecx, [esp + 0x54]
call sub.MFC42.DLL_CString::TrimRight
mov eax, dword [esp + 0x54]
lea edx, [esp + 0x58]
push 1
push edx
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.004d1120
add esp, 0x10
lea ecx, [esp + 0x58]
call sub.MFC42.DLL_CString::TrimLeft
lea ecx, [esp + 0x58]
call sub.MFC42.DLL_CString::TrimRight
lea ecx, [esp + 0x54]
mov byte [esp + 0x330], 0x19
call sub.MFC42.DLL_CString::CString
mov eax, dword [edi]
push 3
push 0x62daa0
push eax
call esi
add esp, 0xc
test eax, eax
jne 0x5136ad
mov ecx, dword [esp + 0x48]
mov esi, dword [ecx + 0x20]
cmp esi, ebx
jle 0x5136ad
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x74]
mov bl, byte [edx + 0x5a]
test bl, bl
jne 0x5136a8
inc eax
add ecx, 4
cmp eax, esi
jl 0x5134ac
jmp 0x5136ad
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push ebp
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [esp + 0x24]
call fcn.00516b80
cmp eax, ebx
mov dword [esp + 0x48], eax
jne 0x5133df
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esi + 8]
lea edi, [esi + 8]
push ecx
mov ecx, ebx
call fcn.00595f30
xor ebp, ebp
cmp eax, ebp
je 0x513517
mov edx, dword [eax]
push ebp
push 0x62da70
mov ecx, eax
call dword [edx + 0x94]
mov eax, dword [0x641030]
cmp eax, ebp
je 0x51357d
mov cl, byte [eax + 0x40]
test cl, cl
je 0x51357d
add eax, 0x250
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push ebp
push str.____ERROR:
push 0x60c790
push ecx
mov dword [esp + 0x28], esp
mov eax, dword [edi]
mov ecx, esp
push eax
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [0x641030]
push str.runtime
push str.tdsms
mov edx, dword [ecx + 0x44]
push edx
call fcn.004ed3c0
mov eax, dword [0x641030]
add esp, 0x1c
mov edx, dword [eax + 0x248]
lea ecx, [eax + 0x248]
call dword [edx + 0x1c]
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.____ERROR:
call sub.MFC42.DLL_CString::CString_3
push ecx
mov dword [esp + 0x338], 0x15
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x60c790
call sub.MFC42.DLL_CString::CString_3
push ecx
mov byte [esp + 0x33c], 0x16
mov dword [esp + 0x3c], esp
mov eax, dword [edi]
mov ecx, esp
push eax
call sub.MFC42.DLL_CString::CString_3
push ecx
mov byte [esp + 0x340], 0x17
mov ecx, esp
mov dword [esp + 0x54], esp
push 0x6192e0
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [0x63bc8c]
mov dword [esp + 0x340], 0xffffffff
call fcn.00459390
mov dword [esp + 0x18], esi
mov edi, dword [edi]
mov dword [esp + 0x330], 0x18
push edi
call sub.MFC42.DLL_operatordelete
mov eax, dword [esi + 4]
mov dword [esi + 8], ebp
push eax
call sub.MFC42.DLL_operatordelete
mov dword [esi + 4], ebp
mov eax, dword [esi + 0x2c]
add esp, 8
xor edi, edi
cmp eax, ebp
jle 0x513649
mov ecx, dword [esi + 0x28]
mov ebx, dword [ecx + edi*4]
cmp ebx, ebp
je 0x51363d
mov eax, dword [ebx]
push eax
call sub.MFC42.DLL_operatordelete
push ebx
call sub.MFC42.DLL_operatordelete
add esp, 8
mov eax, dword [esi + 0x2c]
inc edi
cmp edi, eax
jl 0x513622
mov ebx, dword [esp + 0x20]
push 0xffffffffffffffff
push ebp
lea ecx, [esi + 0x24]
call fcn.005343d0
lea ecx, [esi + 0x24]
mov dword [esp + 0x330], 0xffffffff
call fcn.004bae30
push esi
call sub.MFC42.DLL_operatordelete
mov eax, dword [ebx + 0x318]
mov edx, dword [esp + 0x44]
mov ecx, dword [ebx + 0x314]
lea esi, [ebx + 0x318]
sub eax, edx
add esp, 4
dec eax
lea edi, [ecx + edx*4]
je 0x5136a1
shl eax, 2
lea ecx, [ecx + edx*4 + 4]
push eax
push ecx
push edi
call dword [sym.imp.MSVCRT.dll_memmove]
add esp, 0xc
dec dword [esi]
jmp 0x51542b
mov byte [esp + 0x4f], 1
mov eax, dword [edi]
push 2
push 0x6222c8
push eax
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x5137f7
mov ecx, dword [esp + 0x2c]
push 3
push 0x62da38
mov edx, dword [ecx]
push edx
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x5137f7
mov eax, dword [esp + 0x2c]
push 3
push 0x62da34
mov ecx, dword [eax]
push ecx
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x5137f7
mov edx, dword [esp + 0x2c]
push 2
push 0x62da30
mov eax, dword [edx]
push eax
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x5137f7
mov ebp, dword [esp + 0x2c]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [ebp]
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 3
jb 0x513775
mov esi, dword [sym.imp.MSVCRT.dll__strnicmp]
push 2
push 0x62da2c
push edx
call esi
add esp, 0xc
test eax, eax
jne 0x51377b
mov ecx, dword [ebp]
mov al, byte [ecx + 2]
cmp al, 0x20
je 0x5137f7
push eax
call fcn.004ee9d0
add esp, 4
test al, al
jne 0x5137f7
jmp 0x51377b
mov esi, dword [sym.imp.MSVCRT.dll__strnicmp]
mov edx, dword [ebp]
push 2
push 0x62da28
push edx
call esi
add esp, 0xc
test eax, eax
jne 0x5137b7
mov eax, dword [ebp]
push 3
push 0x62da24
push eax
call esi
add esp, 0xc
test eax, eax
je 0x5137b7
mov ecx, dword [ebp]
push 4
push str.TOUR
push ecx
call esi
add esp, 0xc
test eax, eax
jne 0x5137f7
mov edx, dword [ebp]
push 2
push 0x62da18
push edx
call esi
add esp, 0xc
test eax, eax
je 0x5137f7
mov eax, dword [ebp]
push 2
push 0x62da14
push eax
call esi
add esp, 0xc
test eax, eax
je 0x5137f7
mov ecx, dword [ebp]
push 2
push 0x62da10
push ecx
call esi
add esp, 0xc
test eax, eax
jne 0x513878
mov ebp, dword [esp + 0x2c]
or ecx, 0xffffffff
xor eax, eax
mov esi, 2
mov edx, dword [ebp]
mov byte [esp + 0x2b], 1
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, esi
jle 0x513872
mov al, byte [esi + edx]
cmp al, 0x30
jl 0x513823
cmp al, 0x39
jle 0x513836
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
inc esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp esi, ecx
jl 0x513818
jmp 0x513872
add esi, edx
push esi
call dword [sym.imp.MSVCRT.dll_atoi]
mov edx, dword [ebp]
mov esi, dword [sym.imp.MSVCRT.dll_strstr]
push 0x62da0c
push edx
mov dword [esp + 0x68], eax
call esi
add esp, 0xc
test eax, eax
jne 0x51386d
mov eax, dword [ebp]
push 0x62da08
push eax
call esi
add esp, 8
test eax, eax
je 0x513872
mov byte [esp + 0x36], 1
mov esi, dword [sym.imp.MSVCRT.dll__strnicmp]
mov al, byte [esp + 0x2b]
mov byte [esp + 0x37], 0
test al, al
je 0x5138cd
mov ecx, dword [ebp]
push 2
push 0x6222c8
push ecx
call esi
add esp, 0xc
test eax, eax
jne 0x5138c8
mov edx, dword [ebp]
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 4
jbe 0x5138c8
mov dl, byte [edx + 3]
push edx
call fcn.004ee9d0
add esp, 4
test al, al
jne 0x5138c8
mov al, byte [esp + 0x36]
mov byte [esp + 0x37], 1
test al, al
je 0x5138cd
mov byte [esp + 0x37], 0
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x44], 0
mov edx, dword [ecx + 0x20]
lea eax, [ecx + 0x20]
test edx, edx
mov dword [esp + 0x48], eax
jle 0x513e71
mov ebx, dword [esp + 0x38]
add ecx, 0x1c
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x44]
mov ecx, dword [eax]
mov eax, dword [esp + 0x30]
test eax, eax
mov ebp, dword [ecx + edx*4]
jne 0x51394f
mov al, byte [ebp + 0x98]
test al, al
je 0x51394f
mov esi, dword [ebx + 8]
lea eax, [ebp + 0xa0]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x513942
test cl, cl
je 0x51393e
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x513942
add eax, 2
add esi, 2
test cl, cl
jne 0x51391e
xor eax, eax
jmp 0x513947
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51394f
mov dword [esp + 0x30], ebp
cmp byte [esp + 0x67], 1
jne 0x51399f
mov edi, dword [ebp + 0x74]
mov esi, str.travelsky
mov eax, dword [edi + 8]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x513985
test cl, cl
je 0x513981
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x513985
add eax, 2
add esi, 2
test cl, cl
jne 0x513961
xor eax, eax
jmp 0x51398a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x513e3e
cmp byte [edi + 0x96], 1
je 0x513e3e
cmp byte [esp + 0x4f], 1
jne 0x5139b4
mov eax, dword [ebp + 0x74]
mov cl, byte [eax + 0x5a]
test cl, cl
je 0x513e3e
mov al, byte [ebp + 0x132]
test al, al
jne 0x513a89
mov eax, dword [ebp + 0x74]
cmp byte [eax + 0x114], 1
jne 0x513a63
mov al, byte [ebp + 0xc42]
test al, al
je 0x513a45
mov ecx, dword [esp + 0x2c]
push 4
push 0x61a5e4
mov edx, dword [ecx]
push edx
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x513a89
mov al, byte [ebp + 0x98]
test al, al
je 0x513e3e
mov esi, dword [ebx + 8]
lea eax, [ebp + 0xa0]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x513a36
test cl, cl
je 0x513a32
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x513a36
add eax, 2
add esi, 2
test cl, cl
jne 0x513a12
xor eax, eax
jmp 0x513a3b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x513e3e
jmp 0x513a89
mov eax, dword [ebx + 8]
push 6
push 0x625828
push eax
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x513e3e
jmp 0x513a89
mov cl, byte [eax + 0x104]
test cl, cl
jne 0x513a89
mov ecx, dword [ebx + 8]
push 6
push 0x625828
push ecx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x513e3e
cmp byte [ebp + 0xc41], 1
jne 0x513abb
mov edx, dword [ebp + 0x74]
mov al, byte [edx + 0x114]
test al, al
jne 0x513abb
mov eax, dword [ebx + 8]
push 6
push 0x625828
push eax
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x513e3e
cmp byte [ebp + 0xc40], 1
jne 0x513ae0
mov ecx, dword [ebx + 8]
push 6
push 0x625828
push ecx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x513e3e
cmp byte [ebp + 0x133], 1
jne 0x513b05
mov edx, dword [ebx + 8]
push 6
push 0x625828
push edx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x513e3e
mov eax, dword [ebp + 0x74]
mov cl, byte [eax + 0xcd]
test cl, cl
je 0x513b23
mov ecx, dword [ebp + 0x38]
mov edx, dword [ecx + 0x78]
mov esi, dword [ecx + 0x7c]
cmp edx, esi
jge 0x513e3e
mov cl, byte [eax + 0xcc]
test cl, cl
je 0x513b48
mov ecx, dword [ebp + 0x38]
mov edx, dword [ecx + 0x74]
mov esi, dword [ecx + 0x6c]
mov edi, dword [ecx + 0x68]
add edx, esi
mov esi, dword [ecx + 0x70]
add esi, edi
cmp edx, esi
jge 0x513e3e
mov cl, byte [eax + 0xf0]
test cl, cl
jne 0x513c01
mov cl, byte [esp + 0x2b]
test cl, cl
je 0x513c01
mov cl, byte [esp + 0x37]
test cl, cl
jne 0x513bf3
mov ecx, dword [esp + 0x5c]
test ecx, ecx
jle 0x513e3e
mov cl, byte [eax + 0x5b]
test cl, cl
je 0x513e3e
mov eax, dword [eax + 0x60]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x513c01
mov al, byte [esp + 0x36]
test al, al
jne 0x513c01
lea ecx, [esp + 0x74]
call sub.MFC42.DLL_CString::CString_1
mov ecx, dword [esp + 0x5c]
lea edx, [esp + 0x74]
push ecx
push 0x62cda0
push edx
mov byte [esp + 0x33c], 0x1b
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x80]
mov ecx, dword [ebp + 0x74]
add esp, 0xc
add ecx, 0x60
push eax
call sub.MFC42.DLL_CString::Find_1
test eax, eax
mov byte [esp + 0x330], 0x19
lea ecx, [esp + 0x74]
jge 0x513bec
call sub.MFC42.DLL_CString::CString
jmp 0x513e3e
call sub.MFC42.DLL_CString::CString
jmp 0x513c01
mov cl, byte [eax + 0xe4]
test cl, cl
je 0x513e3e
mov al, byte [ebx + 0x13]
test al, al
je 0x513c41
mov ecx, dword [esp + 0x2c]
push 3
push 0x61a644
mov edx, dword [ecx]
push edx
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x513c41
mov eax, dword [ebp + 0x74]
lea ecx, [ebx + 0xc]
add eax, 0x24
push ecx
mov eax, dword [eax]
push eax
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x513e3e
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx - 8]
test eax, eax
je 0x513c68
mov edx, dword [ebp + 0x74]
mov eax, dword [edx + 0xac]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x513e3e
mov ecx, ebp
call fcn.0050cad0
cmp eax, 0x1c
jne 0x513c82
mov al, byte [ebp + 0x130]
test al, al
jne 0x515cdb
mov ecx, ebp
call fcn.0050cad0
cmp eax, 0x1d
je 0x513e3e
mov eax, dword [ebx + 8]
lea esi, [ebp + 0xa0]
push eax
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x513cec
mov ecx, ebp
call fcn.0050cad0
cmp eax, 0xa
je 0x513cca
cmp eax, 0xb
je 0x513cca
cmp eax, 0xc
je 0x513cca
cmp eax, 0xd
je 0x513cca
cmp eax, 0xe
jne 0x513cec
mov eax, dword [ebp + 0xe0]
xor ecx, ecx
mov cx, word [ebx + 0x16]
cmp eax, ecx
jl 0x513e63
mov byte [esp + 0x1f], 1
mov dword [esp + 0x14], ebp
jmp 0x513e3e
mov al, byte [ebp + 0x98]
test al, al
je 0x513d14
cmp dword [ebp + 0x128], 0xf
je 0x513e39
mov byte [esp + 0x3f], 1
mov dword [esp + 0x90], esi
jmp 0x513e3e
mov ecx, ebp
call fcn.0050cad0
cmp eax, 0xb
je 0x513e39
cmp eax, 0xc
je 0x513e39
cmp eax, 0xd
je 0x513e39
cmp eax, 0xe
je 0x513e39
cmp eax, 0xa
jne 0x513e3e
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x513d7c
mov edx, dword [ebp + 0x74]
mov ecx, dword [edx + 0xe8]
cmp ecx, 0xfffffff6
jle 0x513e35
mov eax, dword [ebp + 0x38]
add ecx, 0xa
mov eax, dword [eax + 0x78]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
cdq
idiv ecx
jmp 0x513e31
mov eax, dword [ebp + 0x74]
mov edi, dword [sym.imp.MSVCRT.dll__mbsicmp]
add eax, 0x24
lea esi, [ebx + 0xc]
push esi
mov eax, dword [eax]
push eax
call edi
add esp, 8
test eax, eax
je 0x513db9
mov ecx, dword [esp + 0x10]
push esi
mov eax, dword [ecx + 0x74]
add eax, 0x24
mov eax, dword [eax]
push eax
call edi
add esp, 8
test eax, eax
je 0x513e3e
mov edi, dword [sym.imp.MSVCRT.dll__mbsicmp]
mov eax, dword [ebp + 0x74]
push esi
add eax, 0x24
mov eax, dword [eax]
push eax
call edi
add esp, 8
test eax, eax
jne 0x513e08
mov edx, dword [esp + 0x10]
push esi
mov eax, dword [edx + 0x74]
add eax, 0x24
mov eax, dword [eax]
push eax
call edi
add esp, 8
test eax, eax
je 0x513e08
mov eax, dword [ebp + 0x74]
mov ecx, dword [eax + 0xe8]
cmp ecx, 0xfffffff6
jle 0x513e35
mov edx, dword [ebp + 0x38]
add ecx, 0xa
mov eax, dword [edx + 0x78]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
cdq
idiv ecx
jmp 0x513e31
mov eax, dword [ebp + 0x74]
mov ecx, dword [eax + 0xe8]
cmp ecx, 0xfffffff6
jle 0x513e39
mov edx, dword [ebp + 0x38]
add ecx, 0xa
mov eax, dword [edx + 0x78]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
cdq
idiv ecx
cmp eax, dword [esp + 0x6c]
jae 0x513e39
mov dword [esp + 0x6c], eax
mov dword [esp + 0x10], ebp
mov byte [esp + 0x1f], 1
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
inc eax
mov dword [esp + 0x44], eax
mov edx, dword [ecx]
cmp eax, edx
jl 0x5138f6
mov al, byte [esp + 0x1f]
test al, al
jne 0x514771
jmp 0x513e75
mov byte [esp + 0x1e], 1
mov dword [esp + 0x10], ebp
jmp 0x514775
mov ebx, dword [esp + 0x38]
mov al, byte [esp + 0x2b]
test al, al
je 0x51405b
lea edx, [esp + 0x128]
push 0x62d970
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
mov eax, dword [0x641030]
add esp, 8
test eax, eax
je 0x513f00
mov cl, byte [eax + 0x40]
test cl, cl
je 0x513f00
add eax, 0x250
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [esp + 0x128]
push eax
push str._TX_
push 0
push ecx
mov dword [esp + 0x28], esp
mov edx, dword [ebx + 4]
mov ecx, esp
push edx
call sub.MFC42.DLL_CString::CString_3
mov eax, dword [0x641030]
push str.command
mov ecx, dword [eax + 0x2c]
mov edx, dword [eax + 0x44]
push ecx
push edx
call fcn.004ed3c0
mov eax, dword [0x641030]
add esp, 0x1c
mov edx, dword [eax + 0x248]
lea ecx, [eax + 0x248]
call dword [edx + 0x1c]
call fcn.0044c9d0
mov eax, dword [eax + 0xd0]
mov cl, byte [eax + 1]
test cl, cl
je 0x513f56
lea ecx, [esp + 0x128]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str._TX_
call sub.MFC42.DLL_CString::CString_3
push ecx
mov byte [esp + 0x33c], 0x2b
mov dword [esp + 0x20], esp
mov edx, dword [ebx + 4]
mov ecx, esp
push edx
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [0x63bc58]
mov byte [esp + 0x33c], 0x19
call fcn.004548d0
mov eax, dword [0x63b910]
test eax, eax
je 0x514274
mov ecx, dword [eax + 0x50]
xor edi, edi
test ecx, ecx
jle 0x514274
mov ebp, dword [sym.imp.MSVCRT.dll__mbsicmp]
mov ecx, dword [eax + 0x4c]
mov esi, dword [ecx + edi*4]
test esi, esi
je 0x51404a
mov cl, byte [esi + 0x88]
test cl, cl
je 0x51404a
call fcn.0044c9d0
mov edx, dword [eax + 0xd0]
mov al, byte [edx + 2]
test al, al
je 0x514045
mov eax, dword [esi + 0x84]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x514045
mov ecx, dword [ebx + 4]
push ecx
lea ecx, [esp + 0x7c]
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [esp + 0x78]
mov byte [esp + 0x330], 0x2c
mov eax, dword [ecx - 8]
test eax, eax
je 0x514034
mov al, byte [esi + 0x80]
test al, al
je 0x514034
mov eax, dword [esi + 0x84]
push eax
push ecx
call ebp
add esp, 8
test eax, eax
jne 0x514034
lea edx, [esp + 0x128]
lea eax, [esp + 0x78]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call sub.MFC42.DLL_CString::CString_2
push ecx
mov byte [esp + 0x33c], 0x2d
mov dword [esp + 0x20], esp
mov edx, dword [ebx + 4]
mov ecx, esp
push edx
call sub.MFC42.DLL_CString::CString_3
mov ecx, esi
mov byte [esp + 0x33c], 0x2c
call fcn.00402460
lea ecx, [esp + 0x78]
mov byte [esp + 0x330], 0x19
call sub.MFC42.DLL_CString::CString
mov eax, dword [0x63b910]
mov ecx, dword [eax + 0x50]
inc edi
cmp edi, ecx
jl 0x513f76
jmp 0x514274
mov eax, dword [esp + 0x58]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x514290
mov cl, byte [esp + 0x3f]
push eax
test cl, cl
jne 0x51408b
lea edx, [esp + 0x12c]
push 0x62d948
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
jmp 0x5140a9
mov eax, dword [esp + 0x94]
lea ecx, [esp + 0x12c]
push eax
push 0x62ce90
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
mov eax, dword [0x641030]
test eax, eax
je 0x514112
mov cl, byte [eax + 0x40]
test cl, cl
je 0x514112
add eax, 0x250
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea edx, [esp + 0x128]
push edx
push str._TX_
push 0
push ecx
mov dword [esp + 0x28], esp
mov eax, dword [ebx + 4]
mov ecx, esp
push eax
call sub.MFC42.DLL_CString::CString_3
mov eax, dword [0x641030]
push str.command
mov ecx, dword [eax + 0x2c]
mov edx, dword [eax + 0x44]
push ecx
push edx
call fcn.004ed3c0
mov eax, dword [0x641030]
add esp, 0x1c
mov edx, dword [eax + 0x248]
lea ecx, [eax + 0x248]
call dword [edx + 0x1c]
call fcn.0044c9d0
mov eax, dword [eax + 0xd0]
mov cl, byte [eax + 1]
test cl, cl
je 0x514168
lea ecx, [esp + 0x128]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str._TX_
call sub.MFC42.DLL_CString::CString_3
push ecx
mov byte [esp + 0x33c], 0x2e
mov dword [esp + 0x20], esp
mov edx, dword [ebx + 4]
mov ecx, esp
push edx
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [0x63bc58]
mov byte [esp + 0x33c], 0x19
call fcn.004548d0
mov eax, dword [0x63b910]
test eax, eax
je 0x514274
mov ecx, dword [eax + 0x50]
xor edi, edi
test ecx, ecx
jle 0x514274
mov ebp, dword [sym.imp.MSVCRT.dll__mbsicmp]
mov ecx, dword [eax + 0x4c]
mov esi, dword [ecx + edi*4]
test esi, esi
je 0x514268
mov cl, byte [esi + 0x88]
test cl, cl
je 0x514268
call fcn.0044c9d0
mov edx, dword [eax + 0xd0]
mov al, byte [edx + 2]
test al, al
je 0x514263
mov eax, dword [esi + 0x84]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x514263
mov ecx, dword [ebx + 4]
push ecx
lea ecx, [esp + 0x90]
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [esp + 0x8c]
mov byte [esp + 0x330], 0x2f
mov eax, dword [ecx - 8]
test eax, eax
je 0x51424f
mov al, byte [esi + 0x80]
test al, al
je 0x51424f
mov eax, dword [esi + 0x84]
push eax
push ecx
call ebp
add esp, 8
test eax, eax
jne 0x51424f
lea edx, [esp + 0x128]
lea eax, [esp + 0x8c]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call sub.MFC42.DLL_CString::CString_2
push ecx
mov byte [esp + 0x33c], 0x30
mov dword [esp + 0x20], esp
mov edx, dword [ebx + 4]
mov ecx, esp
push edx
call sub.MFC42.DLL_CString::CString_3
mov ecx, esi
mov byte [esp + 0x33c], 0x2f
call fcn.00402460
lea ecx, [esp + 0x8c]
mov byte [esp + 0x330], 0x19
call sub.MFC42.DLL_CString::CString
mov eax, dword [0x63b910]
mov ecx, dword [eax + 0x50]
inc edi
cmp edi, ecx
jl 0x514188
mov eax, dword [ebx + 8]
mov ebp, dword [esp + 0x20]
push eax
mov ecx, ebp
call fcn.00595f30
test eax, eax
je 0x5146b5
jmp 0x5146a1
mov al, byte [esp + 0x3f]
test al, al
jne 0x5144a1
mov eax, dword [ebx + 8]
lea edx, [ebx + 0xc]
push edx
push eax
lea ecx, [esp + 0x130]
push str.ERROR:_
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
mov eax, dword [0x641030]
add esp, 0x10
test eax, eax
je 0x514323
mov cl, byte [eax + 0x40]
test cl, cl
je 0x514323
add eax, 0x250
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea edx, [esp + 0x128]
push edx
push str._TX_
push 0
push ecx
mov dword [esp + 0x28], esp
mov eax, dword [ebx + 4]
mov ecx, esp
push eax
call sub.MFC42.DLL_CString::CString_3
mov eax, dword [0x641030]
push str.command
mov ecx, dword [eax + 0x2c]
mov edx, dword [eax + 0x44]
push ecx
push edx
call fcn.004ed3c0
mov eax, dword [0x641030]
add esp, 0x1c
mov edx, dword [eax + 0x248]
lea ecx, [eax + 0x248]
call dword [edx + 0x1c]
call fcn.0044c9d0
mov eax, dword [eax + 0xd0]
mov cl, byte [eax + 1]
test cl, cl
je 0x514379
lea ecx, [esp + 0x128]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str._TX_
call sub.MFC42.DLL_CString::CString_3
push ecx
mov byte [esp + 0x33c], 0x31
mov dword [esp + 0x20], esp
mov edx, dword [ebx + 4]
mov ecx, esp
push edx
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [0x63bc58]
mov byte [esp + 0x33c], 0x19
call fcn.004548d0
mov eax, dword [0x63b910]
test eax, eax
je 0x51447c
mov ecx, dword [eax + 0x50]
xor edi, edi
test ecx, ecx
jle 0x51447c
mov ebp, dword [sym.imp.MSVCRT.dll__mbsicmp]
mov ecx, dword [eax + 0x4c]
mov esi, dword [ecx + edi*4]
test esi, esi
je 0x514470
mov cl, byte [esi + 0x88]
test cl, cl
je 0x514470
call fcn.0044c9d0
mov edx, dword [eax + 0xd0]
mov al, byte [edx + 2]
test al, al
je 0x51446b
mov eax, dword [esi + 0x84]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x51446b
mov ecx, dword [ebx + 4]
push ecx
lea ecx, [esp + 0x80]
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [esp + 0x7c]
mov byte [esp + 0x330], 0x32
mov eax, dword [ecx - 8]
test eax, eax
je 0x51445a
mov al, byte [esi + 0x80]
test al, al
je 0x51445a
mov eax, dword [esi + 0x84]
push eax
push ecx
call ebp
add esp, 8
test eax, eax
jne 0x51445a
lea edx, [esp + 0x128]
lea eax, [esp + 0x7c]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call sub.MFC42.DLL_CString::CString_2
push ecx
mov byte [esp + 0x33c], 0x33
mov dword [esp + 0x20], esp
mov edx, dword [ebx + 4]
mov ecx, esp
push edx
call sub.MFC42.DLL_CString::CString_3
mov ecx, esi
mov byte [esp + 0x33c], 0x32
call fcn.00402460
lea ecx, [esp + 0x7c]
mov byte [esp + 0x330], 0x19
call sub.MFC42.DLL_CString::CString
mov eax, dword [0x63b910]
mov ecx, dword [eax + 0x50]
inc edi
cmp edi, ecx
jl 0x514399
mov eax, dword [ebx + 8]
mov ebp, dword [esp + 0x20]
push eax
mov ecx, ebp
call fcn.00595f30
test eax, eax
je 0x5146b5
mov edx, dword [eax]
push 0
push 0x62d900
jmp 0x5146ad
mov ecx, dword [esp + 0x90]
lea eax, [ebx + 0xc]
push eax
push ecx
lea edx, [esp + 0x130]
push 0x62ce90
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
mov eax, dword [0x641030]
add esp, 0x10
test eax, eax
je 0x51452c
mov cl, byte [eax + 0x40]
test cl, cl
je 0x51452c
add eax, 0x250
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [esp + 0x128]
push eax
push str._TX_
push 0
push ecx
mov dword [esp + 0x28], esp
mov edx, dword [ebx + 4]
mov ecx, esp
push edx
call sub.MFC42.DLL_CString::CString_3
mov eax, dword [0x641030]
push str.command
mov ecx, dword [eax + 0x2c]
mov edx, dword [eax + 0x44]
push ecx
push edx
call fcn.004ed3c0
mov eax, dword [0x641030]
add esp, 0x1c
mov edx, dword [eax + 0x248]
lea ecx, [eax + 0x248]
call dword [edx + 0x1c]
call fcn.0044c9d0
mov eax, dword [eax + 0xd0]
mov cl, byte [eax + 1]
test cl, cl
je 0x514582
lea ecx, [esp + 0x128]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str._TX_
call sub.MFC42.DLL_CString::CString_3
push ecx
mov byte [esp + 0x33c], 0x34
mov dword [esp + 0x20], esp
mov edx, dword [ebx + 4]
mov ecx, esp
push edx
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [0x63bc58]
mov byte [esp + 0x33c], 0x19
call fcn.004548d0
mov eax, dword [0x63b910]
test eax, eax
je 0x51468e
mov ecx, dword [eax + 0x50]
xor edi, edi
test ecx, ecx
jle 0x51468e
mov ebp, dword [sym.imp.MSVCRT.dll__mbsicmp]
mov ecx, dword [eax + 0x4c]
mov esi, dword [ecx + edi*4]
test esi, esi
je 0x514682
mov cl, byte [esi + 0x88]
test cl, cl
je 0x514682
call fcn.0044c9d0
mov edx, dword [eax + 0xd0]
mov al, byte [edx + 2]
test al, al
je 0x51467d
mov eax, dword [esi + 0x84]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x51467d
mov ecx, dword [ebx + 4]
push ecx
lea ecx, [esp + 0x88]
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [esp + 0x84]
mov byte [esp + 0x330], 0x35
mov eax, dword [ecx - 8]
test eax, eax
je 0x514669
mov al, byte [esi + 0x80]
test al, al
je 0x514669
mov eax, dword [esi + 0x84]
push eax
push ecx
call ebp
add esp, 8
test eax, eax
jne 0x514669
lea edx, [esp + 0x128]
lea eax, [esp + 0x84]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call sub.MFC42.DLL_CString::CString_2
push ecx
mov byte [esp + 0x33c], 0x36
mov dword [esp + 0x20], esp
mov edx, dword [ebx + 4]
mov ecx, esp
push edx
call sub.MFC42.DLL_CString::CString_3
mov ecx, esi
mov byte [esp + 0x33c], 0x35
call fcn.00402460
lea ecx, [esp + 0x84]
mov byte [esp + 0x330], 0x19
call sub.MFC42.DLL_CString::CString
mov eax, dword [0x63b910]
mov ecx, dword [eax + 0x50]
inc edi
cmp edi, ecx
jl 0x5145a2
mov eax, dword [ebx + 8]
mov ebp, dword [esp + 0x20]
push eax
mov ecx, ebp
call fcn.00595f30
test eax, eax
je 0x5146b5
mov edx, dword [eax]
lea ecx, [esp + 0x128]
push 0
push ecx
mov ecx, eax
call dword [edx + 0x94]
mov dword [esp + 0x18], ebx
mov eax, dword [ebx + 8]
mov byte [esp + 0x330], 0x37
push eax
call sub.MFC42.DLL_operatordelete
mov eax, dword [ebx + 4]
xor esi, esi
push eax
mov dword [ebx + 8], esi
call sub.MFC42.DLL_operatordelete
mov dword [ebx + 4], esi
mov eax, dword [ebx + 0x2c]
add esp, 8
cmp eax, esi
jle 0x514708
mov edx, dword [ebx + 0x28]
mov edi, dword [edx + esi*4]
test edi, edi
je 0x514700
mov eax, dword [edi]
push eax
call sub.MFC42.DLL_operatordelete
push edi
call sub.MFC42.DLL_operatordelete
add esp, 8
mov eax, dword [ebx + 0x2c]
inc esi
cmp esi, eax
jl 0x5146e5
lea esi, [ebx + 0x24]
push 0xffffffffffffffff
push 0
mov ecx, esi
call fcn.005343d0
mov eax, dword [esi + 4]
mov dword [esi], 0x5d628c
test eax, eax
je 0x51472c
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
push ebx
mov dword [esi], 0x5cc040
call sub.MFC42.DLL_operatordelete
mov eax, dword [ebp + 0x318]
mov edx, dword [esp + 0x44]
mov ecx, dword [ebp + 0x314]
sub eax, edx
add esp, 4
dec eax
lea esi, [ecx + edx*4]
je 0x514766
shl eax, 2
lea ecx, [ecx + edx*4 + 4]
push eax
push ecx
push esi
call dword [sym.imp.MSVCRT.dll_memmove]
add esp, 0xc
dec dword [ebp + 0x318]
jmp 0x515417
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x5147ce
test ebp, ebp
jne 0x5147c7
mov byte [esp + 0x1e], 1
mov dword [esp + 0x10], eax
mov ebp, eax
mov al, byte [ebp + 0x123]
test al, al
jne 0x5147a8
cmp byte [ebx + 0x19], 1
jne 0x5147a8
mov byte [esp + 0x1e], 0
mov byte [ebp + 0x123], 1
mov eax, dword [esp + 0x30]
test eax, eax
je 0x5147b6
mov dword [esp + 0x10], eax
mov ebp, eax
test ebp, ebp
jne 0x51490c
inc dword [esp + 0x40]
jmp 0x515417
mov byte [eax + 0xa0], 0
mov al, byte [esp + 0x1e]
test al, al
jne 0x51478c
cmp byte [ebx + 0x1a], 1
jne 0x5147a8
lea ecx, [esp + 0x88]
call sub.MFC42.DLL_CString::CString_1
mov ebp, dword [esp + 0x20]
mov byte [esp + 0x330], 0x38
mov edx, dword [ebx + 8]
mov ecx, ebp
push edx
call fcn.00595f30
mov esi, eax
mov eax, dword [ebx + 0x28]
lea edx, [esp + 0x88]
mov eax, dword [eax]
mov ecx, dword [eax]
push ecx
push 0x10
push 0x62d8dc
push edx
call sub.MFC42.DLL_CString::Format
mov ecx, dword [esp + 0x98]
mov eax, dword [esi]
add esp, 0x10
xor edi, edi
push edi
push ecx
mov ecx, esi
call dword [eax + 0x94]
mov dword [esp + 0x18], ebx
mov eax, dword [ebx + 8]
mov byte [esp + 0x330], 0x39
push eax
call sub.MFC42.DLL_operatordelete
mov eax, dword [ebx + 4]
mov dword [ebx + 8], edi
push eax
call sub.MFC42.DLL_operatordelete
mov dword [ebx + 4], edi
mov eax, dword [ebx + 0x2c]
add esp, 8
xor esi, esi
cmp eax, edi
jle 0x514888
mov edx, dword [ebx + 0x28]
mov edi, dword [edx + esi*4]
test edi, edi
je 0x514880
mov eax, dword [edi]
push eax
call sub.MFC42.DLL_operatordelete
push edi
call sub.MFC42.DLL_operatordelete
add esp, 8
mov eax, dword [ebx + 0x2c]
inc esi
cmp esi, eax
jl 0x514865
lea esi, [ebx + 0x24]
push 0xffffffffffffffff
push 0
mov ecx, esi
call fcn.005343d0
mov eax, dword [esi + 4]
mov dword [esi], 0x5d628c
test eax, eax
je 0x5148ac
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
push ebx
mov dword [esi], 0x5cc040
call sub.MFC42.DLL_operatordelete
mov eax, dword [ebp + 0x318]
mov edx, dword [esp + 0x44]
mov ecx, dword [ebp + 0x314]
sub eax, edx
add esp, 4
dec eax
lea esi, [ecx + edx*4]
je 0x5148e6
shl eax, 2
lea ecx, [ecx + edx*4 + 4]
push eax
push ecx
push esi
call dword [sym.imp.MSVCRT.dll_memmove]
add esp, 0xc
mov eax, dword [ebp + 0x318]
lea ecx, [esp + 0x88]
dec eax
mov byte [esp + 0x330], 0x19
mov dword [ebp + 0x318], eax
call sub.MFC42.DLL_CString::CString
jmp 0x515417
mov esi, str.XXX000
lea eax, [ebx + 0xc]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x514938
test cl, cl
je 0x514934
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x514938
add eax, 2
add esi, 2
test cl, cl
jne 0x514914
xor eax, eax
jmp 0x51493d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51498f
mov esi, dword [ebx + 0x2c]
xor ebp, ebp
test esi, esi
mov dword [esp + 0x14], esi
jle 0x51498f
mov eax, dword [ebx + 0x28]
push str.XXX000
mov eax, dword [eax + ebp*4]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
je 0x51498a
mov edx, dword [esp + 0x10]
mov edi, eax
mov ecx, dword [edx + 0x74]
mov esi, dword [ecx + 0x24]
mov ecx, dword [esi - 8]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x14]
inc ebp
cmp ebp, esi
jl 0x51494e
mov al, byte [ebx + 0x14]
test al, al
je 0x5149b3
and eax, 0xff
mov edi, dword [esp + 0x10]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 3
mov dword [edi + 0x124], eax
jmp 0x5149c6
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x74]
mov edx, dword [ecx + 0x84]
mov dword [edi + 0x124], edx
lea eax, [edi + 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [0x640ce9]
test al, al
jne 0x514a88
mov esi, dword [edi + 0x9c]
test esi, esi
mov dword [esp + 0x14], esi
je 0x514a7e
mov eax, dword [esi + 8]
mov byte [esp + 0x330], 0x3a
push eax
call sub.MFC42.DLL_operatordelete
mov eax, dword [esi + 4]
xor edi, edi
push eax
mov dword [esi + 8], edi
call sub.MFC42.DLL_operatordelete
mov dword [esi + 4], edi
mov eax, dword [esi + 0x2c]
add esp, 8
cmp eax, edi
jle 0x514a3f
mov eax, dword [esi + 0x28]
mov ebp, dword [eax + edi*4]
test ebp, ebp
je 0x514a37
mov eax, dword [ebp]
push eax
call sub.MFC42.DLL_operatordelete
push ebp
call sub.MFC42.DLL_operatordelete
add esp, 8
mov eax, dword [esi + 0x2c]
inc edi
cmp edi, eax
jl 0x514a1b
push 0xffffffffffffffff
push 0
lea ecx, [esi + 0x24]
call fcn.005343d0
mov eax, dword [esi + 0x28]
mov byte [esp + 0x330], 0x19
test eax, eax
mov dword [esi + 0x24], 0x5d628c
je 0x514a6a
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
push esi
mov dword [esi + 0x24], 0x5cc040
call sub.MFC42.DLL_operatordelete
mov edi, dword [esp + 0x14]
add esp, 4
mov dword [edi + 0x9c], 0
mov ebp, dword [esp + 0x10]
mov edx, dword [ebp + 0x54]
lea ecx, [ebp + 0x54]
call dword [edx + 0x1c]
lea eax, [ebx + 8]
or ecx, 0xffffffff
mov dword [esp + 0x14], eax
lea edx, [ebp + 0xa0]
mov edi, dword [eax]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov al, byte [esp + 0x1e]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test al, al
mov byte [ebp + 0x131], 0
je 0x514d7f
mov al, byte [ebx + 0x18]
test al, al
jne 0x514d7f
mov eax, dword [ebx + 0x2c]
cmp eax, 2
jne 0x514b4b
mov ecx, dword [ebx + 0x28]
push 0x62282c
mov eax, dword [ecx]
mov edx, dword [eax]
push edx
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
je 0x514b91
lea edi, [ebx + 0x24]
mov dword [esp + 0x14], edi
mov eax, dword [ebx + 0x28]
add edi, 8
mov esi, dword [eax]
test esi, esi
je 0x514b29
mov eax, dword [esi]
push eax
call sub.MFC42.DLL_operatordelete
push esi
call sub.MFC42.DLL_operatordelete
add esp, 8
mov ecx, dword [edi]
dec ecx
je 0x514b47
mov edx, dword [esp + 0x14]
shl ecx, 2
mov eax, dword [edx + 4]
push ecx
lea edx, [eax + 4]
push edx
push eax
call dword [sym.imp.MSVCRT.dll_memmove]
add esp, 0xc
dec dword [edi]
jmp 0x514b91
dec eax
test eax, eax
jle 0x514b91
mov edi, eax
mov eax, dword [ebx + 0x28]
mov esi, dword [eax]
test esi, esi
je 0x514b6c
mov eax, dword [esi]
push eax
call sub.MFC42.DLL_operatordelete
push esi
call sub.MFC42.DLL_operatordelete
add esp, 8
mov ecx, dword [ebx + 0x2c]
dec ecx
je 0x514b87
mov eax, dword [ebx + 0x28]
shl ecx, 2
lea edx, [eax + 4]
push ecx
push edx
push eax
call dword [sym.imp.MSVCRT.dll_memmove]
add esp, 0xc
mov ecx, dword [ebx + 0x2c]
dec ecx
dec edi
mov dword [ebx + 0x2c], ecx
jne 0x514b52
lea eax, [ebp + 0xa0]
push eax
lea eax, [esp + 0xac]
push str.__s__________________
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
mov eax, dword [0x641030]
add esp, 0xc
test eax, eax
je 0x514c1a
mov cl, byte [eax + 0x40]
test cl, cl
je 0x514c1a
add eax, 0x250
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [ebp + 0x74]
lea ecx, [esp + 0xa8]
push 0
push ecx
push 0
push ecx
add edx, 0xac
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
call sub.MFC42.DLL_CString::CString_2
mov eax, dword [0x641030]
push str.command
mov ecx, dword [eax + 0x2c]
mov edx, dword [eax + 0x44]
push ecx
push edx
call fcn.004ed3c0
mov eax, dword [0x641030]
add esp, 0x1c
mov edx, dword [eax + 0x248]
lea ecx, [eax + 0x248]
call dword [edx + 0x1c]
call fcn.0044c9d0
mov eax, dword [eax + 0xd0]
mov cl, byte [eax + 1]
test cl, cl
je 0x514c72
push 0
push ecx
lea edx, [esp + 0xb0]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call sub.MFC42.DLL_CString::CString_3
mov byte [esp + 0x338], 0x3b
mov eax, dword [ebp + 0x74]
push ecx
add eax, 0xac
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [0x63bc58]
mov byte [esp + 0x33c], 0x19
call fcn.004548d0
mov eax, dword [0x63b910]
test eax, eax
je 0x515323
mov ecx, dword [eax + 0x50]
xor ebx, ebx
test ecx, ecx
jle 0x515323
mov ebp, dword [sym.imp.MSVCRT.dll__mbsicmp]
mov edi, dword [esp + 0x10]
mov ecx, dword [eax + 0x4c]
mov esi, dword [ecx + ebx*4]
test esi, esi
je 0x514d6e
mov cl, byte [esi + 0x88]
test cl, cl
je 0x514d6e
call fcn.0044c9d0
mov edx, dword [eax + 0xd0]
mov al, byte [edx + 2]
test al, al
je 0x514d69
mov eax, dword [esi + 0x84]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x514d69
mov ecx, dword [edi + 0x74]
add ecx, 0xac
push ecx
lea ecx, [esp + 0x6c]
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [esp + 0x68]
mov byte [esp + 0x330], 0x3c
mov eax, dword [ecx - 8]
test eax, eax
je 0x514d58
mov al, byte [esi + 0x80]
test al, al
je 0x514d58
mov eax, dword [esi + 0x84]
push eax
push ecx
call ebp
add esp, 8
test eax, eax
jne 0x514d58
push eax
push ecx
lea edx, [esp + 0x70]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call sub.MFC42.DLL_CString::CString_2
mov byte [esp + 0x338], 0x3d
mov eax, dword [edi + 0x74]
push ecx
add eax, 0xac
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call sub.MFC42.DLL_CString::CString_2
mov ecx, esi
mov byte [esp + 0x33c], 0x3c
call fcn.00402460
lea ecx, [esp + 0x68]
mov byte [esp + 0x330], 0x19
call sub.MFC42.DLL_CString::CString
mov eax, dword [0x63b910]
mov ecx, dword [eax + 0x50]
inc ebx
cmp ebx, ecx
jl 0x514c96
jmp 0x515323
push edx
lea ecx, [esp + 0xac]
push 0x62d8ac
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
je 0x514da4
mov ecx, ebp
call fcn.0050c840
mov al, byte [ebx + 0x19]
mov edx, dword [ebx + 0x28]
cmp al, 1
push str.rawins
mov esi, dword [edx]
sete al
mov byte [ebp + 0x123], al
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
push edx
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
jne 0x51514b
mov edi, dword [esp + 0x10]
xor bl, bl
mov eax, dword [edi + 0x74]
mov cl, byte [eax + 0x92]
test cl, cl
je 0x514e00
mov ecx, dword [esi]
push 6
push 0x62cf04
push ecx
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x514e00
mov bl, 1
mov edx, dword [edi + 0x74]
mov al, byte [edx + 0x91]
test al, al
jne 0x51514f
test bl, bl
jne 0x51514f
push 0x14
call sub.MFC42.DLL_operatornew
mov ebp, eax
add esp, 4
mov dword [esp + 0x44], ebp
test ebp, ebp
mov byte [esp + 0x330], 0x3e
je 0x514ea4
mov eax, dword [esp + 0x38]
mov edi, 0x62282c
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 0x1c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x14], edx
mov ebx, ecx
mov dword [ebp + 4], ebx
lea eax, [ebx + 1]
push eax
call sub.MFC42.DLL_operatornew
mov ecx, ebx
mov esi, 0x62282c
mov edx, ecx
mov edi, eax
shr ecx, 2
mov dword [ebp], eax
add esp, 4
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp]
mov byte [eax + ebx], 0
mov byte [ebp + 8], 0
mov ecx, dword [esp + 0x14]
mov dword [ebp + 0xc], ecx
mov edx, dword [esp + 0x30]
mov dword [ebp + 0x10], edx
mov byte [ebp + 9], 0
mov dword [esp + 0x14], ebp
jmp 0x514eac
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x38]
mov byte [esp + 0x330], 0x19
lea esi, [eax + 0x24]
mov edx, dword [esi + 8]
lea ebx, [esi + 8]
test edx, edx
mov dword [esp + 0x2c], ebx
jg 0x514fce
mov eax, dword [esi + 4]
lea ebp, [esi + 4]
test eax, eax
jne 0x514efc
push 4
call sub.MFC42.DLL_operatornew
mov dword [ebp], eax
mov dword [eax], 0
mov dword [esi + 0xc], 1
add esp, 4
mov dword [ebx], 1
jmp 0x515127
lea ecx, [esi + 0xc]
mov dword [esp + 0x44], ecx
mov ecx, dword [ecx]
cmp ecx, 1
jl 0x514f2a
cmp edx, 1
jge 0x514f1f
mov ecx, 1
sub ecx, edx
lea edx, [eax + edx*4]
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov dword [ebx], 1
jmp 0x515127
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x514f54
mov eax, edx
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp eax, 4
jge 0x514f48
mov eax, 4
jmp 0x514f54
cmp eax, 0x400
jle 0x514f54
mov eax, 0x400
add eax, ecx
cmp eax, 1
mov dword [esp + 0x30], eax
jg 0x514f67
mov dword [esp + 0x30], 1
mov ecx, dword [esp + 0x30]
lea edx, [ecx*4]
push edx
call sub.MFC42.DLL_operatornew
mov ebx, eax
mov eax, dword [esp + 0x30]
mov esi, dword [ebp]
mov edi, ebx
mov ecx, dword [eax]
shl ecx, 2
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x30]
mov ecx, 1
mov eax, dword [esi]
sub ecx, eax
lea edi, [ebx + eax*4]
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [ebp]
push eax
call sub.MFC42.DLL_operatordelete
mov dword [ebp], ebx
mov dword [esi], 1
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x38]
add esp, 8
mov dword [ecx], eax
jmp 0x515127
lea ebx, [edx + 1]
mov dword [esp + 0x6c], edx
test ebx, ebx
lea ebp, [esi + 4]
jne 0x515009
mov eax, dword [ebp]
test eax, eax
je 0x514ff3
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [ebp], 0
mov edx, dword [esp + 0x2c]
mov dword [esi + 0xc], 0
mov dword [edx], 0
jmp 0x515101
mov ecx, dword [ebp]
test ecx, ecx
jne 0x515038
lea eax, [ebx*4]
push eax
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp], eax
push ebx
push eax
call fcn.00556850
mov ecx, dword [esp + 0x2c]
mov dword [esi + 0xc], ebx
mov dword [ecx], ebx
jmp 0x515101
lea eax, [esi + 0xc]
mov dword [esp + 0x44], eax
mov edi, dword [eax]
cmp ebx, edi
jg 0x515062
cmp ebx, edx
jle 0x515057
mov eax, ebx
lea ecx, [ecx + edx*4]
sub eax, edx
push eax
push ecx
call fcn.00556850
mov edx, dword [esp + 0x2c]
mov dword [edx], ebx
jmp 0x515101
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x51508c
mov eax, edx
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp eax, 4
jge 0x515080
mov eax, 4
jmp 0x51508c
cmp eax, 0x400
jle 0x51508c
mov eax, 0x400
add eax, edi
cmp ebx, eax
mov dword [esp + 0x30], eax
jl 0x51509a
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0x30]
lea ecx, [eax*4]
push ecx
call sub.MFC42.DLL_operatornew
mov edx, dword [esp + 0x30]
mov esi, dword [ebp]
mov edi, eax
add esp, 4
mov ecx, dword [edx]
mov dword [esp + 0x5c], eax
shl ecx, 2
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x2c]
mov ecx, dword [esi]
sub edx, ecx
lea eax, [eax + ecx*4]
push edx
push eax
call fcn.00556850
mov eax, dword [ebp]
push eax
call sub.MFC42.DLL_operatordelete
mov ecx, dword [esp + 0x60]
add esp, 4
mov dword [ebp], ecx
mov dword [esi], ebx
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x30]
mov dword [eax], edx
mov ecx, dword [esp + 0x6c]
mov eax, dword [ebp]
lea edx, [ecx*4]
push edx
push eax
add eax, 4
push eax
call dword [sym.imp.MSVCRT.dll_memmove]
mov eax, dword [ebp]
add esp, 0xc
mov dword [eax], 0
mov edx, dword [esp + 0x14]
xor ecx, ecx
xor eax, eax
mov esi, dword [ebp]
add eax, 4
mov dword [eax + esi - 4], edx
mov esi, ecx
dec ecx
test esi, esi
jne 0x51512f
mov eax, dword [esp + 0x10]
mov byte [eax + 0x131], 1
mov edi, dword [esp + 0x10]
mov eax, dword [0x641030]
test eax, eax
je 0x5151bb
mov cl, byte [eax + 0x40]
test cl, cl
je 0x5151bb
add eax, 0x250
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [edi + 0x74]
lea ecx, [esp + 0xa8]
push 0
push ecx
push 0
push ecx
add edx, 0xac
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
call sub.MFC42.DLL_CString::CString_2
mov eax, dword [0x641030]
push str.command
mov ecx, dword [eax + 0x2c]
mov edx, dword [eax + 0x44]
push ecx
push edx
call fcn.004ed3c0
mov eax, dword [0x641030]
add esp, 0x1c
mov edx, dword [eax + 0x248]
lea ecx, [eax + 0x248]
call dword [edx + 0x1c]
call fcn.0044c9d0
mov eax, dword [eax + 0xd0]
mov cl, byte [eax + 1]
test cl, cl
je 0x515213
push 0
push ecx
lea edx, [esp + 0xb0]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call sub.MFC42.DLL_CString::CString_3
mov byte [esp + 0x338], 0x3f
mov eax, dword [edi + 0x74]
push ecx
add eax, 0xac
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [0x63bc58]
mov byte [esp + 0x33c], 0x19
call fcn.004548d0
mov eax, dword [0x63b910]
test eax, eax
je 0x515323
mov ecx, dword [eax + 0x50]
xor ebx, ebx
test ecx, ecx
jle 0x515323
mov ebp, dword [sym.imp.MSVCRT.dll__mbsicmp]
mov ecx, dword [eax + 0x4c]
mov esi, dword [ecx + ebx*4]
test esi, esi
je 0x515317
mov cl, byte [esi + 0x88]
test cl, cl
je 0x515317
call fcn.0044c9d0
mov edx, dword [eax + 0xd0]
mov al, byte [edx + 2]
test al, al
je 0x515312
mov eax, dword [esi + 0x84]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x515312
mov ecx, dword [edi + 0x74]
add ecx, 0xac
push ecx
lea ecx, [esp + 0x84]
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [esp + 0x80]
mov byte [esp + 0x330], 0x40
mov eax, dword [ecx - 8]
test eax, eax
je 0x5152fe
mov al, byte [esi + 0x80]
test al, al
je 0x5152fe
mov eax, dword [esi + 0x84]
push eax
push ecx
call ebp
add esp, 8
test eax, eax
jne 0x5152fe
push eax
push ecx
lea edx, [esp + 0x88]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call sub.MFC42.DLL_CString::CString_2
mov byte [esp + 0x338], 0x41
mov eax, dword [edi + 0x74]
push ecx
add eax, 0xac
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call sub.MFC42.DLL_CString::CString_2
mov ecx, esi
mov byte [esp + 0x33c], 0x40
call fcn.00402460
lea ecx, [esp + 0x80]
mov byte [esp + 0x330], 0x19
call sub.MFC42.DLL_CString::CString
mov eax, dword [0x63b910]
mov ecx, dword [eax + 0x50]
inc ebx
cmp ebx, ecx
jl 0x515233
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x38]
xor ecx, ecx
mov cx, word [esi]
lea eax, [edi + 0x5c]
push eax
mov dword [edi + 0x88], ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [edi + 0x54]
mov dword [edi + 0x9c], esi
mov edx, dword [ecx]
call dword [edx + 0x1c]
mov al, byte [esp + 0x1e]
test al, al
je 0x51535f
add dword [edi + 0xe0], 2
jmp 0x515369
mov dword [edi + 0xe0], 2
push 0
push 0xc
mov ecx, edi
call fcn.0050c150
mov al, byte [0x640ce9]
test al, al
jne 0x515417
mov eax, dword [esp + 0x48]
xor edx, edx
cmp dword [eax], 0
jle 0x5153e0
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
mov eax, dword [eax + edx*4]
cmp eax, edi
je 0x5153d7
lea ebp, [eax + 0xa0]
lea esi, [edi + 0xa0]
mov eax, ebp
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x5153cb
test cl, cl
je 0x5153c7
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x5153cb
add eax, 2
add esi, 2
test cl, cl
jne 0x5153a7
xor eax, eax
jmp 0x5153d0
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x5153d7
mov byte [ebp], al
mov ecx, dword [esp + 0x48]
inc edx
cmp edx, dword [ecx]
jl 0x51538c
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x40]
mov eax, dword [ecx + 0x318]
lea esi, [ecx + 0x318]
mov ecx, dword [ecx + 0x314]
sub eax, edx
dec eax
lea edi, [ecx + edx*4]
je 0x515415
shl eax, 2
lea ecx, [ecx + edx*4 + 4]
push eax
push ecx
push edi
call dword [sym.imp.MSVCRT.dll_memmove]
add esp, 0xc
dec dword [esi]
lea ecx, [esp + 0x58]
mov dword [esp + 0x330], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x24]
inc eax
cmp eax, ecx
mov dword [esp + 0x60], eax
jl 0x5130cd
mov esi, dword [esp + 0x70]
xor ebx, ebx
mov ebp, esi
cmp esi, ebx
mov dword [esp + 0x24], ebp
je 0x5154f8
mov eax, dword [esi + 4]
mov dword [esp + 0x330], 0x43
push eax
call sub.MFC42.DLL_operatordelete
mov eax, dword [esi + 0x10]
mov dword [esi + 4], ebx
push eax
call sub.MFC42.DLL_operatordelete
mov al, byte [esi + 0xc]
add esp, 8
test al, al
mov dword [esi + 0x10], ebx
jne 0x5154a2
mov eax, dword [esi + 0x20]
xor edi, edi
cmp eax, ebx
jle 0x5154a2
mov ecx, dword [esi + 0x1c]
mov ecx, dword [ecx + edi*4]
cmp ecx, ebx
je 0x51549a
mov edx, dword [ecx]
push 1
call dword [edx]
mov eax, dword [esi + 0x20]
inc edi
cmp edi, eax
jl 0x51548a
mov eax, dword [esi + 0x1c]
add esi, 0x18
cmp eax, ebx
je 0x5154b8
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [esi + 4], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 8], ebx
mov dword [ebp + 0x18], 0x5d74d0
mov eax, dword [ebp + 0x1c]
cmp eax, ebx
je 0x5154d5
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [ebp + 0x18], 0x5cc040
lea ecx, [ebp + 0x14]
mov dword [esp + 0x330], 0xffffffff
call sub.MFC42.DLL_CString::CString
push ebp
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x328]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x324
ret
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x20]
mov ecx, ebx
mov edx, dword [edi + 8]
push edx
call fcn.00595f30
xor ebp, ebp
cmp eax, ebp
je 0x51553a
mov edx, dword [eax]
push ebp
push 0x62d884
mov ecx, eax
call dword [edx + 0x94]
cmp edi, ebp
mov dword [esp + 0x24], edi
je 0x5155ac
mov eax, dword [edi + 8]
mov byte [esp + 0x330], 2
push eax
call sub.MFC42.DLL_operatordelete
mov eax, dword [edi + 4]
mov dword [edi + 8], ebp
push eax
call sub.MFC42.DLL_operatordelete
mov dword [edi + 4], ebp
mov eax, dword [edi + 0x2c]
add esp, 8
xor esi, esi
cmp eax, ebp
jle 0x515587
mov eax, dword [edi + 0x28]
mov ecx, dword [eax + esi*4]
cmp ecx, ebp
je 0x51557f
push 1
call fcn.0050ec40
mov eax, dword [edi + 0x2c]
inc esi
cmp esi, eax
jl 0x51556e
lea esi, [edi + 0x24]
push 0xffffffffffffffff
push ebp
mov ecx, esi
call fcn.005343d0
mov ecx, esi
mov byte [esp + 0x330], 1
call fcn.004bae30
push edi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, dword [ebx + 0x318]
mov edx, dword [esp + 0x40]
mov ecx, dword [ebx + 0x314]
sub eax, edx
dec eax
lea esi, [ecx + edx*4]
je 0x5155d7
shl eax, 2
lea ecx, [ecx + edx*4 + 4]
push eax
push ecx
push esi
call dword [sym.imp.MSVCRT.dll_memmove]
add esp, 0xc
mov eax, dword [ebx + 0x318]
lea ecx, [esp + 0x94]
dec eax
mov byte [esp + 0x330], 0
mov dword [ebx + 0x318], eax
call fcn.0059ba94
lea ecx, [esp + 0x50]
mov dword [esp + 0x330], 0xffffffff
call sub.MFC42.DLL_CString::CString
jmp 0x5154f8
mov edx, dword [esp + 0x98]
lea ecx, [esp + 0x54]
add edx, 4
push edx
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 0x10]
mov byte [esp + 0x330], 3
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x20]
mov byte [esp + 0x330], 4
mov dword [esp + 0x68], ebx
mov eax, dword [eax + 0x2f0]
cmp eax, ebx
jle 0x5156c0
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x68]
mov edx, dword [ecx + 0x2ec]
mov ebx, dword [edx + eax*4]
test ebx, ebx
je 0x5156a1
mov eax, dword [ebx + 0x20]
xor edi, edi
test eax, eax
jle 0x5156a1
mov ecx, dword [ebx + 0x1c]
mov esi, dword [ecx + edi*4]
test esi, esi
je 0x515695
mov eax, dword [esi + 0x74]
test eax, eax
je 0x515695
mov edx, dword [esp + 0x54]
mov eax, dword [eax + 0x4c]
push edx
push eax
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
je 0x51569f
mov eax, dword [ebx + 0x20]
inc edi
cmp edi, eax
jl 0x51566e
jmp 0x5156a1
mov ebp, esi
test ebp, ebp
jne 0x51579c
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x68]
inc eax
mov edx, dword [ecx + 0x2f0]
mov dword [esp + 0x68], eax
cmp eax, edx
jl 0x515650
mov edx, dword [esp + 0x54]
lea eax, [esp + 0x10]
push edx
push 0x62d864
push eax
call sub.MFC42.DLL_CString::Format
mov eax, dword [0x641030]
add esp, 0xc
test eax, eax
je 0x515745
mov cl, byte [eax + 0x40]
test cl, cl
je 0x515745
add eax, 0x250
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0
lea ecx, [esp + 0x14]
call fcn.0041a850
push eax
push 0x6145d8
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 0x63b90c
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [0x641030]
push str.runtime
push str.tdsms
mov edx, dword [ecx + 0x44]
push edx
call fcn.004ed3c0
mov eax, dword [0x641030]
add esp, 0x1c
mov edx, dword [eax + 0x248]
lea ecx, [eax + 0x248]
call dword [edx + 0x1c]
push ecx
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call sub.MFC42.DLL_CString::CString_2
push ecx
mov byte [esp + 0x338], 5
mov ecx, esp
mov dword [esp + 0x68], esp
push 0x6145d8
call sub.MFC42.DLL_CString::CString_3
push ecx
mov byte [esp + 0x33c], 6
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x63b90c
call sub.MFC42.DLL_CString::CString_3
push ecx
mov byte [esp + 0x340], 7
mov ecx, esp
mov dword [esp + 0x24], esp
jmp 0x51588a
mov al, byte [ebp + 0xc41]
test al, al
jne 0x515985
mov ecx, dword [esp + 0x54]
lea edx, [esp + 0x10]
push ecx
push 0x62d840
push edx
call sub.MFC42.DLL_CString::Format
mov eax, dword [0x641030]
add esp, 0xc
test eax, eax
je 0x515833
mov cl, byte [eax + 0x40]
test cl, cl
je 0x515833
add eax, 0x250
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0
lea ecx, [esp + 0x14]
call fcn.0041a850
push eax
mov eax, dword [ebp + 0x74]
push 0x6145d8
push ecx
add eax, 0xac
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [0x641030]
push str.runtime
push str.tdsms
mov edx, dword [ecx + 0x44]
push edx
call fcn.004ed3c0
mov eax, dword [0x641030]
add esp, 0x1c
mov edx, dword [eax + 0x248]
lea ecx, [eax + 0x248]
call dword [edx + 0x1c]
push ecx
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call sub.MFC42.DLL_CString::CString_2
push ecx
mov byte [esp + 0x338], 8
mov ecx, esp
mov dword [esp + 0x68], esp
push 0x6145d8
call sub.MFC42.DLL_CString::CString_3
mov edx, dword [ebp + 0x74]
push ecx
add edx, 0xac
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
mov byte [esp + 0x340], 9
call sub.MFC42.DLL_CString::CString_2
push ecx
mov byte [esp + 0x340], 0xa
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x6192e0
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [0x63bc8c]
mov byte [esp + 0x340], 4
call fcn.00459390
xor ebx, ebx
mov ecx, dword [esp + 0x10]
cmp dword [ecx - 8], ebx
je 0x515abd
mov esi, dword [esp + 0x38]
mov ebp, dword [esp + 0x20]
mov ecx, ebp
mov edx, dword [esi + 8]
push edx
call fcn.00595f30
cmp eax, ebx
je 0x5158dd
mov ecx, dword [esp + 0x10]
mov edx, dword [eax]
push ebx
push ecx
mov ecx, eax
call dword [edx + 0x94]
cmp esi, ebx
mov dword [esp + 0x24], esi
je 0x51594f
mov eax, dword [esi + 8]
mov byte [esp + 0x330], 0xe
push eax
call sub.MFC42.DLL_operatordelete
mov eax, dword [esi + 4]
mov dword [esi + 8], ebx
push eax
call sub.MFC42.DLL_operatordelete
mov dword [esi + 4], ebx
mov eax, dword [esi + 0x2c]
add esp, 8
xor edi, edi
cmp eax, ebx
jle 0x51592a
mov edx, dword [esi + 0x28]
mov ecx, dword [edx + edi*4]
cmp ecx, ebx
je 0x515922
push 1
call fcn.0050ec40
mov eax, dword [esi + 0x2c]
inc edi
cmp edi, eax
jl 0x515911
lea edi, [esi + 0x24]
push 0xffffffffffffffff
push ebx
mov ecx, edi
call fcn.005343d0
mov ecx, edi
mov byte [esp + 0x330], 4
call fcn.004bae30
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, dword [ebp + 0x318]
mov edx, dword [esp + 0x40]
mov ecx, dword [ebp + 0x314]
sub eax, edx
dec eax
lea esi, [ecx + edx*4]
je 0x51597a
shl eax, 2
lea ecx, [ecx + edx*4 + 4]
push eax
push ecx
push esi
call dword [sym.imp.MSVCRT.dll_memmove]
add esp, 0xc
dec dword [ebp + 0x318]
jmp 0x515bfc
mov ecx, ebp
call fcn.0050cad0
cmp eax, 0x1c
jne 0x5158a7
mov al, byte [ebp + 0x130]
test al, al
je 0x5158a7
mov byte [ebp + 0x130], 0
mov eax, dword [esp + 0x54]
push eax
lea ecx, [esp + 0x14]
push 0x62d804
push ecx
call sub.MFC42.DLL_CString::Format
xor ebx, ebx
mov dword [ebp + 0x148], 1
mov dword [ebp + 0x8c], ebx
mov eax, dword [0x641030]
add esp, 0xc
cmp eax, ebx
je 0x515a45
mov cl, byte [eax + 0x40]
test cl, cl
je 0x515a45
add eax, 0x250
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push ebx
lea ecx, [esp + 0x14]
call fcn.0041a850
mov edx, dword [ebp + 0x74]
push eax
push 0x6145d8
push ecx
add edx, 0xac
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
call sub.MFC42.DLL_CString::CString_2
mov eax, dword [0x641030]
push str.runtime
push str.tdsms
mov ecx, dword [eax + 0x44]
push ecx
call fcn.004ed3c0
mov edx, dword [0x641030]
add esp, 0x1c
mov eax, dword [edx + 0x248]
lea ecx, [edx + 0x248]
call dword [eax + 0x1c]
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call sub.MFC42.DLL_CString::CString_2
push ecx
mov byte [esp + 0x338], 0xb
mov ecx, esp
mov dword [esp + 0x68], esp
push 0x6145d8
call sub.MFC42.DLL_CString::CString_3
mov eax, dword [ebp + 0x74]
push ecx
add eax, 0xac
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
mov byte [esp + 0x340], 0xc
call sub.MFC42.DLL_CString::CString_2
push ecx
mov byte [esp + 0x340], 0xd
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x6192e0
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [0x63bc8c]
mov byte [esp + 0x340], 4
call fcn.00459390
jmp 0x5158a9
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea edx, [ebp + 0x5c]
push edx
call esi
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 0x54]
lea ecx, [ebp + 0x54]
mov dword [ebp + 0x9c], eax
call dword [edx + 0x1c]
mov eax, dword [0x641030]
cmp eax, ebx
je 0x515b47
mov cl, byte [eax + 0x40]
test cl, cl
je 0x515b47
add eax, 0x250
push eax
call esi
mov eax, dword [esp + 0x2c]
mov edx, dword [ebp + 0x74]
push ebx
add edx, 0xac
mov ecx, dword [eax]
push ecx
push 0x6145d8
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
call sub.MFC42.DLL_CString::CString_2
mov eax, dword [0x641030]
push str.runtime
push str.tdsms
mov ecx, dword [eax + 0x44]
push ecx
call fcn.004ed3c0
mov edx, dword [0x641030]
add esp, 0x1c
mov eax, dword [edx + 0x248]
lea ecx, [edx + 0x248]
call dword [eax + 0x1c]
mov edx, dword [esp + 0x2c]
push ecx
mov dword [esp + 0x28], esp
mov ecx, esp
mov eax, dword [edx]
push eax
call sub.MFC42.DLL_CString::CString_3
push ecx
mov byte [esp + 0x338], 0xf
mov ecx, esp
mov dword [esp + 0x68], esp
push 0x6145d8
call sub.MFC42.DLL_CString::CString_3
mov edx, dword [ebp + 0x74]
push ecx
add edx, 0xac
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
mov byte [esp + 0x340], 0x10
call sub.MFC42.DLL_CString::CString_2
push ecx
mov byte [esp + 0x340], 0x11
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x6192e0
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [0x63bc8c]
mov byte [esp + 0x340], 4
call fcn.00459390
push ebx
push 0xc
mov ecx, ebp
call fcn.0050c150
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x40]
mov eax, dword [esi + 0x318]
mov ecx, dword [esi + 0x314]
sub eax, edx
dec eax
lea edi, [ecx + edx*4]
je 0x515bf6
shl eax, 2
lea ecx, [ecx + edx*4 + 4]
push eax
push ecx
push edi
call dword [sym.imp.MSVCRT.dll_memmove]
add esp, 0xc
dec dword [esi + 0x318]
mov esi, dword [esp + 0x70]
cmp esi, ebx
mov dword [esp + 0x24], esi
je 0x515c8c
mov eax, dword [esi + 4]
mov byte [esp + 0x330], 0x13
push eax
call sub.MFC42.DLL_operatordelete
mov eax, dword [esi + 0x10]
mov dword [esi + 4], ebx
push eax
call sub.MFC42.DLL_operatordelete
mov al, byte [esi + 0xc]
add esp, 8
test al, al
mov dword [esi + 0x10], ebx
jne 0x515c57
mov eax, dword [esi + 0x20]
xor edi, edi
cmp eax, ebx
jle 0x515c57
mov edx, dword [esi + 0x1c]
mov ecx, dword [edx + edi*4]
cmp ecx, ebx
je 0x515c4f
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esi + 0x20]
inc edi
cmp edi, eax
jl 0x515c3f
lea edi, [esi + 0x18]
push 0xffffffffffffffff
push ebx
mov ecx, edi
call fcn.005343d0
mov ecx, edi
mov byte [esp + 0x330], 0x12
call fcn.00518bd0
lea ecx, [esi + 0x14]
mov byte [esp + 0x330], 4
call sub.MFC42.DLL_CString::CString
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x10]
mov byte [esp + 0x330], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x54]
mov byte [esp + 0x330], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x94]
mov byte [esp + 0x330], 0
call fcn.0059ba94
lea ecx, [esp + 0x50]
mov dword [esp + 0x330], 0xffffffff
call sub.MFC42.DLL_CString::CString
jmp 0x5154f8
mov eax, dword [ebp + 0x74]
lea esi, [ebp + 0x74]
test eax, eax
je 0x515e14
mov eax, dword [eax + 0xc0]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
shl ecx, 2
push ecx
mov ecx, ebp
call sym.ETermProxy.exe_public:_bool___thiscall_CClientObject::CheckTimeout_int_
test al, al
jne 0x515e14
mov eax, dword [0x641030]
test eax, eax
je 0x515d75
mov cl, byte [eax + 0x40]
test cl, cl
je 0x515d75
add eax, 0x250
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [esi]
push 0
push str.ERROR:_PID
push 0x6145d8
push ecx
add edx, 0xac
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
call sub.MFC42.DLL_CString::CString_2
mov eax, dword [0x641030]
push str.runtime
push str.tdsms
mov ecx, dword [eax + 0x44]
push ecx
call fcn.004ed3c0
mov edx, dword [0x641030]
add esp, 0x1c
mov eax, dword [edx + 0x248]
lea ecx, [edx + 0x248]
call dword [eax + 0x1c]
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push str.ERROR:_PID
call sub.MFC42.DLL_CString::CString_3
push ecx
mov byte [esp + 0x338], 0x1c
mov ecx, esp
mov dword [esp + 0x68], esp
push 0x6145d8
call sub.MFC42.DLL_CString::CString_3
mov edx, dword [esi]
push ecx
add edx, 0xac
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
mov byte [esp + 0x340], 0x1d
call sub.MFC42.DLL_CString::CString_2
push ecx
mov byte [esp + 0x340], 0x1e
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x6192e0
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [0x63bc8c]
mov byte [esp + 0x340], 0x19
call fcn.00459390
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x20]
mov ecx, dword [eax + 8]
lea edi, [eax + 8]
push ecx
mov ecx, ebx
call fcn.00595f30
test eax, eax
je 0x515f24
mov edx, dword [eax]
push 0
push 0x62d7c4
jmp 0x515f1c
mov byte [ebp + 0x130], 0
mov eax, dword [0x641030]
test eax, eax
je 0x515e87
mov cl, byte [eax + 0x40]
test cl, cl
je 0x515e87
add eax, 0x250
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi]
push 0
push 0x62d78c
push 0x6145d8
push ecx
add eax, 0xac
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [0x641030]
push str.runtime
push str.tdsms
mov edx, dword [ecx + 0x44]
push edx
call fcn.004ed3c0
mov eax, dword [0x641030]
add esp, 0x1c
mov edx, dword [eax + 0x248]
lea ecx, [eax + 0x248]
call dword [edx + 0x1c]
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push 0x62d78c
call sub.MFC42.DLL_CString::CString_3
push ecx
mov byte [esp + 0x338], 0x1f
mov ecx, esp
mov dword [esp + 0x68], esp
push 0x6145d8
call sub.MFC42.DLL_CString::CString_3
mov eax, dword [esi]
push ecx
add eax, 0xac
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
mov byte [esp + 0x340], 0x20
call sub.MFC42.DLL_CString::CString_2
push ecx
mov byte [esp + 0x340], 0x21
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x6192e0
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [0x63bc8c]
mov byte [esp + 0x340], 0x19
call fcn.00459390
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x20]
mov edx, dword [ecx + 8]
lea edi, [ecx + 8]
push edx
mov ecx, ebx
call fcn.00595f30
test eax, eax
je 0x515f24
mov edx, dword [eax]
push 0
push 0x62d78c
mov ecx, eax
call dword [edx + 0x94]
mov esi, dword [esp + 0x38]
xor ebp, ebp
cmp esi, ebp
mov dword [esp + 0x24], esi
je 0x515fa7
mov edi, dword [edi]
mov byte [esp + 0x330], 0x22
push edi
call sub.MFC42.DLL_operatordelete
mov eax, dword [esi + 4]
mov dword [esi + 8], ebp
push eax
call sub.MFC42.DLL_operatordelete
mov dword [esi + 4], ebp
mov eax, dword [esi + 0x2c]
add esp, 8
xor edi, edi
cmp eax, ebp
jle 0x515f81
mov eax, dword [esi + 0x28]
mov ebp, dword [eax + edi*4]
test ebp, ebp
je 0x515f79
mov eax, dword [ebp]
push eax
call sub.MFC42.DLL_operatordelete
push ebp
call sub.MFC42.DLL_operatordelete
add esp, 8
mov eax, dword [esi + 0x2c]
inc edi
cmp edi, eax
jl 0x515f5d
xor ebp, ebp
push 0xffffffffffffffff
push ebp
lea ecx, [esi + 0x24]
call fcn.005343d0
lea ecx, [esi + 0x24]
mov byte [esp + 0x330], 0x19
call fcn.004bae30
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, dword [ebx + 0x318]
mov edx, dword [esp + 0x40]
mov ecx, dword [ebx + 0x314]
lea esi, [ebx + 0x318]
sub eax, edx
dec eax
lea edi, [ecx + edx*4]
je 0x515fd8
shl eax, 2
lea ecx, [ecx + edx*4 + 4]
push eax
push ecx
push edi
call dword [sym.imp.MSVCRT.dll_memmove]
add esp, 0xc
mov ecx, dword [esi]
dec ecx
mov dword [esi], ecx
mov esi, dword [esp + 0x70]
cmp esi, ebp
mov dword [esp + 0x24], esi
je 0x516068
mov eax, dword [esi + 4]
mov byte [esp + 0x330], 0x24
push eax
call sub.MFC42.DLL_operatordelete
mov eax, dword [esi + 0x10]
mov dword [esi + 4], ebp
push eax
call sub.MFC42.DLL_operatordelete
mov al, byte [esi + 0xc]
add esp, 8
test al, al
mov dword [esi + 0x10], ebp
jne 0x516034
mov eax, dword [esi + 0x20]
xor edi, edi
cmp eax, ebp
jle 0x516034
mov edx, dword [esi + 0x1c]
mov ecx, dword [edx + edi*4]
cmp ecx, ebp
je 0x51602c
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esi + 0x20]
inc edi
cmp edi, eax
jl 0x51601c
push 0xffffffffffffffff
push ebp
lea ecx, [esi + 0x18]
call fcn.005343d0
lea ecx, [esi + 0x18]
mov byte [esp + 0x330], 0x23
call fcn.00518bd0
lea ecx, [esi + 0x14]
mov byte [esp + 0x330], 0x19
call sub.MFC42.DLL_CString::CString
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x58]
mov dword [esp + 0x330], 0xffffffff
call sub.MFC42.DLL_CString::CString
jmp 0x5154f8