Function at 0x401090
Capabilities:
Enumerate processes
Hide graphical window
Query or enumerate registry value
Terminate process
Terminate process by name

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x2f8
mov eax, dword [0x49536c]
xor eax, esp
mov dword [esp + 0x2f4], eax
mov ecx, dword [ebp + 8]
lea eax, [esp + 8]
push esi
push edi
push eax
push 0x20019
push 0
push str.SoftwareValveSteam
push reloc.WS2_32.dll_accept
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28c], 1
mov dword [esp + 0x28], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x401162
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [esp + 0x14]
push eax
push 0
lea eax, [esp + 0x280]
push eax
push 0
push str.SteamPath
push dword [esp + 0x24]
call esi
test eax, eax
jne 0x401158
push dword [esp + 0x14]
call fcn.0045ea58
add esp, 4
mov dword [0x496a20], eax
test eax, eax
je 0x401158
lea ecx, [esp + 0x14]
push ecx
push eax
lea eax, [esp + 0x280]
push eax
push 0
push str.SteamPath
push dword [esp + 0x24]
call esi
test eax, eax
je 0x40118f
push dword [0x496a20]
call fcn.0045ea3d
add esp, 4
mov dword [0x496a20], 0
push dword [esp + 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x10
push 0x4921a8
push 0x4921b0
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
or eax, 0xffffffff
pop edi
pop esi
mov ecx, dword [esp + 0x2f4]
xor ecx, esp
call fcn.0045693d
mov esp, ebp
pop ebp
ret 0x10
movups xmm0, xmmword [str.packageUpdated.zip]
mov ecx, dword [0x496a20]
mov ax, word [0x492198]
movups xmmword [esp + 0x2c0], xmm0
mov word [esp + 0x2e8], ax
movups xmm0, xmmword [0x492180]
lea edx, [ecx + 2]
movups xmmword [esp + 0x2d0], xmm0
movq xmm0, qword [0x492190]
movq qword [esp + 0x2e0], xmm0
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4011d5
sub ecx, edx
lea edx, [esp + 0x2c0]
sar ecx, 1
lea esi, [edx + 2]
nop
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4011f0
sub edx, esi
sar edx, 1
lea esi, [edx + 1]
mov edx, 2
add esi, ecx
xor ecx, ecx
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0045ea58
add esp, 4
mov dword [0x496a24], eax
test eax, eax
je 0x401245
lea ecx, [esp + 0x2c0]
push ecx
push dword [0x496a20]
push 0x49219c
push esi
push eax
call fcn.00401050
add esp, 0x14
push dword [esp + 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0
push 2
call dword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov edi, eax
cmp edi, 0xffffffff
je 0x4012d6
lea eax, [esp + 0x48]
mov dword [esp + 0x48], 0x22c
push eax
push edi
call dword [sym.imp.KERNEL32.dll_Process32FirstW]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x4012d3
nop
lea eax, [esp + 0x6c]
push str.Steamtools.exe
push eax
call fcn.0045e2e9
add esp, 8
test eax, eax
jne 0x4012c3
push dword [esp + 0x50]
push eax
push 1
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov esi, eax
test esi, esi
je 0x4012bd
push 1
push esi
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
jmp 0x4012c3
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [esp + 0x48]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_Process32NextW]
test eax, eax
jne 0x401280
push edi
call esi
lea eax, [esp + 0x27c]
mov dword [esp + 0x27c], 8
push eax
mov dword [esp + 0x284], 0x20
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
movups xmm0, xmmword [str.StWindowClass]
mov eax, dword [0x492210]
mov esi, dword [sym.imp.USER32.dll_LoadIconW]
movups xmmword [esp + 0x2a0], xmm0
mov dword [esp + 0x2b8], eax
mov eax, dword [esp + 0xc]
movq xmm0, qword [0x492208]
push 0x7f00
push eax
movq qword [esp + 0x2b8], xmm0
mov dword [esp + 0x20], 0x30
mov dword [esp + 0x24], 3
mov dword [esp + 0x28], 0x4014d0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], eax
call esi
push 0x7f00
push 0
mov dword [esp + 0x38], eax
call dword [sym.imp.USER32.dll_LoadCursorW]
push 0x7f00
push dword [esp + 0x30]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x2a8]
mov dword [esp + 0x40], 6
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], eax
call esi
mov dword [esp + 0x44], eax
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.USER32.dll_RegisterClassExW]
push 0
test ax, ax
jne 0x4013e2
push str.Windows_Desktop_Guided_Tour
push str.Call_to_RegisterClassEx_failed_
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x2f4]
xor ecx, esp
call fcn.0045693d
mov esp, ebp
pop ebp
ret 0x10
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
call esi
push 1
mov edi, eax
call esi
mov ecx, dword [esp + 0xc]
sub eax, 0x2d
push 0
push ecx
push 0
push 0
cdq
push 0x2d
sub eax, edx
sar eax, 1
push 0x13b
push eax
lea eax, [edi - 0x13b]
cdq
sub eax, edx
sar eax, 1
push eax
push closesocket
push 0
lea eax, [esp + 0x2c8]
push eax
push 9
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov esi, eax
push 5
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
push 0
push 0
push 0
lea eax, [esp + 0x290]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x401490
mov esi, dword [sym.imp.USER32.dll_TranslateMessage]
mov edi, dword [sym.imp.USER32.dll_DispatchMessageW]
lea eax, [esp + 0x284]
push eax
call esi
lea eax, [esp + 0x284]
push eax
call edi
push 0
push 0
push 0
lea eax, [esp + 0x290]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jne 0x401464
mov eax, dword [0x496a20]
test eax, eax
je 0x4014ac
push eax
call fcn.0045ea3d
add esp, 4
mov dword [0x496a20], 0
mov ecx, dword [esp + 0x2fc]
mov eax, dword [esp + 0x28c]
pop edi
pop esi
xor ecx, esp
call fcn.0045693d
mov esp, ebp
pop ebp
ret 0x10