Function at 0x40cde0
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x114c
call fcn.004121b0
mov eax, dword [0x42000c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
test esi, esi
je 0x40d07d
test ebx, ebx
je 0x40d07d
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40ce14
sub ecx, edx
sar ecx, 1
je 0x40d07d
mov ecx, ebx
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40ce30
sub ecx, edx
sar ecx, 1
je 0x40d07d
push 0x190
lea eax, [ebp - 0x194]
mov dword [ebp - 0x1138], 0
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x1138]
push eax
push 0x20019
push 0
push esi
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x40d055
mov eax, dword [ebp - 0x1138]
test eax, eax
je 0x40d066
push edi
xor edi, edi
mov dword [ebp - 0x1140], 0xc7
push edi
push edi
push edi
push edi
lea ecx, [ebp - 0x1140]
push ecx
lea ecx, [ebp - 0x194]
push ecx
push edi
push eax
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x40d054
lea ecx, [ebp - 0x194]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40ced0
sub ecx, edx
sar ecx, 1
je 0x40d054
cmp dword [ebp - 0x1138], 0
je 0x40d008
mov eax, ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40cef7
sub eax, edx
sar eax, 1
je 0x40d008
lea eax, [ebp - 0x113c]
mov dword [ebp - 0x113c], 0
push eax
push 0x20019
push 0
lea eax, [ebp - 0x194]
push eax
push dword [ebp - 0x1138]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x40d008
mov esi, dword [ebp - 0x113c]
test esi, esi
je 0x40d008
push 0xfa0
push eax
lea eax, [ebp - 0x1134]
mov dword [ebp - 0x1148], 1
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 0x1144], 0xf9e
lea eax, [ebp - 0x1144]
push eax
lea eax, [ebp - 0x1134]
push eax
lea eax, [ebp - 0x1148]
push eax
push 0xffff
push ebx
push 0
push esi
call dword [sym.imp.ADVAPI32.dll_RegGetValueW]
push dword [ebp - 0x113c]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
jne 0x40d008
cmp dword [ebp - 0x1148], 1
jne 0x40d008
lea ecx, [ebp - 0x1134]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40cfc0
sub ecx, edx
sar ecx, 1
je 0x40d008
mov eax, 0x25
cmp ax, word [ebp - 0x1134]
je 0x40d008
lea eax, [ebp - 0x1134]
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeW]
test eax, eax
lea eax, [ebp - 0x1134]
je 0x40cffd
push 0x800
jmp 0x40cfff
push 0
push 0
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
push 0x190
lea eax, [ebp - 0x194]
mov dword [ebp - 0x1140], 0xc7
push 0
push eax
inc edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x1140]
push 0
push 0
push 0
push 0
push eax
lea eax, [ebp - 0x194]
push eax
push edi
push dword [ebp - 0x1138]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
je 0x40cec4
pop edi
mov eax, dword [ebp - 0x1138]
test eax, eax
je 0x40d066
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00410e60
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 4]
xor eax, eax
pop esi
xor ecx, ebp
pop ebx
call fcn.00410e60
mov esp, ebp
pop ebp
ret 8