Function at 0x4017e0
Capabilities:
Check for time delay via gettickcount
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x425328
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x28
push ebx
mov eax, dword [esp + 0x40]
mov ebx, ecx
mov edx, dword [0x432614]
xor ecx, ecx
push ebp
mov dword [0x432600], ecx
push esi
mov dword [0x432604], ecx
push edi
mov dword [0x432608], ecx
mov dword [esp + 0x20], eax
mov dword [0x43260c], ecx
mov eax, 0x1e
push 0x432600
push edx
mov esi, 1
mov dword [0x432610], ecx
mov dword [0x432600], eax
mov dword [0x432604], eax
call dword [sym.imp.KERNEL32.dll_SetCommTimeouts]
mov eax, dword [0x432614]
push 6
push eax
call dword [sym.imp.KERNEL32.dll_EscapeCommFunction]
call sub.MFC42.DLL_AfxGetModuleState
mov eax, dword [eax + 4]
push 0
push str.CMLDDSJ
push str.test
mov ecx, eax
call sub.MFC42.DLL_CWinApp::GetProfileIntA
test eax, eax
je 0x4018b9
call sub.MFC42.DLL_AfxGetModuleState
mov eax, dword [eax + 4]
push str.3000
push str.MLDDSJ
lea ecx, [esp + 0x20]
push str.test
push ecx
mov ecx, eax
call sub.MFC42.DLL_CWinApp::GetProfileStringA
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
lea ecx, [esp + 0x18]
mov dword [esp + 0x10], eax
call fcn.00424c5a
jmp 0x4018c1
mov dword [esp + 0x10], 0xbb8
call sub.MFC42.DLL_AfxGetModuleState
mov eax, dword [eax + 4]
push 0
push str.CZJYS
push str.test
mov ecx, eax
call sub.MFC42.DLL_CWinApp::GetProfileIntA
test eax, eax
je 0x401920
call sub.MFC42.DLL_AfxGetModuleState
mov eax, dword [eax + 4]
push 0x432170
push str.ZJYS
lea ecx, [esp + 0x20]
push str.test
push ecx
mov ecx, eax
call sub.MFC42.DLL_CWinApp::GetProfileStringA
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
lea ecx, [esp + 0x18]
mov dword [esp + 0x1c], eax
call fcn.00424c5a
jmp 0x401928
mov dword [esp + 0x1c], 0xf
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov ebp, eax
mov eax, dword [0x432614]
push 1
push eax
call dword [sym.imp.KERNEL32.dll_SetCommMask]
mov eax, dword [0x432614]
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x28]
push ecx
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ClearCommError]
mov eax, dword [0x432614]
lea ecx, [esp + 0x24]
push 0
push ecx
lea edx, [esp + 0x1c]
push 1
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp byte [esp + 0x14], 0x68
jne 0x401980
mov ecx, dword [esp + 0x48]
xor esi, esi
mov byte [ecx], 0x68
call edi
mov ecx, dword [esp + 0x10]
sub eax, ebp
cmp eax, ecx
jbe 0x4019a4
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x432160
call sub.MFC42.DLL_CString::CString_1
mov ecx, ebx
call fcn.00402980
call edi
mov ecx, dword [esp + 0x10]
sub eax, ebp
cmp eax, ecx
ja 0x4019b8
test esi, esi
jne 0x401956
xor ebp, ebp
jmp 0x4019be
xor ebp, ebp
cmp esi, ebp
jne 0x401a39
mov edi, dword [esp + 0x4c]
mov esi, 1
cmp edi, esi
jle 0x401a22
mov ecx, dword [0x432614]
lea edx, [esp + 0x24]
push ebp
push edx
lea eax, [esp + 0x1c]
push 1
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x401a06
mov ecx, dword [0x432614]
lea edx, [esp + 0x2c]
lea eax, [esp + 0x28]
push edx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_ClearCommError]
mov dword [esp + 0x20], ebp
jmp 0x401a1d
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
mov dl, byte [esp + 0x14]
push ecx
mov ecx, ebx
mov byte [esi + eax], dl
call fcn.00402950
inc esi
cmp esi, edi
jl 0x4019cb
mov edx, dword [esp + 0x48]
push 1
push edi
push edx
push 1
mov ecx, ebx
call fcn.004029f0
mov esi, dword [esp + 0x20]
jmp 0x401a53
push ecx
mov ecx, esp
mov dword [esp + 0x50], esp
push 0x432160
call sub.MFC42.DLL_CString::CString_1
mov ecx, ebx
call fcn.00402980
xor esi, esi
mov eax, dword [0x432614]
push 5
push eax
call dword [sym.imp.KERNEL32.dll_EscapeCommFunction]
mov ecx, dword [0x432614]
push 8
push ecx
call dword [sym.imp.KERNEL32.dll_PurgeComm]
call sub.MFC42.DLL_AfxGetModuleState
mov eax, dword [eax + 4]
push ebp
push str.CMLYS
push str.test
mov ecx, eax
call sub.MFC42.DLL_CWinApp::GetProfileIntA
test eax, eax
je 0x401adc
call sub.MFC42.DLL_AfxGetModuleState
mov eax, dword [eax + 4]
push 0x432154
push str.MLYS
lea edx, [esp + 0x50]
push str.test
push edx
mov ecx, eax
call sub.MFC42.DLL_CWinApp::GetProfileStringA
mov eax, dword [esp + 0x48]
mov dword [esp + 0x40], ebp
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
mov ecx, ebx
push eax
call fcn.00402950
lea ecx, [esp + 0x48]
mov dword [esp + 0x40], 0xffffffff
call fcn.00424c5a
mov ecx, dword [esp + 0x38]
mov eax, esi
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x34
ret 8