Function at 0x10661ee
Capabilities:
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x858
mov eax, dword [0x10b5894]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x20c]
mov dword [ebp - 0x848], ecx
lea ecx, [ebp - 0x61c]
mov dword [ebp - 0x844], ecx
lea ecx, [ebp - 0x414]
push ebx
mov dword [ebp - 0x834], eax
mov eax, dword [ebp + 0x10]
xor ebx, ebx
cmp eax, ebx
mov dword [ebp - 0x840], ecx
lea ecx, [ebp - 0x824]
push edi
mov dword [ebp - 0x838], eax
mov dword [ebp - 0x82c], ebx
mov dword [ebp - 0x83c], ecx
mov dword [ebp - 0x858], 0x1011424
mov dword [ebp - 0x854], 0x1011404
mov dword [ebp - 0x850], 0x10113e0
mov dword [ebp - 0x84c], 0x10113c0
jne 0x1066290
mov edi, 0x80004003
push edi
push 0x7e6013c
call fcn.0107ae44
jmp 0x10664a2
push esi
mov dword [eax], ebx
lea eax, [ebp - 0x82c]
push eax
push 0x1011350
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
mov edi, eax
cmp edi, ebx
je 0x10662bb
push edi
push 0x7ed013c
jmp 0x1066487
mov esi, 0x208
lea eax, [ebp - 0x830]
push eax
push dword [ebp + ebx - 0x848]
mov dword [ebp - 0x830], esi
push 0
push 0
push dword [ebp + ebx - 0x858]
push dword [ebp - 0x82c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edi, eax
test edi, edi
jne 0x106634d
add ebx, 4
cmp ebx, 0x10
jb 0x10662c0
lea eax, [ebp - 0x20c]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x1066302
mov ecx, dword [ebp - 0x834]
sub eax, edx
sar eax, 1
lea edx, [ecx + 2]
mov di, word [ecx]
inc ecx
inc ecx
test di, di
jne 0x1066319
sub ecx, edx
sar ecx, 1
lea eax, [ecx + eax + 5]
cmp eax, 0x104
jb 0x1066358
mov edi, 0x8007006f
push edi
push 0x801013c
push dword [ebp - 0x834]
call fcn.0107ae7f
jmp 0x106648c
push edi
push 0x7f9013c
jmp 0x1066487
push 0x1008080
push esi
lea eax, [ebp - 0x20c]
push eax
call fcn.01037c0d
push dword [ebp - 0x834]
lea eax, [ebp - 0x20c]
push esi
push eax
call fcn.01037c0d
push 0x1011344
push esi
lea eax, [ebp - 0x20c]
push eax
call fcn.01037c0d
lea eax, [ebp - 0x830]
push eax
lea eax, [ebp - 0x828]
push eax
xor ebx, ebx
push ebx
push ebx
mov esi, 0x100c268
push esi
push dword [ebp - 0x82c]
mov dword [ebp - 0x830], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp eax, ebx
je 0x10663d7
push eax
push 0x811013c
push esi
call fcn.0107ae7f
mov dword [ebp - 0x828], 0xb8
and dword [ebp - 0x828], 0xfffffffe
lea eax, [ebp - 0x20c]
push eax
push 0x1b9
call fcn.0107a681
push eax
call fcn.0108880b
push 0x1003d24
call fcn.0108880b
mov esi, dword [ebp - 0x838]
add esp, 0xc
push esi
push 0x101e0a0
push 1
push ebx
push 0x101e0d0
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov edi, eax
cmp edi, ebx
je 0x106642a
push edi
push 0x821013c
jmp 0x1066487
cmp dword [ebp + 0xc], ebx
je 0x106643b
or dword [ebp - 0x828], 0x401
jmp 0x106644a
cmp dword [0x10b7598], ebx
je 0x106644a
or dword [ebp - 0x828], 2
mov eax, dword [esi]
mov ecx, dword [eax]
lea edx, [ebp - 0x824]
push edx
lea edx, [ebp - 0x414]
push edx
lea edx, [ebp - 0x61c]
push edx
lea edx, [ebp - 0x20c]
push edx
push 0x1003fe0
push 2
push dword [ebp - 0x828]
push eax
call dword [ecx + 0xc]
mov edi, eax
cmp edi, ebx
je 0x10664a1
push edi
push 0x833013c
call fcn.0107ae44
mov esi, dword [ebp - 0x838]
mov eax, dword [esi]
test eax, eax
je 0x10664a1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
and dword [esi], 0
pop esi
cmp dword [ebp - 0x82c], 0
je 0x10664b7
push dword [ebp - 0x82c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
xor ecx, ebp
pop ebx
call fcn.01068363
leave
ret 0xc