Function at 0x4022a0
Capabilities:
Accept command line arguments
Delete directory
Delete file
Delete registry key
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x4c8
mov eax, dword [0x417004]
xor eax, esp
mov dword [esp + 0x4c4], eax
push esi
mov esi, dword [ebp + 8]
xorps xmm0, xmm0
push edi
push 0xf
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], 0
movlpd qword [esp + 0x24], xmm0
mov dword [esp + 0x30], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], str.MyWindowClass
call dword [sym.imp.USER32.dll_GetSysColorBrush]
push 0x7f00
push 0
mov dword [esp + 0x3c], eax
mov dword [esp + 0x24], 0x401cc0
mov dword [esp + 0x30], esi
call dword [sym.imp.USER32.dll_LoadCursorW]
mov dword [esp + 0x30], eax
lea eax, [esp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov ecx, dword [esp + 0xc]
mov edx, eax
mov dword [esp + 0x10], edx
cmp ecx, 1
jle 0x402684
mov esi, dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov edi, 1
nop word [eax + eax]
push str.uninstall
push dword [edx + edi*4]
call fcn.00403295
add esp, 8
test eax, eax
je 0x402655
push 0x14
push 0x414a74
push str.Would_you_like_to_uninstall_Supermium_
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x402665
push 0x14
push 0x414a74
push str.Would_you_like_to_keep_your_user_data_
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 7
jne 0x4024e4
push 0x20c
xorps xmm0, xmm0
mov dword [esp + 0x5c], 0
lea eax, [esp + 0xac]
movaps xmmword [esp + 0x44], xmm0
push 0
push eax
movq qword [esp + 0x5c], xmm0
mov word [esp + 0x68], 0
call fcn.004038e0
add esp, 0xc
lea eax, [esp + 0xa8]
push eax
push 0
push 0
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov ecx, 0x82
lea eax, [esp + 0xa8]
cmp word [eax], 0
je 0x402406
add eax, 2
sub ecx, 1
jne 0x4023f8
test ecx, ecx
je 0x402442
mov edx, ecx
lea eax, [ecx - 0x82]
neg edx
push ecx
sbb edx, edx
and edx, eax
mov eax, 0x82
sub eax, ecx
add edx, 0x82
push str.SupermiumUser_Data
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
lea eax, [esp + 0xb4]
add ecx, eax
call fcn.00401070
lea eax, [esp + 0xa8]
mov dword [esp + 0x44], 3
mov dword [esp + 0x48], eax
mov eax, 0x614
mov word [esp + 0x50], ax
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
lea eax, [esp + 0xa8]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
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
push str.SOFTWAREClientsStartMenuInternetSupemium.I6TGNPUAC6WMCIZTJ3D4YIUP5ACapabilitiesFileAssociations
push 0x80000002
call esi
push str.SOFTWAREClientsStartMenuInternetSupemium.I6TGNPUAC6WMCIZTJ3D4YIUP5ACapabilitiesStartmenu
push 0x80000002
call esi
push str.SOFTWAREClientsStartMenuInternetSupemium.I6TGNPUAC6WMCIZTJ3D4YIUP5ACapabilitiesURLAssociations
push 0x80000002
call esi
push str.SOFTWAREClientsStartMenuInternetSupemium.I6TGNPUAC6WMCIZTJ3D4YIUP5ACapabilities
push 0x80000002
call esi
push str.SOFTWAREClientsStartMenuInternetSupemium.I6TGNPUAC6WMCIZTJ3D4YIUP5ADefaultIcon
push 0x80000002
call esi
push str.SOFTWAREClientsStartMenuInternetSupemium.I6TGNPUAC6WMCIZTJ3D4YIUP5AInstallInfo
push 0x80000002
call esi
push str.SOFTWAREClientsStartMenuInternetSupemium.I6TGNPUAC6WMCIZTJ3D4YIUP5A_shellopencommand
push 0x80000002
call esi
push str.SOFTWAREClientsStartMenuInternetSupemium.I6TGNPUAC6WMCIZTJ3D4YIUP5A_shellopen
push 0x80000002
call esi
push str.SOFTWAREClientsStartMenuInternetSupemium.I6TGNPUAC6WMCIZTJ3D4YIUP5A_shell
push 0x80000002
call esi
push str.SOFTWAREClientsStartMenuInternetSupemium.I6TGNPUAC6WMCIZTJ3D4YIUP5A
push 0x80000002
call esi
push str.SupemiumHTM.I6TGNPUAC6WMCIZTJ3D4YIUP5A
push 0x80000000
call esi
push 0x20c
xorps xmm0, xmm0
mov dword [esp + 0x7c], 0
lea eax, [esp + 0x2bc]
movaps xmmword [esp + 0x64], xmm0
push 0
push eax
movq qword [esp + 0x7c], xmm0
mov word [esp + 0x88], 0
call fcn.004038e0
call fcn.00401bf0
add esp, 8
mov edx, 0x82
push eax
push ecx
lea ecx, [esp + 0x2c4]
call fcn.00401070
mov ecx, 0x82
lea eax, [esp + 0x2b8]
cmp word [eax], 0
je 0x4025d1
add eax, 2
sub ecx, 1
jne 0x4025c3
test ecx, ecx
je 0x40260d
mov edx, ecx
lea eax, [ecx - 0x82]
neg edx
push ecx
sbb edx, edx
and edx, eax
mov eax, 0x82
sub eax, ecx
add edx, 0x82
push 0x41511c
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
lea eax, [esp + 0x2c4]
add ecx, eax
call fcn.00401070
lea eax, [esp + 0x2b8]
mov dword [esp + 0x64], 3
mov dword [esp + 0x68], eax
mov eax, 0x614
mov word [esp + 0x70], ax
lea eax, [esp + 0x60]
push eax
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
call fcn.00401bf0
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
push 0
push 0x414a74
push 0x415120
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
inc edi
cmp edi, dword [esp + 0xc]
jge 0x402680
mov edx, dword [esp + 0x10]
jmp 0x402350
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x4c4]
xor ecx, esp
call fcn.00402729
mov esp, ebp
pop ebp
ret 0x10
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.USER32.dll_RegisterClassW]
push 0
push esi
push 0
push 0
push 0x12c
push 0x190
push 0x64
push 0x64
push 0x90c80000
push 0x414a74
push dword [esp + 0x64]
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
lea eax, [esp + 0x8c]
push 0
push 0
push 0
push eax
call esi
test eax, eax
je 0x40270c
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
nop word [eax + eax]
lea eax, [esp + 0x8c]
push eax
call edi
lea eax, [esp + 0x8c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea eax, [esp + 0x98]
push eax
call esi
test eax, eax
jne 0x4026e0
mov ecx, dword [esp + 0x4cc]
mov eax, dword [esp + 0x94]
pop edi
pop esi
xor ecx, esp
call fcn.00402729
mov esp, ebp
pop ebp
ret 0x10