Function at 0x40a730
Capabilities:
Initialize winsock library
Parse url
Resolve dns

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70c
mov eax, dword [0x43b004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x1000
push 0
mov edi, ecx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [ebp - 0x6c0], esi
test esi, esi
je 0x40b32a
push 0
push str.SOFTWAREK7_ComputingK7TotalSecurityCommonInfoUpdates
push 0x80000002
lea ebx, [esi + 0x800]
mov dword [edi + 0x1024], 0
call fcn.00413e50
mov dword [ebp - 0x6c8], eax
test eax, eax
je 0x40a7b5
lea ecx, [edi + 0x1024]
push ecx
push str.ProductType
push eax
call fcn.00414170
push dword [ebp - 0x6c8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push str.K7CmnRes.dll
mov byte [edi + 0x102c], 0
mov byte [edi + 0x1b54], 0
mov byte [edi + 0x27f0], 0
mov byte [edi + 0x28f4], 0
mov byte [edi + 0x2934], 0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x6c4], eax
test eax, eax
je 0x40b31a
push 0x80
lea ecx, [edi + 0x1b54]
push ecx
push 0x33
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
mov dword [ebp - 0x6cc], eax
cmp eax, 2
jge 0x40a823
push str.UNKNOWN
lea eax, [edi + 0x1b54]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x104
lea eax, [edi + 0x27f0]
push eax
push 0x32
push dword [ebp - 0x6c4]
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x40
lea eax, [edi + 0x28f4]
push eax
push 0x35
push dword [ebp - 0x6c4]
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x40
lea eax, [edi + 0x2934]
push eax
push 0x36
push dword [ebp - 0x6c4]
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x800
push esi
push 0x1452
push dword [ebp - 0x6c4]
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x118
lea eax, [ebp - 0x524]
mov dword [ebp - 0x6c8], 0
push 0
push eax
call fcn.00416ee0
add esp, 0xc
mov dword [ebp - 0x528], 0x11c
lea eax, [ebp - 0x528]
push eax
call fcn.00414e90
add esp, 4
test eax, eax
je 0x40a8d6
xor eax, eax
mov ecx, 1
cmp dword [ebp - 0x524], 5
cmove eax, ecx
mov dword [ebp - 0x6c8], eax
push 0
push str.SOFTWAREK7_ComputingK7TotalSecurityCommonInfoUpdates
push 0x80000002
mov dword [edi + 0x1028], 0
call fcn.00413e50
mov dword [ebp - 0x6bc], eax
test eax, eax
je 0x40a919
lea ecx, [edi + 0x1028]
push ecx
push str.ProductMode
push eax
call fcn.00414170
push dword [ebp - 0x6bc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [edi + 0x1028], 1
jne 0x40a92a
mov byte [ebx], 0
jmp 0x40ab4a
cmp dword [edi + 0x1024], 3
jne 0x40ab9b
push 0
push str.SOFTWAREK7_ComputingK7TotalSecurityCommonInfoUpdates
mov byte [ebx], 0
push 0x80000002
mov dword [ebp - 0x6cc], 0x400
call fcn.00413e50
mov dword [ebp - 0x6bc], eax
test eax, eax
je 0x40a97c
push 0x104
push ebx
push str.BizServerAddr
push eax
call fcn.004141c0
push dword [ebp - 0x6bc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 8
push str.https:__
push ebx
call fcn.00421130
add esp, 0xc
test eax, eax
je 0x40ab82
push 7
push str.http:__
push ebx
call fcn.00421130
add esp, 0xc
test eax, eax
je 0x40ab82
push 0
push str.SOFTWAREK7_ComputingK7TotalSecurityCommonInfoUpdates
push 0x80000002
call fcn.00413e50
mov dword [ebp - 0x6bc], eax
test eax, eax
je 0x40ab4a
push 0x104
lea ecx, [ebp - 0x408]
push ecx
push str.BizServerAddr
push eax
call fcn.004141c0
push dword [ebp - 0x6bc]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, 1
jne 0x40ab44
lea eax, [ebp - 0x208]
mov dword [ebp - 0x6fc], 0
mov dword [ebp - 0x6f8], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x708]
movlpd qword [ebp - 0x704], xmm0
push eax
push 0
push 0
lea eax, [ebp - 0x408]
movlpd qword [ebp - 0x6f0], xmm0
push eax
movlpd qword [ebp - 0x6e8], xmm0
movlpd qword [ebp - 0x6e0], xmm0
movlpd qword [ebp - 0x6d8], xmm0
mov dword [ebp - 0x6d0], 0
mov dword [ebp - 0x708], 0x3c
mov dword [ebp - 0x6f4], 0x200
call dword [sym.imp.WININET.dll_InternetCrackUrlA]
test eax, eax
je 0x40ab44
mov eax, dword [0x43e078]
test eax, eax
jne 0x40aaeb
lea eax, [ebp - 0x6b8]
xor esi, esi
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x40ab44
lea eax, [ebp - 0x208]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
cmp eax, 0xffffffff
jne 0x40aace
lea eax, [ebp - 0x208]
push eax
call dword [sym.imp.WS2_32.dll_gethostbyname]
test eax, eax
je 0x40aad8
cmp word [eax + 8], 2
jne 0x40aad8
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [0x43e078], eax
mov esi, 1
call dword [sym.imp.WS2_32.dll_WSACleanup]
test esi, esi
je 0x40ab44
mov eax, dword [0x43e078]
test eax, eax
je 0x40ab44
push eax
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
lea eax, [ebp - 0x208]
push 0x437a24
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x208]
mov dword [ebp - 0x6f8], eax
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 0x6f4], eax
lea eax, [ebp - 0x6cc]
push eax
push ebx
push 0
lea eax, [ebp - 0x708]
push eax
call dword [sym.imp.WININET.dll_InternetCreateUrlA]
mov esi, dword [ebp - 0x6c0]
test eax, eax
jne 0x40ab82
jmp 0x40ab4a
mov esi, dword [ebp - 0x6c0]
push 0
push str.SOFTWAREK7_ComputingK7TotalSecurityCommonInfoUpdates
push 0x80000002
call fcn.00413e50
mov dword [ebp - 0x6bc], eax
test eax, eax
je 0x40ab82
push 0x104
push ebx
push str.BizServerAddr
push eax
call fcn.004141c0
push dword [ebp - 0x6bc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push esi
push ebx
push 0x436ea0
lea ebx, [edi + 0x102c]
push ebx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x40abe5
cmp dword [ebp - 0x6c8], 1
jne 0x40abd7
push 6
push str.https:
push esi
call fcn.00421130
add esp, 0xc
test eax, eax
jne 0x40abd7
push str.http:
lea ebx, [edi + 0x102c]
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [esi + 6]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
jmp 0x40abe5
push esi
lea ebx, [edi + 0x102c]
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [edi + 0x1004], 0
je 0x40b30e
push 0x300
call fcn.0041957c
add esp, 4
mov dword [edi + 0x100c], eax
test eax, eax
je 0x40b30e
mov dword [edi + 0x1010], 0
mov dword [eax], str.Status
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x4e
mov eax, dword [edi + 0x1010]
mov ecx, dword [edi + 0x100c]
lea edx, [eax + eax*2]
mov eax, dword [edi + 0x1004]
mov dword [ecx + edx*4 + 8], eax
inc dword [edi + 0x1010]
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4], str.TraceId
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x4e
mov eax, dword [edi + 0x1010]
mov edx, dword [edi + 0x1004]
add edx, 4
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x1010]
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4], str.RegStatus
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x4e
mov eax, dword [edi + 0x1010]
mov edx, dword [edi + 0x1004]
add edx, 8
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x1010]
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4], 0x437bcc
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x4e
mov eax, dword [edi + 0x1010]
mov edx, dword [edi + 0x1004]
add edx, 0x7a4
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x1010]
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4], 0x437bd0
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x4e
mov eax, dword [edi + 0x1010]
mov edx, dword [edi + 0x1004]
add edx, 0x7a0
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x1010]
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4], 0x437bd4
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x4e
mov edx, dword [edi + 0x1004]
mov eax, dword [edi + 0x1010]
add edx, 0x79c
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x1010]
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4], 0x437bd8
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x4e
mov eax, dword [edi + 0x1010]
mov edx, dword [edi + 0x1004]
add edx, 0x7a8
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x1010]
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4], 0x437bdc
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x4e
mov eax, dword [edi + 0x1010]
mov edx, dword [edi + 0x1004]
add edx, 0x7ac
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x1010]
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4], 0x437be0
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x4e
mov eax, dword [edi + 0x1010]
mov edx, dword [edi + 0x1004]
add edx, 0x7b0
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x1010]
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4], 0x437be4
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x53
mov eax, dword [edi + 0x1010]
mov edx, dword [edi + 0x1004]
add edx, 0x698
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x1010]
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4], str.AutoCheck
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x4e
mov eax, dword [edi + 0x1010]
mov edx, dword [edi + 0x1004]
add edx, 0x7b4
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x1010]
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4], 0x437be8
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x4e
mov eax, dword [edi + 0x1010]
mov edx, dword [edi + 0x1004]
add edx, 0x7b8
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x1010]
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4], str.CustomMsg
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x4e
mov eax, dword [edi + 0x1010]
mov edx, dword [edi + 0x1004]
add edx, 0xc
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x1010]
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4], 0x437a9c
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x53
mov eax, dword [edi + 0x1010]
mov edx, dword [edi + 0x1004]
add edx, 0x90
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x1010]
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4], str.PCName
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x53
mov eax, dword [edi + 0x1010]
mov edx, dword [edi + 0x1004]
add edx, 0x490
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x1010]
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4], str.PrevPCName
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x53
mov eax, dword [edi + 0x1010]
mov edx, dword [edi + 0x1004]
add edx, 0x594
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x1010]
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4], str.AckId
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x53
mov eax, dword [edi + 0x1010]
mov edx, dword [edi + 0x1004]
add edx, 0x10
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x1010]
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4], str.SasId
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x53
mov eax, dword [edi + 0x1010]
mov edx, dword [edi + 0x1004]
add edx, 0x800
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x1010]
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4], str.BizSrvId
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x53
mov eax, dword [edi + 0x1010]
mov edx, dword [edi + 0x1004]
add edx, 0x880
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x1010]
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4], str.SerialNo
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x53
mov eax, dword [edi + 0x1010]
mov edx, dword [edi + 0x1004]
add edx, 0x900
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x1010]
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4], str.PkgId
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x53
mov eax, dword [edi + 0x1010]
mov edx, dword [edi + 0x1004]
add edx, 0x940
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x1010]
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4], str.PkgComps
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x53
mov eax, dword [edi + 0x1010]
mov edx, dword [edi + 0x1004]
add edx, 0x9c0
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x1010]
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4], str.PkgName
mov eax, dword [edi + 0x1010]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov byte [eax + ecx*4 + 4], 0x53
mov eax, dword [edi + 0x1010]
mov edx, dword [edi + 0x1004]
add edx, 0xac4
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x100c]
mov dword [eax + ecx*4 + 8], edx
inc dword [edi + 0x1010]
push dword [ebp - 0x6c4]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041559f
mov esp, ebp
pop ebp
ret