Function at 0x10055180
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100942a8
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push esi
push edi
mov eax, dword [0x100c6270]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
xor ebx, ebx
mov eax, dword [ebp + 0xc]
mov dword [eax], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], ebx
mov byte [ebp - 4], 1
push ebx
push 1
lea edx, [ebp - 0x20]
push edx
call fcn.10054f50
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x14]
call fcn.100105b0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x20]
call fcn.1000fde0
mov dword [ebp - 4], ebx
push 0x10
call fcn.1004ad24
add esp, 4
cmp eax, ebx
je 0x10055204
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov esi, eax
jmp 0x10055206
xor esi, esi
mov dword [ebp - 0x20], esi
mov byte [ebp - 4], 4
mov edi, 0x400
cmp dword [esi + 8], edi
jb 0x10055242
mov ecx, dword [esi + 4]
cmp ecx, edi
jae 0x1005522a
mov eax, edi
sub eax, ecx
push eax
mov edx, dword [esi]
add edx, ecx
push edx
jmp 0x1005525b
jbe 0x10055263
xor eax, eax
add ecx, 0xfffffc00
je 0x10055263
inc eax
mov ecx, dword [esi + 4]
sub ecx, edi
cmp eax, ecx
jb 0x10055236
jmp 0x10055263
push edi
mov ecx, esi
call fcn.1004ad90
cmp al, bl
je 0x10055266
mov eax, dword [esi + 4]
mov edx, edi
sub edx, eax
push edx
mov ecx, dword [esi]
add ecx, eax
push ecx
call fcn.1004df60
add esp, 8
mov dword [esi + 4], edi
mov dword [ebp - 0x1c], ebx
mov eax, dword [esi + 4]
cmp eax, 0xffffffff
ja 0x100552ca
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
mov eax, dword [esi]
mov edx, dword [ebp + 8]
mov ecx, dword [edx]
cmp edi, ebx
je 0x100552df
lea edx, [ebp - 0x18]
push edx
push eax
lea eax, [ebp - 0x1c]
push eax
push ebx
push ecx
mov ecx, dword [edi + 4]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp eax, ebx
je 0x1005535c
cmp eax, 2
je 0x100552f4
cmp eax, 0xea
jne 0x1005533d
push 0xffffffffffffffff
mov edx, dword [ebp - 0x18]
add edx, 4
push edx
mov ecx, esi
call fcn.1004e060
mov dword [ebp - 0x1c], ebx
mov eax, dword [esi + 4]
cmp eax, 0xffffffff
jbe 0x10055274
push ebx
push 0x291
push str.c:dvsp4_build_sw_relgpu_drvinstaller_coreincNVI2Defns.h
push 0x80070057
call fcn.10002400
push ebx
push 0x181
push str.c:dvsp4_build_sw_relgpu_drvinstaller_coreincRefCounted.h
push 0x80004003
call fcn.10002400
mov byte [ebp - 4], bl
cmp dword [esi], ebx
je 0x10055313
xor eax, eax
cmp dword [esi + 4], ebx
jbe 0x10055308
inc eax
cmp eax, dword [esi + 4]
jb 0x10055302
mov eax, dword [esi]
push eax
call fcn.10072875
add esp, 4
push esi
call fcn.1004ad4f
add esp, 4
mov dword [ebp - 0x20], ebx
mov dword [ebp - 4], 0xffffffff
cmp edi, ebx
je 0x100553d9
mov ecx, edi
mov dword [ebp - 0x14], ebx
call fcn.1000fd90
jmp 0x100553d9
cmp eax, ebx
jle 0x1005534b
and eax, 0xffff
or eax, 0x80070000
push ebx
push 0x687
push str..Registry.cpp
push eax
call fcn.10002400
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x18]
push ecx
mov ecx, esi
call fcn.1004e060
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp + 0xc]
mov dword [eax], edx
mov dword [ebp - 0x20], ebx
mov byte [ebp - 4], bl
mov dword [ebp - 0x20], ebx
mov dword [ebp - 4], 0xffffffff
mov ecx, edi
mov dword [ebp - 0x14], ebx
call fcn.1000fd90
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8