Function at 0x406fc0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3fc
mov eax, dword [0x448050]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
or ebx, 0xffffffff
lea eax, [ebp - 0x3c8]
mov dword [ebp - 0x3e4], eax
push esi
lea eax, [ebp - 0x3b4]
lea ecx, [ebp - 0x3d0]
push edi
mov edi, dword [0x44c2c8]
mov dword [ebp - 0x3d8], eax
xor eax, eax
mov dword [ebp - 0x3e0], ecx
mov ecx, 0x104
lea edx, [ebp - 0x3b8]
mov esi, 1
mov dword [ebp - 0x3b0], ebx
mov dword [ebp - 0x3c0], ebx
mov dword [ebp - 0x3bc], ebx
mov dword [ebp - 0x3b4], ebx
mov dword [ebp - 0x3b8], ebx
mov dword [ebp - 0x3d0], ebx
mov dword [ebp - 0x3c8], ebx
mov dword [ebp - 0x3c4], ebx
mov dword [ebp - 0x3dc], edx
mov dword [ebp - 0x3f0], eax
mov dword [ebp - 0x3ec], str.Compatible
mov dword [ebp - 0x3e8], str.Version
mov dword [ebp - 0x3fc], str.Mozilla_4.0
mov dword [ebp - 0x3f8], str.compatible
mov dword [ebp - 0x3f4], str.MSIE_7.0
mov dword [ebp - 0x27c], 0xb
mov dword [ebp - 0x278], 0xa
mov dword [ebp - 0x274], 8
mov dword [ebp - 0x398], eax
mov dword [ebp - 0x394], ecx
mov dword [ebp - 0x39c], ecx
mov dword [ebp - 0x3a4], eax
cmp edi, eax
jne 0x407afb
push ecx
call fcn.00424770
mov edi, eax
push 0x104
mov dword [ebp - 0x3a0], edi
call fcn.00424770
add esp, 8
mov dword [ebp - 0x3a4], eax
test edi, edi
je 0x407a75
test eax, eax
je 0x407a75
lea ecx, [ebp - 0x3d0]
push ecx
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionInternet_SettingsUser_Agent
push SysReAllocString
call esi
test eax, eax
je 0x407118
mov dword [ebp - 0x3d0], ebx
lea edx, [ebp - 0x3c8]
push edx
push 1
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionInternet_SettingsUser_Agent
push reloc.OLEAUT32.dll_SysReAllocString
call esi
test eax, eax
je 0x407139
mov dword [ebp - 0x3c8], ebx
lea eax, [ebp - 0x3b4]
push eax
push 1
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionInternet_Settings5.0User_Agent
push SysReAllocString
call esi
test eax, eax
je 0x40715a
mov dword [ebp - 0x3b4], ebx
lea ecx, [ebp - 0x3b8]
push ecx
push 1
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionInternet_Settings5.0User_Agent
push reloc.OLEAUT32.dll_SysReAllocString
call esi
test eax, eax
je 0x40717b
mov dword [ebp - 0x3b8], ebx
mov ebx, dword [ebp - 0x3a4]
xor edi, edi
mov eax, dword [ebp - 0x3b4]
cmp eax, 0xffffffff
je 0x4071e4
lea edx, [ebp - 0x394]
push edx
mov edx, dword [ebp + edi*4 - 0x3f0]
push ebx
lea ecx, [ebp - 0x3cc]
push ecx
push 0
push edx
push eax
mov dword [ebp - 0x394], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4071e4
mov eax, dword [ebp - 0x394]
cmp eax, 1
jbe 0x4071e4
dec eax
push eax
push ebx
lea eax, [ebp - 0x39c]
push eax
lea ecx, [ebp - 0x398]
push ecx
lea edx, [ebp - 0x3a0]
push edx
jmp 0x407267
mov eax, dword [ebp - 0x3b8]
cmp eax, 0xffffffff
je 0x407242
lea ecx, [ebp - 0x394]
push ecx
mov ecx, dword [ebp + edi*4 - 0x3f0]
push ebx
lea edx, [ebp - 0x3cc]
push edx
push 0
push ecx
push eax
mov dword [ebp - 0x394], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x407242
mov eax, dword [ebp - 0x394]
cmp eax, 1
jbe 0x407242
dec eax
push eax
push ebx
lea edx, [ebp - 0x39c]
push edx
lea eax, [ebp - 0x398]
push eax
lea ecx, [ebp - 0x3a0]
push ecx
jmp 0x407267
mov edx, dword [ebp + edi*4 - 0x27c]
mov eax, dword [ebp + edi*4 - 0x3fc]
push edx
push eax
lea ecx, [ebp - 0x39c]
push ecx
lea edx, [ebp - 0x398]
push edx
lea eax, [ebp - 0x3a0]
push eax
call fcn.00406f20
mov esi, eax
add esp, 0x14
test esi, esi
je 0x407af5
mov eax, 0x43f664
test edi, edi
je 0x407287
mov eax, 0x43f668
push 2
push eax
lea ecx, [ebp - 0x39c]
push ecx
lea edx, [ebp - 0x398]
push edx
lea eax, [ebp - 0x3a0]
push eax
call fcn.00406f20
mov esi, eax
add esp, 0x14
test esi, esi
je 0x407af5
inc edi
cmp edi, 3
jl 0x407183
mov eax, dword [ebp - 0x3c8]
or esi, 0xffffffff
cmp eax, esi
je 0x4072df
lea ecx, [ebp - 0x3b0]
push ecx
push 1
push 0
push str.UA_Tokens
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp dword [ebp - 0x3b0], esi
je 0x407492
lea edx, [ebp - 0x3c4]
push edx
push 1
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionInternet_Settings
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov eax, dword [ebp - 0x3c4]
cmp eax, esi
je 0x40747f
lea ecx, [ebp - 0x394]
push ecx
lea edx, [ebp - 0x270]
push edx
lea ecx, [ebp - 0x3cc]
push ecx
push 0
push str.User_Agent
push eax
mov dword [ebp - 0x394], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40747f
cmp dword [ebp - 0x394], 1
jbe 0x40747f
mov edx, dword [ebp - 0x3c4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x3b0]
xor edi, edi
push edi
push edi
push edi
push edi
lea eax, [ebp - 0x394]
push eax
push ebx
push edi
push ecx
mov dword [ebp - 0x3c4], esi
mov dword [ebp - 0x394], 0x100
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
test eax, eax
jne 0x40747f
mov esi, dword [ebp - 0x394]
inc edi
test esi, esi
je 0x40744c
push esi
lea edx, [ebp - 0x16b]
push ebx
push edx
mov byte [ebp - 0x16c], 0x20
call fcn.0042c740
mov cx, word [0x43f668]
mov dl, byte [0x43f66a]
lea eax, [ebp + esi - 0x16b]
mov word [eax], cx
mov byte [eax + 2], dl
lea eax, [ebp - 0x16c]
push eax
lea ecx, [ebp - 0x270]
push ecx
call fcn.004266e0
add esp, 0x14
test eax, eax
je 0x40744c
mov edx, dword [ebp - 0x394]
push edx
push ebx
lea eax, [ebp - 0x39c]
push eax
lea ecx, [ebp - 0x398]
push ecx
lea edx, [ebp - 0x3a0]
push edx
call fcn.00406f20
mov esi, eax
add esp, 0x14
test esi, esi
je 0x407af5
push 2
push 0x43f668
lea eax, [ebp - 0x39c]
push eax
lea ecx, [ebp - 0x398]
push ecx
lea edx, [ebp - 0x3a0]
push edx
call fcn.00406f20
mov esi, eax
add esp, 0x14
test esi, esi
je 0x407af5
mov ecx, dword [ebp - 0x3b0]
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x394]
push eax
push ebx
push edi
push ecx
mov dword [ebp - 0x394], 0x100
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
test eax, eax
je 0x407397
or esi, 0xffffffff
mov edx, dword [ebp - 0x3b0]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x3b0], esi
mov esi, dword [ebp - 0x39c]
mov edi, dword [ebp - 0x3a0]
xor ebx, ebx
mov dword [ebp - 0x3a8], ebx
jmp 0x4074b0
mov eax, dword [ebp + ebx*4 - 0x3e4]
cmp dword [eax], 0xffffffff
je 0x40767b
mov edx, dword [eax]
lea ecx, [ebp - 0x3bc]
push ecx
push 1
push 0
push str.Pre_Platform
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov eax, dword [ebp - 0x3bc]
cmp eax, 0xffffffff
je 0x40767b
mov edx, dword [ebp - 0x3a4]
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
lea ecx, [ebp - 0x394]
push ecx
push edx
push ebx
push eax
mov dword [ebp - 0x394], 0x104
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
test eax, eax
jne 0x40765e
jmp 0x407520
mov eax, dword [ebp - 0x394]
inc ebx
mov dword [ebp - 0x3d4], ebx
test eax, eax
je 0x407628
mov ecx, dword [ebp - 0x398]
lea ebx, [eax + ecx]
mov dword [ebp - 0x3ac], eax
cmp ebx, esi
jbe 0x40759a
cmp eax, 0x104
jae 0x407554
mov eax, 0x104
add esi, eax
push esi
mov dword [ebp - 0x39c], esi
call fcn.00424770
mov esi, eax
add esp, 4
test esi, esi
je 0x407a75
mov edx, dword [ebp - 0x398]
push edx
push edi
push esi
call fcn.0042c740
push edi
call fcn.0042477b
mov edi, esi
mov esi, dword [ebp - 0x39c]
add esp, 0x10
mov dword [ebp - 0x3a0], edi
mov dword [ebp - 0x39c], esi
mov eax, dword [ebp - 0x3ac]
mov ecx, dword [ebp - 0x3a4]
mov edx, dword [ebp - 0x398]
push eax
push ecx
lea eax, [edi + edx]
push eax
call fcn.0042c740
lea eax, [ebx + 2]
add esp, 0xc
mov dword [ebp - 0x398], eax
cmp eax, esi
jbe 0x40760b
add esi, 0x104
push esi
mov dword [ebp - 0x3ac], esi
call fcn.00424770
mov esi, eax
add esp, 4
test esi, esi
je 0x407a75
push ebx
push edi
push esi
call fcn.0042c740
push edi
call fcn.0042477b
mov edi, esi
mov esi, dword [ebp - 0x3ac]
add esp, 0x10
mov dword [ebp - 0x3a0], edi
mov dword [ebp - 0x39c], esi
mov cx, word [0x43f668]
mov edx, dword [ebp - 0x398]
mov word [ebx + edi], cx
mov ebx, dword [ebp - 0x3d4]
mov dword [ebp - 0x398], edx
mov ecx, dword [ebp - 0x3a4]
mov edx, dword [ebp - 0x3bc]
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x394]
push eax
push ecx
push ebx
push edx
mov dword [ebp - 0x394], 0x104
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
test eax, eax
je 0x407520
mov eax, dword [ebp - 0x3bc]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebx, dword [ebp - 0x3a8]
mov dword [ebp - 0x3bc], 0xffffffff
inc ebx
mov dword [ebp - 0x3a8], ebx
cmp ebx, 4
jl 0x4074b0
mov eax, dword [ebp - 0x3b4]
cmp eax, 0xffffffff
je 0x4076f0
mov edx, dword [ebp - 0x3a4]
lea ecx, [ebp - 0x394]
push ecx
push edx
lea ecx, [ebp - 0x3cc]
push ecx
push 0
push str.Platform
push eax
mov dword [ebp - 0x394], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4076f0
mov edx, dword [ebp - 0x394]
mov eax, dword [ebp - 0x3a4]
dec edx
push edx
push eax
lea ecx, [ebp - 0x39c]
push ecx
lea edx, [ebp - 0x398]
push edx
lea eax, [ebp - 0x3a0]
push eax
jmp 0x407800
mov eax, dword [ebp - 0x3b8]
cmp eax, 0xffffffff
je 0x40774f
mov esi, dword [ebp - 0x3a4]
lea ecx, [ebp - 0x394]
push ecx
push esi
lea edx, [ebp - 0x3cc]
push edx
push 0
push str.Platform
push eax
mov dword [ebp - 0x394], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40774f
mov eax, dword [ebp - 0x394]
dec eax
push eax
push esi
lea ecx, [ebp - 0x39c]
push ecx
lea edx, [ebp - 0x398]
push edx
lea eax, [ebp - 0x3a0]
push eax
jmp 0x407800
push 0x63
lea ecx, [ebp - 0x67]
push 0
push ecx
mov byte [ebp - 0x68], 0
call fcn.00427020
add esp, 0xc
lea edx, [ebp - 0x390]
push edx
mov dword [ebp - 0x390], 0x114
call dword [sym.imp.KERNEL32.DLL_GetVersionExW]
test eax, eax
je 0x4077cf
mov eax, dword [ebp - 0x380]
cmp eax, 1
jne 0x4077a0
cmp dword [ebp - 0x388], 0
jne 0x407799
mov edx, str.Windows_95
jmp 0x4077d4
mov edx, str.Windows_98
jmp 0x4077d4
cmp eax, 2
jne 0x4077c8
mov eax, dword [ebp - 0x388]
mov ecx, dword [ebp - 0x38c]
push eax
push ecx
push str.Windows_NT__d._d
lea edx, [ebp - 0x68]
call fcn.0040b5c0
add esp, 0xc
lea edx, [ebp - 0x68]
jmp 0x4077d4
mov edx, str.Windows_NT_5.0
jmp 0x4077d4
mov edx, str.Win32
mov eax, edx
lea esi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4077e0
sub eax, esi
push eax
push edx
lea edx, [ebp - 0x39c]
push edx
lea eax, [ebp - 0x398]
push eax
lea ecx, [ebp - 0x3a0]
push ecx
call fcn.00406f20
mov esi, eax
add esp, 0x14
test esi, esi
je 0x407af5
mov edi, dword [ebp - 0x3a0]
mov ebx, dword [ebp - 0x3a4]
xor esi, esi
mov dword [ebp - 0x3a8], esi
jmp 0x407830
mov eax, dword [ebp + esi*4 - 0x3e4]
cmp dword [eax], 0xffffffff
je 0x407a3a
mov eax, dword [eax]
lea edx, [ebp - 0x3c0]
push edx
push 1
push 0
push str.Post_Platform
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov eax, dword [ebp - 0x3c0]
cmp eax, 0xffffffff
je 0x407a3a
xor esi, esi
push esi
push esi
push esi
push esi
lea ecx, [ebp - 0x394]
push ecx
push ebx
push esi
push eax
mov dword [ebp - 0x394], 0x104
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
test eax, eax
jne 0x407a1d
inc esi
cmp dword [ebp - 0x394], 0
mov dword [ebp - 0x3d4], esi
je 0x4079ed
cmp dword [ebp - 0x3a8], 1
jg 0x4078e1
mov ecx, str.compat
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4078d4
test dl, dl
je 0x4078d0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4078d4
add eax, 2
add ecx, 2
test dl, dl
jne 0x4078b4
xor eax, eax
jmp 0x4078d9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4079ed
mov ebx, dword [ebp - 0x398]
add ebx, 2
mov dword [ebp - 0x3a0], ebx
cmp ebx, dword [ebp - 0x39c]
jbe 0x407941
mov eax, dword [ebp - 0x39c]
add eax, 0x104
push eax
mov dword [ebp - 0x3ac], eax
call fcn.00424770
mov esi, eax
add esp, 4
test esi, esi
je 0x407a75
mov edx, dword [ebp - 0x398]
push edx
push edi
push esi
call fcn.0042c740
push edi
call fcn.0042477b
mov eax, dword [ebp - 0x3ac]
add esp, 0x10
mov edi, esi
mov dword [ebp - 0x39c], eax
mov edx, dword [ebp - 0x398]
mov cx, word [0x43f668]
mov word [edi + edx], cx
mov eax, dword [ebp - 0x394]
lea esi, [ebx + eax]
mov dword [ebp - 0x398], eax
mov dword [ebp - 0x3ac], esi
cmp esi, dword [ebp - 0x39c]
jbe 0x4079c2
cmp eax, 0x104
jae 0x40797b
mov eax, 0x104
mov ecx, dword [ebp - 0x39c]
lea ebx, [eax + ecx]
push ebx
call fcn.00424770
mov esi, eax
add esp, 4
test esi, esi
je 0x407a75
mov edx, dword [ebp - 0x3a0]
push edx
push edi
push esi
call fcn.0042c740
push edi
call fcn.0042477b
mov edi, esi
mov esi, dword [ebp - 0x3ac]
mov dword [ebp - 0x39c], ebx
mov ebx, dword [ebp - 0x3a0]
add esp, 0x10
mov eax, dword [ebp - 0x398]
mov ecx, dword [ebp - 0x3a4]
push eax
push ecx
add ebx, edi
push ebx
call fcn.0042c740
mov ebx, dword [ebp - 0x3a4]
mov dword [ebp - 0x398], esi
mov esi, dword [ebp - 0x3d4]
add esp, 0xc
mov eax, dword [ebp - 0x3c0]
push 0
push 0
push 0
push 0
lea edx, [ebp - 0x394]
push edx
push ebx
push esi
push eax
mov dword [ebp - 0x394], 0x104
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
test eax, eax
je 0x407890
mov ecx, dword [ebp - 0x3c0]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, dword [ebp - 0x3a8]
mov dword [ebp - 0x3c0], 0xffffffff
inc esi
mov dword [ebp - 0x3a8], esi
cmp esi, 4
jl 0x407830
mov edx, dword [ebp - 0x398]
add edx, 2
cmp edx, dword [ebp - 0x39c]
jbe 0x407a95
mov eax, dword [ebp - 0x39c]
add eax, 0x104
push eax
call fcn.00424770
mov esi, eax
add esp, 4
test esi, esi
jne 0x407a7c
xor esi, esi
jmp 0x407afb
mov ecx, dword [ebp - 0x398]
push ecx
push edi
push esi
call fcn.0042c740
push edi
call fcn.0042477b
add esp, 0x10
mov edi, esi
mov eax, dword [ebp - 0x398]
mov dx, word [0x43f708]
mov dword [ebp - 0x3a8], 0
mov word [edi + eax], dx
mov eax, dword [ebp - 0x3a8]
mov esi, 1
jmp 0x407ac0
mov ebx, dword [ebp + eax*4 - 0x3e4]
cmp dword [ebx], 0xffffffff
je 0x407ae1
mov ecx, dword [ebx]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x3a8]
mov dword [ebx], 0xffffffff
inc eax
mov dword [ebp - 0x3a8], eax
cmp eax, 4
jl 0x407ac0
mov dword [0x44c2c8], edi
jmp 0x407afb
mov edi, dword [ebp - 0x3a0]
mov edx, dword [ebp - 0x3a4]
push edx
call fcn.0042477b
add esp, 4
test esi, esi
jne 0x407b2d
push edi
call fcn.0042477b
add esp, 4
pop edi
pop esi
mov eax, str.Mozilla_4.0__compatible__MSIE_6.0__Win32_
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00424761
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00424761
mov esp, ebp
pop ebp
ret