Function at 0x40a757
Capabilities:
Query or enumerate registry value

Disassembly:
push ebx
mov edx, 0xd
sub esp, 4
mov dword [esp], 0
dec edx
jne 0x40a75d
call fcn.0041cc40
push dword [esp + 0x4c]
call fcn.0040d240
mov edx, dword [esp + 0x40]
lea ecx, [esp]
call fcn.0040d000
mov edx, dword [esp + 0x44]
lea ecx, [esp + 4]
call fcn.0040d000
mov edx, dword [esp + 0x48]
lea ecx, [esp + 8]
call fcn.0040d000
push edx
call fcn.0041caa0
pop edx
push eax
push edx
call fcn.0041caa0
pop edx
push eax
push 1
push dword [esp + 0xc]
call fcn.0041b340
call fcn.0041cbd0
mov edx, 0x4281c2
call fcn.0040d250
mov ecx, eax
call fcn.0040d1d0
je 0x40a804
push edx
call fcn.0041caa0
pop edx
push eax
push edx
call fcn.0041caa0
pop edx
push eax
push dword [esp + 8]
call fcn.0041b0f0
mov ebx, eax
dec ebx
push ebx
push dword [esp + 0xc]
call fcn.0041b3b0
lea eax, [esp + 4]
push eax
call fcn.0041cae0
push dword [esp + 8]
mov edx, 0x428028
pop ecx
call fcn.0040d1d0
je 0x40a837
lea eax, [esp + 0x10]
push eax
push 0xf003f
push 0
push dword [esp + 0xc]
push dword [esp + 0x4c]
call sub.ADVAPI32.dll_RegOpenKeyExW
mov dword [esp + 0xc], eax
jmp 0x40a86d
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x40]
push dword [esp + 0x10]
call sub.ADVAPI32.dll_RegConnectRegistryW
mov dword [esp + 0x24], eax
lea eax, [esp + 0x10]
push eax
push 0xf003f
push 0
push dword [esp + 0xc]
push dword [esp + 0x38]
call sub.ADVAPI32.dll_RegOpenKeyExW
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0xc]
and ebx, ebx
jne 0x40a9ba
mov dword [esp + 0x1c], 0xff
push edx
call fcn.0041caa0
pop edx
push eax
push edx
call fcn.0041caa0
pop edx
push eax
push 0xff
call fcn.0041ac40
lea eax, [esp + 0x18]
push eax
call fcn.0041cae0
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x18]
push eax
lea eax, [esp + 0x28]
push eax
push 0
push dword [esp + 0x14]
push dword [esp + 0x24]
call sub.ADVAPI32.dll_RegQueryValueExW
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0xc]
and ebx, ebx
jne 0x40a9ba
push dword [esp + 0x20]
mov ebx, 1
cmp ebx, dword [esp]
jne 0x40a94c
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x1c]
push eax
lea eax, [esp + 0x2c]
push eax
push 0
push dword [esp + 0x18]
push dword [esp + 0x28]
call sub.ADVAPI32.dll_RegQueryValueExW
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0x10]
and ebx, ebx
jne 0x40a93c
push edx
call fcn.0041caa0
pop edx
push eax
push edx
call fcn.0041caa0
pop edx
push eax
mov ebx, dword [esp + 0x28]
dec ebx
push ebx
push dword [esp + 0x24]
call fcn.0041b340
lea eax, [esp + 0x34]
push eax
call fcn.0041cae0
jmp 0x40a94a
mov edx, 0x428028
lea ecx, [esp + 0x30]
call fcn.0040d008
jmp 0x40a9b9
mov ebx, 4
cmp ebx, dword [esp]
jne 0x40a9b9
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x3c]
push eax
push 0
push dword [esp + 0x18]
push dword [esp + 0x28]
call sub.ADVAPI32.dll_RegQueryValueExW
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0x10]
and ebx, ebx
jne 0x40a9ab
push edx
call fcn.0041caa0
pop edx
push eax
push edx
call fcn.0041caa0
pop edx
push eax
mov eax, dword [esp + 0x24]
cdq
push edx
push eax
call fcn.0041b620
lea eax, [esp + 0x34]
push eax
call fcn.0041cae0
jmp 0x40a9b9
mov edx, 0x42806e
lea ecx, [esp + 0x30]
call fcn.0040d008
pop eax
push dword [esp + 0x10]
call sub.ADVAPI32.dll_RegCloseKey
mov edx, dword [esp + 0x2c]
push edx
call fcn.0041caa0
pop edx
push eax
push edx
call fcn.0041cb70
pop eax
push eax
call fcn.0040d210
pop edx
add eax, edx
jmp 0x40a9eb
push dword [esp + 8]
call fcn.0041ccd0
push dword [esp + 0x14]
call fcn.0041ccd0
push dword [esp + 4]
call fcn.0041ccd0
push dword [esp]
call fcn.0041ccd0
push dword [esp + 0x2c]
call fcn.0041ccd0
add esp, 0x34
pop ebx
ret 0x10