Function at 0x40fb00
Capabilities:
Read file on windows
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x416ea0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x1058
call fcn.00414ad0
push ebx
push esi
push edi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x10], esp
xor edi, edi
mov dword [ebp - 4], edi
call fcn.00402740
mov esi, dword [eax + 0x158]
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x30], esi
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 1
mov dword [ebp - 0x18], edi
cmp edi, esi
jge 0x40fe2a
dec esi
cmp edi, esi
jne 0x40fb85
call sub.MFC42.DLL_AfxGetThread
test eax, eax
je 0x40fb6d
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x7c]
jmp 0x40fb6f
xor eax, eax
mov ecx, dword [eax + 0xc0]
push 0
push 2
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42.DLL_CWnd::EnableWindow
mov ecx, dword [ebp + 0xc]
push edi
call sub.MFC42.DLL_CStringList::FindIndex
add eax, 8
lea ecx, [ebp - 0x14]
push eax
call fcn.00414486
push 0
push 0
push 0
push 0
push 1
push str.MyProgram_1.0
lea ecx, [ebp - 0x48]
call sub.MFC42.DLL_CInternetSession::CInternetSession
mov eax, dword [ebp + 8]
push 0x8000
push eax
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCRT.dll__open]
mov esi, eax
add esp, 8
test esi, esi
mov dword [ebp - 0x28], esi
jge 0x40fbe6
push str.cant_open_source_file._n
call dword [sym.imp.MSVCRT.dll_printf]
add esp, 4
push 0
call dword [sym.imp.MSVCRT.dll_exit]
push esi
call dword [sym.imp.MSVCRT.dll__filelength]
add esp, 4
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 3
call fcn.00402740
mov ecx, dword [ebp - 0x14]
mov eax, dword [eax + 0xf4]
push ecx
mov ecx, dword [ebp - 0x20]
push eax
call fcn.004103e0
mov edx, dword [ebp - 0x14]
push 0
push 0
push str.welcome
push str.fujixerox
push edx
lea ecx, [ebp - 0x48]
call sub.MFC42.DLL_CInternetSession::GetFtpConnection
push 1
push 2
push 0x40000000
push str._pub_fujixerox_centreware_Helen_Hanabi.dlb
mov ecx, eax
mov dword [ebp - 0x34], eax
call sub.MFC42.DLL_CFtpConnection::OpenFile
mov dword [ebp - 0x2c], eax
xor ebx, ebx
push 1
push 0
push 0
lea eax, [ebp - 0x68]
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x40fc70
lea ecx, [ebp - 0x68]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [ebp - 0x68]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
mov ecx, 0x400
xor eax, eax
lea edi, [ebp - 0x1068]
push 0x1000
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x1068]
push eax
push esi
call dword [sym.imp.MSVCRT.dll__read]
mov esi, eax
add esp, 0xc
test esi, esi
je 0x40fd23
mov ecx, dword [ebp - 0x2c]
lea eax, [ebp - 0x1068]
push esi
push eax
mov edx, dword [ecx]
call dword [edx + 0x40]
add ebx, esi
mov esi, dword [ebp - 0x20]
push 0
lea eax, [ebx + ebx*4]
lea eax, [eax + eax*4]
shl eax, 2
cdq
idiv dword [ebp - 0x24]
mov dword [esi + 0x90], eax
mov ecx, dword [esi + 0xf8]
push eax
push 0x402
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
lea ecx, [ebp - 0x1c]
call sub.MFC42.DLL_CString::CString
mov edx, dword [esi + 0x90]
lea eax, [ebp - 0x1c]
push edx
push 0x41f588
push eax
mov byte [ebp - 4], 4
call sub.MFC42.DLL_CString::Format
mov ecx, dword [ebp - 0x1c]
add esp, 0xc
push ecx
lea ecx, [esi + 0x118]
call sub.MFC42.DLL_CWnd::SetWindowTextA
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 3
call fcn.00414462
mov esi, dword [ebp - 0x28]
jmp 0x40fc46
mov edx, dword [ebp - 0x28]
push edx
call dword [sym.imp.MSVCRT.dll__close]
mov ecx, dword [ebp - 0x2c]
add esp, 4
mov eax, dword [ecx]
call dword [eax + 0x54]
mov ecx, dword [ebp - 0x24]
push ebx
push ecx
push str.filesize___ld._readsize___d
call dword [sym.imp.MSVCRT.dll_printf]
mov esi, dword [ebp - 0x34]
add esp, 0xc
test esi, esi
mov dword [ebp - 4], 2
je 0x40fd69
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x14]
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 4]
call fcn.00402740
mov ecx, dword [ebp - 0x14]
mov eax, dword [eax + 0xf4]
mov esi, dword [ebp - 0x20]
push ecx
push eax
mov ecx, esi
call fcn.00410590
call fcn.00402740
mov ecx, eax
call fcn.00403c00
test eax, eax
jne 0x40fda4
push 0x8a6
call fcn.00402740
mov ecx, eax
call fcn.00402780
call fcn.00402740
mov edx, dword [ebp - 0x14]
mov eax, dword [eax + 0xf4]
push edx
push eax
mov ecx, esi
call fcn.00410750
call fcn.00402740
mov ecx, eax
call fcn.00403c00
test eax, eax
jne 0x40fddc
push 0x902
call fcn.00402740
mov ecx, eax
call fcn.00402780
mov eax, dword [esi + 0x94]
test eax, eax
je 0x40fe5d
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x18]
lea esi, [eax - 1]
cmp esi, edi
jle 0x40fe1e
push edi
call fcn.00402740
mov ecx, eax
add ecx, 0x14c
call sub.MFC42.DLL_CStringList::FindIndex
push eax
call fcn.00402740
mov ecx, eax
add ecx, 0x14c
call sub.MFC42.DLL_CStringList::RemoveAt
dec esi
cmp esi, edi
jg 0x40fdf3
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 1
call fcn.00414984
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0
call fcn.00414462
lea ecx, [ebp + 8]
mov dword [ebp - 4], 0xffffffff
call fcn.00414462
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 1
call fcn.00414984
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x18], eax
mov edi, eax
jmp 0x40fb4e