Function at 0x1005e010
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1228
call fcn.100c15d0
push ebx
push esi
push edi
mov edi, ecx
cmp dword [edi + 0x10c], 0
je 0x1005e2c1
mov esi, dword [ebp + 8]
test esi, esi
je 0x1005e2c1
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x1005e2c1
cmp dword [ebp + 0x10], 0
je 0x1005e2c1
cmp dword [ebp + 0x14], 0
je 0x1005e2c1
cmp dword [ebp + 0x18], 0
je 0x1005e2c1
cmp dword [ebp + 0x1c], 0
je 0x1005e2c1
cmp dword [ebp + 0x20], 0
je 0x1005e2c1
push esi
push str.SoftwareMicrosoftWindowsCurrentVersionUninstallSteam_App__d
lea eax, [ebp - 0x228]
push 0x104
push eax
call fcn.100bb550
add esp, 0x10
call fcn.100b5ff0
push 0
movzx eax, al
lea ecx, [ebp + 8]
push ecx
push 0
shl eax, 8
or eax, 0xf003f
mov dword [ebp + 8], 0
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x228]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x1005e2c1
push esi
push dword [edi + 0x108]
lea eax, [edi + 4]
push eax
push str.__s_s__steam:__uninstall__d
lea eax, [ebp - 0x124]
push 0x124
push eax
call fcn.100bb550
push 4
push 0x800
lea eax, [ebp - 0xa28]
mov dword [ebp + 0xc], 1
push eax
push ebx
call fcn.100bf010
push 4
push 0x800
lea eax, [ebp - 0x1228]
push eax
push dword [ebp + 0x1c]
call fcn.100bf010
mov edx, dword [ebp + 0x10]
add esp, 0x38
mov ecx, edx
lea esi, [ecx + 1]
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1005e130
mov ebx, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
sub ecx, esi
lea eax, [ecx + 1]
push eax
push edx
push 1
push 0
push str.DisplayIcon
push dword [ebp + 8]
call ebx
lea ecx, [ebp - 0xa28]
mov esi, eax
lea edx, [ecx + 2]
lea ecx, [ecx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1005e160
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
lea eax, [ebp - 0xa28]
push eax
push 1
push 0
push str.DisplayName
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edx, dword [ebp + 0x14]
or esi, eax
mov ecx, edx
lea edi, [ecx + 1]
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1005e1a0
sub ecx, edi
lea eax, [ecx + 1]
push eax
push edx
push 1
push 0
push str.HelpLink
push dword [ebp + 8]
call ebx
mov edx, dword [ebp + 0x18]
or esi, eax
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1005e1c6
sub ecx, edi
lea eax, [ecx + 1]
push eax
push edx
push 1
push 0
push str.InstallLocation
push dword [ebp + 8]
call ebx
lea ecx, [ebp - 0x1228]
or esi, eax
lea edx, [ecx + 2]
lea ecx, [ecx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1005e1f0
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
lea eax, [ebp - 0x1228]
push eax
push 1
push 0
push str.Publisher
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
lea ecx, [ebp - 0x124]
or esi, eax
lea edx, [ecx + 1]
jmp 0x1005e230
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1005e230
sub ecx, edx
lea eax, [ecx + 1]
push eax
lea eax, [ebp - 0x124]
push eax
push 1
push 0
push str.UninstallString
push dword [ebp + 8]
call ebx
mov edi, dword [ebp + 0x20]
or esi, eax
mov ecx, edi
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1005e260
sub ecx, edx
lea eax, [ecx + 1]
push eax
push edi
push 1
push 0
push str.URLInfoAbout
push dword [ebp + 8]
call ebx
push 4
or esi, eax
lea eax, [ebp + 0xc]
push eax
push 4
push 0
push str.NoRepair
push dword [ebp + 8]
call ebx
push 4
or esi, eax
lea eax, [ebp + 0xc]
push eax
push 4
push 0
push str.NoModify
push dword [ebp + 8]
call ebx
push dword [ebp + 8]
or esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
test esi, esi
pop esi
sete al
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 0x1c