Function at 0x401afa
Capabilities:
Read file on windows

Disassembly:
jmp 0x43c1e0
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4520e5
push eax
mov dword fs:[0], esp
sub esp, 0xb20
push ebx
push ebp
push esi
push edi
mov esi, ecx
call sub.MFC42.DLL_AfxGetModuleState
mov eax, dword [eax + 4]
xor ebx, ebx
push ebx
push 0x13
mov ecx, esi
mov dword [eax + 0x120], ebx
call fcn.0040168b
mov ecx, esi
call fcn.004014a1
test eax, eax
je 0x43c69e
mov edi, dword [esi + 0x40]
mov ecx, esi
call fcn.0040117c
mov dword [0x46d154], esi
mov dword [0x46d150], edi
mov eax, dword [esi + 0x20]
mov edi, 1
push ebx
mov dword [0x46d158], eax
push ebx
lea ecx, [esp + 0x18]
mov dword [esi + 0x5c0], ebx
mov dword [esi + 0xb9d8], edi
call fcn.004015c3
push esi
lea ecx, [esp + 0x14]
mov dword [esp + 0xb3c], ebx
call fcn.004010e1
push 5
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CWnd::ShowWindow
lea ecx, [esp + 0x74]
push 0x802
mov dword [esi + 0x3c8], ecx
mov ecx, esi
call fcn.00402185
mov eax, dword [0x46d150]
lea edx, [esp + 0x120]
add eax, 0x107c
mov ebp, 0x7d0
push 0x46d150
mov ecx, esi
mov byte [esp + 0x124], 0x29
mov word [esp + 0x125], di
mov dword [0x46d164], 3
mov dword [0x46d15c], edx
mov dword [0x46d160], eax
mov dword [0x46d168], ebp
call fcn.0040202c
cmp eax, 0x17
je 0x43c64f
mov ecx, dword [0x46d154]
cmp dword [ecx + 0x5ac], ebx
je 0x43c64f
push ebp
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x46d150
mov ecx, esi
call fcn.0040105f
test eax, eax
jne 0x43c350
push 0x46d150
mov ecx, esi
call fcn.0040105f
test eax, eax
jne 0x43c350
mov ecx, esi
call fcn.004015a5
lea ecx, [esp + 0xe0]
mov dword [esp + 0xb38], 4
call sub.MFC42.DLL_CAnimateCtrl::CAnimateCtrl
mov byte [esp + 0xb38], 3
jmp 0x43c681
mov dword [0x46d148], ebx
mov eax, dword [esi + 0x400]
push 0x469378
push eax
call dword [sym.imp.MSVCRT.dll_fopen]
mov edi, eax
mov eax, dword [0x46d148]
add esp, 8
cmp eax, 0x2000
jae 0x43c43b
mov bl, 0x12
push edi
push 4
lea edx, [esp + 0x12c]
push 1
push edx
call dword [sym.imp.MSVCRT.dll_fread]
add esp, 0x10
cmp eax, 4
jne 0x43c524
mov edx, dword [0x46d150]
mov ax, word [0x46d148]
lea ecx, [esp + 0x120]
add edx, 0x107c
mov dword [0x46d15c], ecx
push 0x46d150
mov ecx, esi
mov byte [esp + 0x124], bl
mov word [esp + 0x125], ax
mov byte [esp + 0x127], 4
mov dword [0x46d164], 0x24
mov dword [0x46d160], edx
mov dword [0x46d168], ebp
call fcn.0040202c
cmp eax, 0x17
je 0x43c570
mov ecx, esi
call fcn.00401370
mov eax, dword [0x46d150]
add eax, 0x107c
mov dword [0x46d144], eax
cmp byte [eax], bl
jne 0x43c5c7
xor ecx, ecx
mov cl, byte [eax + 3]
mov eax, dword [0x46d148]
add eax, ecx
cmp eax, 0x2000
mov dword [0x46d148], eax
jb 0x43c37f
xor ebx, ebx
push edi
call dword [sym.imp.MSVCRT.dll_fclose]
mov eax, dword [0x46d150]
add esp, 4
lea edx, [esp + 0x120]
add eax, 0x107c
push 0x46d150
mov ecx, esi
mov byte [esp + 0x124], 0x29
mov word [esp + 0x125], 2
mov dword [0x46d164], 3
mov dword [0x46d15c], edx
mov dword [0x46d160], eax
mov dword [0x46d168], ebp
call fcn.0040202c
cmp eax, 0x17
je 0x43c61b
mov ecx, dword [0x46d154]
cmp dword [ecx + 0x5ac], ebx
je 0x43c61b
mov ecx, esi
call fcn.004015a5
push ebx
push ebx
push str.Successfully_Finished___
call sub.MFC42.DLL_AfxMessageBox
call sub.MFC42.DLL_AfxGetModuleState
mov eax, dword [eax + 4]
lea ecx, [esp + 0x10]
mov dword [eax + 0x120], 1
mov dword [esi + 0xb9d8], ebx
call sub.MFC42.DLL_CWnd::DestroyWindow
lea ecx, [esp + 0xe0]
mov dword [esp + 0xb38], 0xe
call sub.MFC42.DLL_CAnimateCtrl::CAnimateCtrl
lea ecx, [esp + 0x74]
mov byte [esp + 0xb38], 0xd
call fcn.004018d4
lea ecx, [esp + 0x10]
mov dword [esp + 0xb38], 0xffffffff
call fcn.0044cf84
mov eax, 1
jmp 0x43c6a0
push 0
push 0
push str.File_read_fail..
call sub.MFC42.DLL_AfxMessageBox
push edi
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov ecx, esi
call fcn.004015a5
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CWnd::DestroyWindow
lea ecx, [esp + 0xe0]
mov dword [esp + 0xb38], 6
call sub.MFC42.DLL_CAnimateCtrl::CAnimateCtrl
mov byte [esp + 0xb38], 5
jmp 0x43c681
push 0
push 0
push str.EEPRom_Write_Fail_
call sub.MFC42.DLL_AfxMessageBox
push 0
push 0x17
mov ecx, esi
call fcn.0040168b
push edi
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov ecx, esi
call fcn.004015a5
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CWnd::DestroyWindow
lea ecx, [esp + 0xe0]
mov dword [esp + 0xb38], 8
call sub.MFC42.DLL_CAnimateCtrl::CAnimateCtrl
mov byte [esp + 0xb38], 7
jmp 0x43c681
push 0
push 0
push str.CMD_Code_Fail_
call sub.MFC42.DLL_AfxMessageBox
push 0
push 0x17
mov ecx, esi
call fcn.0040168b
push edi
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov ecx, esi
call fcn.004015a5
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CWnd::DestroyWindow
lea ecx, [esp + 0xe0]
mov dword [esp + 0xb38], 0xa
call sub.MFC42.DLL_CAnimateCtrl::CAnimateCtrl
mov byte [esp + 0xb38], 9
jmp 0x43c681
push ebx
push ebx
push str.mode_reset_Failed..
call sub.MFC42.DLL_AfxMessageBox
mov ecx, esi
call fcn.004015a5
lea ecx, [esp + 0xe0]
mov dword [esp + 0xb38], 0xc
call sub.MFC42.DLL_CAnimateCtrl::CAnimateCtrl
mov byte [esp + 0xb38], 0xb
jmp 0x43c681
push ebx
push ebx
push str.Download_mode_offline_Failed.._Retry_Upgrade___
call sub.MFC42.DLL_AfxMessageBox
mov ecx, esi
call fcn.004015a5
lea ecx, [esp + 0xe0]
mov dword [esp + 0xb38], 2
call sub.MFC42.DLL_CAnimateCtrl::CAnimateCtrl
mov byte [esp + 0xb38], 1
lea ecx, [esp + 0x74]
call fcn.004018d4
lea ecx, [esp + 0x10]
mov dword [esp + 0xb38], 0xffffffff
call fcn.0044cf84
xor eax, eax
mov ecx, dword [esp + 0xb30]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xb2c
ret