Function at 0x40c096
Capabilities:
Query or enumerate registry value

Disassembly:
push ebx
mov edx, 0x12
sub esp, 4
mov dword [esp], 0
dec edx
jne 0x40c09c
call fcn.0044cf80
push dword [esp + 0x5c]
call fcn.00411bf0
mov edx, dword [esp + 0x50]
lea ecx, [esp]
call fcn.00411000
mov edx, dword [esp + 0x54]
lea ecx, [esp + 4]
call fcn.00411000
mov edx, dword [esp + 0x58]
lea ecx, [esp + 8]
call fcn.00411000
push dword [esp]
call fcn.0040d735
push dword [esp + 8]
mov edx, 0x4a63b4
pop ecx
call fcn.00411bb0
je 0x40c149
cmp dword [0x21967b0], 0
je 0x40c12d
lea eax, [esp + 0x10]
push eax
mov ebx, dword [0x21967c8]
or ebx, 0xf003f
push ebx
push 0
push dword [0x2196790]
push dword [0x21967ac]
call sub.ADVAPI32.dll_RegOpenKeyExW
mov dword [esp + 0xc], eax
jmp 0x40c147
lea eax, [esp + 0x10]
push eax
push dword [0x2196790]
push dword [0x21967ac]
call sub.ADVAPI32.dll_RegOpenKeyW
mov dword [esp + 0xc], eax
jmp 0x40c1ae
lea eax, [esp + 0x18]
push eax
push dword [0x21967ac]
push dword [esp + 0x10]
call sub.ADVAPI32.dll_RegConnectRegistryW
mov dword [esp + 0x14], eax
cmp dword [0x21967b0], 0
je 0x40c196
lea eax, [esp + 0x10]
push eax
mov ebx, dword [0x21967c8]
or ebx, 0xf003f
push ebx
push 0
push dword [0x2196790]
push dword [esp + 0x28]
call sub.ADVAPI32.dll_RegOpenKeyExW
mov dword [esp + 0xc], eax
jmp 0x40c1ae
lea eax, [esp + 0x10]
push eax
push dword [0x2196790]
push dword [esp + 0x20]
call sub.ADVAPI32.dll_RegOpenKeyW
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0xc]
and ebx, ebx
jne 0x40c488
mov dword [esp + 0x1c], 0x400
push edx
call fcn.0044cde0
pop edx
push eax
push edx
call fcn.0044cde0
pop edx
push eax
push dword [esp + 0x24]
call fcn.0044a720
lea eax, [esp + 0x24]
push eax
call fcn.0044ce20
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 0x40c488
push dword [esp + 0x24]
mov ebx, 1
cmp ebx, dword [esp]
jne 0x40c28f
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 0x40c27c
push edx
call fcn.0044cde0
pop edx
push eax
push edx
call fcn.0044cde0
pop edx
push eax
mov ebx, dword [esp + 0x28]
dec ebx
push ebx
push dword [esp + 0x30]
call fcn.0044b470
lea eax, [esp + 0x30]
push eax
call fcn.0044ce20
jmp 0x40c28a
mov edx, 0x4a6028
lea ecx, [esp + 0x2c]
call fcn.00411008
jmp 0x40c487
mov ebx, 2
cmp ebx, dword [esp]
jne 0x40c304
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 0x40c2f1
push edx
call fcn.0044cde0
pop edx
push eax
push edx
call fcn.0044cde0
pop edx
push eax
mov ebx, dword [esp + 0x28]
dec ebx
push ebx
push dword [esp + 0x30]
call fcn.0044b470
lea eax, [esp + 0x30]
push eax
call fcn.0044ce20
jmp 0x40c2ff
mov edx, 0x4a6028
lea ecx, [esp + 0x2c]
call fcn.00411008
jmp 0x40c487
mov ebx, 4
cmp ebx, dword [esp]
jne 0x40c376
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 0x40c363
push edx
call fcn.0044cde0
pop edx
push eax
push edx
call fcn.0044cde0
pop edx
push eax
mov eax, dword [esp + 0x3c]
cdq
push edx
push eax
call fcn.0044a7e0
lea eax, [esp + 0x30]
push eax
call fcn.0044ce20
jmp 0x40c371
mov edx, 0x4a63ee
lea ecx, [esp + 0x2c]
call fcn.00411008
jmp 0x40c487
mov ebx, 3
cmp ebx, dword [esp]
jne 0x40c487
mov dword [esp + 0x38], 0x400
push dword [esp + 0x38]
call fcn.0044bd70
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 0x40c487
mov edx, 0x4a6028
lea ecx, [esp + 0x2c]
call fcn.00411008
mov dword [esp + 0x44], 0
jmp 0x40c3e1
mov ebx, dword [esp + 0x38]
dec ebx
cmp ebx, dword [esp + 0x44]
jl 0x40c47e
mov ebx, dword [esp + 0x3c]
add ebx, dword [esp + 0x44]
push ebx
pop eax
call fcn.00411b30
mov ebx, eax
and ebx, 0xff
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x48]
cmp ebx, 0x10
jge 0x40c43b
mov edx, dword [esp + 0x2c]
push edx
call fcn.0044cde0
pop edx
push eax
push edx
call fcn.0044cee0
mov edx, 0x4a63ee
push edx
call fcn.0044cee0
lea eax, [esp + 0x30]
push eax
call fcn.0044ce20
mov edx, dword [esp + 0x2c]
push edx
call fcn.0044cde0
pop edx
push eax
push edx
call fcn.0044cee0
push edx
call fcn.0044cde0
pop edx
push eax
push edx
call fcn.0044cde0
pop edx
push eax
mov eax, dword [esp + 0x54]
cdq
push edx
push eax
call fcn.0044b5c0
pop eax
lea eax, [esp + 0x30]
push eax
call fcn.0044ce20
inc dword [esp + 0x44]
jno 0x40c3e1
push dword [esp + 0x3c]
call fcn.0044bcc0
pop eax
push dword [esp + 0x10]
call sub.ADVAPI32.dll_RegCloseKey
mov edx, dword [esp + 0x28]
push edx
call fcn.0044cde0
pop edx
push eax
push edx
call fcn.0044cee0
pop eax
push eax
call fcn.00411b80
pop edx
add eax, edx
jmp 0x40c4b9
push dword [esp + 8]
call fcn.0044cfe0
push dword [esp + 0x20]
call fcn.0044cfe0
push dword [esp]
call fcn.0044cfe0
push dword [esp + 4]
call fcn.0044cfe0
push dword [esp + 0x28]
call fcn.0044cfe0
add esp, 0x48
pop ebx
ret 0xc