Function at 0x4066ea
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0x1d4]
sub esp, 0x254
mov eax, dword [0x415010]
xor eax, ebp
mov dword [ebp + 0x1d0], eax
or dword [ebp - 0x50], 0xffffffff
push ebx
push esi
xor eax, eax
push edi
push eax
push 0x415b14
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x5c], 1
mov dword [ebp - 0x58], eax
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
push 0x2388
call fcn.004115aa
push dword [ebp + 0x1e0]
mov ebx, 0x415e48
push dword [ebp + 0x1dc]
mov esi, ebx
call fcn.0040bc1d
mov edi, eax
xor esi, esi
cmp edi, esi
jl 0x406aaa
mov edx, dword [0x415e68]
lea eax, [ebp - 0x4c]
push eax
push 0x415e6c
call fcn.0040b655
mov edi, eax
cmp edi, esi
jl 0x406aaa
mov eax, ebx
call fcn.0040bca2
mov edi, eax
cmp edi, esi
jl 0x406aaa
push 0x23ca
call fcn.004115aa
mov eax, dword [0x415e6c]
cmp eax, esi
je 0x4067ac
mov eax, dword [eax]
mov dword [ebp - 0x4c], eax
mov edi, 0x80070057
jmp 0x406aaa
mov eax, dword [0x415ec4]
cmp eax, esi
mov dword [0x415e58], 0x4066ae
jne 0x4067c9
mov eax, 0x403d98
mov dword [0x415ec4], eax
lea edx, [ebp - 0x80]
mov dword [ebp - 0x80], 0xbb8
mov dword [ebp - 0x7c], 0x1a60
mov dword [ebp - 0x78], 0x1a61
mov dword [ebp - 0x74], 0x1a5e
mov dword [ebp - 0x70], 0x1a5f
mov dword [ebp - 0x6c], 0x1a62
mov dword [ebp - 0x68], 0x1a63
mov dword [ebp - 0x64], 0x1a64
mov dword [ebp - 0x60], 0x1a65
call fcn.0040ce50
mov eax, dword [0x415ec4]
cmp eax, esi
je 0x40683b
cmp word [eax], si
je 0x40683b
push 0x4161d0
push 0x4161cc
push 0x40d163
mov dword [0x4161e0], eax
call sub.mscoree.dll_LockClrVersion
mov edi, eax
jmp 0x406840
mov edi, 0x80070057
cmp edi, esi
jl 0x406aaa
lea eax, [ebp - 0x44]
push eax
push 0x20019
push esi
push dword [0x415ec4]
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4068b7
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x54]
push eax
push esi
push 0x403e08
push dword [ebp - 0x44]
mov dword [ebp - 0x3c], 0x208
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x40689e
push 0x415ee8
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.ole32.dll_IIDFromString]
jmp 0x4068ac
mov esi, 0x402b80
mov edi, 0x415ee8
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push dword [ebp - 0x44]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4068c5
mov esi, 0x402b80
mov edi, 0x415ee8
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, 0x402b80
mov edi, 0x415ef8
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 9
movsd dword es:[edi], dword [esi]
push 0x403e30
push dword [0x415ec4]
call dword [sym.imp.MSVCR80.dll__wcsnicmp]
add esp, 0xc
test eax, eax
mov eax, dword [0x415ec4]
jne 0x4068f5
add eax, 0x10
mov dword [ebp - 0x3c], eax
call dword [0x415018]
push dword [0x415ec4]
lea esi, [ebp - 0x48]
call fcn.004087c1
push 0x23cb
call fcn.004115aa
push dword [0x415ec4]
call fcn.0040bfe0
mov edi, eax
xor esi, esi
cmp edi, esi
jl 0x406aaa
push 0x23cc
call fcn.004115aa
cmp dword [0x415eb4], esi
je 0x406953
push esi
push dword [ebp - 0x48]
lea ecx, [ebp - 0x5c]
call fcn.0040d63f
mov dword [ebp - 0x50], esi
jmp 0x406aa2
cmp dword [0x415eb0], esi
je 0x406970
cmp dword [0x415e3c], esi
je 0x406970
push 1
push dword [ebp - 0x48]
lea ecx, [ebp - 0x5c]
call fcn.0040d63f
mov ecx, dword [ebp - 0x3c]
push 1
call fcn.0040b398
test eax, eax
jne 0x40698f
mov edi, 0x80004005
mov dword [ebp - 0x40], 0xbef
jmp 0x406aaa
mov ecx, dword [ebp - 0x3c]
push esi
call fcn.0040b398
test eax, eax
je 0x40697e
push 0x2389
mov dword [0x415ee4], 0x415f60
call fcn.004115aa
push 0x1fc
mov dword [0x415f5c], esi
call fcn.0040fa71
cmp eax, esi
pop ecx
je 0x4069cc
call fcn.00407cea
jmp 0x4069ce
xor eax, eax
cmp eax, esi
mov dword [0x415f5c], eax
jne 0x4069e1
mov edi, 0x8007000e
jmp 0x406aaa
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
mov eax, dword [0x415f5c]
push 0x238a
mov dword [0x415f08], eax
call fcn.004115aa
push 0x238b
call fcn.004115aa
lea eax, [ebp - 0x48]
lea edi, [ebp - 0x44]
call fcn.004087a0
push 0x403e44
mov ecx, edi
mov dword [ebp - 0x3c], esi
call fcn.004086d1
push dword [ebp - 0x44]
lea eax, [ebp - 0x3c]
push eax
call fcn.00407bb5
mov edi, eax
cmp edi, esi
jl 0x406a55
mov esi, 0x403e58
push esi
lea edi, [ebp - 0x54]
lea eax, [ebp - 0x3c]
call fcn.00406607
mov edi, eax
test edi, edi
jge 0x406a55
push 2
push esi
lea eax, [ebp - 0x3c]
call fcn.0040666e
xor edi, edi
lea esi, [ebp - 0x3c]
call fcn.004065e6
push dword [ebp - 0x44]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
push 0x23b6
call fcn.004115aa
push dword [0x415ec4]
call fcn.0040df09
push 0x23b7
call fcn.004115aa
lea eax, [ebp - 0x50]
push eax
mov ecx, ebx
call fcn.0040bab1
xor esi, esi
test eax, eax
jne 0x406aa2
mov edi, 0x80004005
mov dword [ebp - 0x40], 0xbeb
cmp edi, esi
jge 0x406b2e
xor esi, esi
cmp dword [0x415ec4], esi
jne 0x406abe
mov dword [0x415ec4], 0x403d98
call fcn.004076d2
test eax, eax
jl 0x406b19
cmp dword [ebp - 0x4c], esi
je 0x406adc
push dword [0x415b14]
mov edi, dword [ebp - 0x4c]
call fcn.0040bf24
jmp 0x406b2e
cmp dword [ebp - 0x40], esi
jne 0x406b09
cmp edi, 0x8007000e
je 0x406b02
xor eax, eax
cmp edi, 0x80070057
sete al
dec eax
and eax, 3
add eax, 0xbeb
mov dword [ebp - 0x40], eax
jmp 0x406b09
mov dword [ebp - 0x40], 0xbed
push dword [ebp - 0x40]
mov esi, dword [0x415b14]
push 0xbb8
jmp 0x406b29
mov esi, dword [0x415b10]
push 0x19e7
push 0x19e6
call fcn.0040bcf7
call fcn.004066ae
mov eax, dword [0x415f58]
xor edi, edi
cmp eax, edi
mov esi, eax
je 0x406b50
mov esi, dword [esi + 8]
push eax
call sub.MSVCR80.dll_free
cmp esi, edi
pop ecx
mov eax, esi
jne 0x406b40
mov esi, dword [0x415e4c]
mov dword [0x415f58], edi
call dword [sym.imp.ole32.dll_OleUninitialize]
cmp esi, edi
je 0x406b86
push 0x4051b8
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, edi
jne 0x406b82
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
call esi
jmp 0x406b86
push edi
call eax
pop ecx
mov eax, dword [0x4161c8]
cmp eax, edi
je 0x406b9b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [0x4161c8], edi
mov eax, dword [0x4161d4]
cmp eax, edi
je 0x406bb0
mov dword [0x4161d4], edi
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [0x4161d8]
cmp eax, edi
je 0x406bc5
mov dword [0x4161d8], edi
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [0x4161dc]
cmp eax, edi
je 0x406bda
mov ecx, dword [eax]
push eax
mov dword [0x4161dc], edi
call dword [ecx + 8]
push dword [ebp - 0x48]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ecx, dword [ebp + 0x1d0]
mov eax, dword [ebp - 0x50]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040fdc4
add ebp, 0x1d4
leave
ret 8