Function at 0x4075d0
Capabilities:
Copy file

Disassembly:
push 0xffffffffffffffff
push 0x413611
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2e4
push ebx
push ebp
mov ebp, ecx
push esi
push edi
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString_1
mov ecx, dword [esp + 0x30c]
xor ebx, ebx
cmp ecx, ebx
mov dword [esp + 0x2fc], ebx
jle 0x408277
mov esi, dword [esp + 0x308]
mov edi, dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::SetButtonText_int__char_const___char_const__]
cmp byte [ebx + esi], 0
jne 0x408204
movsx eax, byte [ebx + esi + 1]
add eax, 0xfffffffe
cmp eax, 0x1f
ja case.default.0x40763a
jmp dword [eax*4 + 0x4082a8]
mov ecx, dword [ebp + 0x168]
call fcn.00402600
add ebx, 2
jmp case.0x407cfe.3
movsx eax, byte [ebx + esi + 2]
cmp eax, 3
ja case.default.0x407662
jmp dword [eax*4 + 0x408328]
mov ecx, dword [ebp + 0x168]
mov eax, dword [ecx + 0xa928]
push eax
call fcn.00402560
jmp case.default.0x407662
mov ecx, dword [ebp + 0x168]
mov edx, dword [ecx + 0xa92c]
push edx
call fcn.00402560
jmp case.default.0x407662
mov ecx, dword [ebp + 0x168]
mov eax, dword [ecx + 0xa930]
push eax
call fcn.00402560
jmp case.default.0x407662
mov ecx, dword [ebp + 0x168]
mov edx, dword [ecx + 0xa934]
push edx
call fcn.00402560
jmp case.default.0x407662
movsx eax, byte [ebx + esi + 2]
mov ecx, dword [eax*4 + 0x419ddc]
push ecx
mov ecx, dword [ebp + 0x168]
call fcn.00402670
movsx edx, byte [ebx + esi + 3]
mov ecx, dword [ebp + 0x168]
mov eax, dword [edx*4 + 0x419ddc]
push eax
call fcn.00402680
add ebx, 4
jmp case.0x407cfe.3
movsx ecx, byte [ebx + esi + 2]
movsx edx, byte [ebx + esi + 3]
dec ecx
dec edx
push ecx
mov ecx, dword [ebp + 0x168]
push edx
call fcn.00402570
add ebx, 4
jmp case.0x407cfe.3
mov ecx, dword [ebp + 0x168]
lea eax, [esi + 2]
push 1
mov dword [esp + 0x14], eax
lea edi, [eax + ebx]
push edi
call fcn.00402690
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp word [ebp + 0x160], ax
lea ebx, [ebx + ecx + 3]
je case.0x407cfe.3
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.MSVCRT.dll__strupr]
mov ecx, dword [esp + 0x14]
push 0x41a0cc
push ecx
lea edi, [ebx + esi]
call dword [sym.imp.MSVCRT.dll_strstr]
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4077a2
cmp esi, edi
jae 0x4077a2
movsx edx, byte [esi]
push edx
call dword [sym.imp.MSVCRT.dll_isdigit]
add esp, 4
test eax, eax
jne 0x407794
inc esi
cmp esi, edi
jb 0x40777c
jmp 0x4077a2
movsx ax, byte [esi]
sub eax, 0x30
mov word [ebp + 0x15e], ax
mov ecx, dword [esp + 0x10]
push str.VERSION
push ecx
call dword [sym.imp.MSVCRT.dll_strstr]
mov esi, eax
add esp, 8
test esi, esi
je 0x40786a
cmp esi, edi
jae 0x40786a
movsx edx, byte [esi]
push edx
call dword [sym.imp.MSVCRT.dll_isdigit]
add esp, 4
test eax, eax
jne 0x4077e2
inc esi
cmp esi, edi
jb 0x4077c7
jmp 0x40786a
mov al, byte [esi]
cmp al, 0x35
jge 0x407853
cmp al, 0x31
jne 0x407809
mov ax, word [ebp + 0x15e]
test ax, ax
jl 0x4077fe
cmp ax, 3
jne 0x407826
mov word [ebp + 0x15e], 3
jmp 0x40781c
cmp word [ebp + 0x15e], 0
jge 0x407826
mov word [ebp + 0x15e], 2
mov dword [ebp + 0x164], 1
cmp word [ebp + 0x15e], 3
jge 0x40783a
mov dword [ebp + 0x164], 1
mov word [ebp + 0x160], 0
movsx ax, byte [esi]
sub eax, 0x30
mov word [ebp + 0x15c], ax
jmp 0x40786a
mov word [ebp + 0x160], 0
movsx cx, byte [esi]
sub ecx, 0x30
mov word [ebp + 0x15c], cx
cmp word [ebp + 0x160], 0
jne case.0x407cfe.3
call sub.MFC42.DLL_AfxGetModuleState
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xc8]
dec eax
je 0x4078d6
dec eax
je 0x4078bf
dec eax
je 0x4078a7
lea edx, [esp + 0xc8]
push str.Protocol_active_on_undefined_comm
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
jmp 0x4078f4
lea eax, [esp + 0xc8]
push str.Protocol_active_on_C1_comm
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
jmp 0x4078f4
movsx ecx, word [ebp + 0x15e]
push ecx
lea edx, [esp + 0xcc]
push str.Protocol_active_on_ethernet_comm___CPU_d__
push edx
jmp 0x4078eb
movsx eax, word [ebp + 0x15e]
push eax
lea ecx, [esp + 0xcc]
push str.Protocol_active_on_serial_comm___CPU_d__
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
call sub.MFC42.DLL_AfxGetThread
test eax, eax
je 0x407906
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x7c]
jmp 0x407908
xor eax, eax
lea ecx, [esp + 0xc8]
push 1
push ecx
push 0
lea ecx, [eax + 0xd0]
call sub.MFC42.DLL_CStatusBar::SetPaneText
xor eax, eax
cmp word [ebp + 0x15e], 2
jne 0x40794e
mov esi, dword [sym.imp.KERNEL32.dll_CopyFileA]
push eax
push str...wsloadcpu.sys
push str...loadersLOADCPU2.sys
call esi
push 0
push str...wsloader.sys
push str...loadersLOADER2.sys
call esi
jmp 0x407954
mov esi, dword [sym.imp.KERNEL32.dll_CopyFileA]
cmp word [ebp + 0x15e], 3
jne 0x40797a
push 0
push str...wsloadcpu.sys
push str...loadersLOADCPU3.sys
call esi
push 0
push str...wsloader.sys
push str...loadersLOADER3.sys
call esi
cmp word [ebp + 0x15e], 4
je 0x407994
test eax, eax
jne 0x407994
push eax
push eax
push str.Copy_of_.sys_files_failed
call sub.MFC42.DLL_AfxMessageBox
mov ecx, ebp
call fcn.00409650
cmp word [ebp + 0x160], 0
jne case.0x407cfe.3
mov eax, dword [ebp + 0x164]
test eax, eax
je case.0x407cfe.3
push 0x200
mov word [ebp + 0x160], 0
call fcn.00409550
movsx edx, word [ebp + 0x15c]
movsx eax, word [ebp + 0x15e]
add esp, 4
lea ecx, [esp + 0x22c]
push edx
push eax
push str.Detected_a_CPU_d_with_a_SID_Version__d.xx_._Is_suggested_to_execute_an_update_of_the_system
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
lea edx, [esp + 0x22c]
push 0
push 0x40
push edx
call sub.MFC42.DLL_AfxMessageBox
call sub.MFC42.DLL_AfxGetModuleState
mov ecx, dword [eax + 4]
call fcn.00401ab0
jmp case.0x407cfe.3
lea edi, [ebx + esi + 4]
push 1
jmp 0x407a5e
mov dl, byte [ebx + esi + 2]
mov ecx, dword [ebp + 0x168]
push edx
call fcn.00402710
jmp case.default.0x407662
mov ecx, dword [ebp + 0x168]
lea edi, [ebx + esi + 2]
push 0
push edi
call fcn.00402690
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ebx, [ebx + ecx + 3]
jmp case.0x407cfe.3
lea edi, [ebx + esi + 4]
push 0
movsx eax, byte [ebx + esi + 2]
movsx ecx, byte [ebx + esi + 3]
dec eax
push edi
dec ecx
push eax
push ecx
mov ecx, dword [ebp + 0x168]
call fcn.004026e0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ebx, [ebx + ecx + 5]
jmp case.0x407cfe.3
mov ecx, dword [ebp + 0x168]
call fcn.00402730
add ebx, 2
jmp case.0x407cfe.3
mov ecx, dword [ebp + 0x168]
call fcn.004027d0
add ebx, 2
jmp case.0x407cfe.3
mov ecx, dword [ebp + 0x168]
call fcn.00402870
add ebx, 2
jmp case.0x407cfe.3
mov ecx, dword [ebp + 0x168]
call fcn.00402900
add ebx, 2
jmp case.0x407cfe.3
movsx edx, byte [ebx + esi + 2]
mov ecx, dword [ebp + 0x168]
push edx
call fcn.00402950
jmp case.default.0x407662
movsx eax, byte [ebx + esi + 2]
mov ecx, dword [ebp + 0x168]
push eax
call fcn.004029c0
jmp case.default.0x407662
movsx ecx, byte [ebx + esi + 3]
push ecx
mov ecx, dword [ebp + 0x168]
call fcn.00402a30
add ebx, 6
jmp case.0x407cfe.3
lea edi, [ebx + esi + 2]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ebx, [ebx + ecx + 3]
jmp case.0x407cfe.3
xor esi, esi
mov ecx, dword [ebp + 0xc4]
push 0
push 0x41be34
push esi
call edi
mov ecx, dword [ebp + 0xc0]
push 0
push 0x41be34
push esi
call edi
inc esi
cmp esi, 8
jl 0x407b35
add ebx, 2
jmp case.0x407cfe.3
movsx eax, byte [ebx + esi + 2]
cmp eax, 0xff
mov dword [esp + 0x14], eax
je 0x407b14
mov edx, dword [esp + 0x308]
or ecx, 0xffffffff
lea esi, [esp + 0x78]
movsx eax, byte [ebx + edx + 3]
mov dword [esp + 0x10], eax
lea edi, [ebx + edx + 4]
xor eax, eax
mov dword [esp + 0x60], esi
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x60]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x78]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ebx, [ebx + ecx + 5]
or ecx, 0xffffffff
lea edi, [ebx + edx]
lea edx, [esp + 0xa0]
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
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0xa0]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x14]
not ecx
dec ecx
test eax, eax
lea ebx, [ebx + ecx + 1]
jl 0x407cba
cmp eax, 7
jg 0x407cba
lea ecx, [esp + 0xa0]
lea edx, [esp + 0x78]
push ecx
mov ecx, dword [ebp + 0xc4]
push edx
push eax
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::SetButtonText_int__char_const___char_const__]
mov eax, dword [esp + 0x10]
cmp eax, 4
ja case.0x407cfe.3
mov ecx, eax
jmp dword [ecx*4 + 0x408338]
mov esi, dword [esp + 0x14]
mov ecx, dword [ebp + 0xc4]
push 0
push 0
push esi
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::SetButtonPress_int__int__int_]
mov ecx, dword [ebp + 0xc4]
push 1
push esi
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::EnableKey_int__int_]
jmp case.0x407cfe.3
mov esi, dword [esp + 0x14]
mov ecx, dword [ebp + 0xc4]
push 0
push 1
push esi
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::SetButtonPress_int__int__int_]
mov ecx, dword [ebp + 0xc4]
push 1
push esi
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::EnableKey_int__int_]
jmp case.0x407cfe.3
mov esi, dword [esp + 0x14]
mov ecx, dword [ebp + 0xc4]
push 0
push 0
push esi
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::SetButtonPress_int__int__int_]
mov ecx, dword [ebp + 0xc4]
push 0
push esi
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::EnableKey_int__int_]
jmp case.0x407cfe.3
cmp eax, 8
jl case.0x407cfe.3
mov eax, dword [esp + 0x14]
cmp eax, 0xf
jg case.0x407cfe.3
mov edx, eax
lea eax, [esp + 0xa0]
lea ecx, [esp + 0x78]
push eax
lea esi, [edx - 8]
push ecx
mov ecx, dword [ebp + 0xc0]
push esi
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::SetButtonText_int__char_const___char_const__]
mov eax, dword [esp + 0x10]
cmp eax, 4
ja case.0x407cfe.3
mov edx, eax
jmp dword [edx*4 + 0x40834c]
push 0
push 0
jmp 0x407d0f
push 0
push 1
mov ecx, dword [ebp + 0xc0]
push esi
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::SetButtonPress_int__int__int_]
mov ecx, dword [ebp + 0xc0]
push 1
push esi
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::EnableKey_int__int_]
jmp case.0x407cfe.3
mov ecx, dword [ebp + 0xc0]
push 0
push 0
push esi
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::SetButtonPress_int__int__int_]
mov ecx, dword [ebp + 0xc0]
push 0
push esi
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::EnableKey_int__int_]
jmp case.0x407cfe.3
mov al, byte [ebx + esi + 2]
mov byte [esp + 0x1c], al
movsx eax, byte [ebx + esi + 3]
dec eax
cmp eax, 4
ja case.default.0x407d6c
jmp dword [eax*4 + 0x408360]
mov ecx, dword [esp + 0x308]
xor eax, eax
lea edx, [esp + 0x12c]
lea edi, [ebx + ecx + 4]
or ecx, 0xffffffff
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
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp byte [esp + 0x12d], 0x3a
je 0x407e21
call sub.MFC42.DLL_AfxGetThread
test eax, eax
je 0x407dbe
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x7c]
jmp 0x407dc0
xor eax, eax
mov edi, dword [eax + 0x170]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x12c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x12c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x308]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx + eax + 4]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0x308]
or ecx, 0xffffffff
xor eax, eax
lea edi, [ebx + edx + 4]
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ebx, [ebx + ecx + 5]
or ecx, 0xffffffff
lea edi, [ebx + edx]
lea edx, [esp + 0x64]
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
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x64]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ebx, [ebx + ecx + 1]
movsx ecx, byte [esp + 0x64]
push ecx
call dword [sym.imp.MSVCRT.dll_tolower]
add esp, 4
xor edx, edx
cmp eax, 0x72
sete dl
mov esi, edx
test esi, esi
je 0x407ea6
lea eax, [esp + 0x12c]
push 4
push eax
call dword [sym.imp.MSVCRT.dll__access]
add esp, 8
test eax, eax
jne 0x408252
mov cl, byte [esp + 0x1c]
lea edx, [esp + 0x24]
mov byte [esp + 0x26], cl
push 4
push edx
mov ecx, ebp
mov byte [esp + 0x2c], 0
mov byte [esp + 0x2d], 0x1a
mov byte [esp + 0x2f], 2
call fcn.00407530
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x64]
push esi
lea ecx, [esp + 0x130]
push eax
push ecx
push edx
push 0x6f
call fcn.00404d40
add esp, 0x14
add ebx, 4
jmp case.0x407cfe.3
mov eax, dword [esp + 0x1c]
push 0
push 0x41be34
push 0x41be34
push eax
push 0x64
call fcn.00404d40
mov cl, byte [esp + 0x30]
add esp, 0x14
lea edx, [esp + 0x24]
mov byte [esp + 0x26], cl
push 4
push edx
mov ecx, ebp
mov byte [esp + 0x2c], 0
mov byte [esp + 0x2d], 0x1a
mov byte [esp + 0x2f], 4
call fcn.00407530
add ebx, 4
jmp case.0x407cfe.3
push 0
push 0
push str.Unknown_FILE_Command
call sub.MFC42.DLL_AfxMessageBox
add ebx, 4
jmp case.0x407cfe.3
push 0
add ebx, 2
call dword [sym.imp.USER32.dll_MessageBeep]
jmp case.0x407cfe.3
movsx eax, byte [ebx + esi + 2]
dec eax
je 0x407f72
dec eax
jne 0x407f84
push 1
push str.CNC_SID_version:___
jmp 0x407f79
push 1
push str.CNC_hardware:___
mov ecx, dword [ebp + 0x168]
call fcn.00402690
mov ecx, dword [ebp + 0x168]
lea esi, [ebx + esi + 3]
push 1
push esi
call fcn.00402690
mov ecx, dword [ebp + 0x168]
push 1
push 0x419ee4
call fcn.00402690
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ebx, [ebx + ecx + 4]
jmp case.0x407cfe.3
movsx eax, byte [ebx + esi + 2]
dec eax
je 0x40801a
dec eax
je 0x40823c
dec eax
jne 0x40816a
mov eax, dword [ebp + 0x20]
push 0
push 0x2710
push 0x303c
push eax
add ebx, ecx
call dword [sym.imp.USER32.dll_SetTimer]
mov edx, dword [ebp + 0x174]
lea ecx, [ebp + 0x174]
call dword [edx + 0xc0]
cmp eax, 2
jne case.0x407cfe.3
mov eax, dword [ebp + 0x20]
push 0x303c
push eax
call dword [sym.imp.USER32.dll_KillTimer]
jmp case.0x407cfe.3
call sub.MFC42.DLL_AfxGetThread
test eax, eax
je 0x40802c
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x7c]
jmp 0x40802e
xor eax, eax
push 1
push str.Initializing_on_CNC_request...
push 0
lea ecx, [eax + 0xd0]
call sub.MFC42.DLL_CStatusBar::SetPaneText
push 0xbb8
call fcn.004098b0
add esp, 4
mov dword [0x426310], 0
call fcn.004084e0
call sub.MFC42.DLL_AfxGetThread
test eax, eax
je 0x40807a
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x7c]
mov ecx, eax
call fcn.00406c90
jmp case.default.0x407662
xor eax, eax
mov ecx, eax
call fcn.00406c90
jmp case.default.0x407662
movsx eax, byte [ebx + esi + 2]
dec eax
je 0x408107
dec eax
je 0x4080a9
jmp 0x40816a
xor eax, eax
mov dword [eax + 0x154], 1
jmp case.0x407cfe.3
lea eax, [esp + 0x70]
mov byte [esp + 0x24], 0
push eax
mov byte [esp + 0x29], 0x20
mov byte [esp + 0x2a], 2
call sub.MFC42.DLL_CTime::GetTickCount
mov ecx, dword [eax]
lea edx, [esp + 0x5c]
mov dword [esp + 0x20], ecx
push str._H:_M:_S
push edx
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CTime::Format
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x300], 2
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x5c]
mov byte [esp + 0x2fc], 0
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x18]
jmp 0x4081b4
lea eax, [esp + 0x74]
mov byte [esp + 0x24], 0
push eax
mov byte [esp + 0x29], 0x20
mov byte [esp + 0x2a], 1
call sub.MFC42.DLL_CTime::GetTickCount
mov ecx, dword [eax]
lea edx, [esp + 0x58]
mov dword [esp + 0x20], ecx
push str._d:_m:_Y
push edx
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CTime::Format
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x300], 1
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x58]
mov byte [esp + 0x2fc], 0
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x18]
jmp 0x4081b4
movsx eax, byte [ebx + esi + 2]
dec eax
je 0x40819a
push 0
push 0
push str.Unknown_CNC_Command_code__2_._Sync_is_lost.
add ebx, ecx
call sub.MFC42.DLL_AfxMessageBox
call sub.MFC42.DLL_AfxGetThread
test eax, eax
je 0x408098
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x7c]
mov dword [eax + 0x154], 1
jmp case.0x407cfe.3
mov byte [esp + 0x24], 0
mov byte [esp + 0x25], 0x21
mov byte [esp + 0x26], 1
call sub.MFC42.DLL_AfxGetModuleState
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x74]
lea ecx, [esp + 0x27]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
lea edi, [esp + 0x2f]
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
add ecx, 3
lea edx, [esp + 0x24]
push ecx
push edx
mov ecx, ebp
call fcn.00407530
add ebx, 3
mov ecx, dword [esp + 0x30c]
cmp ebx, ecx
jge 0x408277
mov edi, dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::SetButtonText_int__char_const___char_const__]
mov esi, dword [esp + 0x308]
jmp 0x40761f
push 0
push 0
push str.Error_in_CNC_Command
call sub.MFC42.DLL_AfxMessageBox
call sub.MFC42.DLL_AfxGetThread
test eax, eax
je 0x40822e
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x7c]
mov dword [eax + 0x154], 1
jmp 0x408277
xor eax, eax
mov dword [eax + 0x154], 1
jmp 0x408277
push 0
push 0
push str.Exit_Command_received_from_CNC.
jmp 0x40820d
push 0
push 0
push str.Unknown_CNC_Command_code__1_._Sync_is_lost.
jmp 0x40820d
mov al, byte [esp + 0x1c]
lea ecx, [esp + 0x24]
push 4
push ecx
mov ecx, ebp
mov byte [esp + 0x2c], 0
mov byte [esp + 0x2d], 0x1a
mov byte [esp + 0x2e], al
mov byte [esp + 0x2f], 5
call fcn.00407530
lea ecx, [esp + 0x18]
mov dword [esp + 0x2fc], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x2f4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x2f0
ret 0xc