Function at 0x40a343
Capabilities:
Query or enumerate registry value

Disassembly:
push ebx
mov edx, 0x12
sub esp, 4
mov dword [esp], 0
dec edx
jne 0x40a349
call fcn.00449ac0
push dword [esp + 0x5c]
call fcn.0040f540
mov edx, dword [esp + 0x50]
lea ecx, [esp]
call fcn.0040f000
mov edx, dword [esp + 0x54]
lea ecx, [esp + 4]
call fcn.0040f000
mov edx, dword [esp + 0x58]
lea ecx, [esp + 8]
call fcn.0040f000
push dword [esp]
call fcn.0040b9e4
push dword [esp + 8]
mov edx, 0x4dda24
pop ecx
call fcn.0040f550
je 0x40a3f6
cmp dword [0x577e60], 0
je 0x40a3da
lea eax, [esp + 0x10]
push eax
mov ebx, dword [0x577e78]
or ebx, 0xf003f
push ebx
push 0
push dword [0x577e40]
push dword [0x577e5c]
call sub.ADVAPI32.dll_RegOpenKeyExW
mov dword [esp + 0xc], eax
jmp 0x40a3f4
lea eax, [esp + 0x10]
push eax
push dword [0x577e40]
push dword [0x577e5c]
call sub.ADVAPI32.dll_RegOpenKeyW
mov dword [esp + 0xc], eax
jmp 0x40a45b
lea eax, [esp + 0x18]
push eax
push dword [0x577e5c]
push dword [esp + 0x10]
call sub.ADVAPI32.dll_RegConnectRegistryW
mov dword [esp + 0x14], eax
cmp dword [0x577e60], 0
je 0x40a443
lea eax, [esp + 0x10]
push eax
mov ebx, dword [0x577e78]
or ebx, 0xf003f
push ebx
push 0
push dword [0x577e40]
push dword [esp + 0x28]
call sub.ADVAPI32.dll_RegOpenKeyExW
mov dword [esp + 0xc], eax
jmp 0x40a45b
lea eax, [esp + 0x10]
push eax
push dword [0x577e40]
push dword [esp + 0x20]
call sub.ADVAPI32.dll_RegOpenKeyW
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0xc]
and ebx, ebx
jne 0x40a734
mov dword [esp + 0x1c], 0x400
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499b0
pop edx
push eax
push dword [esp + 0x24]
call fcn.00447220
lea eax, [esp + 0x24]
push eax
call fcn.00449a30
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x24]
push eax
lea eax, [esp + 0x2c]
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 0x40a734
push dword [esp + 0x24]
mov ebx, 1
cmp ebx, dword [esp]
jne 0x40a53c
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x28]
push eax
lea eax, [esp + 0x30]
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 0x40a529
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499b0
pop edx
push eax
mov ebx, dword [esp + 0x28]
dec ebx
push ebx
push dword [esp + 0x30]
call fcn.004481f0
lea eax, [esp + 0x30]
push eax
call fcn.00449a30
jmp 0x40a537
mov edx, 0x4dd028
lea ecx, [esp + 0x2c]
call fcn.0040f008
jmp 0x40a733
mov ebx, 2
cmp ebx, dword [esp]
jne 0x40a5b1
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x28]
push eax
lea eax, [esp + 0x30]
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 0x40a59e
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499b0
pop edx
push eax
mov ebx, dword [esp + 0x28]
dec ebx
push ebx
push dword [esp + 0x30]
call fcn.004481f0
lea eax, [esp + 0x30]
push eax
call fcn.00449a30
jmp 0x40a5ac
mov edx, 0x4dd028
lea ecx, [esp + 0x2c]
call fcn.0040f008
jmp 0x40a733
mov ebx, 4
cmp ebx, dword [esp]
jne 0x40a623
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x38]
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 0x40a610
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499b0
pop edx
push eax
mov eax, dword [esp + 0x3c]
cdq
push edx
push eax
call fcn.00447f90
lea eax, [esp + 0x30]
push eax
call fcn.00449a30
jmp 0x40a61e
mov edx, 0x4dda9a
lea ecx, [esp + 0x2c]
call fcn.0040f008
jmp 0x40a733
mov ebx, 3
cmp ebx, dword [esp]
jne 0x40a733
mov dword [esp + 0x38], 0x400
push dword [esp + 0x38]
call fcn.004488e0
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x40]
lea eax, [esp + 0x48]
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 0x40a733
mov edx, 0x4dd028
lea ecx, [esp + 0x2c]
call fcn.0040f008
mov dword [esp + 0x44], 0
jmp 0x40a68e
mov ebx, dword [esp + 0x38]
dec ebx
cmp ebx, dword [esp + 0x44]
jl 0x40a72a
mov ebx, dword [esp + 0x3c]
add ebx, dword [esp + 0x44]
push ebx
call fcn.00448ac0
mov ebx, eax
and ebx, 0xff
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x48]
cmp ebx, 0x10
jge 0x40a6e7
mov edx, dword [esp + 0x2c]
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499e0
mov edx, 0x4dda9a
push edx
call fcn.004499e0
lea eax, [esp + 0x30]
push eax
call fcn.00449a30
mov edx, dword [esp + 0x2c]
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499e0
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499b0
pop edx
push eax
mov eax, dword [esp + 0x54]
cdq
push edx
push eax
call fcn.00448340
pop eax
lea eax, [esp + 0x30]
push eax
call fcn.00449a30
inc dword [esp + 0x44]
jno 0x40a68e
push dword [esp + 0x3c]
call fcn.00448aa0
pop eax
push dword [esp + 0x10]
call sub.ADVAPI32.dll_RegCloseKey
mov edx, dword [esp + 0x28]
push edx
call fcn.004499b0
pop edx
push eax
push edx
call fcn.004499e0
pop eax
push eax
call fcn.0040f510
pop edx
add eax, edx
jmp 0x40a765
push dword [esp + 8]
call fcn.00449b50
push dword [esp + 0x20]
call fcn.00449b50
push dword [esp]
call fcn.00449b50
push dword [esp + 4]
call fcn.00449b50
push dword [esp + 0x28]
call fcn.00449b50
add esp, 0x48
pop ebx
ret 0xc