Function at 0x45c902
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x24
mov eax, 0x48ad1e
call fcn.0047dc8f
cmp cx, 0x61
jb 0x45c91a
cmp cx, 0x7a
jbe 0x45c92d
lea eax, [ecx - 0x41]
cmp ax, 0x19
jbe 0x45c92d
mov eax, 0x80070057
jmp 0x45ce69
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.0045b5f0
push eax
mov edx, 0x40b0a0
lea ecx, [ebp - 0x1c]
call fcn.00437888
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 0x45c9b5
push ebx
push 0x412c08
push 0x2000000
call fcn.0045ab3f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x412bcc
push 0x412498
push 0x3a1
push ecx
push 0x41216c
push ecx
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
jmp 0x45ce58
lea eax, [ebp - 0x1c]
push eax
push 0x412c74
push 0x4000000
call fcn.0045ab3f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x412bcc
push 0x412498
push 0x3a5
push ecx
push 0x41216c
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 [0x4928c8]
lea ecx, [ebp - 0x2c]
call esi
mov ecx, eax
call fcn.0045c05e
mov esi, eax
test esi, esi
jns 0x45ca6a
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 [0x4928c8]
lea ecx, [ebp - 0x2c]
call esi
push eax
push 0x412ca0
push 0x3000000
call fcn.0045ab3f
add esp, 0x10
xor esi, esi
push esi
push esi
push ebx
push edi
push 0x412bcc
push 0x412498
push 0x3ab
push esi
push 0x41216c
push esi
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
jmp 0x45ca6c
xor esi, esi
call fcn.0045c1fd
mov ebx, eax
test ebx, ebx
jns 0x45cabf
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push ebx
push 0x412cf8
push 0x3000000
mov esi, eax
call fcn.0045ab3f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x412bcc
push 0x412498
push 0x3b4
xor esi, esi
push esi
push 0x41216c
push esi
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
call fcn.0045e778
mov ebx, eax
test ebx, ebx
js 0x45cad9
xor edx, edx
xor ecx, ecx
call fcn.0045df08
mov ebx, eax
test ebx, ebx
jns 0x45cb21
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push ebx
push 0x412d50
push 0x3000000
mov esi, eax
call fcn.0045ab3f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x412bcc
push 0x412498
push 0x3bd
xor esi, esi
push esi
push 0x41216c
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 [0x4928c8]
lea ecx, [ebp - 0x2c]
call esi
mov ecx, dword [ebp - 0x24]
mov edi, eax
mov esi, dword [ecx + 4]
mov ecx, esi
call dword [0x4928c8]
lea ecx, [ebp - 0x24]
call esi
push 0x412dac
push 0x412dc8
push 0x40b0bc
push edi
push 4
push eax
call fcn.004378e4
mov ebx, eax
add esp, 0x18
test ebx, ebx
jns 0x45cbc3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push ebx
push 0x412dd8
push 0x2000000
mov esi, eax
call fcn.0045ab3f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x412bcc
push 0x412498
push 0x3cf
push ecx
push 0x41216c
push ecx
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
jmp 0x45ce49
mov eax, dword [ebp - 0x24]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4928c8]
lea ecx, [ebp - 0x24]
call esi
mov ecx, eax
call fcn.00438e07
test eax, eax
je 0x45ccbe
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 [0x4928c8]
lea ecx, [ebp - 0x24]
call esi
push eax
push 0x412e3c
push 0x4000000
call fcn.0045ab3f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push ebx
push edi
push 0x412bcc
push 0x412498
push 0x3d5
xor ebx, ebx
push ebx
push 0x41216c
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 [0x4928c8]
lea ecx, [ebp - 0x24]
call esi
mov ecx, eax
call fcn.0045c8ae
mov esi, eax
test esi, esi
jns 0x45ccc0
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 [0x4928c8]
lea ecx, [ebp - 0x24]
call esi
push eax
push 0x412e70
push 0x3000000
call fcn.0045ab3f
add esp, 0x10
xor ecx, ecx
push ecx
push ecx
push ebx
push edi
push 0x412bcc
push 0x412498
push 0x3d9
xor ebx, ebx
push ebx
push 0x41216c
push ebx
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
jmp 0x45ccc0
xor ebx, ebx
lea eax, [ebp - 0x30]
mov dword [ebp - 0x30], ebx
push eax
push 0x20019
push ebx
push 0x412edc
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x45cdde
cmp dword [ebp - 0x30], eax
je 0x45cdde
push ebx
push ebx
push ebx
push ebx
push 0x412ec0
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 0x45cde5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push 0x412f18
push 0x4000000
mov esi, eax
call fcn.0045ab3f
pop ecx
pop ecx
push ebx
push ebx
push edi
push esi
push 0x412bcc
push 0x412498
push 0x3e9
push ebx
push 0x41216c
push ebx
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
push ecx
call fcn.0043b79f
test eax, eax
jne 0x45ce27
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 0x45cd91
movzx eax, ax
or eax, 0x80070000
test eax, eax
jns 0x45cda7
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x45cdac
movzx eax, ax
or eax, 0x80070000
jmp 0x45cdac
mov eax, 0x80004005
push eax
push 0x412ec0
push 0x412edc
push 0x412f60
push 0x3000000
call fcn.0045ab3f
add esp, 0x14
push ebx
push ebx
push esi
push edi
push 0x412bcc
push 0x412498
push 0x3ef
jmp 0x45ce19
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 0x412fa8
push 0x4000000
mov esi, eax
call fcn.0045ab3f
pop ecx
pop ecx
push ebx
push ebx
push edi
push esi
push 0x412bcc
push 0x412498
push 0x3f4
push ebx
push 0x41216c
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 [0x4928c8]
lea ecx, [ebp - 0x2c]
call esi
mov ecx, eax
call fcn.0045d058
mov ebx, eax
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x24], 0x402a04
call fcn.0045b4e0
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0x402a04
call fcn.0045b4e0
mov eax, ebx
call fcn.0047dc41
ret 0x10