Function at 0x403430
Capabilities:
Delete file
Download url
Get common file path
Receive data

Disassembly:
push 0xffffffffffffffff
push 0x46ab27
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x7ec
push ebx
push ebp
push esi
push edi
mov esi, ecx
call sub.MFC42.DLL_CCmdTarget::BeginWaitCursor
lea ecx, [esi + 0x3b8]
push 0x47f870
lea edi, [esi + 0x300]
lea ebx, [esi + 0x304]
call sub.MFC42.DLL_CString::operator_1
push eax
mov ecx, edi
call sub.MFC42.DLL_CString::operator
push eax
mov ecx, ebx
call sub.MFC42.DLL_CString::operator
lea ecx, [esi + 0x30c]
push 0x47f870
call sub.MFC42.DLL_CString::operator_1
lea edi, [esi + 0x3bc]
push 0x47f870
mov ecx, edi
lea ebx, [esi + 0x308]
call sub.MFC42.DLL_CString::operator_1
push eax
mov ecx, ebx
call sub.MFC42.DLL_CString::operator
xor ebp, ebp
mov ecx, esi
push ebp
push 0x3f6
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42.DLL_CWnd::ShowWindow
push ebp
push 0x3ed
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42.DLL_CWnd::ShowWindow
push ebp
push 0x3ee
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42.DLL_CWnd::ShowWindow
push ebp
mov ecx, esi
call sub.MFC42.DLL_CWnd::UpdateData
lea eax, [esp + 0x54]
push eax
push 0x50
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea ecx, [esp + 0xa4]
lea edx, [esp + 0x54]
push ecx
push ebp
push str.HASP
push edx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
lea eax, [esp + 0xa4]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push ebp
lea ecx, [esp + 0xa8]
push ebp
push ecx
push str.http:__localhost:1947_tab_dev.html
push ebp
call sub.urlmon.dll_URLDownloadToFileA
push str.http:__localhost:1947_tab_dev.html
call dword [sym.imp.WININET.dll_DeleteUrlCacheEntry]
lea ecx, [esp + 0x3c]
call sub.MFC42.DLL_CStdioFile::CStdioFile
lea ecx, [esp + 0x18]
mov dword [esp + 0x804], ebp
call sub.MFC42.DLL_CString::CString_2
mov byte [esp + 0x804], 1
lea ecx, [esp + 0x34]
call sub.MFC42.DLL_CString::CString_2
push str._typ_:
lea ecx, [esp + 0x3c]
mov byte [esp + 0x808], 2
call sub.MFC42.DLL_CString::CString_1
push str._loc_:
lea ecx, [esp + 0x34]
mov byte [esp + 0x808], 3
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x50]
mov byte [esp + 0x804], 4
call sub.MFC42.DLL_CString::CString_2
push ebp
lea edx, [esp + 0xa8]
push ebp
push edx
lea ecx, [esp + 0x48]
mov byte [esp + 0x810], 5
mov dword [esp + 0x34], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x20], 1
call sub.MFC42.DLL_CStdioFile::Open
test eax, eax
je 0x40372d
lea eax, [esp + 0x18]
lea ecx, [esp + 0x3c]
push eax
call sub.MFC42.DLL_CStdioFile::ReadString
test eax, eax
je 0x403731
mov bl, 6
push ebp
push 0x474580
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::Find_1
cmp eax, 0xffffffff
je 0x40365e
push ebp
push str.47559
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::Find_1
cmp eax, 0xffffffff
jne 0x40365e
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x40]
call sub.MFC42.DLL_CStdioFile::ReadString
test eax, eax
je 0x40365e
push ebp
push str.47559
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::Find_1
cmp eax, 0xffffffff
jne 0x40365e
lea edx, [esp + 0x18]
lea ecx, [esp + 0x3c]
push edx
call sub.MFC42.DLL_CStdioFile::ReadString
test eax, eax
jne 0x403638
mov eax, dword [esp + 0x38]
push ebp
push eax
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::Find_1
cmp eax, 0xffffffff
je 0x403715
lea ecx, [esp + 0x18]
push 0xa
lea edx, [esp + 0x28]
push ecx
push edx
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x808], bl
call fcn.00469e56
lea ecx, [esp + 0x24]
mov byte [esp + 0x804], 5
call sub.MFC42.DLL_CString::CString
push ebp
push str._Net
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::Find_1
cmp eax, 0xffffffff
je 0x403711
lea eax, [esp + 0x18]
lea ecx, [esp + 0x3c]
push eax
call sub.MFC42.DLL_CStdioFile::ReadString
test eax, eax
je 0x403715
mov ecx, dword [esp + 0x30]
push ebp
push ecx
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::Find_1
cmp eax, 0xffffffff
jne 0x4036f7
lea edx, [esp + 0x18]
lea ecx, [esp + 0x3c]
push edx
call sub.MFC42.DLL_CStdioFile::ReadString
test eax, eax
jne 0x4036cf
jmp 0x403715
push ebp
push str._Local_
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::Find_1
cmp eax, 0xffffffff
je 0x403715
inc dword [esp + 0x28]
jmp 0x403715
inc dword [esp + 0x20]
lea eax, [esp + 0x18]
lea ecx, [esp + 0x3c]
push eax
call sub.MFC42.DLL_CStdioFile::ReadString
test eax, eax
jne 0x4035fe
jmp 0x403731
mov dword [esp + 0x14], ebp
lea ecx, [esp + 0x3c]
call sub.MFC42.DLL_CStdioFile::Close
lea ecx, [esp + 0x1a0]
call fcn.00401080
mov eax, dword [esp + 0x14]
mov byte [esp + 0x804], 7
cmp eax, ebp
je 0x403763
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x3ec], ecx
jmp 0x40376e
mov dword [esp + 0x3ec], 1
push 0x47f870
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::CString_1
push 0x47f870
lea ecx, [esp + 0x14]
mov byte [esp + 0x808], 8
call sub.MFC42.DLL_CString::CString_1
push str._Hasp_Not_Found
lea ecx, [esi + 0x308]
mov byte [esp + 0x808], 9
call sub.MFC42.DLL_CString::operator_1
lea edx, [esp + 0x1c]
lea eax, [esp + 0x2c]
push edx
push eax
lea ecx, [esp + 0x1a8]
call fcn.004018d0
test eax, eax
je 0x40380b
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator
lea ebx, [esi + 0x30c]
push str.Local_HASP
mov ecx, ebx
call sub.MFC42.DLL_CString::operator_1
mov eax, dword [esp + 0x3e8]
test eax, eax
je 0x40380b
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x4037ff
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x40380b
push str.NetHasp
mov ecx, ebx
call sub.MFC42.DLL_CString::operator_1
push 0x47f870
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::operator_1
lea edx, [esp + 0x1c]
lea eax, [esp + 0x2c]
push edx
push eax
lea ecx, [esp + 0x1a8]
call fcn.00402700
lea ecx, [esp + 0x1c]
push ecx
mov ecx, edi
call sub.MFC42.DLL_CString::operator
mov edx, dword [esp + 0x1c]
mov eax, dword [edx - 8]
test eax, eax
je 0x4038c1
mov eax, dword [esp + 0x10]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4038b3
lea ecx, [esp + 0x10]
push 0x47453c
lea edx, [esp + 0x18]
push ecx
push edx
call sub.MFC42.DLL_operator_2
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x24]
push ecx
push eax
push edx
mov byte [esp + 0x810], 0xa
call sub.MFC42.DLL_operator_1
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x808], 0xb
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x24]
mov byte [esp + 0x804], 0xa
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x804], 9
call sub.MFC42.DLL_CString::CString
jmp 0x4038c1
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x10]
push eax
call sub.MFC42.DLL_CString::operator
mov eax, dword [esp + 0x7f4]
test eax, eax
je 0x4038dc
push str.SecureDongle_X
lea ecx, [esi + 0x30c]
call sub.MFC42.DLL_CString::operator_1
push 0x47f870
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::operator_1
push 0x1000
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x403935
push str.Remote_Desktop_use_session_is_detected._The_licenses_cannot_be_validated_via_RDP_remote_connections
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x14]
mov byte [esp + 0x804], 0xc
push ecx
lea ecx, [esi + 0x108]
call fcn.00404740
lea ecx, [esp + 0x14]
mov byte [esp + 0x804], 9
call sub.MFC42.DLL_CString::CString
mov ebp, 1
mov eax, dword [esp + 0x7f4]
mov ecx, dword [esp + 0x2c]
cmp eax, ecx
jne 0x40394f
cmp eax, 1
jle 0x4039e1
jmp 0x403954
cmp eax, 1
jle 0x40396b
push str.More__than_one_SDX_key_is_detected
lea ecx, [esi + 0x30c]
call sub.MFC42.DLL_CString::operator_1
mov eax, dword [esp + 0x7f4]
cmp eax, dword [esp + 0x2c]
je 0x4039a5
push str.You_have_to_INIT_SDX_key_first_
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString_1
lea edx, [esp + 0x14]
lea ecx, [esi + 0x108]
push edx
mov byte [esp + 0x808], 0xd
call fcn.00404740
mov byte [esp + 0x804], 9
lea ecx, [esp + 0x14]
jmp 0x4039d7
push str.Leave_only_single_SDX_hasp_connected_and_click_Refresh
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString_1
lea eax, [esp + 0x14]
lea ecx, [esi + 0x108]
push eax
mov byte [esp + 0x808], 0xe
call fcn.00404740
mov byte [esp + 0x804], 9
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString
mov ebp, 1
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
add ecx, edx
cmp ecx, 1
jg 0x403b7c
push 0x474444
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Find
cmp eax, 0xffffffff
jne 0x403b7c
mov eax, dword [esp + 0x3e8]
test eax, eax
jne 0x403bc8
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x1a0]
push eax
call fcn.00401660
test eax, eax
je 0x403bc8
mov eax, dword [esp + 0x10]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x403ac3
mov ecx, dword [esp + 0x1c]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
je 0x403ac3
lea edx, [esp + 0x10]
lea eax, [esp + 0x20]
push edx
push str._WRONG__More_then_one_key._The_keys_are:_local
push eax
call sub.MFC42.DLL_operator_3
push 0x47453c
lea ecx, [esp + 0x28]
mov bl, 0x10
push eax
push ecx
mov byte [esp + 0x810], bl
call sub.MFC42.DLL_operator_2
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x808], 0x11
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x24]
mov byte [esp + 0x804], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x804], 9
call sub.MFC42.DLL_CString::CString
push 0
push 0
push str._You_PC_connected_to_LOCAL_and_NET_Hasp._n_nThe_program_can_work_with_one_key_only._Unplug_HASP_and_start_again
call sub.MFC42.DLL_AfxMessageBox
mov edx, dword [esp + 0x10]
mov eax, dword [edx - 8]
test eax, eax
jne 0x403ae1
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x10]
push eax
call sub.MFC42.DLL_CString::operator
jmp 0x403b6a
lea ecx, [esp + 0x10]
push 0x4743a0
lea edx, [esp + 0x18]
push ecx
push edx
call sub.MFC42.DLL_operator_2
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x20]
push ecx
push eax
push edx
mov byte [esp + 0x810], 0x12
call sub.MFC42.DLL_operator_1
push str.___NetHasp_
push eax
lea eax, [esp + 0x2c]
mov bl, 0x13
push eax
mov byte [esp + 0x810], bl
call sub.MFC42.DLL_operator_2
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x808], 0x14
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x24]
mov byte [esp + 0x804], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x804], 0x12
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x804], 9
call sub.MFC42.DLL_CString::CString
push str.NetHasp
lea ecx, [esi + 0x30c]
call sub.MFC42.DLL_CString::operator_1
jmp 0x403bc8
push str.More__than_one_hasp_key_is_detected
lea ecx, [esi + 0x30c]
call sub.MFC42.DLL_CString::operator_1
push str.Leave_only_single_hasp_connected_and_click_Refresh
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x20]
mov byte [esp + 0x804], 0xf
push ecx
lea ecx, [esi + 0x108]
call fcn.00404740
lea ecx, [esp + 0x20]
mov byte [esp + 0x804], 9
call sub.MFC42.DLL_CString::CString
mov ebp, 1
mov edx, ebp
lea edi, [esi + 0x310]
neg edx
sbb edx, edx
mov ecx, edi
and edx, 0xff
push edx
call fcn.00404760
xor eax, eax
mov ecx, edi
test ebp, ebp
setne al
push eax
call fcn.00404790
mov edi, ebp
mov ecx, esi
neg edi
sbb edi, edi
and edi, 0xfffffffb
add edi, 5
push edi
push 0x3ed
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42.DLL_CWnd::ShowWindow
push edi
push 0x3ee
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42.DLL_CWnd::ShowWindow
push edi
push 0x3f3
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42.DLL_CWnd::ShowWindow
push edi
push 0x3f4
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42.DLL_CWnd::ShowWindow
mov ecx, ebp
neg ecx
sbb ecx, ecx
and ecx, 5
push ecx
push 0x3ec
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42.DLL_CWnd::ShowWindow
push 0x47f870
lea ecx, [esi + 0x3b8]
call sub.MFC42.DLL_CString::operator_1
lea ebx, [esi + 0x300]
push eax
mov ecx, ebx
call sub.MFC42.DLL_CString::operator
lea edi, [esi + 0x304]
push eax
mov ecx, edi
call sub.MFC42.DLL_CString::operator
mov edx, dword [esp + 0x10]
mov eax, dword [edx - 8]
test eax, eax
je 0x403cf1
lea eax, [esp + 0x10]
lea ecx, [esi + 0x308]
push eax
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x10]
push 1
push ecx
lea ecx, [esp + 0x1a8]
call fcn.00401a80
lea edx, [esp + 0x10]
mov ecx, edi
push edx
call sub.MFC42.DLL_CString::operator
lea eax, [esp + 0x10]
push 0
push eax
lea ecx, [esp + 0x1a8]
call fcn.00401a80
lea ecx, [esp + 0x10]
push ecx
mov ecx, ebx
call sub.MFC42.DLL_CString::operator
jmp 0x403cf6
mov ebp, 1
cmp dword [esp + 0x7f4], 1
jne 0x403d1f
lea edx, [esp + 0x10]
push 2
push edx
lea ecx, [esp + 0x1a8]
call fcn.00401a80
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
call sub.MFC42.DLL_CString::operator
xor ecx, ecx
test ebp, ebp
sete cl
push ecx
push 0x3f9
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42.DLL_CWnd::EnableWindow
push 5
push 0x3f6
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42.DLL_CWnd::ShowWindow
push 0
mov ecx, esi
call sub.MFC42.DLL_CWnd::UpdateData
mov ecx, esi
call sub.MFC42.DLL_CCmdTarget::EndWaitCursor
lea ecx, [esp + 0x10]
mov byte [esp + 0x804], 8
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x804], 7
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1a0]
mov byte [esp + 0x804], 5
call fcn.00401220
lea ecx, [esp + 0x50]
mov byte [esp + 0x804], 4
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x30]
mov byte [esp + 0x804], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x38]
mov byte [esp + 0x804], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x34]
mov byte [esp + 0x804], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x804], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x3c]
mov dword [esp + 0x804], 0xffffffff
call fcn.0046a084
mov ecx, dword [esp + 0x7fc]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x7f8
ret