Function at 0x42a370
Capabilities:
Query or enumerate registry value

Disassembly:
push 0xffffffffffffffff
push 0x4d2b6a
mov eax, dword fs:[0]
push eax
sub esp, 0x16c
mov eax, dword [0x4ff0f4]
xor eax, esp
mov dword [esp + 0x168], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4ff0f4]
xor eax, esp
push eax
lea eax, [esp + 0x180]
mov dword fs:[0], eax
mov eax, dword [esp + 0x190]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x194]
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x18], ebx
lea esi, [esp + 0x28]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x60], eax
mov byte [esp + 0x1e], bl
mov dword [esp + 0x20], ebp
call fcn.0042d8f0
lea ecx, [esp + 0x20]
push ecx
lea esi, [esp + 0x14c]
lea edi, [eax + 8]
call fcn.0042d9e0
mov edx, dword [eax + 8]
call edx
push eax
mov eax, dword [edi]
call eax
test eax, eax
sete al
test al, al
je 0x42a40f
mov dword [esp + 0x20], ebp
jmp 0x42a420
mov eax, 1
cmp dword [esp + 0x20], eax
jne 0x42a420
mov dword [esp + 0x20], eax
mov edi, edi
lea esi, [esp + 0x148]
call fcn.0042dad0
mov edx, dword [esp + 0x20]
dec edx
neg edx
sbb edx, edx
and edx, 0x100
lea ecx, [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x60]
add edx, 0x100
or edx, 0x20019
push edx
push ebp
mov esi, eax
call fcn.004175e0
mov ecx, dword [esi + 8]
push eax
mov eax, dword [esp + 0x68]
push eax
call ecx
test eax, eax
sete al
test al, al
je 0x42ac76
lea esi, [esp + 0x154]
call fcn.0042dbc0
mov esi, dword [eax + 8]
mov edi, dword [esp + 0x54]
push 0xc
call fcn.004aac11
add esp, 4
mov dword [esp + 0x40], eax
mov dword [esp + 0x188], ebp
cmp eax, ebp
je 0x42a4c5
mov dword [eax], vtable.StartupAreas::IFreeProcPtr.0
mov byte [esp + 0x188], 1
mov dword [eax], vtable.StartupAreas::FreeProcPtr_long_int____stdcall___struct_HKEY______struct_HKEY____.0
mov dword [eax + 4], esi
mov dword [eax + 8], edi
mov byte [esp + 0x188], 0
mov dword [esp + 0x4c], eax
jmp 0x42a4c9
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x188], 0xffffffff
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x10c], edx
mov dword [esp + 0x188], 2
xor ecx, ecx
mov eax, 0x3fff
mov dword [esp + 0x34], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004a9ac5
add esp, 4
xor edi, edi
mov esi, eax
mov dword [esp + 0x50], esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x38], edi
jmp 0x42a528
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x40]
mov ebp, dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x58]
push 0
lea ecx, [esp + 0x40]
push ecx
push 0
lea edx, [esp + 0x44]
push edx
push esi
push edi
push eax
mov dword [esp + 0x54], 0x3fff
call ebp
inc edi
mov dword [esp + 0x40], edi
test eax, eax
jne 0x42ac3d
mov eax, dword [esp + 0x38]
cmp eax, 1
je 0x42a56d
cmp eax, 7
jne 0x42a528
mov eax, dword [esp + 0x24]
shr eax, 1
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x34], 0x3fff
neg ecx
or ecx, eax
push ecx
call fcn.004a9ac5
add esp, 4
lea ecx, [esp + 0x24]
push ecx
push eax
lea edx, [esp + 0x40]
push edx
mov edx, dword [esp + 0x60]
push 0
mov dword [esp + 0x54], eax
lea eax, [esp + 0x44]
push eax
push esi
lea ecx, [edi - 1]
push ecx
push edx
call ebp
test eax, eax
jne 0x42ac3d
mov eax, dword [esp + 0x38]
cmp eax, 1
je 0x42a5d1
cmp eax, 7
jne 0x42a528
mov edx, dword [0x511c3c]
lea eax, [esp + 0x2c]
mov dword [esp + 0x48], eax
mov eax, dword [edx + 0xc]
mov ecx, 0x511c3c
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
mov byte [esp + 0x188], 4
mov edx, dword [0x511c3c]
mov eax, dword [edx + 0xc]
lea ecx, [esp + 0x30]
mov dword [esp + 0x48], ecx
mov ecx, 0x511c3c
call eax
add eax, 0x10
mov dword [esp + 0x30], eax
mov byte [esp + 0x188], 7
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x58]
dec ecx
neg ecx
sbb ecx, ecx
and ecx, 0xfffffffd
add ecx, 4
mov dword [esp + 0x28], ecx
call fcn.0042f860
xor ebp, ebp
cmp eax, ebp
jne 0x42a645
xor ecx, ecx
jmp 0x42a65f
mov ecx, eax
lea edi, [ecx + 2]
lea ebx, [ebx]
mov dx, word [ecx]
add ecx, 2
cmp dx, bp
jne 0x42a650
sub ecx, edi
sar ecx, 1
push ecx
push eax
lea ecx, [esp + 0x34]
call fcn.00408cb0
push 1
push 0x4e7b5c
lea ecx, [esp + 0x34]
call fcn.00417450
mov ecx, dword [esp + 0x5c]
call fcn.004175e0
cmp eax, ebp
jne 0x42a68b
xor ecx, ecx
jmp 0x42a69f
mov ecx, eax
lea edi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
cmp dx, bp
jne 0x42a690
sub ecx, edi
sar ecx, 1
push ecx
push eax
lea ecx, [esp + 0x34]
call fcn.00417450
cmp word [esi], bp
jne 0x42a6b8
push 0x26
push str.0021c3f1_b7ad_4128_865d_6575195f43c5
jmp 0x42a6d1
mov eax, esi
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x42a6c0
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [esp + 0x38]
call fcn.00408cb0
mov eax, dword [esp + 0x60]
push 0xffffffffffffffff
push ebp
xor edx, edx
mov edi, 7
push eax
lea ecx, [esp + 0x16c]
mov dword [esp + 0x184], edi
mov dword [esp + 0x180], ebp
mov word [esp + 0x170], dx
call fcn.00407a40
mov byte [esp + 0x188], 8
push 1
push 0x4e7bc4
lea eax, [esp + 0x168]
call fcn.0042e490
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x44]
shr eax, 1
xor ecx, ecx
push eax
mov word [esp + 0x6c], cx
push edx
lea ecx, [esp + 0x6c]
mov dword [esp + 0x84], edi
mov dword [esp + 0x80], ebp
call fcn.00408fa0
mov byte [esp + 0x188], 9
push ebp
lea eax, [esp + 0x68]
push eax
or eax, 0xffffffff
lea esi, [esp + 0x168]
call fcn.0042e380
mov byte [esp + 0x188], 8
cmp dword [esp + 0x7c], 8
jb 0x42a789
mov ecx, dword [esp + 0x68]
push ecx
call fcn.004a9c11
add esp, 4
mov esi, 0xe
push esi
xor edx, edx
xor eax, eax
push 0x4e8958
lea ecx, [esp + 0xdc]
mov dword [esp + 0x84], edi
mov dword [esp + 0x80], ebp
mov word [esp + 0x70], dx
mov dword [esp + 0xf4], edi
mov dword [esp + 0xf0], ebp
mov word [esp + 0xe0], ax
call fcn.00408fa0
mov byte [esp + 0x188], 0xa
mov eax, dword [esp + 0x50]
or ebx, 1
mov dword [esp + 0x18], ebx
mov edx, dword [esp + 0x34]
xor ecx, ecx
push edx
mov word [esp + 0xf8], cx
push eax
lea ecx, [esp + 0xf8]
mov dword [esp + 0x110], edi
mov dword [esp + 0x10c], ebp
call fcn.00408fa0
mov dword [esp + 0x188], 0xb
lea ecx, [esp + 0xd4]
push ecx
lea edx, [esp + 0x114]
or ebx, 2
push edx
lea ecx, [esp + 0xf8]
mov dword [esp + 0x20], ebx
call fcn.00429ed0
mov dword [esp + 0x190], 0xc
mov ecx, dword [esp + 0x44]
push ecx
or ebx, 4
lea ecx, [esp + 0x34]
mov edx, eax
mov dword [esp + 0x24], ebx
call fcn.00429840
add esp, 0xc
test al, al
jne 0x42a945
push esi
xor edx, edx
push 0x4e8978
lea ecx, [esp + 0xa4]
mov dword [esp + 0xbc], edi
mov dword [esp + 0xb8], ebp
mov word [esp + 0xa8], dx
call fcn.00408fa0
mov dword [esp + 0x188], 0xd
mov edx, dword [esp + 0x44]
or ebx, 8
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x24]
shr eax, 1
xor ecx, ecx
push eax
mov word [esp + 0x88], cx
push edx
lea ecx, [esp + 0x88]
mov dword [esp + 0xa0], edi
mov dword [esp + 0x9c], ebp
call fcn.00408fa0
mov dword [esp + 0x188], esi
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x130]
push ecx
or ebx, 0x10
lea ecx, [esp + 0x88]
mov dword [esp + 0x20], ebx
call fcn.00429ed0
mov dword [esp + 0x190], 0xf
mov edx, dword [esp + 0x44]
push edx
or ebx, 0x20
lea ecx, [esp + 0x34]
mov edx, eax
mov dword [esp + 0x24], ebx
call fcn.00429840
add esp, 0xc
test al, al
jne 0x42a945
mov eax, dword [esp + 0x3c]
push eax
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x164]
call fcn.00429840
add esp, 4
mov byte [esp + 0x1f], 1
test al, al
je 0x42a94a
mov byte [esp + 0x1f], 0
mov dword [esp + 0x188], esi
mov esi, 8
test bl, 0x20
je 0x42a993
and ebx, 0xffffffdf
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x144], esi
jb 0x42a97b
mov ecx, dword [esp + 0x130]
push ecx
call fcn.004a9c11
add esp, 4
xor edx, edx
mov dword [esp + 0x144], edi
mov dword [esp + 0x140], ebp
mov word [esp + 0x130], dx
mov dword [esp + 0x188], 0xd
test bl, 0x10
je 0x42a9db
and ebx, 0xffffffef
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x98], esi
jb 0x42a9c3
mov eax, dword [esp + 0x84]
push eax
call fcn.004a9c11
add esp, 4
xor ecx, ecx
mov dword [esp + 0x98], edi
mov dword [esp + 0x94], ebp
mov word [esp + 0x84], cx
mov dword [esp + 0x188], 0xc
test bl, 8
je 0x42aa23
and ebx, 0xfffffff7
mov dword [esp + 0x18], ebx
cmp dword [esp + 0xb4], esi
jb 0x42aa0b
mov edx, dword [esp + 0xa0]
push edx
call fcn.004a9c11
add esp, 4
xor eax, eax
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb0], ebp
mov word [esp + 0xa0], ax
mov dword [esp + 0x188], 0xb
test bl, 4
je 0x42aa6b
and ebx, 0xfffffffb
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x128], esi
jb 0x42aa53
mov ecx, dword [esp + 0x114]
push ecx
call fcn.004a9c11
add esp, 4
xor edx, edx
mov dword [esp + 0x128], edi
mov dword [esp + 0x124], ebp
mov word [esp + 0x114], dx
mov dword [esp + 0x188], 0xa
test bl, 2
je 0x42aab3
and ebx, 0xfffffffd
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x108], esi
jb 0x42aa9b
mov eax, dword [esp + 0xf4]
push eax
call fcn.004a9c11
add esp, 4
xor ecx, ecx
mov dword [esp + 0x108], edi
mov dword [esp + 0x104], ebp
mov word [esp + 0xf4], cx
mov dword [esp + 0x188], esi
test bl, 1
je 0x42aaf7
and ebx, 0xfffffffe
mov dword [esp + 0x18], ebx
cmp dword [esp + 0xec], esi
jb 0x42aadf
mov edx, dword [esp + 0xd8]
push edx
call fcn.004a9c11
add esp, 4
xor eax, eax
mov dword [esp + 0xec], edi
mov dword [esp + 0xe8], ebp
mov word [esp + 0xd8], ax
cmp byte [esp + 0x1f], 0
je 0x42ab8b
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x44]
shr eax, 1
xor ecx, ecx
push eax
mov word [esp + 0xc0], cx
push edx
lea ecx, [esp + 0xc0]
mov dword [esp + 0xd8], edi
mov dword [esp + 0xd4], ebp
call fcn.00408fa0
mov byte [esp + 0x188], 0x10
mov eax, dword [esp + 0x3c]
push eax
lea ecx, [esp + 0x2c]
lea edx, [esp + 0xbc]
call fcn.00429840
add esp, 4
mov byte [esp + 0x188], 8
cmp dword [esp + 0xd0], esi
jb 0x42ab73
mov ecx, dword [esp + 0xbc]
push ecx
call fcn.004a9c11
add esp, 4
xor edx, edx
mov dword [esp + 0xd0], edi
mov dword [esp + 0xcc], ebp
mov word [esp + 0xbc], dx
mov byte [esp + 0x188], 7
cmp dword [esp + 0x178], esi
jb 0x42abac
mov eax, dword [esp + 0x164]
push eax
call fcn.004a9c11
add esp, 4
xor ecx, ecx
mov dword [esp + 0x178], edi
mov dword [esp + 0x174], ebp
mov word [esp + 0x164], cx
mov byte [esp + 0x188], 0x11
lea edx, [esp + 0x30]
mov dword [esp + 0x48], edx
mov byte [esp + 0x188], 0x11
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42abfc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x188], 2
lea ecx, [esp + 0x2c]
mov dword [esp + 0x48], ecx
mov byte [esp + 0x188], 2
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42a520
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x42a520
cmp eax, 0x103
jne 0x42ac49
mov byte [esp + 0x1e], 1
push esi
call fcn.004aa704
add esp, 4
mov dword [esp + 0x188], 0xffffffff
mov esi, dword [esp + 0x4c]
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 4]
push 1
mov ecx, esi
call eax
xor ebp, ebp
mov eax, dword [esp + 0x20]
mov ecx, eax
dec eax
mov dword [esp + 0x20], eax
test ecx, ecx
jne 0x42a420
mov al, byte [esp + 0x1e]
mov ecx, dword [esp + 0x180]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x168]
xor ecx, esp
call fcn.004a9c1c
add esp, 0x178
ret