Function at 0x50d990
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x5b695b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2f4
mov eax, dword [ecx + 0x318]
push ebx
xor ebx, ebx
push ebp
push esi
cmp eax, ebx
push edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x48], eax
je 0x50fd0c
xor esi, esi
cmp eax, ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x60], ebx
jle 0x50fc5f
mov esi, dword [esp + 0x4c]
cmp esi, ebx
je 0x50d9f9
mov ecx, esi
call fcn.00512b30
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [esp + 0x4c], ebx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x44]
mov ecx, dword [eax + 0x314]
mov ebp, dword [ecx + edx*4]
cmp ebp, ebx
mov dword [esp + 0x50], ebp
je 0x50fc46
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x10], ebx
mov byte [esp + 0x1b], 0
mov edi, dword [eax]
mov eax, dword [ebp + 4]
mov dword [esp + 0x40], edi
mov byte [esp + 0x19], 0
mov cl, byte [edi + 8]
mov dword [esp + 0x64], ebx
mov byte [esp + 0x37], cl
mov byte [esp + 0x36], 0
mov esi, str.qt_group
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x50da6d
test cl, cl
je 0x50da69
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x50da6d
add eax, 2
add esi, 2
test cl, cl
jne 0x50da49
xor eax, eax
jmp 0x50da72
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x50dba3
push 0x2c
call sub.MFC42.DLL_operatornew
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
cmp esi, ebx
mov dword [esp + 0x30c], ebx
je 0x50dac1
lea ecx, [esi + 0x14]
call sub.MFC42.DLL_CString::CString_1
mov dword [esi + 0x18], 0x5cd370
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 0x50dac3
xor esi, esi
mov ecx, dword [esp + 0x1c]
mov byte [esi + 0xc], 1
xor eax, eax
mov dword [esp + 0x28], esi
mov edx, dword [ecx + 0x2f0]
mov dword [esp + 0x30c], 0xffffffff
cmp edx, ebx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x38], eax
jle 0x50db9a
jmp 0x50daf6
xor ebx, ebx
mov edx, dword [ecx + 0x2ec]
xor edi, edi
mov dword [esp + 0x20], edi
mov esi, dword [edx + eax*4]
mov dword [esp + 0x14], esi
cmp dword [esi + 0x20], ebx
jle 0x50db75
mov eax, dword [esi + 0x1c]
mov ebx, dword [eax + edi*4]
mov eax, dword [ebx + 0x70]
mov cl, byte [eax + 0x4d]
test cl, cl
jne 0x50db69
mov cl, byte [eax + 0xe1]
test cl, cl
je 0x50db69
mov dl, byte [ebp + 0xc]
lea ecx, [ebp + 0xc]
test dl, dl
je 0x50db44
mov eax, dword [eax + 0x20]
push ecx
push eax
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x50db69
mov ecx, dword [esp + 0x28]
push 0xffffffffffffffff
mov edi, dword [ecx + 0x20]
lea esi, [ecx + 0x18]
mov ecx, esi
lea edx, [edi + 1]
push edx
call fcn.0056a200
mov eax, dword [esi + 4]
mov esi, dword [esp + 0x14]
mov dword [eax + edi*4], ebx
mov edi, dword [esp + 0x20]
mov eax, dword [esi + 0x20]
inc edi
cmp edi, eax
mov dword [esp + 0x20], edi
jl 0x50db0e
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
inc eax
mov edx, dword [ecx + 0x2f0]
mov dword [esp + 0x38], eax
cmp eax, edx
jl 0x50daf4
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x28]
xor ebx, ebx
mov dword [esp + 0x28], esi
jmp 0x50e0cb
mov eax, dword [ebp + 4]
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call sub.MFC42.DLL_CString::CString_3
mov esi, dword [esp + 0x20]
mov ecx, esi
call fcn.00510bb0
cmp eax, ebx
mov dword [esp + 0x28], eax
jne 0x50dd6c
mov ecx, dword [ebp + 8]
push ecx
mov ecx, esi
call fcn.0058d4e0
cmp eax, ebx
je 0x50dbe9
mov edx, dword [eax]
push ebx
push 0x622550
mov ecx, eax
call dword [edx + 0x90]
mov eax, dword [0x635490]
cmp eax, ebx
je 0x50dc50
mov cl, byte [eax + 0x40]
test cl, cl
je 0x50dc50
add eax, 0x250
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp + 8]
push ebx
push str.____ERROR:
push 0x601774
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [0x635490]
push str.runtime
push str.tdsms
mov edx, dword [ecx + 0x44]
push edx
call fcn.004eba10
mov eax, dword [0x635490]
add esp, 0x1c
mov edx, dword [eax + 0x248]
lea ecx, [eax + 0x248]
call dword [edx + 0x1c]
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push str.____ERROR:
call sub.MFC42.DLL_CString::CString_3
push ecx
mov dword [esp + 0x314], 1
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x601774
call sub.MFC42.DLL_CString::CString_3
mov eax, dword [ebp + 8]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
mov byte [esp + 0x31c], 2
call sub.MFC42.DLL_CString::CString_3
push ecx
mov byte [esp + 0x31c], 3
mov ecx, esp
mov dword [esp + 0x48], esp
push 0x60e204
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [0x63006c]
or edi, 0xffffffff
mov dword [esp + 0x31c], edi
call fcn.00458d40
mov dword [esp + 0x10], ebp
mov eax, dword [ebp + 8]
mov dword [esp + 0x30c], 4
push eax
call sub.MFC42.DLL_operatordelete
mov eax, dword [ebp + 4]
mov dword [ebp + 8], ebx
push eax
call sub.MFC42.DLL_operatordelete
mov dword [ebp + 4], ebx
mov eax, dword [ebp + 0x2c]
add esp, 8
xor esi, esi
cmp eax, ebx
jle 0x50dd0f
mov ecx, dword [ebp + 0x28]
mov ecx, dword [ecx + esi*4]
cmp ecx, ebx
je 0x50dd07
push 1
call fcn.00509650
mov eax, dword [ebp + 0x2c]
inc esi
cmp esi, eax
jl 0x50dcf6
lea esi, [ebp + 0x24]
push edi
push ebx
mov ecx, esi
call fcn.0056a200
mov ecx, esi
mov dword [esp + 0x30c], edi
call fcn.004ba070
push ebp
call sub.MFC42.DLL_operatordelete
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x48]
add esp, 4
mov eax, dword [esi + 0x318]
mov ecx, dword [esi + 0x314]
sub eax, edx
dec eax
lea edi, [ecx + edx*4]
je 0x50dd61
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]
jmp 0x50fc46
mov eax, dword [eax + 8]
cmp eax, 5
jne 0x50de9b
push 0x2c
call sub.MFC42.DLL_operatornew
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
cmp esi, ebx
mov dword [esp + 0x30c], 5
je 0x50ddc3
lea ecx, [esi + 0x14]
call sub.MFC42.DLL_CString::CString_1
mov dword [esi + 0x18], 0x5cd370
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 0x50ddc5
xor esi, esi
mov edx, dword [esp + 0x1c]
mov byte [esi + 0xc], 1
xor eax, eax
mov dword [esp + 0x20], esi
mov ecx, dword [edx + 0x2f0]
mov dword [esp + 0x30c], 0xffffffff
cmp ecx, ebx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x14], eax
jle 0x50de90
mov ecx, edx
mov ecx, dword [ecx + 0x2ec]
mov ebx, dword [ecx + eax*4]
mov eax, dword [ebx + 8]
test eax, eax
je 0x50de10
cmp eax, 2
je 0x50de10
cmp eax, 5
jne 0x50de16
cmp dword [esp + 0x28], ebx
jne 0x50de6d
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x38], 0
test eax, eax
jle 0x50de6d
mov edx, dword [ebx + 0x1c]
mov eax, dword [esp + 0x38]
mov ebp, dword [edx + eax*4]
mov eax, dword [ebp + 0x70]
mov cl, byte [eax + 0x4c]
test cl, cl
jne 0x50de5d
mov cl, byte [eax + 0x4d]
test cl, cl
jne 0x50de5d
mov ecx, dword [esp + 0x20]
push 0xffffffffffffffff
mov edi, dword [ecx + 0x20]
lea esi, [ecx + 0x18]
mov ecx, esi
lea edx, [edi + 1]
push edx
call fcn.0056a200
mov eax, dword [esi + 4]
mov dword [eax + edi*4], ebp
mov eax, dword [esp + 0x38]
mov ecx, dword [ebx + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x38], eax
jl 0x50de25
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
inc eax
mov edx, dword [ecx + 0x2f0]
mov dword [esp + 0x14], eax
cmp eax, edx
jl 0x50ddf6
mov esi, dword [esp + 0x20]
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x28], esi
xor ebx, ebx
jmp 0x50e0c7
cmp eax, 2
je 0x50dea9
cmp eax, 3
jne 0x50e0cb
mov al, byte [esp + 0x37]
test al, al
jne 0x50e0cb
mov al, byte [ebp + 0x19]
test al, al
jne 0x50e0cb
mov ecx, dword [edi]
mov esi, dword [sym.imp.MSVCRT.dll__strnicmp]
push 2
push 0x617394
push ecx
call esi
add esp, 0xc
test eax, eax
je 0x50dfab
mov edx, dword [edi]
push 3
push 0x60ed1c
push edx
call esi
add esp, 0xc
test eax, eax
je 0x50dfab
mov eax, dword [edi]
push 2
push 0x60f424
push eax
call esi
add esp, 0xc
test eax, eax
je 0x50dfab
mov ecx, dword [edi]
push 4
push str.DETR
push ecx
call esi
add esp, 0xc
test eax, eax
je 0x50dfab
mov edx, dword [edi]
push 4
push str.HELP
push edx
call esi
add esp, 0xc
test eax, eax
je 0x50dfab
mov eax, dword [edi]
push 4
push str.DATE
push eax
call esi
add esp, 0xc
test eax, eax
je 0x50dfab
mov ecx, dword [edi]
push 4
push str.CNTD
push ecx
call esi
add esp, 0xc
test eax, eax
je 0x50dfab
mov edx, dword [edi]
push 2
push 0x60a560
push edx
call esi
add esp, 0xc
test eax, eax
je 0x50dfab
mov eax, dword [edi]
push 2
push 0x617864
push eax
call esi
add esp, 0xc
test eax, eax
je 0x50dfab
mov ecx, dword [edi]
push 2
push 0x622500
push ecx
call esi
add esp, 0xc
test eax, eax
je 0x50dfab
mov edx, dword [edi]
push 2
push 0x6224fc
push edx
call esi
add esp, 0xc
test eax, eax
jne 0x50e0d1
push 0x2c
call sub.MFC42.DLL_operatornew
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
cmp esi, ebx
mov dword [esp + 0x30c], 6
je 0x50dff6
lea ecx, [esi + 0x14]
call sub.MFC42.DLL_CString::CString_1
mov dword [esi + 0x18], 0x5cd370
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 0x50dff8
xor esi, esi
mov eax, dword [esp + 0x1c]
mov byte [esi + 0xc], 1
mov dword [esp + 0x38], esi
mov dword [esp + 0x30c], 0xffffffff
mov ecx, dword [eax + 0x2f0]
mov dword [esp + 0x4c], esi
cmp ecx, ebx
mov dword [esp + 0x20], ebx
jle 0x50e0b9
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov edx, dword [ecx + 0x2ec]
mov ebx, dword [edx + eax*4]
mov eax, dword [ebx + 8]
test eax, eax
je 0x50e047
cmp eax, 2
je 0x50e047
cmp eax, 5
jne 0x50e04d
cmp dword [esp + 0x28], ebx
jne 0x50e09e
mov eax, dword [ebx + 0x20]
xor ecx, ecx
test eax, eax
mov dword [esp + 0x14], ecx
jle 0x50e09e
mov edx, dword [ebx + 0x1c]
mov ebp, dword [edx + ecx*4]
mov eax, dword [ebp + 0x70]
mov dl, byte [eax + 0x4c]
test dl, dl
jne 0x50e092
mov dl, byte [eax + 0x4d]
test dl, dl
jne 0x50e092
mov eax, dword [esp + 0x38]
push 0xffffffffffffffff
mov edi, dword [eax + 0x20]
lea esi, [eax + 0x18]
lea ecx, [edi + 1]
push ecx
mov ecx, esi
call fcn.0056a200
mov edx, dword [esi + 4]
mov ecx, dword [esp + 0x14]
mov dword [edx + edi*4], ebp
mov eax, dword [ebx + 0x20]
inc ecx
cmp ecx, eax
mov dword [esp + 0x14], ecx
jl 0x50e05a
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
inc eax
mov edx, dword [ecx + 0x2f0]
mov dword [esp + 0x20], eax
cmp eax, edx
jl 0x50e025
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x28], edx
xor ebx, ebx
mov edi, dword [esp + 0x40]
mov esi, dword [sym.imp.MSVCRT.dll__strnicmp]
lea ecx, [esp + 0x3c]
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [edi]
push 6
push str.LOCK02
push eax
mov dword [esp + 0x318], 7
mov byte [esp + 0x33], 0
mov byte [esp + 0x3b], 0
mov byte [esp + 0x26], 0
mov dword [esp + 0x20], ebx
call esi
add esp, 0xc
test eax, eax
jne 0x50e16f
mov ecx, dword [edi]
add ecx, 6
push ecx
lea ecx, [esp + 0x5c]
call sub.MFC42.DLL_CString::CString_3
lea ecx, [esp + 0x58]
mov byte [esp + 0x30c], 8
call sub.MFC42.DLL_CString::TrimLeft
lea ecx, [esp + 0x58]
call sub.MFC42.DLL_CString::TrimRight
mov eax, dword [esp + 0x58]
lea edx, [esp + 0x3c]
push 1
push edx
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.004cf6f0
add esp, 0x10
lea ecx, [esp + 0x3c]
call sub.MFC42.DLL_CString::TrimLeft
lea ecx, [esp + 0x3c]
call sub.MFC42.DLL_CString::TrimRight
lea ecx, [esp + 0x58]
mov byte [esp + 0x30c], 7
call sub.MFC42.DLL_CString::CString
mov eax, dword [edi]
push 3
push 0x6224f8
push eax
call esi
add esp, 0xc
test eax, eax
jne 0x50e1aa
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x20]
cmp edx, ebx
jle 0x50e1aa
mov eax, dword [eax + 0x1c]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x70]
cmp byte [ecx + 0x56], 0
jne 0x50e1a5
inc ebx
add eax, 4
cmp ebx, edx
jl 0x50e190
jmp 0x50e1aa
mov byte [esp + 0x1a], 1
mov edx, dword [edi]
push 2
push 0x6173c8
push edx
call esi
add esp, 0xc
test eax, eax
je 0x50e2e0
mov eax, dword [esp + 0x40]
push 3
push 0x6224f4
mov ecx, dword [eax]
push ecx
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x50e2e0
mov edx, dword [esp + 0x40]
push 3
push 0x6224f0
mov eax, dword [edx]
push eax
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x50e2e0
mov ecx, dword [esp + 0x40]
push 2
push 0x6224ec
mov edx, dword [ecx]
push edx
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x50e2e0
mov ebx, dword [esp + 0x40]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [ebx]
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 3
jb 0x50e268
mov esi, dword [sym.imp.MSVCRT.dll__strnicmp]
push 2
push 0x6224e8
push edx
call esi
add esp, 0xc
test eax, eax
jne 0x50e26e
mov eax, dword [ebx]
mov al, byte [eax + 2]
cmp al, 0x20
je 0x50e2e0
push eax
call fcn.004ed140
add esp, 4
test al, al
jne 0x50e2e0
jmp 0x50e26e
mov esi, dword [sym.imp.MSVCRT.dll__strnicmp]
mov ecx, dword [ebx]
push 2
push 0x6224e4
push ecx
call esi
add esp, 0xc
test eax, eax
jne 0x50e2a7
mov edx, dword [ebx]
push 3
push 0x6224e0
push edx
call esi
add esp, 0xc
test eax, eax
je 0x50e2a7
mov eax, dword [ebx]
push 4
push str.TOUR
push eax
call esi
add esp, 0xc
test eax, eax
jne 0x50e2e0
mov ecx, dword [ebx]
push 2
push 0x6224d4
push ecx
call esi
add esp, 0xc
test eax, eax
je 0x50e2e0
mov edx, dword [ebx]
push 2
push 0x6224d0
push edx
call esi
add esp, 0xc
test eax, eax
je 0x50e2e0
mov eax, dword [ebx]
push 2
push 0x6224cc
push eax
call esi
add esp, 0xc
test eax, eax
jne 0x50e35e
mov ebx, dword [esp + 0x40]
or ecx, 0xffffffff
xor eax, eax
mov esi, 2
mov edx, dword [ebx]
mov byte [esp + 0x27], 1
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, esi
jle 0x50e358
mov al, byte [edx + esi]
cmp al, 0x30
jl 0x50e30b
cmp al, 0x39
jle 0x50e31e
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 0x50e300
jmp 0x50e358
add edx, esi
push edx
call dword [sym.imp.MSVCRT.dll_atoi]
mov ecx, dword [ebx]
mov esi, dword [sym.imp.MSVCRT.dll_strstr]
push 0x6224c8
push ecx
mov dword [esp + 0x20], eax
call esi
add esp, 0xc
test eax, eax
jne 0x50e353
mov edx, dword [ebx]
push 0x6224c4
push edx
call esi
add esp, 8
test eax, eax
je 0x50e358
mov byte [esp + 0x2f], 1
mov esi, dword [sym.imp.MSVCRT.dll__strnicmp]
mov al, byte [esp + 0x27]
mov byte [esp + 0x35], 0
test al, al
je 0x50e3b1
mov eax, dword [ebx]
push 2
push 0x6173c8
push eax
call esi
add esp, 0xc
test eax, eax
jne 0x50e3ac
mov edx, dword [ebx]
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 4
jbe 0x50e3ac
mov cl, byte [edx + 3]
push ecx
call fcn.004ed140
add esp, 4
test al, al
jne 0x50e3ac
mov al, byte [esp + 0x2f]
mov byte [esp + 0x35], 1
test al, al
je 0x50e3b1
mov byte [esp + 0x35], 0
mov edx, dword [esp + 0x28]
mov dword [esp + 0x20], 0
mov eax, dword [edx + 0x20]
test eax, eax
jle 0x50e810
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
mov ecx, dword [eax + 0x1c]
mov al, byte [esp + 0x37]
cmp al, 1
mov esi, dword [ecx + edx*4]
jne 0x50e437
mov edx, dword [esi + 0x70]
mov edi, str.travelsky
mov eax, dword [edx + 8]
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [edi]
jne 0x50e411
test cl, cl
je 0x50e40d
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [edi + 1]
jne 0x50e411
add eax, 2
add edi, 2
test cl, cl
jne 0x50e3ed
xor eax, eax
jmp 0x50e416
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x50e7e8
cmp byte [edx + 0x92], 1
je 0x50e7e8
mov edi, dword [sym.imp.MSVCRT.dll_strncmp]
mov ebx, dword [esp + 0x30]
jmp 0x50e43d
mov edi, dword [sym.imp.MSVCRT.dll_strncmp]
cmp byte [esp + 0x1a], 1
jne 0x50e452
mov eax, dword [esi + 0x70]
mov cl, byte [eax + 0x56]
test cl, cl
je 0x50e7ec
mov al, byte [esi + 0x12a]
test al, al
jne 0x50e481
mov ecx, dword [esi + 0x70]
mov al, byte [ecx + 0x100]
test al, al
jne 0x50e481
mov edx, dword [ebp + 8]
push 6
push 0x621878
push edx
call edi
add esp, 0xc
test eax, eax
jne 0x50e7ec
cmp byte [esi + 0xc30], 1
jne 0x50e4a2
mov eax, dword [ebp + 8]
push 6
push 0x621878
push eax
call edi
add esp, 0xc
test eax, eax
jne 0x50e7ec
cmp byte [esi + 0x12b], 1
jne 0x50e4c3
mov ecx, dword [ebp + 8]
push 6
push 0x621878
push ecx
call edi
add esp, 0xc
test eax, eax
jne 0x50e7ec
mov eax, dword [esi + 0x70]
mov cl, byte [eax + 0xc9]
test cl, cl
je 0x50e4e1
mov ecx, dword [esi + 0x34]
mov edx, dword [ecx + 0x78]
mov edi, dword [ecx + 0x7c]
cmp edx, edi
jge 0x50e7ec
mov cl, byte [eax + 0xc8]
test cl, cl
je 0x50e504
mov ecx, dword [esi + 0x34]
mov edx, dword [ecx + 0x74]
mov edi, dword [ecx + 0x6c]
add edx, edi
mov edi, dword [ecx + 0x70]
add edi, dword [ecx + 0x68]
cmp edx, edi
jge 0x50e7ec
mov cl, byte [eax + 0xec]
test cl, cl
jne 0x50e5b2
mov cl, byte [esp + 0x27]
test cl, cl
je 0x50e5b2
mov cl, byte [esp + 0x35]
test cl, cl
jne 0x50e5a4
mov edi, dword [esp + 0x14]
test edi, edi
jle 0x50e7ec
mov cl, byte [eax + 0x57]
test cl, cl
je 0x50e7ec
mov eax, dword [eax + 0x5c]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x50e5b2
mov al, byte [esp + 0x2f]
test al, al
jne 0x50e5b2
lea ecx, [esp + 0x54]
call sub.MFC42.DLL_CString::CString_1
push edi
lea ecx, [esp + 0x58]
push 0x621a3c
push ecx
mov byte [esp + 0x318], 9
call sub.MFC42.DLL_CString::Format
mov edx, dword [esp + 0x60]
mov ecx, dword [esi + 0x70]
add esp, 0xc
add ecx, 0x5c
push edx
call sub.MFC42.DLL_CString::Find_1
test eax, eax
mov byte [esp + 0x30c], 7
lea ecx, [esp + 0x54]
jge 0x50e59d
call sub.MFC42.DLL_CString::CString
jmp 0x50e7ec
call sub.MFC42.DLL_CString::CString
jmp 0x50e5b2
mov cl, byte [eax + 0xe0]
test cl, cl
je 0x50e7ec
mov al, byte [ebp + 0x13]
test al, al
je 0x50e609
mov edi, dword [esp + 0x40]
push 3
push 0x60f3f8
mov eax, dword [edi]
push eax
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x50e609
mov ecx, dword [edi]
push 4
push 0x60f398
push ecx
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x50e609
mov eax, dword [esi + 0x70]
lea edx, [ebp + 0xc]
add eax, 0x20
push edx
mov eax, dword [eax]
push eax
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x50e7ec
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx - 8]
test eax, eax
je 0x50e630
mov eax, dword [esi + 0x70]
mov eax, dword [eax + 0xa8]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x50e7ec
mov ecx, esi
call fcn.00507770
cmp eax, 0x1b
jne 0x50e64a
mov al, byte [esi + 0x128]
test al, al
jne 0x50fd25
mov ecx, esi
call fcn.00507770
cmp eax, 0x1c
je 0x50e7ec
mov ecx, dword [ebp + 8]
lea edi, [esi + 0x98]
push ecx
push edi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x50e6b4
mov ecx, esi
call fcn.00507770
cmp eax, 0xa
je 0x50e692
cmp eax, 0xb
je 0x50e692
cmp eax, 0xc
je 0x50e692
cmp eax, 0xd
je 0x50e692
cmp eax, 0xe
jne 0x50e6b4
mov eax, dword [esi + 0xd8]
xor edx, edx
mov dx, word [ebp + 0x16]
cmp eax, edx
jl 0x50e9f6
mov byte [esp + 0x1b], 1
mov dword [esp + 0x10], esi
jmp 0x50e7ec
mov al, byte [esi + 0x90]
test al, al
je 0x50e6df
cmp dword [esi + 0x120], 0xf
jne 0x50e6d1
mov byte [esp + 0x1b], 1
jmp 0x50e7ec
mov byte [esp + 0x36], 1
mov dword [esp + 0x5c], edi
jmp 0x50e7ec
mov ecx, esi
call fcn.00507770
cmp eax, 0xb
je 0x50e7e1
cmp eax, 0xc
je 0x50e7e1
cmp eax, 0xd
je 0x50e7e1
cmp eax, 0xe
je 0x50e7e1
cmp eax, 0xa
jne 0x50e7ec
mov eax, dword [esi + 0x70]
test ebx, ebx
je 0x50e77d
add eax, 0x20
lea edi, [ebp + 0xc]
push edi
mov eax, dword [eax]
push eax
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 8
test eax, eax
je 0x50e74c
mov eax, dword [ebx + 0x70]
push edi
add eax, 0x20
mov eax, dword [eax]
push eax
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 8
test eax, eax
je 0x50e7ec
mov eax, dword [esi + 0x70]
push edi
add eax, 0x20
mov eax, dword [eax]
push eax
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x50e7ae
mov eax, dword [ebx + 0x70]
push edi
add eax, 0x20
mov eax, dword [eax]
push eax
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 8
test eax, eax
je 0x50e7ae
mov eax, dword [esi + 0x70]
mov ecx, dword [eax + 0xe4]
cmp ecx, 0xfffffff6
jle 0x50e7db
mov edx, dword [esi + 0x34]
add ecx, 0xa
mov ebx, esi
mov byte [esp + 0x1b], 1
mov eax, dword [edx + 0x78]
mov dword [esp + 0x30], ebx
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
cdq
idiv ecx
mov dword [esp + 0x64], eax
jmp 0x50e7ec
mov eax, dword [esi + 0x70]
mov ecx, dword [eax + 0xe4]
cmp ecx, 0xfffffff6
jle 0x50e7e1
mov edx, dword [esi + 0x34]
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 + 0x64]
jae 0x50e7e1
mov dword [esp + 0x64], eax
mov ebx, esi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x1b], 1
jmp 0x50e7ec
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
inc eax
mov edx, dword [ecx + 0x20]
mov dword [esp + 0x20], eax
cmp eax, edx
jl 0x50e3cc
mov al, byte [esp + 0x1b]
test al, al
jne 0x50ea01
mov al, byte [esp + 0x27]
test al, al
je 0x50ea25
lea edx, [esp + 0x104]
push 0x62242c
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
mov eax, dword [0x635490]
add esp, 8
test eax, eax
je 0x50e89b
mov cl, byte [eax + 0x40]
test cl, cl
je 0x50e89b
add eax, 0x250
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [ebp + 4]
lea eax, [esp + 0x104]
push eax
push str._TX_
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call sub.MFC42.DLL_CString::CString_3
mov eax, dword [0x635490]
push str.command
mov ecx, dword [eax + 0x2c]
mov edx, dword [eax + 0x44]
push ecx
push edx
call fcn.004eba10
mov eax, dword [0x635490]
add esp, 0x1c
mov edx, dword [eax + 0x248]
lea ecx, [eax + 0x248]
call dword [edx + 0x1c]
call fcn.0044c560
mov eax, dword [eax + 0xd0]
mov cl, byte [eax + 1]
test cl, cl
je 0x50e8f1
lea ecx, [esp + 0x104]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push str._TX_
call sub.MFC42.DLL_CString::CString_3
mov edx, dword [ebp + 4]
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
mov byte [esp + 0x31c], 0x19
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [0x630038]
mov byte [esp + 0x318], 7
call fcn.00454220
mov eax, dword [0x62fcf0]
test eax, eax
je 0x50ec2f
mov ecx, dword [eax + 0x50]
xor edi, edi
test ecx, ecx
jle 0x50ec2f
mov ebx, dword [sym.imp.MSVCRT.dll__mbsicmp]
mov ecx, dword [eax + 0x4c]
mov esi, dword [ecx + edi*4]
test esi, esi
je 0x50e9e5
mov cl, byte [esi + 0x88]
test cl, cl
je 0x50e9e5
call fcn.0044c560
mov edx, dword [eax + 0xd0]
mov al, byte [edx + 2]
test al, al
je 0x50e9e0
mov eax, dword [esi + 0x84]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x50e9e0
mov ecx, dword [ebp + 4]
push ecx
lea ecx, [esp + 0x7c]
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [esp + 0x78]
mov byte [esp + 0x30c], 0x1a
mov eax, dword [ecx - 8]
test eax, eax
je 0x50e9cf
mov al, byte [esi + 0x80]
test al, al
je 0x50e9cf
mov eax, dword [esi + 0x84]
push eax
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x50e9cf
lea edx, [esp + 0x104]
lea eax, [esp + 0x78]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call sub.MFC42.DLL_CString::CString_2
mov edx, dword [ebp + 4]
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
mov byte [esp + 0x31c], 0x1b
call sub.MFC42.DLL_CString::CString_3
mov ecx, esi
mov byte [esp + 0x318], 0x1a
call fcn.004024b0
lea ecx, [esp + 0x78]
mov byte [esp + 0x30c], 7
call sub.MFC42.DLL_CString::CString
mov eax, dword [0x62fcf0]
mov ecx, dword [eax + 0x50]
inc edi
cmp edi, ecx
jl 0x50e911
jmp 0x50ec2f
mov ebx, esi
mov byte [esp + 0x19], 1
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0x10]
test eax, eax
je 0x50f12d
test ebx, ebx
jne 0x50f126
mov ebx, eax
mov byte [esp + 0x19], 1
mov dword [esp + 0x30], ebx
jmp 0x50f267
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x50ec4b
mov cl, byte [esp + 0x36]
push eax
test cl, cl
jne 0x50ea55
lea edx, [esp + 0x108]
push 0x622404
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
jmp 0x50ea70
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x108]
push eax
push 0x621b2c
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
mov eax, dword [0x635490]
test eax, eax
je 0x50ead9
mov cl, byte [eax + 0x40]
test cl, cl
je 0x50ead9
add eax, 0x250
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp + 4]
lea edx, [esp + 0x104]
push edx
push str._TX_
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call sub.MFC42.DLL_CString::CString_3
mov eax, dword [0x635490]
push str.command
mov ecx, dword [eax + 0x2c]
mov edx, dword [eax + 0x44]
push ecx
push edx
call fcn.004eba10
mov eax, dword [0x635490]
add esp, 0x1c
mov edx, dword [eax + 0x248]
lea ecx, [eax + 0x248]
call dword [edx + 0x1c]
call fcn.0044c560
mov eax, dword [eax + 0xd0]
mov cl, byte [eax + 1]
test cl, cl
je 0x50eb2f
lea ecx, [esp + 0x104]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push str._TX_
call sub.MFC42.DLL_CString::CString_3
mov edx, dword [ebp + 4]
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
mov byte [esp + 0x31c], 0x1c
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [0x630038]
mov byte [esp + 0x318], 7
call fcn.00454220
mov eax, dword [0x62fcf0]
test eax, eax
je 0x50ec2f
mov ecx, dword [eax + 0x50]
xor edi, edi
test ecx, ecx
jle 0x50ec2f
mov ebx, dword [sym.imp.MSVCRT.dll__mbsicmp]
mov ecx, dword [eax + 0x4c]
mov esi, dword [ecx + edi*4]
test esi, esi
je 0x50ec23
mov cl, byte [esi + 0x88]
test cl, cl
je 0x50ec23
call fcn.0044c560
mov edx, dword [eax + 0xd0]
mov al, byte [edx + 2]
test al, al
je 0x50ec1e
mov eax, dword [esi + 0x84]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x50ec1e
mov ecx, dword [ebp + 4]
push ecx
lea ecx, [esp + 0x6c]
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [esp + 0x68]
mov byte [esp + 0x30c], 0x1d
mov eax, dword [ecx - 8]
test eax, eax
je 0x50ec0d
mov al, byte [esi + 0x80]
test al, al
je 0x50ec0d
mov eax, dword [esi + 0x84]
push eax
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x50ec0d
lea edx, [esp + 0x104]
lea eax, [esp + 0x68]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call sub.MFC42.DLL_CString::CString_2
mov edx, dword [ebp + 4]
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
mov byte [esp + 0x31c], 0x1e
call sub.MFC42.DLL_CString::CString_3
mov ecx, esi
mov byte [esp + 0x318], 0x1d
call fcn.004024b0
lea ecx, [esp + 0x68]
mov byte [esp + 0x30c], 7
call sub.MFC42.DLL_CString::CString
mov eax, dword [0x62fcf0]
mov ecx, dword [eax + 0x50]
inc edi
cmp edi, ecx
jl 0x50eb4f
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x1c]
push eax
mov ecx, esi
call fcn.0058d4e0
test eax, eax
je 0x50f06a
jmp 0x50f056
mov al, byte [esp + 0x36]
test al, al
jne 0x50ee59
mov eax, dword [ebp + 8]
lea edx, [ebp + 0xc]
push edx
push eax
lea ecx, [esp + 0x10c]
push str.ERROR:_
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
mov eax, dword [0x635490]
add esp, 0x10
test eax, eax
je 0x50ecde
mov cl, byte [eax + 0x40]
test cl, cl
je 0x50ecde
add eax, 0x250
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp + 4]
lea edx, [esp + 0x104]
push edx
push str._TX_
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call sub.MFC42.DLL_CString::CString_3
mov eax, dword [0x635490]
push str.command
mov ecx, dword [eax + 0x2c]
mov edx, dword [eax + 0x44]
push ecx
push edx
call fcn.004eba10
mov eax, dword [0x635490]
add esp, 0x1c
mov edx, dword [eax + 0x248]
lea ecx, [eax + 0x248]
call dword [edx + 0x1c]
call fcn.0044c560
mov eax, dword [eax + 0xd0]
mov cl, byte [eax + 1]
test cl, cl
je 0x50ed34
lea ecx, [esp + 0x104]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push str._TX_
call sub.MFC42.DLL_CString::CString_3
mov edx, dword [ebp + 4]
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
mov byte [esp + 0x31c], 0x1f
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [0x630038]
mov byte [esp + 0x318], 7
call fcn.00454220
mov eax, dword [0x62fcf0]
test eax, eax
je 0x50ee34
mov ecx, dword [eax + 0x50]
xor edi, edi
test ecx, ecx
jle 0x50ee34
mov ebx, dword [sym.imp.MSVCRT.dll__mbsicmp]
mov ecx, dword [eax + 0x4c]
mov esi, dword [ecx + edi*4]
test esi, esi
je 0x50ee28
mov cl, byte [esi + 0x88]
test cl, cl
je 0x50ee28
call fcn.0044c560
mov edx, dword [eax + 0xd0]
mov al, byte [edx + 2]
test al, al
je 0x50ee23
mov eax, dword [esi + 0x84]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x50ee23
mov ecx, dword [ebp + 4]
push ecx
lea ecx, [esp + 0x78]
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [esp + 0x74]
mov byte [esp + 0x30c], 0x20
mov eax, dword [ecx - 8]
test eax, eax
je 0x50ee12
mov al, byte [esi + 0x80]
test al, al
je 0x50ee12
mov eax, dword [esi + 0x84]
push eax
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x50ee12
lea edx, [esp + 0x104]
lea eax, [esp + 0x74]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call sub.MFC42.DLL_CString::CString_2
mov edx, dword [ebp + 4]
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
mov byte [esp + 0x31c], 0x21
call sub.MFC42.DLL_CString::CString_3
mov ecx, esi
mov byte [esp + 0x318], 0x20
call fcn.004024b0
lea ecx, [esp + 0x74]
mov byte [esp + 0x30c], 7
call sub.MFC42.DLL_CString::CString
mov eax, dword [0x62fcf0]
mov ecx, dword [eax + 0x50]
inc edi
cmp edi, ecx
jl 0x50ed54
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x1c]
push eax
mov ecx, esi
call fcn.0058d4e0
test eax, eax
je 0x50f06a
mov edx, dword [eax]
push 0
push 0x6223bc
jmp 0x50f062
mov ecx, dword [esp + 0x5c]
lea eax, [ebp + 0xc]
push eax
push ecx
lea edx, [esp + 0x10c]
push 0x621b2c
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
mov eax, dword [0x635490]
add esp, 0x10
test eax, eax
je 0x50eee1
mov cl, byte [eax + 0x40]
test cl, cl
je 0x50eee1
add eax, 0x250
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [ebp + 4]
lea eax, [esp + 0x104]
push eax
push str._TX_
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call sub.MFC42.DLL_CString::CString_3
mov eax, dword [0x635490]
push str.command
mov ecx, dword [eax + 0x2c]
mov edx, dword [eax + 0x44]
push ecx
push edx
call fcn.004eba10
mov eax, dword [0x635490]
add esp, 0x1c
mov edx, dword [eax + 0x248]
lea ecx, [eax + 0x248]
call dword [edx + 0x1c]
call fcn.0044c560
mov eax, dword [eax + 0xd0]
mov cl, byte [eax + 1]
test cl, cl
je 0x50ef37
lea ecx, [esp + 0x104]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push str._TX_
call sub.MFC42.DLL_CString::CString_3
mov edx, dword [ebp + 4]
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
mov byte [esp + 0x31c], 0x22
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [0x630038]
mov byte [esp + 0x318], 7
call fcn.00454220
mov eax, dword [0x62fcf0]
test eax, eax
je 0x50f043
mov ecx, dword [eax + 0x50]
xor edi, edi
test ecx, ecx
jle 0x50f043
mov ebx, dword [sym.imp.MSVCRT.dll__mbsicmp]
mov ecx, dword [eax + 0x4c]
mov esi, dword [ecx + edi*4]
test esi, esi
je 0x50f037
mov cl, byte [esi + 0x88]
test cl, cl
je 0x50f037
call fcn.0044c560
mov edx, dword [eax + 0xd0]
mov al, byte [edx + 2]
test al, al
je 0x50f032
mov eax, dword [esi + 0x84]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x50f032
mov ecx, dword [ebp + 4]
push ecx
lea ecx, [esp + 0x84]
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [esp + 0x80]
mov byte [esp + 0x30c], 0x23
mov eax, dword [ecx - 8]
test eax, eax
je 0x50f01e
mov al, byte [esi + 0x80]
test al, al
je 0x50f01e
mov eax, dword [esi + 0x84]
push eax
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x50f01e
lea edx, [esp + 0x104]
lea eax, [esp + 0x80]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call sub.MFC42.DLL_CString::CString_2
mov edx, dword [ebp + 4]
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
mov byte [esp + 0x31c], 0x24
call sub.MFC42.DLL_CString::CString_3
mov ecx, esi
mov byte [esp + 0x318], 0x23
call fcn.004024b0
lea ecx, [esp + 0x80]
mov byte [esp + 0x30c], 7
call sub.MFC42.DLL_CString::CString
mov eax, dword [0x62fcf0]
mov ecx, dword [eax + 0x50]
inc edi
cmp edi, ecx
jl 0x50ef57
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x1c]
push eax
mov ecx, esi
call fcn.0058d4e0
test eax, eax
je 0x50f06a
mov edx, dword [eax]
lea ecx, [esp + 0x104]
push 0
push ecx
mov ecx, eax
call dword [edx + 0x90]
mov dword [esp + 0x10], ebp
mov eax, dword [ebp + 8]
mov byte [esp + 0x30c], 0x25
push eax
call sub.MFC42.DLL_operatordelete
xor edi, edi
mov dword [ebp + 8], edi
mov eax, dword [ebp + 4]
push eax
call sub.MFC42.DLL_operatordelete
mov dword [ebp + 4], edi
mov eax, dword [ebp + 0x2c]
add esp, 8
cmp eax, edi
jle 0x50f0bd
mov edx, dword [ebp + 0x28]
mov ebx, dword [edx + edi*4]
test ebx, ebx
je 0x50f0b5
mov eax, dword [ebx]
push eax
call sub.MFC42.DLL_operatordelete
push ebx
call sub.MFC42.DLL_operatordelete
add esp, 8
mov eax, dword [ebp + 0x2c]
inc edi
cmp edi, eax
jl 0x50f09a
lea edi, [ebp + 0x24]
push 0xffffffffffffffff
push 0
mov ecx, edi
call fcn.0056a200
mov dword [edi], 0x5cc13c
mov eax, dword [edi + 4]
test eax, eax
je 0x50f0e1
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
push ebp
mov dword [edi], 0x5c2040
call sub.MFC42.DLL_operatordelete
mov eax, dword [esi + 0x318]
mov edx, dword [esp + 0x48]
mov ecx, dword [esi + 0x314]
sub eax, edx
add esp, 4
dec eax
lea edi, [ecx + edx*4]
je 0x50f11b
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]
jmp 0x50fc30
mov byte [eax + 0x98], 0
mov al, byte [esp + 0x19]
test al, al
jne 0x50f267
cmp byte [ebp + 0x1a], 1
jne 0x50f283
lea ecx, [esp + 0x6c]
call sub.MFC42.DLL_CString::CString_1
mov edx, dword [ebp + 8]
mov esi, dword [esp + 0x1c]
push edx
mov ecx, esi
mov byte [esp + 0x310], 0x26
call fcn.0058d4e0
mov edi, eax
mov eax, dword [ebp + 0x28]
lea edx, [esp + 0x6c]
mov eax, dword [eax]
mov ecx, dword [eax]
push ecx
push 0x10
push 0x622398
push edx
call sub.MFC42.DLL_CString::Format
mov ecx, dword [esp + 0x7c]
mov eax, dword [edi]
add esp, 0x10
xor ebx, ebx
push ebx
push ecx
mov ecx, edi
call dword [eax + 0x90]
mov dword [esp + 0x10], ebp
mov eax, dword [ebp + 8]
mov byte [esp + 0x30c], 0x27
push eax
call sub.MFC42.DLL_operatordelete
mov dword [ebp + 8], ebx
mov eax, dword [ebp + 4]
push eax
call sub.MFC42.DLL_operatordelete
mov dword [ebp + 4], ebx
mov eax, dword [ebp + 0x2c]
add esp, 8
xor edi, edi
cmp eax, ebx
jle 0x50f1e6
mov edx, dword [ebp + 0x28]
mov ebx, dword [edx + edi*4]
test ebx, ebx
je 0x50f1de
mov eax, dword [ebx]
push eax
call sub.MFC42.DLL_operatordelete
push ebx
call sub.MFC42.DLL_operatordelete
add esp, 8
mov eax, dword [ebp + 0x2c]
inc edi
cmp edi, eax
jl 0x50f1c3
lea edi, [ebp + 0x24]
push 0xffffffffffffffff
push 0
mov ecx, edi
call fcn.0056a200
mov dword [edi], 0x5cc13c
mov eax, dword [edi + 4]
test eax, eax
je 0x50f20a
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
push ebp
mov dword [edi], 0x5c2040
call sub.MFC42.DLL_operatordelete
mov eax, dword [esi + 0x318]
mov edx, dword [esp + 0x48]
mov ecx, dword [esi + 0x314]
sub eax, edx
add esp, 4
dec eax
lea edi, [ecx + edx*4]
je 0x50f244
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 eax, dword [esi + 0x318]
lea ecx, [esp + 0x6c]
dec eax
mov byte [esp + 0x30c], 7
mov dword [esi + 0x318], eax
call sub.MFC42.DLL_CString::CString
jmp 0x50fc30
mov al, byte [ebx + 0x11b]
test al, al
jne 0x50f283
cmp byte [ebp + 0x19], 1
jne 0x50f283
mov byte [esp + 0x19], 0
mov byte [ebx + 0x11b], 1
test ebx, ebx
jne 0x50f290
inc dword [esp + 0x44]
jmp 0x50fc30
mov esi, str.XXX000
lea eax, [ebp + 0xc]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x50f2c0
test cl, cl
je 0x50f2bc
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x50f2c0
add eax, 2
add esi, 2
test cl, cl
jne 0x50f298
xor eax, eax
jmp 0x50f2c5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x50f317
mov esi, dword [ebp + 0x2c]
xor ebx, ebx
test esi, esi
mov dword [esp + 0x10], esi
jle 0x50f317
mov eax, dword [ebp + 0x28]
push str.XXX000
mov eax, dword [eax + ebx*4]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
je 0x50f312
mov edx, dword [esp + 0x30]
mov edi, eax
mov ecx, dword [edx + 0x70]
mov esi, dword [ecx + 0x20]
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 + 0x10]
inc ebx
cmp ebx, esi
jl 0x50f2d6
mov al, byte [ebp + 0x14]
test al, al
je 0x50f33b
and eax, 0xff
mov edi, dword [esp + 0x30]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 3
mov dword [edi + 0x11c], eax
jmp 0x50f34e
mov edi, dword [esp + 0x30]
mov ecx, dword [edi + 0x70]
mov edx, dword [ecx + 0x80]
mov dword [edi + 0x11c], edx
lea eax, [edi + 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [0x635149]
test al, al
jne 0x50f40f
mov esi, dword [edi + 0x94]
test esi, esi
mov dword [esp + 0x10], esi
je 0x50f405
mov eax, dword [esi + 8]
mov byte [esp + 0x30c], 0x28
push eax
call sub.MFC42.DLL_operatordelete
xor edi, edi
mov dword [esi + 8], edi
mov eax, dword [esi + 4]
push eax
call sub.MFC42.DLL_operatordelete
mov dword [esi + 4], edi
mov eax, dword [esi + 0x2c]
add esp, 8
cmp eax, edi
jle 0x50f3c6
mov eax, dword [esi + 0x28]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x50f3be
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 0x50f3a3
lea edi, [esi + 0x24]
push 0xffffffffffffffff
push 0
mov ecx, edi
call fcn.0056a200
mov dword [edi], 0x5cc13c
mov eax, dword [edi + 4]
test eax, eax
mov byte [esp + 0x30c], 7
je 0x50f3f2
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
push esi
mov dword [edi], 0x5c2040
call sub.MFC42.DLL_operatordelete
mov edi, dword [esp + 0x34]
add esp, 4
mov dword [edi + 0x94], 0
mov ebx, dword [esp + 0x30]
mov edx, dword [ebx + 0x50]
lea ecx, [ebx + 0x50]
call dword [edx + 0x1c]
mov edi, dword [ebp + 8]
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebx + 0x98]
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 + 0x19]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test al, al
mov byte [ebx + 0x129], 0
je 0x50f6ee
mov al, byte [ebp + 0x18]
test al, al
jne 0x50f6ee
mov eax, dword [ebp + 0x2c]
cmp eax, 2
jne 0x50f4c0
mov ecx, dword [ebp + 0x28]
push 0x617940
mov eax, dword [ecx]
mov edx, dword [eax]
push edx
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
je 0x50f506
mov eax, dword [ebp + 0x28]
mov esi, dword [eax]
test esi, esi
je 0x50f4a0
mov eax, dword [esi]
push eax
call sub.MFC42.DLL_operatordelete
push esi
call sub.MFC42.DLL_operatordelete
add esp, 8
mov ecx, dword [ebp + 0x2c]
dec ecx
je 0x50f4bb
mov eax, dword [ebp + 0x28]
shl ecx, 2
lea edx, [eax + 4]
push ecx
push edx
push eax
call dword [sym.imp.MSVCRT.dll_memmove]
add esp, 0xc
dec dword [ebp + 0x2c]
jmp 0x50f506
dec eax
test eax, eax
jle 0x50f506
mov edi, eax
mov eax, dword [ebp + 0x28]
mov esi, dword [eax]
test esi, esi
je 0x50f4e1
mov eax, dword [esi]
push eax
call sub.MFC42.DLL_operatordelete
push esi
call sub.MFC42.DLL_operatordelete
add esp, 8
mov ecx, dword [ebp + 0x2c]
dec ecx
je 0x50f4fc
mov eax, dword [ebp + 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 [ebp + 0x2c]
dec ecx
dec edi
mov dword [ebp + 0x2c], ecx
jne 0x50f4c7
lea eax, [ebx + 0x98]
push eax
lea eax, [esp + 0x88]
push str.__s__________________
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
mov eax, dword [0x635490]
add esp, 0xc
test eax, eax
je 0x50f58f
mov cl, byte [eax + 0x40]
test cl, cl
je 0x50f58f
add eax, 0x250
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [ebx + 0x70]
lea ecx, [esp + 0x84]
push 0
push ecx
push 0
push ecx
add edx, 0xa8
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call sub.MFC42.DLL_CString::CString_2
mov eax, dword [0x635490]
push str.command
mov ecx, dword [eax + 0x2c]
mov edx, dword [eax + 0x44]
push ecx
push edx
call fcn.004eba10
mov eax, dword [0x635490]
add esp, 0x1c
mov edx, dword [eax + 0x248]
lea ecx, [eax + 0x248]
call dword [edx + 0x1c]
call fcn.0044c560
mov eax, dword [eax + 0xd0]
mov cl, byte [eax + 1]
test cl, cl
je 0x50f5e7
push 0
push ecx
lea edx, [esp + 0x8c]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call sub.MFC42.DLL_CString::CString_3
mov eax, dword [ebx + 0x70]
push ecx
add eax, 0xa8
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
mov byte [esp + 0x31c], 0x29
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [0x630038]
mov byte [esp + 0x318], 7
call fcn.00454220
mov eax, dword [0x62fcf0]
test eax, eax
je 0x50fb46
mov ecx, dword [eax + 0x50]
xor edi, edi
test ecx, ecx
jle 0x50fb46
mov ecx, dword [eax + 0x4c]
mov esi, dword [ecx + edi*4]
test esi, esi
je 0x50f6dd
mov cl, byte [esi + 0x88]
test cl, cl
je 0x50f6dd
call fcn.0044c560
mov edx, dword [eax + 0xd0]
mov al, byte [edx + 2]
test al, al
je 0x50f6d8
mov eax, dword [esi + 0x84]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x50f6d8
mov ecx, dword [ebx + 0x70]
add ecx, 0xa8
push ecx
lea ecx, [esp + 0x74]
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [esp + 0x70]
mov byte [esp + 0x30c], 0x2a
mov eax, dword [ecx - 8]
test eax, eax
je 0x50f6c7
mov al, byte [esi + 0x80]
test al, al
je 0x50f6c7
mov eax, dword [esi + 0x84]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x50f6c7
push eax
push ecx
lea edx, [esp + 0x78]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call sub.MFC42.DLL_CString::CString_2
mov eax, dword [ebx + 0x70]
push ecx
add eax, 0xa8
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
mov byte [esp + 0x31c], 0x2b
call sub.MFC42.DLL_CString::CString_2
mov ecx, esi
mov byte [esp + 0x318], 0x2a
call fcn.004024b0
lea ecx, [esp + 0x70]
mov byte [esp + 0x30c], 7
call sub.MFC42.DLL_CString::CString
mov eax, dword [0x62fcf0]
mov ecx, dword [eax + 0x50]
inc edi
cmp edi, ecx
jl 0x50f601
jmp 0x50fb46
push edx
lea ecx, [esp + 0x88]
push 0x622368
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
mov eax, dword [ebx + 0x34]
add esp, 0xc
test eax, eax
je 0x50f713
mov ecx, ebx
call fcn.005074e0
mov cl, byte [ebp + 0x19]
mov edx, dword [ebp + 0x28]
cmp cl, 1
push str.rawins
mov esi, dword [edx]
sete al
mov byte [ebx + 0x11b], al
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
jne 0x50f97a
mov edx, dword [ebx + 0x70]
mov byte [esp + 0x1a], al
mov al, byte [edx + 0x8e]
test al, al
je 0x50f76e
mov eax, dword [esi]
push 6
push 0x621ba0
push eax
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x50f76e
mov byte [esp + 0x1a], 1
mov ecx, dword [ebx + 0x70]
mov al, byte [ecx + 0x8d]
test al, al
jne 0x50f97a
mov al, byte [esp + 0x1a]
test al, al
jne 0x50f97a
push 0x14
call sub.MFC42.DLL_operatornew
mov ebp, eax
add esp, 4
mov dword [esp + 0x20], ebp
test ebp, ebp
mov byte [esp + 0x30c], 0x2c
je 0x50f816
mov eax, dword [esp + 0x50]
mov edi, 0x617940
or ecx, 0xffffffff
mov edx, dword [eax + 0x20]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x10], eax
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 ecx, [ebx + 1]
push ecx
call sub.MFC42.DLL_operatornew
mov ecx, ebx
mov esi, 0x617940
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
mov edx, dword [esp + 0x14]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x10], ebp
mov byte [eax + ebx], 0
mov byte [ebp + 8], 0
mov dword [ebp + 0xc], ecx
mov dword [ebp + 0x10], edx
mov byte [ebp + 9], 0
jmp 0x50f81e
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x50]
mov byte [esp + 0x30c], 7
mov esi, dword [eax + 0x2c]
lea ebp, [eax + 0x24]
test esi, esi
jg 0x50f921
mov eax, dword [ebp + 4]
test eax, eax
jne 0x50f862
push 4
call sub.MFC42.DLL_operatornew
mov dword [ebp + 4], eax
mov dword [eax], 0
mov eax, 1
add esp, 4
mov dword [ebp + 0xc], eax
mov dword [ebp + 8], eax
jmp 0x50f950
mov ecx, dword [ebp + 0xc]
mov ebx, 1
cmp ecx, ebx
jl 0x50f887
cmp esi, ebx
jge 0x50f87f
mov ecx, ebx
sub ecx, esi
lea esi, [eax + esi*4]
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
mov dword [ebp + 8], ebx
jmp 0x50f950
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x50f8b1
mov eax, esi
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp eax, 4
jge 0x50f8a5
mov eax, 4
jmp 0x50f8b1
cmp eax, 0x400
jle 0x50f8b1
mov eax, 0x400
add eax, ecx
cmp eax, ebx
mov dword [esp + 0x20], eax
jg 0x50f8bf
mov dword [esp + 0x20], ebx
mov ecx, dword [esp + 0x20]
lea edx, [ecx*4]
push edx
call sub.MFC42.DLL_operatornew
mov ecx, dword [ebp + 8]
mov esi, dword [ebp + 4]
shl ecx, 2
mov ebx, eax
mov eax, ecx
mov edi, ebx
add esp, 4
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 8]
mov ecx, 1
sub ecx, eax
lea edx, [ebx + eax*4]
push ecx
push edx
call fcn.00575350
mov eax, dword [ebp + 4]
push eax
call sub.MFC42.DLL_operatordelete
mov eax, dword [esp + 0x24]
mov dword [ebp + 4], ebx
mov dword [ebp + 8], 1
add esp, 4
mov dword [ebp + 0xc], eax
jmp 0x50f950
lea ecx, [esi + 1]
push 0xffffffffffffffff
push ecx
mov ecx, ebp
call fcn.0056a200
mov eax, dword [ebp + 4]
lea edx, [esi*4]
push edx
push eax
add eax, 4
push eax
call dword [sym.imp.MSVCRT.dll_memmove]
mov eax, dword [ebp + 4]
add esp, 0xc
mov dword [eax], 0
mov edx, dword [esp + 0x10]
xor ecx, ecx
xor eax, eax
mov esi, dword [ebp + 4]
add eax, 4
mov dword [eax + esi - 4], edx
mov esi, ecx
dec ecx
test esi, esi
jne 0x50f958
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x50]
mov ebx, eax
mov byte [eax + 0x129], 1
mov eax, dword [0x635490]
test eax, eax
je 0x50f9e6
mov cl, byte [eax + 0x40]
test cl, cl
je 0x50f9e6
add eax, 0x250
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [ebx + 0x70]
lea ecx, [esp + 0x84]
push 0
push ecx
push 0
push ecx
add edx, 0xa8
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call sub.MFC42.DLL_CString::CString_2
mov eax, dword [0x635490]
push str.command
mov ecx, dword [eax + 0x2c]
mov edx, dword [eax + 0x44]
push ecx
push edx
call fcn.004eba10
mov eax, dword [0x635490]
add esp, 0x1c
mov edx, dword [eax + 0x248]
lea ecx, [eax + 0x248]
call dword [edx + 0x1c]
call fcn.0044c560
mov eax, dword [eax + 0xd0]
mov cl, byte [eax + 1]
test cl, cl
je 0x50fa3e
push 0
push ecx
lea edx, [esp + 0x8c]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call sub.MFC42.DLL_CString::CString_3
mov eax, dword [ebx + 0x70]
push ecx
add eax, 0xa8
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
mov byte [esp + 0x31c], 0x2d
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [0x630038]
mov byte [esp + 0x318], 7
call fcn.00454220
mov eax, dword [0x62fcf0]
test eax, eax
je 0x50fb46
mov ecx, dword [eax + 0x50]
xor edi, edi
test ecx, ecx
jle 0x50fb46
mov ecx, dword [eax + 0x4c]
mov esi, dword [ecx + edi*4]
test esi, esi
je 0x50fb3a
mov cl, byte [esi + 0x88]
test cl, cl
je 0x50fb3a
call fcn.0044c560
mov edx, dword [eax + 0xd0]
mov al, byte [edx + 2]
test al, al
je 0x50fb35
mov eax, dword [esi + 0x84]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x50fb35
mov ecx, dword [ebx + 0x70]
add ecx, 0xa8
push ecx
lea ecx, [esp + 0x80]
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [esp + 0x7c]
mov byte [esp + 0x30c], 0x2e
mov eax, dword [ecx - 8]
test eax, eax
je 0x50fb24
mov al, byte [esi + 0x80]
test al, al
je 0x50fb24
mov eax, dword [esi + 0x84]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x50fb24
push eax
push ecx
lea edx, [esp + 0x84]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call sub.MFC42.DLL_CString::CString_2
mov eax, dword [ebx + 0x70]
push ecx
add eax, 0xa8
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
mov byte [esp + 0x31c], 0x2f
call sub.MFC42.DLL_CString::CString_2
mov ecx, esi
mov byte [esp + 0x318], 0x2e
call fcn.004024b0
lea ecx, [esp + 0x7c]
mov byte [esp + 0x30c], 7
call sub.MFC42.DLL_CString::CString
mov eax, dword [0x62fcf0]
mov ecx, dword [eax + 0x50]
inc edi
cmp edi, ecx
jl 0x50fa58
xor ecx, ecx
lea eax, [ebx + 0x58]
mov cx, word [ebp]
push eax
mov dword [ebx + 0x80], ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebx + 0x50]
mov dword [ebx + 0x94], ebp
mov edx, dword [ecx]
call dword [edx + 0x1c]
mov al, byte [esp + 0x19]
test al, al
je 0x50fb7b
add dword [ebx + 0xd8], 2
jmp 0x50fb85
mov dword [ebx + 0xd8], 2
push 0
push 0xc
mov ecx, ebx
call fcn.00506ff0
mov al, byte [0x635149]
test al, al
jne 0x50fc30
mov eax, dword [esp + 0x28]
xor ebp, ebp
mov ecx, dword [eax + 0x20]
test ecx, ecx
jle 0x50fbfb
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ebp*4]
cmp eax, ebx
je 0x50fbf1
lea edi, [eax + 0x98]
lea esi, [ebx + 0x98]
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x50fbe6
test cl, cl
je 0x50fbe2
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x50fbe6
add eax, 2
add esi, 2
test cl, cl
jne 0x50fbc2
xor eax, eax
jmp 0x50fbeb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x50fbf1
mov byte [edi], al
mov eax, dword [esp + 0x28]
inc ebp
cmp ebp, dword [eax + 0x20]
jl 0x50fbaa
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x44]
mov eax, dword [edi + 0x318]
mov ecx, dword [edi + 0x314]
sub eax, edx
dec eax
lea esi, [ecx + edx*4]
je 0x50fc2a
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 [edi + 0x318]
lea ecx, [esp + 0x3c]
mov dword [esp + 0x30c], 0xffffffff
call sub.MFC42.DLL_CString::CString
xor ebx, ebx
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x48]
inc eax
cmp eax, ecx
mov dword [esp + 0x60], eax
jl 0x50d9dd
mov esi, dword [esp + 0x4c]
cmp esi, ebx
mov dword [esp + 0x48], esi
je 0x50fd0c
mov eax, dword [esi + 4]
mov dword [esp + 0x30c], 0x31
push eax
call sub.MFC42.DLL_operatordelete
mov dword [esi + 4], ebx
mov eax, dword [esi + 0x10]
push eax
call sub.MFC42.DLL_operatordelete
mov dword [esi + 0x10], ebx
mov al, byte [esi + 0xc]
add esp, 8
test al, al
jne 0x50fcb9
mov eax, dword [esi + 0x20]
xor edi, edi
cmp eax, ebx
jle 0x50fcb9
mov ecx, dword [esi + 0x1c]
mov ecx, dword [ecx + edi*4]
cmp ecx, ebx
je 0x50fcb1
mov edx, dword [ecx]
push 1
call dword [edx]
mov eax, dword [esi + 0x20]
inc edi
cmp edi, eax
jl 0x50fca1
mov eax, dword [esi + 0x1c]
cmp eax, ebx
je 0x50fccc
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x24], ebx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x18], 0x5cd370
mov eax, dword [esi + 0x1c]
cmp eax, ebx
je 0x50fce9
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esi + 0x14]
mov dword [esi + 0x18], 0x5c2040
mov dword [esp + 0x30c], 0xffffffff
call sub.MFC42.DLL_CString::CString
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x304]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x300
ret
mov eax, dword [esi + 0x70]
test eax, eax
je 0x50fe54
mov eax, dword [eax + 0xbc]
mov ecx, esi
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
shl edx, 2
push edx
call sym.ETermProxy.exe_public:_bool___thiscall_CClientObject::CheckTimeout_int_
test al, al
jne 0x50fe54
mov eax, dword [0x635490]
test eax, eax
je 0x50fdbc
mov cl, byte [eax + 0x40]
test cl, cl
je 0x50fdbc
add eax, 0x250
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0x70]
push 0
push str.ERROR:_PID
push 0x6095c0
push ecx
add eax, 0xa8
mov ecx, esp
mov dword [esp + 0x58], esp
push eax
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [0x635490]
push str.runtime
push str.tdsms
mov edx, dword [ecx + 0x44]
push edx
call fcn.004eba10
mov eax, dword [0x635490]
add esp, 0x1c
mov edx, dword [eax + 0x248]
lea ecx, [eax + 0x248]
call dword [edx + 0x1c]
push ecx
mov ecx, esp
mov dword [esp + 0x4c], esp
push str.ERROR:_PID
call sub.MFC42.DLL_CString::CString_3
push ecx
mov byte [esp + 0x314], 0xa
mov ecx, esp
mov dword [esp + 0x68], esp
push 0x6095c0
call sub.MFC42.DLL_CString::CString_3
mov eax, dword [esi + 0x70]
push ecx
add eax, 0xa8
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
mov byte [esp + 0x31c], 0xb
call sub.MFC42.DLL_CString::CString_2
push ecx
mov byte [esp + 0x31c], 0xc
mov ecx, esp
mov dword [esp + 0x6c], esp
push 0x60e204
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [0x63006c]
mov byte [esp + 0x31c], 7
call fcn.00458d40
mov ecx, dword [ebp + 8]
mov ebx, dword [esp + 0x1c]
push ecx
mov ecx, ebx
call fcn.0058d4e0
test eax, eax
je 0x50ff5f
mov edx, dword [eax]
push 0
push 0x622320
jmp 0x50ff57
mov byte [esi + 0x128], 0
mov eax, dword [0x635490]
test eax, eax
je 0x50fec8
mov cl, byte [eax + 0x40]
test cl, cl
je 0x50fec8
add eax, 0x250
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0x70]
push 0
push 0x6222e8
push 0x6095c0
push ecx
add eax, 0xa8
mov ecx, esp
mov dword [esp + 0x58], esp
push eax
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [0x635490]
push str.runtime
push str.tdsms
mov edx, dword [ecx + 0x44]
push edx
call fcn.004eba10
mov eax, dword [0x635490]
add esp, 0x1c
mov edx, dword [eax + 0x248]
lea ecx, [eax + 0x248]
call dword [edx + 0x1c]
push ecx
mov ecx, esp
mov dword [esp + 0x4c], esp
push 0x6222e8
call sub.MFC42.DLL_CString::CString_3
push ecx
mov byte [esp + 0x314], 0xd
mov ecx, esp
mov dword [esp + 0x68], esp
push 0x6095c0
call sub.MFC42.DLL_CString::CString_3
mov eax, dword [esi + 0x70]
push ecx
add eax, 0xa8
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
mov byte [esp + 0x31c], 0xe
call sub.MFC42.DLL_CString::CString_2
push ecx
mov byte [esp + 0x31c], 0xf
mov ecx, esp
mov dword [esp + 0x6c], esp
push 0x60e204
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [0x63006c]
mov byte [esp + 0x31c], 7
call fcn.00458d40
mov ecx, dword [ebp + 8]
mov ebx, dword [esp + 0x1c]
push ecx
mov ecx, ebx
call fcn.0058d4e0
test eax, eax
je 0x50ff5f
mov edx, dword [eax]
push 0
push 0x6222e8
mov ecx, eax
call dword [edx + 0x90]
xor edi, edi
mov dword [esp + 0x48], ebp
cmp ebp, edi
je 0x50ffdf
mov eax, dword [ebp + 8]
mov byte [esp + 0x30c], 0x10
push eax
call sub.MFC42.DLL_operatordelete
mov eax, dword [ebp + 4]
mov dword [ebp + 8], edi
push eax
call sub.MFC42.DLL_operatordelete
mov dword [ebp + 4], edi
mov eax, dword [ebp + 0x2c]
add esp, 8
xor esi, esi
cmp eax, edi
jle 0x50ffb8
mov eax, dword [ebp + 0x28]
mov edi, dword [eax + esi*4]
test edi, edi
je 0x50ffb0
mov eax, dword [edi]
push eax
call sub.MFC42.DLL_operatordelete
push edi
call sub.MFC42.DLL_operatordelete
add esp, 8
mov eax, dword [ebp + 0x2c]
inc esi
cmp esi, eax
jl 0x50ff95
lea esi, [ebp + 0x24]
xor edi, edi
push 0xffffffffffffffff
push edi
mov ecx, esi
call fcn.0056a200
mov ecx, esi
mov byte [esp + 0x30c], 7
call fcn.004ba070
push ebp
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, dword [ebx + 0x318]
mov edx, dword [esp + 0x44]
mov ecx, dword [ebx + 0x314]
sub eax, edx
dec eax
lea esi, [ecx + edx*4]
je 0x51000a
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 ecx, dword [ebx + 0x318]
mov esi, dword [esp + 0x4c]
dec ecx
cmp esi, edi
mov dword [ebx + 0x318], ecx
mov dword [esp + 0x48], esi
je 0x5100a2
mov eax, dword [esi + 4]
mov byte [esp + 0x30c], 0x12
push eax
call sub.MFC42.DLL_operatordelete
mov dword [esi + 4], edi
mov eax, dword [esi + 0x10]
push eax
call sub.MFC42.DLL_operatordelete
mov dword [esi + 0x10], edi
mov al, byte [esi + 0xc]
add esp, 8
test al, al
jne 0x51006c
mov eax, dword [esi + 0x20]
test eax, eax
jle 0x51006c
mov edx, dword [esi + 0x1c]
mov ecx, dword [edx + edi*4]
test ecx, ecx
je 0x510064
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esi + 0x20]
inc edi
cmp edi, eax
jl 0x510054
lea edi, [esi + 0x18]
push 0xffffffffffffffff
push 0
mov ecx, edi
call fcn.0056a200
mov ecx, edi
mov byte [esp + 0x30c], 0x11
call fcn.00512a20
lea ecx, [esi + 0x14]
mov byte [esp + 0x30c], 7
call sub.MFC42.DLL_CString::CString
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x3c]
mov dword [esp + 0x30c], 0xffffffff
call sub.MFC42.DLL_CString::CString
jmp 0x50fd0c