Function at 0x45bb54
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x24
mov eax, 0x489e22
call fcn.0047ceef
cmp cx, 0x61
jb 0x45bb6c
cmp cx, 0x7a
jbe 0x45bb7f
lea eax, [ecx - 0x41]
cmp ax, 0x19
jbe 0x45bb7f
mov eax, 0x80070057
jmp 0x45c0bb
and dword [ebp - 0x28], 0
mov dword [ebp - 0x1c], 0x3a003f
mov dword [ebp - 0x18], 0x5c
mov word [ebp - 0x1c], cx
mov dword [ebp - 0x2c], 0x402a04
and dword [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call fcn.0045a840
push eax
mov edx, 0x40b100
lea ecx, [ebp - 0x1c]
call fcn.00436ba8
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
mov esi, eax
test ebx, ebx
jns 0x45bc07
push ebx
push 0x412ad8
push 0x2000000
call fcn.00459d8f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x412a9c
push 0x412368
push 0x3a1
push ecx
push 0x41203c
push ecx
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
jmp 0x45c0aa
lea eax, [ebp - 0x1c]
push eax
push 0x412b44
push 0x4000000
call fcn.00459d8f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x412a9c
push 0x412368
push 0x3a5
push ecx
push 0x41203c
push ecx
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
mov eax, dword [ebp - 0x2c]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4918b8]
lea ecx, [ebp - 0x2c]
call esi
mov ecx, eax
call fcn.0045b2ae
mov esi, eax
test esi, esi
jns 0x45bcbc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
mov ecx, dword [ebp - 0x2c]
mov edi, eax
push esi
mov esi, dword [ecx + 0x10]
mov ecx, esi
call dword [0x4918b8]
lea ecx, [ebp - 0x2c]
call esi
push eax
push 0x412b70
push 0x3000000
call fcn.00459d8f
add esp, 0x10
xor esi, esi
push esi
push esi
push ebx
push edi
push 0x412a9c
push 0x412368
push 0x3ab
push esi
push 0x41203c
push esi
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
jmp 0x45bcbe
xor esi, esi
call fcn.0045b44d
mov ebx, eax
test ebx, ebx
jns 0x45bd11
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push ebx
push 0x412bc8
push 0x3000000
mov esi, eax
call fcn.00459d8f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x412a9c
push 0x412368
push 0x3b4
xor esi, esi
push esi
push 0x41203c
push esi
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
call fcn.0045d9c8
mov ebx, eax
test ebx, ebx
js 0x45bd2b
xor edx, edx
xor ecx, ecx
call fcn.0045d158
mov ebx, eax
test ebx, ebx
jns 0x45bd73
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push ebx
push 0x412c20
push 0x3000000
mov esi, eax
call fcn.00459d8f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x412a9c
push 0x412368
push 0x3bd
xor esi, esi
push esi
push 0x41203c
push esi
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], 0x402a04
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x2c]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4918b8]
lea ecx, [ebp - 0x2c]
call esi
mov ecx, dword [ebp - 0x24]
mov edi, eax
mov esi, dword [ecx + 4]
mov ecx, esi
call dword [0x4918b8]
lea ecx, [ebp - 0x24]
call esi
push 0x412c7c
push 0x412c98
push 0x40b11c
push edi
push 4
push eax
call fcn.00436c04
mov ebx, eax
add esp, 0x18
test ebx, ebx
jns 0x45be15
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push ebx
push 0x412ca8
push 0x2000000
mov esi, eax
call fcn.00459d8f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x412a9c
push 0x412368
push 0x3cf
push ecx
push 0x41203c
push ecx
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
jmp 0x45c09b
mov eax, dword [ebp - 0x24]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4918b8]
lea ecx, [ebp - 0x24]
call esi
mov ecx, eax
call fcn.00438064
test eax, eax
je 0x45bf10
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
mov ecx, dword [ebp - 0x24]
mov edi, eax
mov esi, dword [ecx + 0x10]
mov ecx, esi
call dword [0x4918b8]
lea ecx, [ebp - 0x24]
call esi
push eax
push 0x412d0c
push 0x4000000
call fcn.00459d8f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push ebx
push edi
push 0x412a9c
push 0x412368
push 0x3d5
xor ebx, ebx
push ebx
push 0x41203c
push ebx
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
mov eax, dword [ebp - 0x24]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4918b8]
lea ecx, [ebp - 0x24]
call esi
mov ecx, eax
call fcn.0045bafe
mov esi, eax
test esi, esi
jns 0x45bf12
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
mov ecx, dword [ebp - 0x24]
mov edi, eax
push esi
mov esi, dword [ecx + 0x10]
mov ecx, esi
call dword [0x4918b8]
lea ecx, [ebp - 0x24]
call esi
push eax
push 0x412d40
push 0x3000000
call fcn.00459d8f
add esp, 0x10
xor ecx, ecx
push ecx
push ecx
push ebx
push edi
push 0x412a9c
push 0x412368
push 0x3d9
xor ebx, ebx
push ebx
push 0x41203c
push ebx
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
jmp 0x45bf12
xor ebx, ebx
lea eax, [ebp - 0x30]
mov dword [ebp - 0x30], ebx
push eax
push 0x20019
push ebx
push 0x412dac
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x45c030
cmp dword [ebp - 0x30], eax
je 0x45c030
push ebx
push ebx
push ebx
push ebx
push 0x412d90
push dword [ebp - 0x30]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0x30]
neg eax
sbb esi, esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
add esi, 1
je 0x45c037
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push 0x412de8
push 0x4000000
mov esi, eax
call fcn.00459d8f
pop ecx
pop ecx
push ebx
push ebx
push edi
push esi
push 0x412a9c
push 0x412368
push 0x3e9
push ebx
push 0x41203c
push ebx
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
push ecx
call fcn.0043a9ef
test eax, eax
jne 0x45c079
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x45bfe3
movzx eax, ax
or eax, 0x80070000
test eax, eax
jns 0x45bff9
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x45bffe
movzx eax, ax
or eax, 0x80070000
jmp 0x45bffe
mov eax, 0x80004005
push eax
push 0x412d90
push 0x412dac
push 0x412e30
push 0x3000000
call fcn.00459d8f
add esp, 0x14
push ebx
push ebx
push esi
push edi
push 0x412a9c
push 0x412368
push 0x3ef
jmp 0x45c06b
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push 0x412e78
push 0x4000000
mov esi, eax
call fcn.00459d8f
pop ecx
pop ecx
push ebx
push ebx
push edi
push esi
push 0x412a9c
push 0x412368
push 0x3f4
push ebx
push 0x41203c
push ebx
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
mov eax, dword [ebp - 0x2c]
push ecx
push ecx
push ebx
mov esi, dword [eax + 0x10]
mov ecx, esi
push ebx
push ebx
push ebx
call dword [0x4918b8]
lea ecx, [ebp - 0x2c]
call esi
mov ecx, eax
call fcn.0045c2a8
mov ebx, eax
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x24], 0x402a04
call fcn.0045a730
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0x402a04
call fcn.0045a730
mov eax, ebx
call fcn.0047cea1
ret 0x10