Function at 0x4c8d50
Capabilities:
Get installed programs
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1110
call fcn.004f18a0
mov eax, dword [0x5322a8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, ecx
push edi
mov dword [ebp - 0x10fc], eax
mov dword [ebp - 0x1108], esi
call fcn.004bc7d0
xor ecx, ecx
push 0x1fe
push ecx
lea edx, [ebp - 0xed2]
push edx
mov dword [ebp - 0x10f4], eax
mov word [ebp - 0xed4], cx
call fcn.004e7d90
mov edi, dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
add esp, 0xc
call edi
movzx eax, ax
mov ecx, eax
and ecx, 0x3ff
cmp ecx, 4
jne 0x4c8e1a
and eax, 0xfc00
cmp eax, 0x400
jne 0x4c8e1a
call fcn.004bb770
test eax, eax
je 0x4c8e0b
call fcn.004cb7e0
push str.7.17.0330N1
test eax, eax
je 0x4c8df5
push 0x522e48
push str._s_t_s_t_t_t_tConsole_t_t_t_t
lea edx, [ebp - 0xed4]
push edx
jmp 0x4c8eb8
push 0x522e30
push str._s_t_s_t_t_t_tConsole_t_t_t_t
lea eax, [ebp - 0xed4]
push eax
jmp 0x4c8eb8
push str.7.17.0330N1
push 0x528e60
jmp 0x4c8eac
call edi
movzx eax, ax
mov edx, eax
and edx, 0x3ff
cmp edx, 4
jne 0x4c8e86
and eax, 0xfc00
cmp eax, 0x800
jne 0x4c8e86
call fcn.004bb770
test eax, eax
je 0x4c8e6e
call fcn.004cb7e0
push str.7.17.0330N1
test eax, eax
je 0x4c8e62
push 0x528e90
push str._s_t_s_t_t_t_tConsole_t_t_t_t
lea eax, [ebp - 0xed4]
push eax
jmp 0x4c8eb8
push 0x528ea8
push str._s_t_s_t_t_t_tConsole_t_t_t_t
jmp 0x4c8eb1
push str.7.17.0330N1
push 0x528ec0
push str._s_t_s_t_t_t_t_t_t_t_t
lea edx, [ebp - 0xed4]
push edx
jmp 0x4c8eb8
call fcn.004bb770
push str.7.17.0330N1
test eax, eax
je 0x4c8ea7
push str.WiNet_Console
push str._s_t_s_t_t_t_tConsole_t_t_t_t
lea eax, [ebp - 0xed4]
push eax
jmp 0x4c8eb8
push str.WiNet_Client
push str._s_t_s_t_t_t_t_t_t_t_t
lea ecx, [ebp - 0xed4]
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
mov ebx, dword [ebp - 0x10fc]
add esp, 0x10
push 0x25a
lea edi, [ebp - 0xed4]
call fcn.004c0b90
push 0x11c
lea edx, [ebp - 0x1e0]
push 0
push edx
call fcn.004e7d90
add esp, 0x10
lea eax, [ebp - 0x1e0]
push eax
mov dword [ebp - 0x1e0], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x10f4], 0
mov dword [ebp - 0x10f0], 0
je 0x4c8f25
lea ecx, [ebp - 0x10f0]
push ecx
push 0x208
jmp 0x4c8f2e
lea edx, [ebp - 0x10f0]
push edx
push 8
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall
push reloc.WS2_32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4c9daf
push 0x7fe
push eax
lea ecx, [ebp - 0xaca]
push ecx
mov word [ebp - 0xacc], ax
call fcn.004e7d90
push 0x400
mov dword [ebp - 0x10e8], 0
call fcn.004e4240
mov esi, eax
push 0x800
mov dword [ebp - 0x10ec], esi
call fcn.004e4240
mov edi, eax
push 0x208
mov dword [ebp - 0x10f8], edi
call fcn.004e4240
push 0x800
lea edx, [ebp - 0xacc]
mov ebx, eax
push 0
push edx
mov dword [ebp - 0x110c], ebx
mov dword [ebp - 0x10e0], 0
call fcn.004e7d90
push 0x400
push 0
push esi
call fcn.004e7d90
mov eax, dword [ebp - 0x10f0]
add esp, 0x30
push 0x400
push esi
push 0
push eax
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
test eax, eax
jne 0x4c9d8d
sub edi, str.SoftwareMicrosoftWindowsCurrentVersionUninstall_
mov dword [ebp - 0x1110], edi
jmp 0x4c9000
mov edi, dword [ebp - 0x10f8]
push 0x800
push 0
push edi
mov dword [ebp - 0x10e4], 0
call fcn.004e7d90
mov edx, dword [ebp - 0x1110]
add esp, 0xc
mov eax, str.SoftwareMicrosoftWindowsCurrentVersionUninstall_
jmp 0x4c9030
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4c9030
mov eax, dword [ebp - 0x10ec]
mov edx, eax
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4c9047
sub eax, edx
add edi, 0xfffffffe
jmp 0x4c9060
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4c9060
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
cmp dword [ebp - 0x10f4], 0
rep movsb byte es:[edi], byte [esi]
je 0x4c90a9
mov edx, dword [ebp - 0x10f8]
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea ecx, [ebp - 0x10e4]
push ecx
push 0x201
push 0
push edx
push reloc.WS2_32.dll_bind
call edi
jmp 0x4c90cc
mov ecx, dword [ebp - 0x10f8]
lea eax, [ebp - 0x10e4]
push eax
push 1
push 0
push ecx
push reloc.WS2_32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4c9d36
mov ecx, dword [ebp - 0x10e4]
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea edx, [ebp - 0x10e0]
push edx
mov dword [ebp - 0x1104], eax
lea eax, [ebp - 0x1104]
push eax
push 0
push 0
push str.SystemComponent
push ecx
mov dword [ebp - 0x10e0], 4
call esi
test eax, eax
jne 0x4c912f
cmp dword [ebp - 0x1104], 1
jne 0x4c912f
mov edx, dword [ebp - 0x10e4]
inc dword [ebp - 0x10e8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4c9d3c
push 0x208
push 0
push ebx
mov dword [ebp - 0x10e0], 0x208
call fcn.004e7d90
mov ecx, dword [ebp - 0x10e4]
add esp, 0xc
lea eax, [ebp - 0x10e0]
push eax
push ebx
push 0
push 0
push str.ParentDisplayName
push ecx
call esi
test eax, eax
jne 0x4c94b4
lea edx, [ebp - 0xcd4]
mov eax, ebx
sub edx, ebx
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4c9175
push 0x208
push 0
push ebx
mov dword [ebp - 0x10e0], 0x208
call fcn.004e7d90
xor edx, edx
push 0x206
push edx
lea eax, [ebp - 0x2ca]
push eax
mov word [ebp - 0x2cc], dx
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0x18
lea ecx, [ebp - 0x10e0]
push ecx
lea edx, [ebp - 0x2cc]
push edx
push 0
push 0
push str.DisplayName
push eax
call esi
lea eax, [ebp - 0x2cc]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4c91e2
sub eax, edx
sar eax, 1
jne 0x4c920b
mov ecx, dword [ebp - 0x10e4]
inc dword [ebp - 0x10e8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4c9d3c
xor edx, edx
push 0x3e
push edx
lea eax, [ebp - 0xc2]
push eax
mov word [ebp - 0xc4], dx
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
add esp, 0xc
lea ecx, [ebp - 0x10e0]
push ecx
lea edx, [ebp - 0xc4]
push edx
push 0
push 0
push str.DisplayVersion
mov esi, 0x40
push eax
mov dword [ebp - 0x10e0], esi
call ebx
xor ecx, ecx
push 0x3e
push ecx
lea edx, [ebp - 0x82]
push edx
mov word [ebp - 0x84], cx
call fcn.004e7d90
mov edx, dword [ebp - 0x10e4]
add esp, 0xc
lea eax, [ebp - 0x10e0]
push eax
lea ecx, [ebp - 0x84]
push ecx
push 0
push 0
push str.Publisher
push edx
mov dword [ebp - 0x10e0], esi
call ebx
xor eax, eax
push 0x206
push eax
lea ecx, [ebp - 0x10da]
push ecx
mov word [ebp - 0x10dc], ax
call fcn.004e7d90
mov ecx, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
lea eax, [ebp - 0x10dc]
push eax
push 0
push 0
push str.HelpLink
push ecx
mov dword [ebp - 0x10e0], 0x208
call ebx
xor edx, edx
push 0x3e
push edx
lea eax, [ebp - 0x42]
push eax
mov word [ebp - 0x44], dx
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea ecx, [ebp - 0x10e0]
push ecx
lea edx, [ebp - 0x44]
push edx
push 0
push 0
push str.InstallDate
push eax
mov dword [ebp - 0x10e0], esi
call ebx
cmp eax, 2
jne 0x4c93dd
xor ecx, ecx
push 0x206
push ecx
lea edx, [ebp - 0xcd2]
push edx
mov word [ebp - 0xcd4], cx
call fcn.004e7d90
mov edx, dword [ebp - 0x10e4]
add esp, 0xc
lea eax, [ebp - 0x10e0]
push eax
lea ecx, [ebp - 0xcd4]
push ecx
push 0
push 0
push str.RegistryLocation
push edx
mov dword [ebp - 0x10e0], 0x208
call ebx
test eax, eax
jne 0x4c93dd
mov dword [ebp - 0x1100], eax
cmp dword [ebp - 0x10f4], eax
je 0x4c9392
lea eax, [ebp - 0x1100]
push eax
push 0x201
push 0
lea ecx, [ebp - 0xcae]
push ecx
jmp 0x4c93a4
lea edx, [ebp - 0x1100]
push edx
push 1
push 0
lea eax, [ebp - 0xcae]
push eax
push reloc.WS2_32.dll_bind
call edi
test eax, eax
jne 0x4c93dd
lea ecx, [ebp - 0x10e0]
push ecx
lea edx, [ebp - 0x44]
push edx
push eax
push eax
mov eax, dword [ebp - 0x1100]
push str.InstalledDate
push eax
mov dword [ebp - 0x10e0], esi
call ebx
mov ecx, dword [ebp - 0x1100]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea edx, [ebp - 0x44]
push 0x5262b8
push edx
call fcn.004e49bf
add esp, 8
test eax, eax
jne 0x4c9449
lea eax, [ebp - 0x44]
lea edx, [eax + 2]
jmp 0x4c9400
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4c9400
sub eax, edx
sar eax, 1
je 0x4c9449
lea eax, [ebp - 0x10dc]
push eax
lea ecx, [ebp - 0x38]
push ecx
lea edx, [ebp - 0x3c]
push edx
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x84]
push ecx
lea edx, [ebp - 0x2cc]
push edx
lea eax, [ebp - 0xacc]
push str._s_t_t_s_t_.4s__.2s__.2s_t_t_t_t_t_s_t
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x20
jmp 0x4c9477
lea ecx, [ebp - 0x10dc]
push ecx
lea edx, [ebp - 0x44]
push edx
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x2cc]
push ecx
lea edx, [ebp - 0xacc]
push str._s_t_t_s_t_s_t_t_t_t_t_s_t
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
mov esi, dword [ebp - 0x1108]
mov ebx, dword [ebp - 0x10fc]
push 0x25c
lea edi, [ebp - 0xacc]
call fcn.004c0b90
mov eax, dword [ebp - 0x10e4]
inc dword [ebp - 0x10e8]
add esp, 4
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebx, dword [ebp - 0x110c]
jmp 0x4c9d3c
mov edi, 0x208
push edi
push 0
push ebx
mov dword [ebp - 0x10e0], edi
call fcn.004e7d90
mov edx, dword [ebp - 0x10e4]
add esp, 0xc
lea ecx, [ebp - 0x10e0]
push ecx
push ebx
push 0
push 0
push str.Winet
push edx
call esi
test eax, eax
jne 0x4c9501
mov eax, dword [ebp - 0x10e4]
inc dword [ebp - 0x10e8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4c9d3c
push edi
push 0
push ebx
mov dword [ebp - 0x10e0], edi
call fcn.004e7d90
mov edx, dword [ebp - 0x10e4]
add esp, 0xc
lea ecx, [ebp - 0x10e0]
push ecx
push ebx
push 0
push 0
push str.DisplayName
push edx
call esi
test eax, eax
jne 0x4c96d3
mov ecx, 0x522e30
mov eax, ebx
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4c9566
test dx, dx
je 0x4c9562
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4c9566
add eax, 4
add ecx, 4
test dx, dx
jne 0x4c9540
xor eax, eax
jmp 0x4c956b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4c94e9
mov ecx, 0x522e48
mov eax, ebx
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4c95a6
test dx, dx
je 0x4c95a2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4c95a6
add eax, 4
add ecx, 4
test dx, dx
jne 0x4c9580
xor eax, eax
jmp 0x4c95ab
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4c94e9
mov ecx, 0x528ea8
mov eax, ebx
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4c95e6
test dx, dx
je 0x4c95e2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4c95e6
add eax, 4
add ecx, 4
test dx, dx
jne 0x4c95c0
xor eax, eax
jmp 0x4c95eb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4c94e9
mov ecx, 0x528e90
mov eax, ebx
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4c9626
test dx, dx
je 0x4c9622
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4c9626
add eax, 4
add ecx, 4
test dx, dx
jne 0x4c9600
xor eax, eax
jmp 0x4c962b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4c94e9
mov ecx, str.WiNet_Console
mov eax, ebx
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4c9666
test dx, dx
je 0x4c9662
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4c9666
add eax, 4
add ecx, 4
test dx, dx
jne 0x4c9640
xor eax, eax
jmp 0x4c966b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4c94e9
push edi
push 0
push ebx
mov dword [ebp - 0x10e0], edi
call fcn.004e7d90
mov ecx, dword [ebp - 0x10e4]
add esp, 0xc
lea eax, [ebp - 0x10e0]
push eax
push ebx
push 0
push 0
push str.UninstallString
push ecx
call esi
test eax, eax
je 0x4c96eb
push edi
push 0
push ebx
mov dword [ebp - 0x10e0], edi
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.WindowsInstaller
push eax
call esi
test eax, eax
je 0x4c96eb
mov ecx, dword [ebp - 0x10e4]
inc dword [ebp - 0x10e8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4c9d3c
push edi
push 0
push ebx
mov dword [ebp - 0x10e0], edi
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.DisplayName
push eax
call esi
test eax, eax
jne 0x4c973f
cmp dword [ebp - 0x10e0], eax
jbe 0x4c973f
lea edx, [ebp - 0xacc]
mov eax, ebx
sub edx, ebx
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4c9730
lea edi, [ebp - 0xacc]
add edi, 0xfffffffe
jmp 0x4c9750
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4c9750
mov ecx, dword [0x51d454]
push 0x208
push 0
push ebx
mov dword [edi], ecx
mov dword [ebp - 0x10e0], 0x208
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.DisplayVersion
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4c97e2
cmp dword [ebp - 0x10e0], eax
jbe 0x4c97e2
mov eax, ebx
mov edx, ebx
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4c97b0
lea edi, [ebp - 0xacc]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4c97c6
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0xacc]
add edi, 0xfffffffe
jmp 0x4c97f0
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4c97f0
mov ecx, dword [0x51d454]
push 0x208
push 0
push ebx
mov dword [edi], ecx
mov dword [ebp - 0x10e0], 0x208
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.Publisher
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4c9882
cmp dword [ebp - 0x10e0], eax
jbe 0x4c9882
mov eax, ebx
mov edx, ebx
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4c9850
lea edi, [ebp - 0xacc]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4c9866
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0xacc]
add edi, 0xfffffffe
jmp 0x4c9890
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4c9890
mov ecx, dword [0x51d454]
push 0x208
push 0
push ebx
mov dword [edi], ecx
mov dword [ebp - 0x10e0], 0x208
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.InstallDate
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4c9922
cmp dword [ebp - 0x10e0], eax
jbe 0x4c9922
mov eax, ebx
mov edx, ebx
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4c98f0
lea edi, [ebp - 0xacc]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4c9906
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0xacc]
add edi, 0xfffffffe
jmp 0x4c9930
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4c9930
mov ecx, dword [0x51d454]
push 0x208
push 0
push ebx
mov dword [edi], ecx
mov dword [ebp - 0x10e0], 0x208
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.UninstallString
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4c99c2
cmp dword [ebp - 0x10e0], eax
jbe 0x4c99c2
mov eax, ebx
mov edx, ebx
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4c9990
lea edi, [ebp - 0xacc]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4c99a6
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0xacc]
add edi, 0xfffffffe
jmp 0x4c99d0
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4c99d0
mov ecx, dword [0x51d454]
push 0x208
push 0
push ebx
mov dword [edi], ecx
mov dword [ebp - 0x10e0], 0x208
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.ProductID
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4c9a62
cmp dword [ebp - 0x10e0], eax
jbe 0x4c9a62
mov eax, ebx
mov edx, ebx
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4c9a30
lea edi, [ebp - 0xacc]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4c9a46
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0xacc]
add edi, 0xfffffffe
jmp 0x4c9a70
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4c9a70
mov ecx, dword [0x51d454]
push 0x208
push 0
push ebx
mov dword [edi], ecx
mov dword [ebp - 0x10e0], 0x208
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.RegCompany
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4c9b02
cmp dword [ebp - 0x10e0], eax
jbe 0x4c9b02
mov eax, ebx
mov edx, ebx
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4c9ad0
lea edi, [ebp - 0xacc]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4c9ae6
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0xacc]
add edi, 0xfffffffe
jmp 0x4c9b10
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4c9b10
mov ecx, dword [0x51d454]
push 0x208
push 0
push ebx
mov dword [edi], ecx
mov dword [ebp - 0x10e0], 0x208
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.RegOwner
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4c9ba2
cmp dword [ebp - 0x10e0], eax
jbe 0x4c9ba2
mov eax, ebx
mov edx, ebx
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4c9b70
lea edi, [ebp - 0xacc]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4c9b86
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0xacc]
add edi, 0xfffffffe
jmp 0x4c9bb0
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4c9bb0
mov ecx, dword [0x51d454]
push 0x208
push 0
push ebx
mov dword [edi], ecx
mov dword [ebp - 0x10e0], 0x208
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.URLInfoAbout
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4c9c42
cmp dword [ebp - 0x10e0], eax
jbe 0x4c9c42
mov eax, ebx
mov edx, ebx
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4c9c10
lea edi, [ebp - 0xacc]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4c9c26
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0xacc]
add edi, 0xfffffffe
jmp 0x4c9c50
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4c9c50
mov ecx, dword [0x51d454]
push 0x208
push 0
push ebx
mov dword [edi], ecx
mov dword [ebp - 0x10e0], 0x208
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.URLUpdateInfo
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4c9ce2
cmp dword [ebp - 0x10e0], eax
jbe 0x4c9ce2
mov eax, ebx
mov edx, ebx
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4c9cb0
lea edi, [ebp - 0xacc]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4c9cc6
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0xacc]
add edi, 0xfffffffe
jmp 0x4c9cf0
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4c9cf0
mov ecx, dword [0x51d454]
mov esi, dword [ebp - 0x1108]
mov ebx, dword [ebp - 0x10fc]
mov dword [edi], ecx
push 0x25b
lea edi, [ebp - 0xacc]
call fcn.004c0b90
mov edx, dword [ebp - 0x10e4]
add esp, 4
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebx, dword [ebp - 0x110c]
inc dword [ebp - 0x10e8]
push 0x800
lea edx, [ebp - 0xacc]
push 0
push edx
call fcn.004e7d90
mov esi, dword [ebp - 0x10ec]
push 0x400
push 0
push esi
call fcn.004e7d90
mov eax, dword [ebp - 0x10e8]
mov ecx, dword [ebp - 0x10f0]
add esp, 0x18
push 0x400
push esi
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
test eax, eax
je 0x4c9000
mov edi, dword [ebp - 0x10f8]
mov edx, dword [ebp - 0x10f0]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push esi
call fcn.004e424b
push edi
call fcn.004e424b
push ebx
call fcn.004e424b
add esp, 0xc
cmp dword [ebp - 0x10f4], 0
je 0x4cab55
lea eax, [ebp - 0x10f0]
push eax
push 0x108
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall
push reloc.WS2_32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4cab55
push 0x7fe
xor edi, edi
lea edx, [ebp - 0xaca]
xor ecx, ecx
push edi
push edx
mov word [ebp - 0xacc], cx
call fcn.004e7d90
push 0x400
mov dword [ebp - 0x10e8], edi
call fcn.004e4240
mov esi, eax
push 0x800
mov dword [ebp - 0x10f8], esi
call fcn.004e4240
push 0x208
mov dword [ebp - 0x10f4], eax
call fcn.004e4240
mov ebx, eax
push 0x800
lea eax, [ebp - 0xacc]
push edi
push eax
mov dword [ebp - 0x1104], ebx
mov dword [ebp - 0x10e0], edi
call fcn.004e7d90
push 0x400
push edi
push esi
call fcn.004e7d90
mov ecx, dword [ebp - 0x10f0]
add esp, 0x30
push 0x400
push esi
push edi
push ecx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
test eax, eax
jne 0x4cab27
mov eax, dword [ebp - 0x10f4]
sub eax, str.SoftwareMicrosoftWindowsCurrentVersionUninstall_
mov dword [ebp - 0x1110], eax
lea ecx, [ecx]
mov edi, dword [ebp - 0x10f4]
push 0x800
push 0
push edi
call fcn.004e7d90
mov edx, dword [ebp - 0x1110]
add esp, 0xc
mov eax, str.SoftwareMicrosoftWindowsCurrentVersionUninstall_
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4c9eb1
mov eax, dword [ebp - 0x10f8]
mov edx, eax
jmp 0x4c9ed0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4c9ed0
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4c9ee0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0x10e4]
push edx
push 0x101
mov ecx, eax
mov eax, dword [ebp - 0x10f4]
push 0
push eax
and ecx, 3
push reloc.WS2_32.dll_bind
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4caad6
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea ecx, [ebp - 0x10e0]
push ecx
lea edx, [ebp - 0x110c]
push edx
push eax
push eax
mov dword [ebp - 0x110c], eax
mov eax, dword [ebp - 0x10e4]
push str.SystemComponent
push eax
mov dword [ebp - 0x10e0], 4
call edi
test eax, eax
jne 0x4c9f81
mov eax, 1
cmp dword [ebp - 0x110c], eax
jne 0x4c9f81
mov ecx, dword [ebp - 0x10e4]
add dword [ebp - 0x10e8], eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4caadc
mov esi, 0x208
push esi
push 0
push ebx
mov dword [ebp - 0x10e0], esi
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.ParentDisplayName
push eax
call edi
test eax, eax
jne 0x4ca2d8
lea edx, [ebp - 0xcd4]
mov eax, ebx
sub edx, ebx
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4c9fc4
push esi
push 0
push ebx
mov dword [ebp - 0x10e0], esi
call fcn.004e7d90
xor ecx, ecx
push 0x206
push ecx
lea edx, [ebp - 0x2ca]
push edx
mov word [ebp - 0x2cc], cx
call fcn.004e7d90
mov edx, dword [ebp - 0x10e4]
add esp, 0x18
lea eax, [ebp - 0x10e0]
push eax
lea ecx, [ebp - 0x2cc]
push ecx
push 0
push 0
push str.DisplayName
push edx
call edi
lea eax, [ebp - 0x2cc]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ca030
sub eax, edx
sar eax, 1
jne 0x4ca059
mov eax, dword [ebp - 0x10e4]
inc dword [ebp - 0x10e8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4caadc
xor ecx, ecx
push 0x3e
push ecx
lea edx, [ebp - 0xc2]
push edx
mov word [ebp - 0xc4], cx
call fcn.004e7d90
mov edx, dword [ebp - 0x10e4]
add esp, 0xc
lea eax, [ebp - 0x10e0]
push eax
lea ecx, [ebp - 0xc4]
push ecx
push 0
push 0
push str.DisplayVersion
mov esi, 0x40
push edx
mov dword [ebp - 0x10e0], esi
call edi
xor eax, eax
push 0x3e
push eax
lea ecx, [ebp - 0x82]
push ecx
mov word [ebp - 0x84], ax
call fcn.004e7d90
mov ecx, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
lea eax, [ebp - 0x84]
push eax
push 0
push 0
push str.Publisher
push ecx
mov dword [ebp - 0x10e0], esi
call edi
xor edx, edx
push 0x206
push edx
lea eax, [ebp - 0x10da]
push eax
mov word [ebp - 0x10dc], dx
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea ecx, [ebp - 0x10e0]
push ecx
lea edx, [ebp - 0x10dc]
push edx
push 0
push 0
push str.HelpLink
mov ebx, 0x208
push eax
mov dword [ebp - 0x10e0], ebx
call edi
xor ecx, ecx
push 0x3e
push ecx
lea edx, [ebp - 0x42]
push edx
mov word [ebp - 0x44], cx
call fcn.004e7d90
mov edx, dword [ebp - 0x10e4]
add esp, 0xc
lea eax, [ebp - 0x10e0]
push eax
lea ecx, [ebp - 0x44]
push ecx
push 0
push 0
push str.InstallDate
push edx
mov dword [ebp - 0x10e0], esi
call edi
cmp eax, 2
jne 0x4ca209
xor eax, eax
push 0x206
push eax
lea ecx, [ebp - 0xcd2]
push ecx
mov word [ebp - 0xcd4], ax
call fcn.004e7d90
mov ecx, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
lea eax, [ebp - 0xcd4]
push eax
push 0
push 0
push str.RegistryLocation
push ecx
mov dword [ebp - 0x10e0], ebx
call edi
test eax, eax
jne 0x4ca209
lea edx, [ebp - 0x10ec]
push edx
push 0x201
push eax
mov dword [ebp - 0x10ec], eax
lea eax, [ebp - 0xcae]
push eax
push reloc.WS2_32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4ca209
lea ecx, [ebp - 0x10e0]
push ecx
lea edx, [ebp - 0x44]
push edx
push eax
push eax
mov eax, dword [ebp - 0x10ec]
push str.InstalledDate
push eax
mov dword [ebp - 0x10e0], esi
call edi
mov ecx, dword [ebp - 0x10ec]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea edx, [ebp - 0x44]
push 0x5262b8
push edx
call fcn.004e49bf
add esp, 8
test eax, eax
jne 0x4ca26d
lea eax, [ebp - 0x44]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ca224
sub eax, edx
sar eax, 1
je 0x4ca26d
lea eax, [ebp - 0x10dc]
push eax
lea ecx, [ebp - 0x38]
push ecx
lea edx, [ebp - 0x3c]
push edx
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x84]
push ecx
lea edx, [ebp - 0x2cc]
push edx
lea eax, [ebp - 0xacc]
push str._s_t_t_s_t_.4s__.2s__.2s_t_t_t_t_t_s_t
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x20
jmp 0x4ca29b
lea ecx, [ebp - 0x10dc]
push ecx
lea edx, [ebp - 0x44]
push edx
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x2cc]
push ecx
lea edx, [ebp - 0xacc]
push str._s_t_t_s_t_s_t_t_t_t_t_s_t
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
mov esi, dword [ebp - 0x1108]
mov ebx, dword [ebp - 0x10fc]
push 0x25c
lea edi, [ebp - 0xacc]
call fcn.004c0b90
mov eax, dword [ebp - 0x10e4]
inc dword [ebp - 0x10e8]
add esp, 4
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebx, dword [ebp - 0x1104]
jmp 0x4caadc
push esi
push 0
push ebx
mov dword [ebp - 0x10e0], esi
call fcn.004e7d90
mov edx, dword [ebp - 0x10e4]
add esp, 0xc
lea ecx, [ebp - 0x10e0]
push ecx
push ebx
push 0
push 0
push str.Winet
push edx
call edi
test eax, eax
jne 0x4ca320
mov eax, dword [ebp - 0x10e4]
inc dword [ebp - 0x10e8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4caadc
push esi
push 0
push ebx
mov dword [ebp - 0x10e0], esi
call fcn.004e7d90
mov edx, dword [ebp - 0x10e4]
add esp, 0xc
lea ecx, [ebp - 0x10e0]
push ecx
push ebx
push 0
push 0
push str.DisplayName
push edx
call edi
test eax, eax
jne 0x4ca473
mov ecx, 0x522e30
mov eax, ebx
jmp 0x4ca360
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4ca386
test dx, dx
je 0x4ca382
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4ca386
add eax, 4
add ecx, 4
test dx, dx
jne 0x4ca360
xor eax, eax
jmp 0x4ca38b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4ca308
mov ecx, 0x528ea8
mov eax, ebx
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4ca3c6
test dx, dx
je 0x4ca3c2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4ca3c6
add eax, 4
add ecx, 4
test dx, dx
jne 0x4ca3a0
xor eax, eax
jmp 0x4ca3cb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4ca308
mov ecx, str.WiNet_Console
mov eax, ebx
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4ca406
test dx, dx
je 0x4ca402
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4ca406
add eax, 4
add ecx, 4
test dx, dx
jne 0x4ca3e0
xor eax, eax
jmp 0x4ca40b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4ca308
push esi
push 0
push ebx
mov dword [ebp - 0x10e0], esi
call fcn.004e7d90
mov ecx, dword [ebp - 0x10e4]
add esp, 0xc
lea eax, [ebp - 0x10e0]
push eax
push ebx
push 0
push 0
push str.UninstallString
push ecx
call edi
test eax, eax
je 0x4ca48b
push esi
push 0
push ebx
mov dword [ebp - 0x10e0], esi
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.WindowsInstaller
push eax
call edi
test eax, eax
je 0x4ca48b
mov ecx, dword [ebp - 0x10e4]
inc dword [ebp - 0x10e8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4caadc
push esi
push 0
push ebx
mov dword [ebp - 0x10e0], esi
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.DisplayName
push eax
call edi
test eax, eax
jne 0x4ca4df
cmp dword [ebp - 0x10e0], eax
jbe 0x4ca4df
lea edx, [ebp - 0xacc]
mov eax, ebx
sub edx, ebx
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4ca4d0
lea edi, [ebp - 0xacc]
add edi, 0xfffffffe
jmp 0x4ca4f0
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ca4f0
mov ecx, dword [0x51d454]
push 0x208
push 0
push ebx
mov dword [edi], ecx
mov dword [ebp - 0x10e0], esi
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.DisplayVersion
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4ca582
cmp dword [ebp - 0x10e0], eax
jbe 0x4ca582
mov eax, ebx
mov edx, ebx
jmp 0x4ca550
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ca550
lea edi, [ebp - 0xacc]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ca566
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0xacc]
add edi, 0xfffffffe
jmp 0x4ca590
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ca590
mov ecx, dword [0x51d454]
push 0x208
push 0
push ebx
mov dword [edi], ecx
mov dword [ebp - 0x10e0], 0x208
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.Publisher
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4ca622
cmp dword [ebp - 0x10e0], eax
jbe 0x4ca622
mov eax, ebx
mov edx, ebx
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ca5f0
lea edi, [ebp - 0xacc]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ca606
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0xacc]
add edi, 0xfffffffe
jmp 0x4ca630
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ca630
mov ecx, dword [0x51d454]
push 0x208
push 0
push ebx
mov dword [edi], ecx
mov dword [ebp - 0x10e0], 0x208
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.InstallDate
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4ca6c2
cmp dword [ebp - 0x10e0], eax
jbe 0x4ca6c2
mov eax, ebx
mov edx, ebx
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ca690
lea edi, [ebp - 0xacc]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ca6a6
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0xacc]
add edi, 0xfffffffe
jmp 0x4ca6d0
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ca6d0
mov ecx, dword [0x51d454]
push 0x208
push 0
push ebx
mov dword [edi], ecx
mov dword [ebp - 0x10e0], 0x208
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.UninstallString
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4ca762
cmp dword [ebp - 0x10e0], eax
jbe 0x4ca762
mov eax, ebx
mov edx, ebx
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ca730
lea edi, [ebp - 0xacc]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ca746
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0xacc]
add edi, 0xfffffffe
jmp 0x4ca770
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ca770
mov ecx, dword [0x51d454]
push 0x208
push 0
push ebx
mov dword [edi], ecx
mov dword [ebp - 0x10e0], 0x208
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.ProductID
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4ca802
cmp dword [ebp - 0x10e0], eax
jbe 0x4ca802
mov eax, ebx
mov edx, ebx
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ca7d0
lea edi, [ebp - 0xacc]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ca7e6
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0xacc]
add edi, 0xfffffffe
jmp 0x4ca810
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ca810
mov ecx, dword [0x51d454]
push 0x208
push 0
push ebx
mov dword [edi], ecx
mov dword [ebp - 0x10e0], 0x208
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.RegCompany
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4ca8a2
cmp dword [ebp - 0x10e0], eax
jbe 0x4ca8a2
mov eax, ebx
mov edx, ebx
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ca870
lea edi, [ebp - 0xacc]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ca886
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0xacc]
add edi, 0xfffffffe
jmp 0x4ca8b0
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ca8b0
mov ecx, dword [0x51d454]
push 0x208
push 0
push ebx
mov dword [edi], ecx
mov dword [ebp - 0x10e0], 0x208
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.RegOwner
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4ca942
cmp dword [ebp - 0x10e0], eax
jbe 0x4ca942
mov eax, ebx
mov edx, ebx
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ca910
lea edi, [ebp - 0xacc]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ca926
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0xacc]
add edi, 0xfffffffe
jmp 0x4ca950
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ca950
mov ecx, dword [0x51d454]
push 0x208
push 0
push ebx
mov dword [edi], ecx
mov dword [ebp - 0x10e0], 0x208
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.URLInfoAbout
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4ca9e2
cmp dword [ebp - 0x10e0], eax
jbe 0x4ca9e2
mov eax, ebx
mov edx, ebx
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ca9b0
lea edi, [ebp - 0xacc]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4ca9c6
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0xacc]
add edi, 0xfffffffe
jmp 0x4ca9f0
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4ca9f0
mov ecx, dword [0x51d454]
push 0x208
push 0
push ebx
mov dword [edi], ecx
mov dword [ebp - 0x10e0], 0x208
call fcn.004e7d90
mov eax, dword [ebp - 0x10e4]
add esp, 0xc
lea edx, [ebp - 0x10e0]
push edx
push ebx
push 0
push 0
push str.URLUpdateInfo
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4caa82
cmp dword [ebp - 0x10e0], eax
jbe 0x4caa82
mov eax, ebx
mov edx, ebx
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4caa50
lea edi, [ebp - 0xacc]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4caa66
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0xacc]
add edi, 0xfffffffe
jmp 0x4caa90
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4caa90
mov ecx, dword [0x51d454]
mov esi, dword [ebp - 0x1108]
mov ebx, dword [ebp - 0x10fc]
mov dword [edi], ecx
push 0x25b
lea edi, [ebp - 0xacc]
call fcn.004c0b90
mov edx, dword [ebp - 0x10e4]
add esp, 4
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebx, dword [ebp - 0x1104]
inc dword [ebp - 0x10e8]
push 0x800
lea edx, [ebp - 0xacc]
push 0
push edx
call fcn.004e7d90
mov esi, dword [ebp - 0x10f8]
push 0x400
push 0
push esi
call fcn.004e7d90
mov eax, dword [ebp - 0x10e8]
mov ecx, dword [ebp - 0x10f0]
add esp, 0x18
push 0x400
push esi
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
test eax, eax
je 0x4c9e90
mov edx, dword [ebp - 0x10f0]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x10f8]
push eax
call fcn.004e424b
mov ecx, dword [ebp - 0x10f4]
push ecx
call fcn.004e424b
push ebx
call fcn.004e424b
add esp, 0xc
mov edx, dword [ebp - 0x10fc]
mov ecx, dword [ebp - 0x1108]
push edx
call fcn.004cae30
mov ecx, dword [ebp - 4]
add esp, 4
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004e3946
mov esp, ebp
pop ebp
ret