Function at 0x14001cbf0
Capabilities:
Check http status code
Check internet connectivity via wininet
Create directory
Delete file

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x9c0
mov qword [rsp + 0x160], 0xfffffffffffffffe
mov qword [rsp + 0xa18], rbx
mov rax, qword [0x1404e41f8]
xor rax, rsp
mov qword [rsp + reloc.mfc90u.dll_ATL::CStringT_char_class_StrTraitMFC_DLL_char_class_ATL::ChTraitsCRT_char_____::Find], rax
mov rbp, r8
mov rsi, rdx
mov qword [rsp + 0x40], rdx
mov r13, rcx
mov dword [rcx + 0x98], 0
call fcn.140023520
mov rcx, rax
lea rdx, [rsp + 0x48]
call fcn.140016ef0
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc90u.dll_CDumpContext::operator___1]
mov rcx, rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 3
jne 0x14001ccdb
lea rcx, [rsp + 0x58]
call qword [0x1403f4428]
nop
mov edx, SerializeElements<class ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsCRT<wchar_t> > > >
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc90u.dll_CPreviewDC::GrayStringW]
lea rdx, [0x1403f57dc]
lea rcx, [rsp + 0x40]
call qword [0x1403f4480]
nop
xor edx, edx
lea rcx, [rsp + 0x40]
call fcn.14003e230
nop
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc90u.dll_CView::CView]
xor al, al
jmp 0x14001d563
mov rax, qword [rbp]
mov edx, dword [rsi + 0x38]
mov rcx, rbp
call qword [rax + 0x28]
lea rdx, str.DriverDownload
lea rcx, [rsp + 0x70]
call qword [0x1403f4480]
lea r8, [rsp + 0x38]
mov rdx, rax
mov rcx, r13
call fcn.140019110
lea rcx, [rsp + 0x60]
call qword [0x1403f4428]
nop
xor edx, edx
lea rcx, [rsp + 0xd8]
call qword [sym.imp.WININET.dll_InternetGetConnectedState]
test eax, eax
jne 0x14001cd92
lea rcx, [rsp + 0x38]
call qword [0x1403f4428]
nop
mov edx, 0x8003
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc90u.dll_CPreviewDC::GrayStringW]
xor edx, edx
lea rcx, [rsp + 0x38]
call fcn.14003e230
nop
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc90u.dll_CView::CView]
mov dword [r13 + 0x98], 1
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + 0x40]
nop
lea rcx, [rsp + 0x60]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc90u.dll_CView::CView]
xor al, al
jmp 0x14001d563
mov rax, qword [rsi + 0x30]
mov rcx, qword [rax]
mov qword [rsp + 0xa8], rcx
mov rax, qword [rsi]
mov qword [rsp + 0xa0], rax
movaps xmm0, xmmword [rsp + 0xa0]
movdqa xmmword [rsp + 0xa0], xmm0
mov r15, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0xa8]
nop dword [rax]
mov rbx, qword [rsi + 0x30]
test r15, r15
je 0x14001cdde
cmp r15, qword [rsi]
je 0x14001cde4
call qword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp rdi, rbx
je 0x14001d529
test r15, r15
jne 0x14001cdfd
call qword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor r11d, r11d
jmp 0x14001ce00
mov r11, qword [r15]
cmp rdi, qword [r11 + 0x30]
jne 0x14001ce0c
call qword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov rsi, qword [rdi + 0x20]
cmp dword [r13 + 0x98], 0
jne 0x14001d4ed
cmp dword [rsi + 0x14], 1
je 0x14001ce36
lea rcx, [rsi + 0x78]
call qword [sym.imp.mfc90u.dll_CStatusBar::GetThisMessageMap]
test al, al
jne 0x14001d3af
cmp dword [rsi + 0x14], 1
je 0x14001d3af
mov r8, rbp
mov rdx, rsi
mov rcx, r13
call fcn.140019330
cmp dword [r13 + 0x98], 0
jne 0x14001d4b1
mov rax, qword [rbp]
mov rdx, rsi
mov rcx, rbp
call qword [rax + 0x30]
lea rdx, [rsi + 0x20]
mov rcx, r13
call fcn.14001b1f0
test eax, eax
je 0x14001ce8b
mov rax, qword [rbp]
mov rdx, rsi
mov rcx, rbp
call qword [rax + 0x38]
jmp 0x14001d3af
lea rcx, [rsp + 0x190]
mov rax, qword [str.Accept:___r_n_r_n]
mov qword [rcx], rax
mov rax, qword [0x1403ff468]
mov qword [rcx + 8], rax
mov rax, qword [0x1403ff470]
mov qword [rcx + 0x10], rax
mov rax, qword [0x1403ff478]
mov qword [rcx + 0x18], rax
lea rcx, [rsp + 0x190]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
lea rcx, [rsi + 0x80]
call qword [sym.imp.mfc90u.dll_CDumpContext::operator___1]
mov rdx, rax
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x20000000
mov r9d, ebx
lea r8, [rsp + 0x190]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.WININET.dll_InternetOpenUrlW]
mov rbx, rax
test rax, rax
jne 0x14001d028
lea r8, [rsp + 0xb8]
lea rdx, [rsp + 0x1b0]
lea rcx, [rsp + 0x80]
call qword [sym.imp.WININET.dll_InternetGetLastResponseInfoW]
cmp dword [rsp + 0x80], reloc.mfc90u.dll_CFile::CFile
jne 0x14001d07a
lea rcx, [rsp + 0x110]
call fcn.14000b000
nop
lea rcx, [rsp + 0x110]
call fcn.14002d890
lea rdx, [rsi + 0x20]
lea rcx, [rsp + 0x110]
call fcn.14002de60
mov qword [rax], rsi
lea rdx, [rsp + 0x110]
mov rcx, r13
call fcn.14001b440
nop
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0xf8], rax
mov rcx, qword [rsp + 0x110]
mov qword [rsp + 0xf0], rcx
mov rax, qword [rax]
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x100], rcx
movaps xmm0, xmmword [rsp + 0xf0]
movdqa xmmword [rsp + 0x170], xmm0
movaps xmm1, xmmword [rsp + 0x100]
movdqa xmmword [rsp + reloc.mfc90u.dll_CChevronOwnerDrawMenu::CChevronOwnerDrawMenu], xmm1
lea r9, [rsp + 0x170]
lea r8, [rsp + reloc.mfc90u.dll_CChevronOwnerDrawMenu::CChevronOwnerDrawMenu]
lea rdx, [rsp + 0x180]
lea rcx, [rsp + 0x110]
call fcn.14002dcb0
mov rcx, qword [rsp + 0x140]
call sub.mfc90u.dll_CStatusBar::CStatusBar
xor eax, eax
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], rax
mov rcx, qword [rsp + 0x110]
call sub.mfc90u.dll_CStatusBar::CStatusBar
jmp 0x14001d07a
xor eax, eax
mov dword [rsp + 0x68], eax
mov dword [rsp + 0x88], 4
mov dword [rsp + 0x98], eax
lea rax, [rsp + 0x98]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x88]
lea r8, [rsp + 0x68]
mov edx, 0x20000013
mov rcx, rbx
call qword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x14001d07a
cmp dword [rsp + 0x68], reloc.mfc90u.dll_CFile::CFile
je 0x14001d430
mov rcx, rbx
call qword [sym.imp.WININET.dll_InternetCloseHandle]
lea rdx, [rsi + 0x80]
lea rcx, [rsp + 0xb0]
call qword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
nop
lea r8, [0x1403ff83c]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0xe8]
call fcn.140002470
nop
lea r8, [rsi + 0x68]
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.140014560
nop
lea rcx, [rsp + 0xe8]
call qword [sym.imp.mfc90u.dll_CView::CView]
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc90u.dll_CDumpContext::operator___1]
mov rcx, rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea rdx, [rsi + 0x80]
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
nop
mov edx, 0x2f
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc90u.dll_CMDIFrameWnd::PreTranslateMessage]
mov ebx, eax
cmp eax, 0xffffffff
je 0x14001d155
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc90u.dll_CDocObjectServer::XOleObject::GetExtent]
sub eax, ebx
lea r8d, [rax - 1]
lea rdx, [rsp + 0xe0]
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc90u.dll_PX_Bool]
nop
mov rdx, rax
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc90u.dll_CToolBarCtrl::CToolBarCtrl]
nop
lea rcx, [rsp + 0xe0]
call qword [sym.imp.mfc90u.dll_CView::CView]
mov edx, 0x3f
xor r8d, r8d
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc90u.dll_CRichEditView::EditStreamCallBack]
cmp eax, 0xffffffff
je 0x14001d1a1
mov r8d, eax
lea rdx, [rsp + 0xd0]
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc90u.dll_CDockState::GetVersion]
nop
mov rdx, rax
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc90u.dll_CToolBarCtrl::CToolBarCtrl]
nop
lea rcx, [rsp + 0xd0]
call qword [sym.imp.mfc90u.dll_CView::CView]
mov edx, 0x5f
xor r8d, r8d
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc90u.dll_CRichEditView::EditStreamCallBack]
mov ebx, eax
cmp eax, 0xffffffff
je 0x14001d1fd
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc90u.dll_CDocObjectServer::XOleObject::GetExtent]
sub eax, ebx
lea r8d, [rax - 1]
lea rdx, [rsp + 0xc0]
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc90u.dll_PX_Bool]
nop
mov rdx, rax
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc90u.dll_CToolBarCtrl::CToolBarCtrl]
nop
lea rcx, [rsp + 0xc0]
call qword [sym.imp.mfc90u.dll_CView::CView]
mov r8, qword [rsp + 0x30]
lea rdx, [0x1403ffa58]
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc90u.dll_CDaoRecordset::AllocDatabase]
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc90u.dll_CBitmapButton::GetRuntimeClass]
mov rbx, rax
lea rcx, [rsp + 0xb0]
call qword [sym.imp.mfc90u.dll_CBitmapButton::GetRuntimeClass]
mov r8, rax
mov qword [rsp + 0x20], rbp
mov r9, rbx
mov rdx, qword [rsp + 0x38]
mov rcx, r13
call fcn.140018480
test eax, eax
setne al
test al, al
je 0x14001d389
lea rcx, [rsp + 0x58]
call qword [0x1403f4428]
nop
lea rax, [rsp + 0xc8]
mov qword [rsp + 0x88], rax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0xc8]
call qword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
mov rbx, rax
call fcn.140023520
mov rcx, rax
lea r8, [rsp + 0x58]
mov rdx, rbx
call fcn.14001fd20
lea r11, [rsp + 0x70]
mov qword [rsp + 0x88], r11
lea rdx, [rsi + 0x68]
lea rcx, [rsp + 0x70]
call qword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
mov rbx, rax
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0xa0]
call qword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
nop
mov r8, rbx
mov rdx, rax
mov rcx, r13
call fcn.14001a5f0
test al, al
jne 0x14001d36f
lea rcx, [rsp + 0x78]
call qword [0x1403f4428]
nop
lea rcx, [rsp + 0x90]
call qword [0x1403f4428]
nop
mov edx, 0xa0
lea rcx, [rsp + 0x78]
call qword [sym.imp.mfc90u.dll_CPreviewDC::GrayStringW]
lea rcx, [rsp + 0x78]
call qword [sym.imp.mfc90u.dll_CDumpContext::operator___1]
mov rdx, rax
mov r8, qword [rsi + 0x18]
lea rcx, [rsp + 0x90]
call qword [sym.imp.mfc90u.dll_COleServerDoc::XOleObject::EnumAdvise]
xor edx, edx
lea rcx, [rsp + 0x90]
call fcn.14003e230
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc90u.dll_CDumpContext::operator___1]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
nop
lea rcx, [rsp + 0x90]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x78]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc90u.dll_CView::CView]
mov r11, qword [rbp]
mov rdx, rsi
mov rcx, rbp
call qword [r11 + 0x38]
nop
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0xb0]
call qword [sym.imp.mfc90u.dll_CView::CView]
test r15, r15
jne 0x14001d3ba
call qword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp byte [rdi + 0x29], 0
je 0x14001d3d0
call qword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov rsi, qword [rsp + 0x40]
jmp 0x14001cdd0
mov rax, qword [rdi + 0x10]
cmp byte [rax + 0x29], 0
jne 0x14001d406
mov rdi, rax
mov rax, qword [rax]
cmp byte [rax + 0x29], 0
jne 0x14001d3fc
nop word [rax + rax]
mov rdi, rax
mov rax, qword [rax]
cmp byte [rax + 0x29], 0
je 0x14001d3f0
mov rsi, qword [rsp + 0x40]
jmp 0x14001cdd0
mov rax, qword [rdi + 8]
cmp byte [rax + 0x29], 0
jne 0x14001d423
cmp rdi, qword [rax + 0x10]
jne 0x14001d423
mov rdi, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x29], 0
je 0x14001d410
mov rdi, rax
mov rsi, qword [rsp + 0x40]
jmp 0x14001cdd0
lea rcx, [rsp + 0x40]
call qword [0x1403f4428]
nop
lea rcx, [rsp + 0x70]
call qword [0x1403f4428]
nop
mov edx, 0x12c
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc90u.dll_CPreviewDC::GrayStringW]
xor edx, edx
lea rcx, [rsp + 0x40]
call fcn.14003e230
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov r11, qword [rbp]
mov rcx, rbp
call qword [r11 + 0x40]
nop
lea rcx, [rsp + 0x70]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x60]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc90u.dll_CView::CView]
xor al, al
jmp 0x14001d563
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov r11, qword [rbp]
mov rcx, rbp
call qword [r11 + 0x40]
cmp dword [r13 + 0x98], 0
sete bl
lea rcx, [rsp + 0x60]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc90u.dll_CView::CView]
mov al, bl
jmp 0x14001d563
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov r11, qword [rbp]
mov rcx, rbp
call qword [r11 + 0x40]
cmp dword [r13 + 0x98], 0
sete bl
lea rcx, [rsp + 0x60]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc90u.dll_CView::CView]
mov al, bl
jmp 0x14001d563
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov r11, qword [rbp]
mov rcx, rbp
call qword [r11 + 0x40]
cmp dword [r13 + 0x98], 0
sete bl
lea rcx, [rsp + 0x60]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc90u.dll_CView::CView]
mov al, bl
mov rcx, qword [rsp + reloc.mfc90u.dll_ATL::CStringT_char_class_StrTraitMFC_DLL_char_class_ATL::ChTraitsCRT_char_____::Find]
xor rcx, rsp
call fcn.1403addc0
mov rbx, qword [rsp + 0xa18]
add rsp, 0x9c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret