Function at 0x41adb0
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x441296
mov eax, dword fs:[0]
push eax
sub esp, 0x9c
mov eax, dword [0x4540fc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
call fcn.00409200
mov ecx, eax
test ecx, ecx
je 0x41b4dc
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xa0], eax
push str.SoftwareMicrosoftWindowsCurrentVersionUninstallFast_
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0
call fcn.00407d80
test al, al
jne 0x41ae28
push 0x39
push str.SoftwareMicrosoftWindowsCurrentVersionUninstallFast_
lea ecx, [ebp - 0xa0]
call fcn.00407f30
mov dword [ebp - 4], 1
lea edx, [ebp - 0x94]
mov esi, dword [ebp - 0xa0]
lea ecx, [ebp - 0x98]
push str.DisplayVersion
push esi
mov dword [ebp - 0x94], reloc.OLEAUT32.dll_SysReAllocString
call fcn.0040b2f0
add esp, 8
push eax
mov ecx, 0x457fc8
mov byte [ebp - 4], 2
call fcn.0040c500
mov byte [ebp - 4], 1
or ebx, 0xffffffff
mov edx, dword [ebp - 0x98]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41ae8c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.BrowserType
push esi
lea edx, [ebp - 0x98]
mov dword [ebp - 0x98], reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x94]
call fcn.0040b2f0
add esp, 8
push eax
mov ecx, 0x457fcc
mov byte [ebp - 4], 3
call fcn.0040c500
mov byte [ebp - 4], 1
mov eax, ebx
mov edx, dword [ebp - 0x94]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41aee0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.cpu_name
push esi
lea edx, [ebp - 0x98]
mov dword [ebp - 0x98], reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x94]
call fcn.0040b2f0
add esp, 8
push eax
mov ecx, 0x457fd0
mov byte [ebp - 4], 4
call fcn.0040c500
mov byte [ebp - 4], 1
mov eax, ebx
mov edx, dword [ebp - 0x94]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41af34
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.gpu_name
push esi
lea edx, [ebp - 0x98]
mov dword [ebp - 0x98], reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x94]
call fcn.0040b2f0
add esp, 8
push eax
mov ecx, 0x457fd4
mov byte [ebp - 4], 5
call fcn.0040c500
mov byte [ebp - 4], 1
mov eax, ebx
mov edx, dword [ebp - 0x94]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41af88
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.gpu_ram
push esi
lea edx, [ebp - 0x98]
mov dword [ebp - 0x98], reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x94]
call fcn.0040b2f0
add esp, 8
push eax
mov ecx, 0x457fd8
mov byte [ebp - 4], 6
call fcn.0040c500
mov byte [ebp - 4], 1
mov eax, ebx
mov edx, dword [ebp - 0x94]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41afdc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.os_architecture
push esi
lea edx, [ebp - 0x98]
mov dword [ebp - 0x98], reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x94]
call fcn.0040b2f0
add esp, 8
push eax
mov ecx, 0x457fdc
mov byte [ebp - 4], 7
call fcn.0040c500
mov byte [ebp - 4], 1
mov eax, ebx
mov edx, dword [ebp - 0x94]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41b030
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.os_installdate
push esi
lea edx, [ebp - 0x98]
mov dword [ebp - 0x98], reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x94]
call fcn.0040b2f0
add esp, 8
push eax
mov ecx, 0x457fe0
mov byte [ebp - 4], 8
call fcn.0040c500
mov byte [ebp - 4], 1
mov eax, ebx
mov edx, dword [ebp - 0x94]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41b084
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.os_name
push esi
lea edx, [ebp - 0x98]
mov dword [ebp - 0x98], reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x94]
call fcn.0040b2f0
add esp, 8
push eax
mov ecx, 0x457fe4
mov byte [ebp - 4], 9
call fcn.0040c500
mov byte [ebp - 4], 1
mov eax, ebx
mov edx, dword [ebp - 0x94]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41b0d8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.os_mem
push esi
lea edx, [ebp - 0x98]
mov dword [ebp - 0x98], reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x94]
call fcn.0040b2f0
add esp, 8
push eax
mov ecx, 0x457fe8
mov byte [ebp - 4], 0xa
call fcn.0040c500
mov byte [ebp - 4], 1
mov eax, ebx
mov edx, dword [ebp - 0x94]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41b12c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.os_virtmem
push esi
lea edx, [ebp - 0x98]
mov dword [ebp - 0x98], reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x94]
call fcn.0040b2f0
add esp, 8
push eax
mov ecx, 0x457fec
mov byte [ebp - 4], 0xb
call fcn.0040c500
mov byte [ebp - 4], 1
mov eax, ebx
mov edx, dword [ebp - 0x94]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41b180
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.pc_vendor
push esi
lea edx, [ebp - 0x98]
mov dword [ebp - 0x98], reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x94]
call fcn.0040b2f0
add esp, 8
push eax
mov ecx, 0x457ff0
mov byte [ebp - 4], 0xc
call fcn.0040c500
mov byte [ebp - 4], 1
mov eax, ebx
mov edx, dword [ebp - 0x94]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41b1d4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.pc_version
push esi
lea edx, [ebp - 0x98]
mov dword [ebp - 0x98], reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x94]
call fcn.0040b2f0
add esp, 8
push eax
mov ecx, 0x457ff4
mov byte [ebp - 4], 0xd
call fcn.0040c500
mov byte [ebp - 4], 1
mov eax, ebx
mov edx, dword [ebp - 0x94]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41b228
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.dsk_iosec
push esi
lea edx, [ebp - 0x98]
mov dword [ebp - 0x98], reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x94]
call fcn.0040b2f0
add esp, 8
push eax
mov ecx, 0x457ff8
mov byte [ebp - 4], 0xe
call fcn.0040c500
mov byte [ebp - 4], 1
mov eax, ebx
mov edx, dword [ebp - 0x94]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41b27c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.dsk_mbsec
push esi
lea edx, [ebp - 0x98]
mov dword [ebp - 0x98], reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x94]
call fcn.0040b2f0
add esp, 8
push eax
mov ecx, 0x457ffc
mov byte [ebp - 4], 0xf
call fcn.0040c500
mov byte [ebp - 4], 1
mov eax, ebx
mov edx, dword [ebp - 0x94]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41b2d0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x9c]
push eax
push esi
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
je 0x41b309
push dword [ebp - 0x9c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 1
push 0x44bfc0
mov ecx, 0x458004
call fcn.00407f30
jmp 0x41b4a4
push 0x44bfc4
push esi
lea edx, [ebp - 0x98]
mov dword [ebp - 0x98], reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x94]
call fcn.0040b2f0
add esp, 8
push eax
mov ecx, 0x458004
mov byte [ebp - 4], 0x10
call fcn.0040c500
mov byte [ebp - 4], 1
mov eax, ebx
mov edx, dword [ebp - 0x94]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41b35d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [0x458004]
cmp dword [edx - 4], 1
jle 0x41b37c
push dword [edx - 0xc]
mov ecx, 0x458004
call fcn.00408150
mov edx, dword [0x458004]
lea ecx, [edx + 2]
nop
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x41b380
sub edx, ecx
sar edx, 1
jne 0x41b446
call fcn.00409200
mov ecx, eax
test ecx, ecx
je 0x41b4e6
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x94], eax
push 0x44bfc0
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0x11
call fcn.00407d80
test al, al
jne 0x41b3dc
push 1
push 0x44bfc0
lea ecx, [ebp - 0x94]
call fcn.00407f30
mov byte [ebp - 4], 0x12
mov edi, dword [ebp - 0x94]
cmp dword [edi - 4], 1
jle 0x41b400
push dword [edi - 0xc]
lea ecx, [ebp - 0x94]
call fcn.00408150
mov edi, dword [ebp - 0x94]
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41b405
sub ecx, edx
sar ecx, 1
push ecx
push edi
push 1
push 0
push 0x44bfc4
push dword [ebp - 0x9c]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov byte [ebp - 4], 1
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x41b446
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0xa4]
mov dword [ebp - 0xa4], 0x80
push eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0xa8]
push eax
push 0
push str.notify
push dword [ebp - 0x9c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x41b498
cmp dword [ebp - 0xa8], eax
je 0x41b498
lea eax, [ebp - 0x90]
push eax
call fcn.0042c5b4
add esp, 4
mov dword [0x458000], eax
push dword [ebp - 0x9c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x41b4c0
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042150a
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00408fe0
push 0x80004005
call fcn.00408fe0
int3