Function at 0x405b60
Capabilities:
Accept command line arguments
Delete directory
Delete file
Delete registry key
Query environment variable

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4b4
mov eax, dword [0x41c004]
xor eax, esp
mov dword [esp + 0x4b0], eax
push ebx
mov ebx, dword [ebp + 8]
xorps xmm0, xmm0
push esi
push edi
push 0xf
mov dword [esp + 0x18], 0
movlpd qword [esp + 0x20], xmm0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], str.MyWindowClass
call dword [sym.imp.USER32.dll_GetSysColorBrush]
push 0x7f00
push 0
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], 0x405540
mov dword [esp + 0x2c], ebx
call dword [sym.imp.USER32.dll_LoadCursorW]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
cmp dword [esp + 0x10], 1
mov edi, eax
jle 0x405c11
mov esi, 1
push str.uninstall
push dword [edi + esi*4]
call fcn.004076d7
add esp, 8
test eax, eax
jne 0x405cb0
inc esi
cmp esi, dword [esp + 0x10]
jl 0x405bf2
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.USER32.dll_RegisterClassW]
push 0
push ebx
push 0
push 0
push 0x12c
push 0x190
push 0x64
push 0x64
push 0x90c80000
push 0x419ac4
push dword [esp + 0x60]
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
lea eax, [esp + 0x7c]
push 0
push 0
push 0
push eax
call esi
test eax, eax
je 0x405c92
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebx, dword [sym.imp.USER32.dll_DispatchMessageW]
nop word [eax + eax]
lea eax, [esp + 0x7c]
push eax
call edi
lea eax, [esp + 0x7c]
push eax
call ebx
push 0
push 0
push 0
lea eax, [esp + 0x88]
push eax
call esi
test eax, eax
jne 0x405c70
mov eax, dword [esp + 0x84]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x4b0]
xor ecx, esp
call fcn.004065a5
mov esp, ebp
pop ebp
ret 0x10
call fcn.00405320
mov ebx, eax
test ebx, ebx
jne 0x405ce9
push eax
push 0x419ac4
push str.A_formally_installed_copy_of_Supermium_could_not_be_located._Now_exiting_the_uninstaller.
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x4b0]
xor ecx, esp
call fcn.004065a5
mov esp, ebp
pop ebp
ret 0x10
mov edi, dword [sym.imp.USER32.dll_MessageBoxW]
push 4
push 0x419ac4
push str.Would_you_like_to_uninstall_Supermium_
push 0
call edi
cmp eax, 6
jne 0x405ccd
push 4
push 0x419ac4
push str.Would_you_like_to_keep_your_user_data_
push 0
call edi
mov esi, 0x82
cmp eax, 7
jne 0x405e70
push 0x20c
lea eax, [esp + 0x9c]
mov dword [esp + 0x40], 0
xorps xmm0, xmm0
mov dword [esp + 0x4c], 0
push 0
push eax
movlpd qword [esp + 0x5a], xmm0
mov dword [esp + 0x62], 0
call fcn.00407d90
add esp, 0xc
lea eax, [esp + 0x98]
push 0x106
push eax
push str.LOCALAPPDATA
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov ecx, esi
lea eax, [esp + 0x98]
nop dword [eax + eax]
cmp word [eax], 0
je 0x405d8e
add eax, 2
sub ecx, 1
jne 0x405d80
test ecx, ecx
je 0x405dc3
mov edx, ecx
lea eax, [ecx - 0x82]
neg edx
push ecx
sbb edx, edx
and edx, eax
mov eax, esi
sub eax, ecx
add edx, esi
push str.SupermiumUser_Data
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
lea eax, [esp + 0xa4]
add ecx, eax
call fcn.004011b0
lea eax, [esp + 0x98]
mov dword [esp + 0x40], 3
mov dword [esp + 0x44], eax
mov eax, 0x614
mov word [esp + 0x4c], ax
lea eax, [esp + 0x3c]
push eax
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
lea eax, [esp + 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov esi, dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
push str.SoftwareMicrosoftWindowsCurrentVersionApp_ManagementARPCacheSupermium
push 0x80000001
call esi
push str.SoftwareSupermiumPreferenceMACsDefaultextensions.settings
push 0x80000001
call esi
push str.SoftwareSupermiumPreferenceMACsDefault
push 0x80000001
call esi
push str.SoftwareSupermiumPreferenceMACsSystem_Profile
push 0x80000001
call esi
push str.SoftwareSupermiumPreferenceMACs
push 0x80000001
call esi
push str.SoftwareSupermiumBLBeacon
push 0x80000001
call esi
push str.SoftwareSupermiumStabilityMetrics
push 0x80000001
call esi
push str.SoftwareSupermiumThirdParty
push 0x80000001
call esi
push str.SoftwareSupermium
push 0x80000001
call esi
mov esi, 0x82
push 0x20c
lea eax, [esp + 0x2ac]
mov dword [esp + 0x60], 0
xorps xmm0, xmm0
mov dword [esp + 0x6c], 0
push 0
push eax
movlpd qword [esp + 0x7a], xmm0
mov dword [esp + 0x82], 0
call fcn.00407d90
add esp, 8
mov edx, esi
push ebx
push ecx
lea ecx, [esp + 0x2b4]
call fcn.004011b0
mov ecx, 0x82
lea eax, [esp + 0x2a8]
cmp word [eax], 0
je 0x405ed5
add eax, 2
sub ecx, 1
jne 0x405ec7
test ecx, ecx
je 0x405f0c
mov edx, ecx
lea eax, [ecx - 0x82]
neg edx
push ecx
sbb edx, edx
sub esi, ecx
and edx, eax
add esi, esi
push 0x41a064
push ecx
add edx, 0x82
lea eax, [esp + 0x2b4]
neg ecx
sbb ecx, ecx
and ecx, esi
add ecx, eax
call fcn.004011b0
lea eax, [esp + 0x2aa]
mov dword [esp + 0x60], 3
mov dword [esp + 0x64], eax
mov eax, 0x614
mov word [esp + 0x6c], ax
lea eax, [esp + 0x5c]
push eax
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
lea eax, [esp + 0x2aa]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
je 0x405f87
call fcn.00401210
push 0
push 0x419ac4
push str.Supermium_has_been_uninstalled.
push 0
call edi
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x4b0]
xor ecx, esp
call fcn.004065a5
mov esp, ebp
pop ebp
ret 0x10
push 0x10
push 0x419ac4
push 0x41a068
push 0
call edi
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [esp + 0x4bc]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004065a5
mov esp, ebp
pop ebp
ret 0x10