Function at 0x409c33
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4194e1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x340
mov dword [ebp - 0x310], ecx
lea ecx, [ebp - 0x10]
call fcn.0040cc90
lea ecx, [ebp - 0x18]
call sub.MFC42.DLL_CString::CString
mov dword [ebp - 4], 0
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp + 0x10]
jge 0x40afc0
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0x1c]
mov dl, byte [ecx]
mov byte [ebp - 0x314], dl
cmp byte [ebp - 0x314], 0
je 0x409c9d
jmp 0x40af98
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x1c]
movsx ecx, byte [eax + 1]
mov dword [ebp - 0x318], ecx
mov edx, dword [ebp - 0x318]
sub edx, 2
mov dword [ebp - 0x318], edx
cmp dword [ebp - 0x318], 0x1f
ja case.default.0x409ccf
mov eax, dword [ebp - 0x318]
jmp dword [eax*4 + 0x40afdf]
mov ecx, dword [ebp - 0x310]
mov ecx, dword [ecx + 0x168]
call fcn.004032a4
mov edx, dword [ebp - 0x1c]
add edx, 2
mov dword [ebp - 0x1c], edx
jmp 0x40af96
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x1c]
movsx ecx, byte [eax + 2]
mov dword [ebp - 0x31c], ecx
cmp dword [ebp - 0x31c], 3
ja case.default.0x409d18
mov edx, dword [ebp - 0x31c]
jmp dword [edx*4 + 0x40b05f]
mov eax, dword [ebp - 0x310]
mov ecx, dword [eax + 0x168]
mov edx, dword [ecx + 0xa928]
push edx
mov eax, dword [ebp - 0x310]
mov ecx, dword [eax + 0x168]
call fcn.004031af
jmp case.default.0x409d18
mov ecx, dword [ebp - 0x310]
mov edx, dword [ecx + 0x168]
mov eax, dword [edx + 0xa92c]
push eax
mov ecx, dword [ebp - 0x310]
mov ecx, dword [ecx + 0x168]
call fcn.004031af
jmp case.default.0x409d18
mov edx, dword [ebp - 0x310]
mov eax, dword [edx + 0x168]
mov ecx, dword [eax + 0xa930]
push ecx
mov edx, dword [ebp - 0x310]
mov ecx, dword [edx + 0x168]
call fcn.004031af
jmp case.default.0x409d18
mov eax, dword [ebp - 0x310]
mov ecx, dword [eax + 0x168]
mov edx, dword [ecx + 0xa934]
push edx
mov eax, dword [ebp - 0x310]
mov ecx, dword [eax + 0x168]
call fcn.004031af
mov ecx, dword [ebp - 0x1c]
add ecx, 3
mov dword [ebp - 0x1c], ecx
jmp 0x40af96
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0x1c]
movsx eax, byte [edx + 2]
mov ecx, dword [eax*4 + 0x420754]
push ecx
mov edx, dword [ebp - 0x310]
mov ecx, dword [edx + 0x168]
call fcn.0040339c
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x1c]
movsx ecx, byte [eax + 3]
mov edx, dword [ecx*4 + 0x420754]
push edx
mov eax, dword [ebp - 0x310]
mov ecx, dword [eax + 0x168]
call fcn.004033b5
mov ecx, dword [ebp - 0x1c]
add ecx, 4
mov dword [ebp - 0x1c], ecx
jmp 0x40af96
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0x1c]
movsx eax, byte [edx + 2]
sub eax, 1
push eax
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0x1c]
movsx edx, byte [ecx + 3]
sub edx, 1
push edx
mov eax, dword [ebp - 0x310]
mov ecx, dword [eax + 0x168]
call fcn.004031c8
mov ecx, dword [ebp - 0x1c]
add ecx, 4
mov dword [ebp - 0x1c], ecx
jmp 0x40af96
push 1
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp + 0xc]
lea ecx, [eax + edx + 2]
push ecx
mov edx, dword [ebp - 0x310]
mov ecx, dword [edx + 0x168]
call fcn.004033ce
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0xc]
lea edx, [ecx + eax + 2]
push edx
call sub.MSVCRT.dll_strlen
add esp, 4
mov ecx, dword [ebp - 0x1c]
lea edx, [ecx + eax + 3]
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x310]
movsx ecx, word [eax + 0x160]
test ecx, ecx
je 0x40a28a
mov edx, dword [ebp + 0xc]
add edx, 2
push edx
call dword [sym.imp.MSVCRT.dll__strupr]
add esp, 4
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp + 0xc]
add ecx, 2
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp + 0xc]
add edx, 2
mov dword [ebp - 0x28], edx
push 0x420794
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x409f27
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x2c]
jae 0x409f27
mov edx, dword [ebp - 0x24]
movsx eax, byte [edx]
push eax
call dword [sym.imp.MSVCRT.dll_isdigit]
add esp, 4
test eax, eax
je 0x409f1c
mov ecx, dword [ebp - 0x24]
movsx edx, byte [ecx]
sub edx, 0x30
mov eax, dword [ebp - 0x310]
mov word [eax + 0x15e], dx
jmp 0x409f27
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
jmp 0x409ee8
push str.VERSION
mov edx, dword [ebp - 0x28]
push edx
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
je 0x40a076
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x2c]
jae 0x40a076
mov ecx, dword [ebp - 0x28]
movsx edx, byte [ecx]
push edx
call dword [sym.imp.MSVCRT.dll_isdigit]
add esp, 4
test eax, eax
je 0x40a068
mov eax, dword [ebp - 0x28]
movsx ecx, byte [eax]
cmp ecx, 0x35
jge 0x40a041
mov edx, dword [ebp - 0x28]
movsx eax, byte [edx]
cmp eax, 0x31
jne 0x409fc8
mov ecx, dword [ebp - 0x310]
movsx edx, word [ecx + 0x15e]
test edx, edx
jl 0x409fa7
mov eax, dword [ebp - 0x310]
movsx ecx, word [eax + 0x15e]
cmp ecx, 3
jne 0x409fc6
mov edx, dword [ebp - 0x310]
mov word [edx + 0x15e], 3
mov eax, dword [ebp - 0x310]
mov dword [eax + 0x164], 1
jmp 0x409ff8
mov ecx, dword [ebp - 0x310]
movsx edx, word [ecx + 0x15e]
test edx, edx
jge 0x409ff8
mov eax, dword [ebp - 0x310]
mov word [eax + 0x15e], 2
mov ecx, dword [ebp - 0x310]
mov dword [ecx + 0x164], 1
mov edx, dword [ebp - 0x310]
movsx eax, word [edx + 0x15e]
cmp eax, 3
jge 0x40a01a
mov ecx, dword [ebp - 0x310]
mov dword [ecx + 0x164], 1
mov edx, dword [ebp - 0x310]
mov word [edx + 0x160], 0
mov eax, dword [ebp - 0x28]
movsx ecx, byte [eax]
sub ecx, 0x30
mov edx, dword [ebp - 0x310]
mov word [edx + 0x15c], cx
jmp 0x40a076
mov eax, dword [ebp - 0x310]
mov word [eax + 0x160], 0
mov ecx, dword [ebp - 0x28]
movsx edx, byte [ecx]
sub edx, 0x30
mov eax, dword [ebp - 0x310]
mov word [eax + 0x15c], dx
jmp 0x40a076
mov ecx, dword [ebp - 0x28]
add ecx, 1
mov dword [ebp - 0x28], ecx
jmp 0x409f46
mov edx, dword [ebp - 0x310]
movsx eax, word [edx + 0x160]
test eax, eax
jne 0x40a201
call fcn.00406350
mov ecx, dword [eax + 0xc8]
mov dword [ebp - 0x320], ecx
cmp dword [ebp - 0x320], 1
je 0x40a0b9
cmp dword [ebp - 0x320], 2
je 0x40a0de
cmp dword [ebp - 0x320], 3
je 0x40a103
jmp 0x40a11a
mov edx, dword [ebp - 0x310]
movsx eax, word [edx + 0x15e]
push eax
push str.Protocol_active_on_serial_comm___CPU_d__
lea ecx, [ebp - 0x22c]
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
jmp 0x40a12f
mov edx, dword [ebp - 0x310]
movsx eax, word [edx + 0x15e]
push eax
push str.Protocol_active_on_ethernet_comm___CPU_d__
lea ecx, [ebp - 0x22c]
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
jmp 0x40a12f
push str.Protocol_active_on_C1_comm
lea edx, [ebp - 0x22c]
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
jmp 0x40a12f
push str.Protocol_active_on_undefined_comm
lea eax, [ebp - 0x22c]
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
push 1
lea ecx, [ebp - 0x22c]
push ecx
push 0
call fcn.00402610
mov ecx, eax
add ecx, 0xd0
call sub.MFC42.DLL_CStatusBar::SetPaneText
mov dword [ebp - 0x230], 0
mov edx, dword [ebp - 0x310]
movsx eax, word [edx + 0x15e]
cmp eax, 2
jne 0x40a198
push 0
push 0x420838
push str...loadersLOADCPU2.sys
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov dword [ebp - 0x230], eax
push 0
push 0x420864
push str...loadersLOADER2.sys
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov dword [ebp - 0x230], eax
mov ecx, dword [ebp - 0x310]
movsx edx, word [ecx + 0x15e]
cmp edx, 3
jne 0x40a1da
push 0
push str...wsloadcpu.sys
push str...loadersLOADCPU3.sys
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov dword [ebp - 0x230], eax
push 0
push str...wsloader.sys
push str...loadersLOADER3.sys
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov dword [ebp - 0x230], eax
mov eax, dword [ebp - 0x310]
movsx ecx, word [eax + 0x15e]
cmp ecx, 4
jne 0x40a1f6
mov dword [ebp - 0x230], 1
mov ecx, dword [ebp - 0x310]
call fcn.0040cb9e
mov edx, dword [ebp - 0x310]
movsx eax, word [edx + 0x160]
test eax, eax
jne 0x40a28a
mov ecx, dword [ebp - 0x310]
cmp dword [ecx + 0x164], 0
je 0x40a28a
mov edx, dword [ebp - 0x310]
mov word [edx + 0x160], 0
push 0x200
call fcn.0040ca74
add esp, 4
mov eax, dword [ebp - 0x310]
movsx ecx, word [eax + 0x15c]
push ecx
mov edx, dword [ebp - 0x310]
movsx eax, word [edx + 0x15e]
push eax
push str.Detected_a_CPU_d_with_a_SID_Version__d.xx_._Is_suggested_to_execute_an_update_of_the_system
lea ecx, [ebp - 0x2f8]
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
push 0
push 0x40
lea edx, [ebp - 0x2f8]
push edx
call sub.MFC42.DLL_AfxMessageBox
call fcn.00406350
mov ecx, eax
call fcn.00402392
jmp 0x40af96
push 1
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0xc]
lea edx, [ecx + eax + 4]
push edx
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x1c]
movsx ecx, byte [eax + 2]
sub ecx, 1
push ecx
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0x1c]
movsx eax, byte [edx + 3]
sub eax, 1
push eax
mov ecx, dword [ebp - 0x310]
mov ecx, dword [ecx + 0x168]
call fcn.0040341a
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp + 0xc]
lea ecx, [eax + edx + 4]
push ecx
call sub.MSVCRT.dll_strlen
add esp, 4
mov edx, dword [ebp - 0x1c]
lea eax, [edx + eax + 5]
mov dword [ebp - 0x1c], eax
jmp 0x40af96
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0x1c]
mov dl, byte [ecx + 2]
push edx
mov eax, dword [ebp - 0x310]
mov ecx, dword [eax + 0x168]
call fcn.00403447
mov ecx, dword [ebp - 0x1c]
add ecx, 3
mov dword [ebp - 0x1c], ecx
jmp 0x40af96
push 0
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp + 0xc]
lea ecx, [eax + edx + 2]
push ecx
mov edx, dword [ebp - 0x310]
mov ecx, dword [edx + 0x168]
call fcn.004033ce
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0xc]
lea edx, [ecx + eax + 2]
push edx
call sub.MSVCRT.dll_strlen
add esp, 4
mov ecx, dword [ebp - 0x1c]
lea edx, [ecx + eax + 3]
mov dword [ebp - 0x1c], edx
jmp 0x40af96
push 0
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0xc]
lea edx, [ecx + eax + 4]
push edx
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x1c]
movsx ecx, byte [eax + 2]
sub ecx, 1
push ecx
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0x1c]
movsx eax, byte [edx + 3]
sub eax, 1
push eax
mov ecx, dword [ebp - 0x310]
mov ecx, dword [ecx + 0x168]
call fcn.0040341a
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp + 0xc]
lea ecx, [eax + edx + 4]
push ecx
call sub.MSVCRT.dll_strlen
add esp, 4
mov edx, dword [ebp - 0x1c]
lea eax, [edx + eax + 5]
mov dword [ebp - 0x1c], eax
jmp 0x40af96
mov ecx, dword [ebp - 0x310]
mov ecx, dword [ecx + 0x168]
call fcn.00403464
mov edx, dword [ebp - 0x1c]
add edx, 2
mov dword [ebp - 0x1c], edx
jmp 0x40af96
mov eax, dword [ebp - 0x310]
mov ecx, dword [eax + 0x168]
call fcn.0040353d
mov ecx, dword [ebp - 0x1c]
add ecx, 2
mov dword [ebp - 0x1c], ecx
jmp 0x40af96
mov edx, dword [ebp - 0x310]
mov ecx, dword [edx + 0x168]
call fcn.00403613
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
jmp 0x40af96
mov ecx, dword [ebp - 0x310]
mov ecx, dword [ecx + 0x168]
call fcn.004036e4
mov edx, dword [ebp - 0x1c]
add edx, 2
mov dword [ebp - 0x1c], edx
jmp 0x40af96
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x1c]
movsx ecx, byte [eax + 2]
push ecx
mov edx, dword [ebp - 0x310]
mov ecx, dword [edx + 0x168]
call fcn.0040375f
mov eax, dword [ebp - 0x1c]
add eax, 3
mov dword [ebp - 0x1c], eax
jmp 0x40af96
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0x1c]
movsx edx, byte [ecx + 2]
push edx
mov eax, dword [ebp - 0x310]
mov ecx, dword [eax + 0x168]
call fcn.00403823
mov ecx, dword [ebp - 0x1c]
add ecx, 3
mov dword [ebp - 0x1c], ecx
jmp 0x40af96
mov edx, dword [ebp - 0x1c]
add edx, 3
mov dword [ebp - 0x1c], edx
jmp 0x40af96
mov eax, dword [ebp - 0x1c]
add eax, 3
mov dword [ebp - 0x1c], eax
jmp 0x40af96
mov ecx, dword [ebp - 0x1c]
add ecx, 3
mov dword [ebp - 0x1c], ecx
jmp 0x40af96
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0x1c]
movsx eax, byte [edx + 3]
push eax
mov ecx, dword [ebp - 0x310]
mov ecx, dword [ecx + 0x168]
call fcn.004038da
mov edx, dword [ebp - 0x1c]
add edx, 6
mov dword [ebp - 0x1c], edx
jmp 0x40af96
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0xc]
lea edx, [ecx + eax + 2]
push edx
call sub.MSVCRT.dll_strlen
add esp, 4
mov ecx, dword [ebp - 0x1c]
lea edx, [ecx + eax + 3]
mov dword [ebp - 0x1c], edx
jmp 0x40af96
mov dword [ebp - 0x14], 0
jmp 0x40a508
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 8
jge 0x40a54a
push 0
push 0x42deb8
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 0x310]
mov ecx, dword [edx + 0xc4]
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::SetButtonText_int__char_const___char_const__]
push 0
push 0x42debc
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x310]
mov ecx, dword [ecx + 0xc0]
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::SetButtonText_int__char_const___char_const__]
jmp 0x40a4ff
mov edx, dword [ebp - 0x1c]
add edx, 2
mov dword [ebp - 0x1c], edx
jmp 0x40af96
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x1c]
movsx ecx, byte [eax + 2]
cmp ecx, 0xff
je 0x40a86d
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0x1c]
movsx eax, byte [edx + 3]
mov dword [ebp - 0x1c8], eax
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0x1c]
movsx edx, byte [ecx + 2]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0xc]
lea edx, [ecx + eax + 4]
push edx
lea eax, [ebp - 0x158]
push eax
call sub.MSVCRT.dll_strcpy
add esp, 8
lea ecx, [ebp - 0x158]
push ecx
call sub.MSVCRT.dll_strlen
add esp, 4
mov edx, dword [ebp - 0x1c]
lea eax, [edx + eax + 5]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0x1c]
push ecx
lea edx, [ebp - 0x1b4]
push edx
call sub.MSVCRT.dll_strcpy
add esp, 8
lea eax, [ebp - 0x1b4]
push eax
call sub.MSVCRT.dll_strlen
add esp, 4
mov ecx, dword [ebp - 0x1c]
lea edx, [ecx + eax + 1]
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x30], 0
jl 0x40a721
cmp dword [ebp - 0x30], 7
jg 0x40a721
lea eax, [ebp - 0x1b4]
push eax
lea ecx, [ebp - 0x158]
push ecx
mov edx, dword [ebp - 0x30]
push edx
mov eax, dword [ebp - 0x310]
mov ecx, dword [eax + 0xc4]
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::SetButtonText_int__char_const___char_const__]
mov ecx, dword [ebp - 0x1c8]
mov dword [ebp - 0x324], ecx
cmp dword [ebp - 0x324], 4
ja case.0x40a644.3
mov edx, dword [ebp - 0x324]
jmp dword [edx*4 + 0x40b06f]
push 0
push 0
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [ebp - 0x310]
mov ecx, dword [ecx + 0xc4]
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::SetButtonPress_int__int__int_]
push 1
mov edx, dword [ebp - 0x30]
push edx
mov eax, dword [ebp - 0x310]
mov ecx, dword [eax + 0xc4]
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::EnableKey_int__int_]
jmp case.0x40a644.3
push 0
push 1
mov ecx, dword [ebp - 0x30]
push ecx
mov edx, dword [ebp - 0x310]
mov ecx, dword [edx + 0xc4]
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::SetButtonPress_int__int__int_]
push 1
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [ebp - 0x310]
mov ecx, dword [ecx + 0xc4]
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::EnableKey_int__int_]
jmp case.0x40a644.3
push 0
push 0
mov edx, dword [ebp - 0x30]
push edx
mov eax, dword [ebp - 0x310]
mov ecx, dword [eax + 0xc4]
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::SetButtonPress_int__int__int_]
push 0
mov ecx, dword [ebp - 0x30]
push ecx
mov edx, dword [ebp - 0x310]
mov ecx, dword [edx + 0xc4]
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::EnableKey_int__int_]
jmp case.0x40a644.3
push 0
push 0
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [ebp - 0x310]
mov ecx, dword [ecx + 0xc4]
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::SetButtonPress_int__int__int_]
push 0
mov edx, dword [ebp - 0x30]
push edx
mov eax, dword [ebp - 0x310]
mov ecx, dword [eax + 0xc4]
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::EnableKey_int__int_]
jmp case.0x40a77b.3
cmp dword [ebp - 0x30], 8
jl case.0x40a77b.3
cmp dword [ebp - 0x30], 0xf
jg case.0x40a77b.3
lea ecx, [ebp - 0x1b4]
push ecx
lea edx, [ebp - 0x158]
push edx
mov eax, dword [ebp - 0x30]
sub eax, 8
push eax
mov ecx, dword [ebp - 0x310]
mov ecx, dword [ecx + 0xc0]
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::SetButtonText_int__char_const___char_const__]
mov edx, dword [ebp - 0x1c8]
mov dword [ebp - 0x328], edx
cmp dword [ebp - 0x328], 4
ja case.0x40a77b.3
mov eax, dword [ebp - 0x328]
jmp dword [eax*4 + 0x40b083]
push 0
push 0
mov ecx, dword [ebp - 0x30]
sub ecx, 8
push ecx
mov edx, dword [ebp - 0x310]
mov ecx, dword [edx + 0xc0]
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::SetButtonPress_int__int__int_]
push 1
mov eax, dword [ebp - 0x30]
sub eax, 8
push eax
mov ecx, dword [ebp - 0x310]
mov ecx, dword [ecx + 0xc0]
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::EnableKey_int__int_]
jmp case.0x40a77b.3
push 0
push 1
mov edx, dword [ebp - 0x30]
sub edx, 8
push edx
mov eax, dword [ebp - 0x310]
mov ecx, dword [eax + 0xc0]
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::SetButtonPress_int__int__int_]
push 1
mov ecx, dword [ebp - 0x30]
sub ecx, 8
push ecx
mov edx, dword [ebp - 0x310]
mov ecx, dword [edx + 0xc0]
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::EnableKey_int__int_]
jmp case.0x40a77b.3
push 0
push 0
mov eax, dword [ebp - 0x30]
sub eax, 8
push eax
mov ecx, dword [ebp - 0x310]
mov ecx, dword [ecx + 0xc0]
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::SetButtonPress_int__int__int_]
push 0
mov edx, dword [ebp - 0x30]
sub edx, 8
push edx
mov eax, dword [ebp - 0x310]
mov ecx, dword [eax + 0xc0]
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::EnableKey_int__int_]
jmp case.0x40a77b.3
push 0
push 0
mov ecx, dword [ebp - 0x30]
sub ecx, 8
push ecx
mov edx, dword [ebp - 0x310]
mov ecx, dword [edx + 0xc0]
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::SetButtonPress_int__int__int_]
push 0
mov eax, dword [ebp - 0x30]
sub eax, 8
push eax
mov ecx, dword [ebp - 0x310]
mov ecx, dword [ecx + 0xc0]
call dword [sym.imp.FIDIASK.dll_public:_void___thiscall_CSoftkeyBar::EnableKey_int__int_]
jmp 0x40a876
mov edx, dword [ebp - 0x1c]
add edx, 6
mov dword [ebp - 0x1c], edx
jmp 0x40af96
mov eax, dword [ebp - 0x1c]
add eax, 3
mov dword [ebp - 0x1c], eax
jmp 0x40af96
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0x1c]
mov dl, byte [ecx + 2]
mov byte [ebp - 0x1b8], dl
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x1c]
movsx ecx, byte [eax + 3]
mov dword [ebp - 0x32c], ecx
mov edx, dword [ebp - 0x32c]
sub edx, 1
mov dword [ebp - 0x32c], edx
cmp dword [ebp - 0x32c], 4
ja case.default.0x40a8ca
mov eax, dword [ebp - 0x32c]
jmp dword [eax*4 + 0x40b097]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp + 0xc]
lea eax, [edx + ecx + 4]
push eax
lea ecx, [ebp - 0x130]
push ecx
call sub.MSVCRT.dll_strcpy
add esp, 8
movsx edx, byte [ebp - 0x12f]
cmp edx, 0x3a
je 0x40a933
call fcn.00402610
mov ecx, eax
add ecx, 0x170
call fcn.00402650
push eax
lea eax, [ebp - 0x130]
push eax
call sub.MSVCRT.dll_strcpy
add esp, 8
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp + 0xc]
lea eax, [edx + ecx + 4]
push eax
lea ecx, [ebp - 0x130]
push ecx
call sub.MSVCRT.dll_strcat
add esp, 8
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp + 0xc]
lea ecx, [eax + edx + 4]
push ecx
call sub.MSVCRT.dll_strlen
add esp, 4
mov edx, dword [ebp - 0x1c]
lea eax, [edx + eax + 5]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0x1c]
push ecx
lea edx, [ebp - 0x1c4]
push edx
call sub.MSVCRT.dll_strcpy
add esp, 8
lea eax, [ebp - 0x1c4]
push eax
call sub.MSVCRT.dll_strlen
add esp, 4
mov ecx, dword [ebp - 0x1c]
lea edx, [ecx + eax + 1]
mov dword [ebp - 0x1c], edx
movsx eax, byte [ebp - 0x1c4]
push eax
call dword [sym.imp.MSVCRT.dll_tolower]
add esp, 4
xor ecx, ecx
cmp eax, 0x72
sete cl
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x20], 0
je 0x40aa00
push 4
lea edx, [ebp - 0x130]
push edx
call dword [sym.imp.MSVCRT.dll__access]
add esp, 8
test eax, eax
je 0x40aa00
mov byte [ebp - 0x18c], 0
mov byte [ebp - 0x18b], 0x1a
mov al, byte [ebp - 0x1b8]
mov byte [ebp - 0x18a], al
mov byte [ebp - 0x189], 5
push 4
lea ecx, [ebp - 0x18c]
push ecx
mov ecx, dword [ebp - 0x310]
call fcn.00409b80
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.004183d4
jmp 0x40afcf
mov byte [ebp - 0x18c], 0
mov byte [ebp - 0x18b], 0x1a
mov dl, byte [ebp - 0x1b8]
mov byte [ebp - 0x18a], dl
mov byte [ebp - 0x189], 2
push 4
lea eax, [ebp - 0x18c]
push eax
mov ecx, dword [ebp - 0x310]
call fcn.00409b80
mov ecx, dword [ebp - 0x20]
push ecx
lea edx, [ebp - 0x1c4]
push edx
lea eax, [ebp - 0x130]
push eax
mov cl, byte [ebp - 0x1b8]
push ecx
push 0x6f
call fcn.00406f77
add esp, 0x14
jmp 0x40aac2
jmp 0x40aac2
push 0
push 0x42dec0
push 0x42dec4
mov dl, byte [ebp - 0x1b8]
push edx
push 0x64
call fcn.00406f77
add esp, 0x14
mov byte [ebp - 0x18c], 0
mov byte [ebp - 0x18b], 0x1a
mov al, byte [ebp - 0x1b8]
mov byte [ebp - 0x18a], al
mov byte [ebp - 0x189], 4
push 4
lea ecx, [ebp - 0x18c]
push ecx
mov ecx, dword [ebp - 0x310]
call fcn.00409b80
jmp 0x40aac2
jmp 0x40aac2
jmp 0x40aac2
push 0
push 0
push str.Unknown_FILE_Command
call sub.MFC42.DLL_AfxMessageBox
mov edx, dword [ebp - 0x1c]
add edx, 4
mov dword [ebp - 0x1c], edx
jmp 0x40af96
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
jmp 0x40af96
mov ecx, dword [ebp - 0x1c]
add ecx, 2
mov dword [ebp - 0x1c], ecx
jmp 0x40af96
mov edx, dword [ebp - 0x1c]
add edx, 2
mov dword [ebp - 0x1c], edx
push 0
call dword [sym.imp.USER32.dll_MessageBeep]
jmp 0x40af96
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x1c]
mov cl, byte [eax + 2]
mov byte [ebp - 0x330], cl
cmp byte [ebp - 0x330], 1
je 0x40ab25
cmp byte [ebp - 0x330], 2
je 0x40ab3f
jmp 0x40ab57
push 1
push str.CNC_hardware:___
mov edx, dword [ebp - 0x310]
mov ecx, dword [edx + 0x168]
call fcn.004033ce
jmp 0x40ab57
push 1
push str.CNC_SID_version:___
mov eax, dword [ebp - 0x310]
mov ecx, dword [eax + 0x168]
call fcn.004033ce
push 1
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp + 0xc]
lea eax, [edx + ecx + 3]
push eax
mov ecx, dword [ebp - 0x310]
mov ecx, dword [ecx + 0x168]
call fcn.004033ce
push 1
push 0x420988
mov edx, dword [ebp - 0x310]
mov ecx, dword [edx + 0x168]
call fcn.004033ce
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0xc]
lea edx, [ecx + eax + 3]
push edx
call sub.MSVCRT.dll_strlen
add esp, 4
mov ecx, dword [ebp - 0x1c]
lea edx, [ecx + eax + 4]
mov dword [ebp - 0x1c], edx
jmp 0x40af96
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x1c]
mov cl, byte [eax + 2]
mov byte [ebp - 0x334], cl
cmp byte [ebp - 0x334], 1
je 0x40abde
cmp byte [ebp - 0x334], 2
je 0x40ac2f
cmp byte [ebp - 0x334], 3
je 0x40ac54
jmp 0x40aca9
push 1
push str.Initializing_on_CNC_request...
push 0
call fcn.00402610
mov ecx, eax
add ecx, 0xd0
call sub.MFC42.DLL_CStatusBar::SetPaneText
push 0xbb8
call fcn.0040ce21
add esp, 4
mov dword [0x42deb0], 0
call fcn.0040b26a
call fcn.00402610
mov ecx, eax
call fcn.00409775
mov edx, dword [ebp - 0x1c]
add edx, 3
mov dword [ebp - 0x1c], edx
jmp 0x40accf
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x1c], eax
push 0
push 0
push str.Exit_Command_received_from_CNC.
call sub.MFC42.DLL_AfxMessageBox
call fcn.00402610
mov dword [eax + 0x154], 1
jmp 0x40accf
mov ecx, dword [ebp - 0x1c]
add ecx, dword [ebp + 0x10]
mov dword [ebp - 0x1c], ecx
push 0
push 0x2710
push 0x303c
mov ecx, dword [ebp - 0x310]
call fcn.00406360
mov ecx, dword [ebp - 0x310]
add ecx, 0x174
mov edx, dword [ebp - 0x310]
mov eax, dword [edx + 0x174]
call dword [eax + 0xc0]
cmp eax, 2
jne 0x40aca7
push 0x303c
mov ecx, dword [ebp - 0x310]
call fcn.00408ab0
jmp 0x40accf
mov ecx, dword [ebp - 0x1c]
add ecx, dword [ebp + 0x10]
mov dword [ebp - 0x1c], ecx
push 0
push 0
push 0x4209cc
call sub.MFC42.DLL_AfxMessageBox
call fcn.00402610
mov dword [eax + 0x154], 1
jmp 0x40af96
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0x1c]
mov al, byte [edx + 2]
mov byte [ebp - 0x338], al
cmp byte [ebp - 0x338], 1
je 0x40acfe
cmp byte [ebp - 0x338], 2
je 0x40adbc
jmp 0x40ae77
mov byte [ebp - 0x18c], 0
mov byte [ebp - 0x18b], 0x20
mov byte [ebp - 0x18a], 1
lea ecx, [ebp - 0x300]
push ecx
call sub.MFC42.DLL_CTime::GetTickCount
push eax
lea ecx, [ebp - 0x10]
call fcn.0040cca0
push str._d:_m:_Y
lea edx, [ebp - 0x304]
push edx
lea ecx, [ebp - 0x10]
call sub.MFC42.DLL_CTime::Format
mov dword [ebp - 0x33c], eax
mov eax, dword [ebp - 0x33c]
mov dword [ebp - 0x340], eax
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x340]
push ecx
lea ecx, [ebp - 0x18]
call fcn.004183da
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x304]
call fcn.004183d4
lea ecx, [ebp - 0x18]
call fcn.00402650
push eax
lea edx, [ebp - 0x189]
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
lea eax, [ebp - 0x189]
push eax
call sub.MSVCRT.dll_strlen
add esp, 4
add eax, 4
push eax
lea ecx, [ebp - 0x18c]
push ecx
mov ecx, dword [ebp - 0x310]
call fcn.00409b80
mov edx, dword [ebp - 0x1c]
add edx, 3
mov dword [ebp - 0x1c], edx
jmp 0x40ae9d
mov byte [ebp - 0x18c], 0
mov byte [ebp - 0x18b], 0x20
mov byte [ebp - 0x18a], 2
lea eax, [ebp - 0x308]
push eax
call sub.MFC42.DLL_CTime::GetTickCount
push eax
lea ecx, [ebp - 0x10]
call fcn.0040cca0
push str._H:_M:_S
lea ecx, [ebp - 0x30c]
push ecx
lea ecx, [ebp - 0x10]
call sub.MFC42.DLL_CTime::Format
mov dword [ebp - 0x344], eax
mov edx, dword [ebp - 0x344]
mov dword [ebp - 0x348], edx
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x348]
push eax
lea ecx, [ebp - 0x18]
call fcn.004183da
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x30c]
call fcn.004183d4
lea ecx, [ebp - 0x18]
call fcn.00402650
push eax
lea ecx, [ebp - 0x189]
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
lea edx, [ebp - 0x189]
push edx
call sub.MSVCRT.dll_strlen
add esp, 4
add eax, 4
push eax
lea eax, [ebp - 0x18c]
push eax
mov ecx, dword [ebp - 0x310]
call fcn.00409b80
mov ecx, dword [ebp - 0x1c]
add ecx, 3
mov dword [ebp - 0x1c], ecx
jmp 0x40ae9d
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp + 0x10]
mov dword [ebp - 0x1c], edx
push 0
push 0
push 0x420a10
call sub.MFC42.DLL_AfxMessageBox
call fcn.00402610
mov dword [eax + 0x154], 1
jmp 0x40af96
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x1c]
mov cl, byte [eax + 2]
mov byte [ebp - 0x34c], cl
cmp byte [ebp - 0x34c], 1
je 0x40aebf
jmp 0x40af4b
mov byte [ebp - 0x18c], 0
mov byte [ebp - 0x18b], 0x21
mov byte [ebp - 0x18a], 1
call fcn.00406350
mov edx, dword [eax + 0x74]
push edx
lea eax, [ebp - 0x189]
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
push 0x420a3c
lea ecx, [ebp - 0x189]
push ecx
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
mov dword [ebp - 0x2fc], eax
cmp dword [ebp - 0x2fc], 0
je 0x40af1b
mov edx, dword [ebp - 0x2fc]
mov byte [edx - 1], 0
lea eax, [ebp - 0x189]
push eax
call sub.MSVCRT.dll_strlen
add esp, 4
add eax, 4
push eax
lea ecx, [ebp - 0x18c]
push ecx
mov ecx, dword [ebp - 0x310]
call fcn.00409b80
mov edx, dword [ebp - 0x1c]
add edx, 3
mov dword [ebp - 0x1c], edx
jmp 0x40af71
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp + 0x10]
mov dword [ebp - 0x1c], eax
push 0
push 0
push str.Unknown_CNC_Command_code__2_._Sync_is_lost.
call sub.MFC42.DLL_AfxMessageBox
call fcn.00402610
mov dword [eax + 0x154], 1
jmp 0x40af96
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x1c], ecx
push 0
push 0
push str.Unknown_CNC_Command_code__1_._Sync_is_lost.
call sub.MFC42.DLL_AfxMessageBox
call fcn.00402610
mov dword [eax + 0x154], 1
jmp 0x40afbb
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x1c], edx
push 0
push 0
push str.Error_in_CNC_Command
call sub.MFC42.DLL_AfxMessageBox
call fcn.00402610
mov dword [eax + 0x154], 1
jmp 0x409c75
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.004183d4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0xc