Function at 0x401634
Capabilities:
Delete registry key
Delete registry value
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
lea ebp, [esp - 0x74]
sub esp, 0x1f8
mov eax, dword [0x409074]
and dword [ebp - 0x180], 0
push ebx
push esi
push edi
mov dword [ebp + 0x70], eax
call fcn.00401522
and dword [ebp - 0x17c], 0
mov ebx, eax
lea eax, [ebp - 0x17c]
push eax
mov edi, str.SoftwareLenovoIGRS
push edi
mov esi, 0x80000002
push esi
call dword [0x4060b0]
lea eax, [ebp - 0x184]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x180]
push eax
push 0
push str.SelfDeviceId
push dword [ebp - 0x17c]
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x184], 0x80
mov dword [ebp - 0x180], 1
call dword [0x4060ac]
push dword [ebp - 0x17c]
call dword [0x406078]
lea eax, [ebp - 0x20]
push eax
call dword [0x4063d0]
test eax, eax
pop ecx
je 0x4016d8
test ebx, ebx
je 0x401856
lea eax, [ebp - 0x78]
push eax
call dword [0x4063b8]
mov ebx, 0x100
push ebx
lea eax, [ebp - 0x178]
push 0
push eax
call fcn.00405006
add esp, 0x10
lea eax, [ebp - 0x180]
push eax
lea eax, [ebp - 0x178]
push eax
mov dword [ebp - 0x180], ebx
call dword [0x406110]
lea eax, [ebp - 0x178]
push eax
call fcn.0040507c
mov ebx, dword [0x4063bc]
push eax
lea eax, [ebp - 0x178]
push eax
lea eax, [ebp - 0x78]
push eax
call ebx
lea eax, [ebp - 0x178]
push eax
call dword [0x4063c0]
lea eax, [ebp - 0x178]
push eax
call fcn.0040507c
push eax
lea eax, [ebp - 0x178]
push eax
lea eax, [ebp - 0x78]
push eax
call ebx
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp + 0x60]
push eax
call dword [0x4063c4]
movzx eax, byte [ebp + 0x6f]
push eax
movzx eax, byte [ebp + 0x6e]
push eax
movzx eax, byte [ebp + 0x6d]
push eax
movzx eax, byte [ebp + 0x6c]
push eax
movzx eax, byte [ebp + 0x6b]
push eax
movzx eax, byte [ebp + 0x6a]
push eax
movzx eax, byte [ebp + 0x69]
push eax
movzx eax, byte [ebp + 0x68]
push eax
movzx eax, byte [ebp + 0x67]
push eax
movzx eax, byte [ebp + 0x66]
push eax
movzx eax, byte [ebp + 0x65]
push eax
movzx eax, byte [ebp + 0x64]
push eax
movzx eax, byte [ebp + 0x63]
push eax
movzx eax, byte [ebp + 0x62]
push eax
movzx eax, byte [ebp + 0x61]
push eax
movzx eax, byte [ebp + 0x60]
push eax
lea eax, [ebp - 0x20]
push str.urn:IGRS:Device:DeviceId:_02X_02X_02X_02X__02X_02X__02X_02X__02X_02X__02X_02X_02X_02X_02X_02X
push eax
call dword [0x4061fc]
add esp, 0x74
and dword [ebp - 0x17c], 0
lea eax, [ebp - 0x17c]
push eax
push edi
push esi
call dword [0x4060b0]
mov ebx, dword [0x40620c]
push str.Self
push dword [ebp - 0x17c]
call ebx
push str.Devices
push dword [ebp - 0x17c]
call ebx
push str.Users
push dword [ebp - 0x17c]
call ebx
mov ebx, dword [0x406208]
push str.SelfBootId
push edi
push esi
call ebx
push str.NextUserId
push edi
push esi
call ebx
lea eax, [ebp - 0x20]
push eax
call dword [0x4063d0]
pop ecx
push eax
lea eax, [ebp - 0x20]
push eax
push 1
push 0
push str.SelfDeviceId
push dword [ebp - 0x17c]
call dword [0x4060a8]
push dword [ebp - 0x17c]
call dword [0x406078]
mov ecx, dword [ebp + 0x7c]
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x20]
push eax
call dword [0x4063c8]
mov ecx, dword [ebp + 0x70]
mov eax, dword [ebp + 0x7c]
pop edi
pop esi
pop ebx
call fcn.00404fa7
add ebp, 0x74
leave
ret