Function at 0x4084c0
Capabilities:
Create process on windows
Delete registry key
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41b143
mov eax, dword fs:[0]
push eax
sub esp, 0x2f4
mov eax, dword [0x42a020]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push str.SoftwareBethesda_Softworks_
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
mov dword [ebp - 4], 0
push 0x42aec4
lea ecx, [ebp - 0x2c]
call dword [0x41e158]
call fcn.00408280
movzx eax, al
test eax, eax
je 0x408686
push str.RegDeleteKeyExW
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
je 0x40857e
push 0
push 0x200
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP90.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
push eax
push 0x80000002
call dword [ebp - 0x34]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
je 0x40857c
push 0
push 0x100
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP90.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
push eax
push 0x80000002
call dword [ebp - 0x34]
mov dword [ebp - 0x30], eax
jmp 0x408596
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP90.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
je 0x408686
push 0x104
lea ecx, [ebp - 0x23c]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x408686
mov dword [ebp - 0x278], 0x3c
push 0x38
push 0
lea edx, [ebp - 0x274]
push edx
call sub.MSVCR90.dll_memset
add esp, 0xc
mov dword [ebp - 0x26c], str.runas
lea eax, [ebp - 0x23c]
mov dword [ebp - 0x268], eax
mov dword [ebp - 0x264], 0x41ecc8
mov ecx, dword [0x42ad60]
mov dword [ebp - 0x270], ecx
mov dword [ebp - 0x25c], 1
mov edx, dword [0x42ac70]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x278]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
jne 0x40867e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x27c], eax
cmp dword [ebp - 0x27c], 0x4c7
jne 0x408647
jmp 0x40867c
mov ecx, dword [ebp - 0x27c]
push ecx
push str.error_in_UninstallGame__ShellExecute_failed_with_code__d_
lea edx, [ebp - 0x2fc]
push edx
call fcn.004075f0
add esp, 0xc
push 0
push 0x41ed54
lea eax, [ebp - 0x2fc]
push eax
call fcn.00406350
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x408686
push 0
call dword [sym.imp.MSVCR90.dll_exit]
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov byte [ebp - 0x2fd], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov al, byte [ebp - 0x2fd]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004077d3
mov esp, ebp
pop ebp
ret