Function at 0x4046e0
Capabilities:
Check if file exists
Check os version
Copy file
Create shortcut via ishelllink
Delete directory
Delete file
Get common file path
Get file attributes
Get installed programs
Move file
Persist via lnk shortcut
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x413e7b
mov eax, dword fs:[0]
push eax
mov eax, 0x2500
call fcn.00413850
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, edx
mov dword [ebp - 0x24bc], ebx
mov edi, ecx
push 0x208
lea eax, [ebp - 0xe3c]
push 0
push eax
call fcn.00408aa0
add esp, 0xc
lea eax, [ebp - 0x145c]
push 0x20a
push 0
push eax
call fcn.00408aa0
add esp, 0xc
lea eax, [ebp - 0xc34]
push 0x408
push 0
push eax
call fcn.00408aa0
add esp, 0xc
lea eax, [ebp - 0x82c]
push 0x408
push 0
push eax
call fcn.00408aa0
add esp, 0xc
lea eax, [ebp - 0x1864]
push 0x408
push 0
push eax
call fcn.00408aa0
add esp, 0xc
lea eax, [ebp - 0x2074]
push 0x408
push 0
push eax
call fcn.00408aa0
add esp, 0xc
lea eax, [ebp - 0x1c6c]
push 0x408
push 0
push eax
call fcn.00408aa0
add esp, 0xc
lea eax, [ebp - 0x1044]
push 0x208
push 0
push eax
call fcn.00408aa0
add esp, 0xc
lea eax, [ebp - 0x21c]
push 0x208
push 0
push eax
call fcn.00408aa0
add esp, 0xc
lea eax, [ebp - 0x424]
push 0x208
push 0
push eax
call fcn.00408aa0
add esp, 0xc
mov dword [ebp - 0x24e0], 1
push 0
push 0xa
push 0x402
push dword [0x41e3dc]
call dword [sym.imp.USER32.dll_SendMessageW]
lea ecx, [ebp - 0x145c]
mov esi, ebx
mov eax, ecx
mov edx, 0x104
sub esi, eax
nop dword [eax + eax]
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x40484e
movzx eax, word [esi + ecx]
test ax, ax
je 0x40484e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x404830
lea eax, [ecx - 2]
test edx, edx
xorps xmm0, xmm0
cmovne eax, ecx
movlpd qword [ebp - 0x2508], xmm0
xor ecx, ecx
movlpd qword [ebp - 0x2500], xmm0
push ebx
movlpd qword [ebp - 0x24f6], xmm0
mov word [eax], cx
mov eax, 0x614
mov dword [ebp - 0x24ee], ecx
mov word [ebp - 0x24f8], ax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, dword [sym.imp.SHELL32.dll_SHFileOperationW]
cmp eax, 0xffffffff
je 0x4048c0
lea eax, [ebp - 0x145c]
mov dword [ebp - 0x2504], 3
mov dword [ebp - 0x2500], eax
lea eax, [ebp - 0x2508]
push eax
call esi
push ebx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
lea eax, [ebp - 0x1044]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
jne 0x4049f5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x249c]
call fcn.00406ce0
lea eax, [ebp - 0x249c]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp - 0x24b4]
call fcn.00406e70
add esp, 4
cmp dword [eax + 0x14], 7
jbe 0x404911
mov eax, dword [eax]
push 0x10
push str.Error
push eax
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
mov ecx, dword [ebp - 0x24a0]
cmp ecx, 7
jbe 0x404960
mov edx, dword [ebp - 0x24b4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404956
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405c0c
push ecx
push edx
call fcn.00407336
add esp, 8
mov ecx, dword [ebp - 0x2488]
xor eax, eax
mov dword [ebp - 0x24a4], 0
mov dword [ebp - 0x24a0], 7
mov word [ebp - 0x24b4], ax
cmp ecx, 7
jbe 0x4049bd
mov edx, dword [ebp - 0x249c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4049b3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405c0c
push ecx
push edx
call fcn.00407336
add esp, 8
xor eax, eax
mov dword [ebp - 0x248c], 0
push eax
push eax
push 0x402
push dword [0x41e3dc]
mov word [ebp - 0x249c], ax
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x2488], 7
call eax
xor eax, eax
jmp 0x405bf0
call dword [sym.imp.KERNEL32.dll_GetVersion]
lea ecx, [ebp - 0x1044]
cmp al, 6
jb 0x404a0c
push 0x419128
jmp 0x404a11
push 0x419148
call fcn.00401160
lea eax, [ebp - 0x1044]
mov dword [ebp - 0x2504], 2
mov dword [ebp - 0x2500], eax
lea eax, [ebp - 0x145c]
mov dword [ebp - 0x24fc], eax
lea eax, [ebp - 0x2508]
push eax
call esi
test eax, eax
je 0x404ad2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x249c]
call fcn.00406ce0
lea eax, [ebp - 0x249c]
mov dword [ebp - 4], 1
push eax
lea ecx, [ebp - 0x24b4]
call fcn.00406e70
add esp, 4
cmp dword [eax + 0x14], 7
jbe 0x404a80
mov eax, dword [eax]
push 0x10
push str.Error
push eax
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
mov ecx, dword [ebp - 0x24a0]
cmp ecx, 7
jbe 0x404960
mov edx, dword [ebp - 0x24b4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404956
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405c0c
jmp 0x404956
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0x32
push 0x402
push dword [0x41e3dc]
call eax
cmp dword [ebp + 0x10], 0
mov ebx, 0x82
jne 0x405842
call fcn.004011f0
lea eax, [ebp - 0x24d0]
push eax
push str.SupermiumHTM
push 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
jne 0x405842
mov esi, dword [ebp - 0x24bc]
lea ecx, [ebp - 0xc34]
mov eax, ecx
mov edx, 0x102
sub esi, eax
lea eax, [edx + 0x7ffffefc]
test eax, eax
je 0x404b4e
movzx eax, word [esi + ecx]
test ax, ax
je 0x404b4e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x404b30
test edx, edx
lea eax, [ecx - 2]
mov esi, 0x419180
mov edx, 0x102
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea ecx, [ebp - 0x82c]
mov eax, ecx
sub esi, eax
nop
lea eax, [edx + 0x7ffffefc]
test eax, eax
je 0x404b8e
movzx eax, word [esi + ecx]
test ax, ax
je 0x404b8e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x404b70
test edx, edx
lea eax, [ecx - 2]
mov edx, 0x102
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x82c]
cmp word [eax], cx
je 0x404bb3
add eax, 2
sub edx, 1
jne 0x404ba6
mov ecx, 0x102
mov edi, edx
mov eax, ecx
sub eax, edx
neg edi
sbb edi, edi
and edi, eax
test edx, edx
je 0x404c0f
mov esi, ecx
lea edx, [ebp - 0x82c]
lea edx, [edx + edi*2]
sub esi, edi
je 0x404c02
mov ebx, dword [ebp - 0x24bc]
mov eax, 0x7ffffffe
sub ebx, edx
test eax, eax
je 0x404bfd
movzx edi, word [ebx + edx]
test di, di
je 0x404bfd
mov word [edx], di
dec eax
add edx, 2
sub esi, 1
jne 0x404be4
mov ebx, 0x82
test esi, esi
lea eax, [edx - 2]
cmovne eax, edx
xor edx, edx
mov word [eax], dx
mov edx, ecx
lea eax, [ebp - 0xc34]
cmp word [eax], 0
je 0x404c25
add eax, 2
sub edx, 1
jne 0x404c17
mov eax, ecx
mov edi, edx
sub eax, edx
neg edi
sbb edi, edi
and edi, eax
test edx, edx
je 0x404c7b
mov esi, ecx
lea edx, [ebp - 0xc34]
lea edx, [edx + edi*2]
sub esi, edi
je 0x404c6e
mov ebx, 0x419184
mov eax, 0x7ffffffe
sub ebx, edx
test eax, eax
je 0x404c69
movzx edi, word [ebx + edx]
test di, di
je 0x404c69
mov word [edx], di
dec eax
add edx, 2
sub esi, 1
jne 0x404c50
mov ebx, 0x82
test esi, esi
lea eax, [edx - 2]
cmovne eax, edx
xor edx, edx
mov word [eax], dx
mov edx, ecx
lea eax, [ebp - 0x82c]
cmp word [eax], 0
je 0x404c91
add eax, 2
sub edx, 1
jne 0x404c83
mov eax, ecx
mov edi, edx
sub eax, edx
neg edi
sbb edi, edi
and edi, eax
test edx, edx
je 0x404ceb
mov esi, ecx
lea edx, [ebp - 0x82c]
lea edx, [edx + edi*2]
sub esi, edi
je 0x404cde
mov ebx, str.chrome.exe____single_argument__1
mov eax, 0x7ffffffe
sub ebx, edx
nop dword [eax]
test eax, eax
je 0x404cd9
movzx edi, word [ebx + edx]
test di, di
je 0x404cd9
mov word [edx], di
dec eax
add edx, 2
sub esi, 1
jne 0x404cc0
mov ebx, 0x82
test esi, esi
lea eax, [edx - 2]
cmovne eax, edx
xor edx, edx
mov word [eax], dx
lea edx, [ebp - 0x1864]
mov edi, 0x419180
mov eax, edx
mov esi, ecx
sub edi, eax
nop dword [eax]
lea eax, [esi + 0x7ffffefc]
test eax, eax
je 0x404d1e
movzx eax, word [edi + edx]
test ax, ax
je 0x404d1e
mov word [edx], ax
add edx, 2
sub esi, 1
jne 0x404d00
test esi, esi
lea eax, [edx - 2]
mov edi, 0x419180
mov esi, ecx
cmovne eax, edx
xor edx, edx
mov word [eax], dx
lea edx, [ebp - 0x2074]
mov eax, edx
sub edi, eax
nop dword [eax]
lea eax, [esi + 0x7ffffefc]
test eax, eax
je 0x404d5e
movzx eax, word [edi + edx]
test ax, ax
je 0x404d5e
mov word [edx], ax
add edx, 2
sub esi, 1
jne 0x404d40
test esi, esi
lea eax, [edx - 2]
mov edi, 0x419180
mov esi, ecx
cmovne eax, edx
xor edx, edx
mov word [eax], dx
lea edx, [ebp - 0x1c6c]
mov eax, edx
sub edi, eax
nop dword [eax]
lea eax, [esi + 0x7ffffefc]
test eax, eax
je 0x404d9e
movzx eax, word [edi + edx]
test ax, ax
je 0x404d9e
mov word [edx], ax
add edx, 2
sub esi, 1
jne 0x404d80
lea eax, [edx - 2]
test esi, esi
cmovne eax, edx
xor edx, edx
mov word [eax], dx
mov edx, ecx
lea eax, [ebp - 0x1864]
cmp word [eax], 0
je 0x404dc1
add eax, 2
sub edx, 1
jne 0x404db3
mov eax, ecx
mov edi, edx
sub eax, edx
neg edi
sbb edi, edi
and edi, eax
test edx, edx
je 0x404e1b
mov esi, ecx
lea edx, [ebp - 0x1864]
lea edx, [edx + edi*2]
sub esi, edi
je 0x404e0e
mov ebx, dword [ebp - 0x24bc]
mov eax, 0x7ffffffe
sub ebx, edx
nop dword [eax]
test eax, eax
je 0x404e09
movzx edi, word [edx + ebx]
test di, di
je 0x404e09
mov word [edx], di
dec eax
add edx, 2
sub esi, 1
jne 0x404df0
mov ebx, 0x82
test esi, esi
lea eax, [edx - 2]
cmovne eax, edx
xor edx, edx
mov word [eax], dx
mov edx, ecx
lea eax, [ebp - 0x2074]
cmp word [eax], 0
je 0x404e31
add eax, 2
sub edx, 1
jne 0x404e23
mov eax, ecx
mov edi, edx
sub eax, edx
neg edi
sbb edi, edi
and edi, eax
test edx, edx
je 0x404e8b
mov esi, ecx
lea edx, [ebp - 0x2074]
lea edx, [edx + edi*2]
sub esi, edi
je 0x404e7e
mov ebx, dword [ebp - 0x24bc]
mov eax, 0x7ffffffe
sub ebx, edx
nop dword [eax]
test eax, eax
je 0x404e79
movzx edi, word [edx + ebx]
test di, di
je 0x404e79
mov word [edx], di
dec eax
add edx, 2
sub esi, 1
jne 0x404e60
mov ebx, 0x82
test esi, esi
lea eax, [edx - 2]
cmovne eax, edx
xor edx, edx
mov word [eax], dx
mov edx, ecx
lea eax, [ebp - 0x1c6c]
cmp word [eax], 0
je 0x404ea1
add eax, 2
sub edx, 1
jne 0x404e93
mov eax, ecx
mov edi, edx
sub eax, edx
neg edi
sbb edi, edi
and edi, eax
test edx, edx
je 0x404efb
mov esi, ecx
lea edx, [ebp - 0x1c6c]
lea edx, [edx + edi*2]
sub esi, edi
je 0x404eee
mov ebx, dword [ebp - 0x24bc]
mov eax, 0x7ffffffe
sub ebx, edx
nop dword [eax]
test eax, eax
je 0x404ee9
movzx edi, word [edx + ebx]
test di, di
je 0x404ee9
mov word [edx], di
dec eax
add edx, 2
sub esi, 1
jne 0x404ed0
mov ebx, 0x82
test esi, esi
lea eax, [edx - 2]
cmovne eax, edx
xor edx, edx
mov word [eax], dx
mov edx, ecx
lea eax, [ebp - 0x1864]
cmp word [eax], 0
je 0x404f11
add eax, 2
sub edx, 1
jne 0x404f03
mov eax, ecx
mov edi, edx
sub eax, edx
neg edi
sbb edi, edi
and edi, eax
test edx, edx
je 0x404f6b
mov esi, ecx
lea edx, [ebp - 0x1864]
lea edx, [edx + edi*2]
sub esi, edi
je 0x404f5e
mov ebx, str.chrome.exe____hide_icons
mov eax, 0x7ffffffe
sub ebx, edx
nop dword [eax]
test eax, eax
je 0x404f59
movzx edi, word [edx + ebx]
test di, di
je 0x404f59
mov word [edx], di
dec eax
add edx, 2
sub esi, 1
jne 0x404f40
mov ebx, 0x82
test esi, esi
lea eax, [edx - 2]
cmovne eax, edx
xor edx, edx
mov word [eax], dx
mov edx, ecx
lea eax, [ebp - 0x2074]
cmp word [eax], 0
je 0x404f81
add eax, 2
sub edx, 1
jne 0x404f73
mov eax, ecx
mov edi, edx
sub eax, edx
neg edi
sbb edi, edi
and edi, eax
test edx, edx
je 0x404fdb
mov esi, ecx
lea edx, [ebp - 0x2074]
lea edx, [edx + edi*2]
sub esi, edi
je 0x404fce
mov ebx, str.chrome.exe____make_default_browser
mov eax, 0x7ffffffe
sub ebx, edx
nop dword [eax]
test eax, eax
je 0x404fc9
movzx edi, word [edx + ebx]
test di, di
je 0x404fc9
mov word [edx], di
dec eax
add edx, 2
sub esi, 1
jne 0x404fb0
mov ebx, 0x82
test esi, esi
lea eax, [edx - 2]
cmovne eax, edx
xor edx, edx
mov word [eax], dx
mov edx, ecx
lea eax, [ebp - 0x1c6c]
cmp word [eax], 0
je 0x404ff1
add eax, 2
sub edx, 1
jne 0x404fe3
mov eax, ecx
mov esi, edx
sub eax, edx
neg esi
sbb esi, esi
and esi, eax
test edx, edx
je 0x405046
lea edx, [ebp - 0x1c6c]
lea edx, [edx + esi*2]
sub ecx, esi
je 0x405039
mov edi, str.chrome.exe____show_icons
mov eax, 0x7ffffffe
sub edi, edx
nop word [eax + eax]
test eax, eax
je 0x405039
movzx esi, word [edx + edi]
test si, si
je 0x405039
mov word [edx], si
dec eax
add edx, 2
sub ecx, 1
jne 0x405020
test ecx, ecx
lea eax, [edx - 2]
cmovne eax, edx
xor ecx, ecx
mov word [eax], cx
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueW]
push 0x30
push str.Supermium_HTML_Document
push 1
push 0
push dword [ebp - 0x24d0]
call esi
lea ecx, [ebp - 0xc34]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405070
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0xc34]
push eax
push 1
push str.DefaultIcon
push dword [ebp - 0x24d0]
call esi
lea ecx, [ebp - 0x82c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4050a2
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x82c]
push eax
push 1
push str.shellopencommand
push dword [ebp - 0x24d0]
call esi
mov edi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
lea eax, [ebp - 0x24d4]
push eax
push str.SoftwareClassesSupermiumHTM
push 0x80000002
call edi
push 0x30
push str.Supermium_HTML_Document
push 1
push 0
push dword [ebp - 0x24d4]
call esi
lea ecx, [ebp - 0xc34]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405100
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0xc34]
push eax
push 1
push str.DefaultIcon
push dword [ebp - 0x24d4]
call esi
lea ecx, [ebp - 0x82c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405132
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x82c]
push eax
push 1
push str.shellopencommand
push dword [ebp - 0x24d4]
call esi
lea eax, [ebp - 0x24d8]
push eax
push str.SOFTWAREClientsStartMenuInternetSupemium
push 0x80000002
call edi
test eax, eax
jne 0x405842
push 0x14
push 0x418e80
push 1
push eax
push dword [ebp - 0x24d8]
call esi
lea ecx, [ebp - 0x82c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405191
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x82c]
push eax
push 1
push str.shellopencommand
push dword [ebp - 0x24d8]
call esi
lea ecx, [ebp - 0xc34]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4051c3
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0xc34]
push eax
push 1
push str.DefaultIcon
push dword [ebp - 0x24d8]
call esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
lea eax, [ebp - 0x24dc]
push eax
push str.SOFTWAREClientsStartMenuInternetSupemiumCapabilities
push 0x80000002
call esi
lea eax, [ebp - 0x24c0]
push eax
push str.SOFTWAREClientsStartMenuInternetSupemiumCapabilitiesFileAssociations
push 0x80000002
call esi
lea eax, [ebp - 0x24e8]
push eax
push str.SOFTWAREClientsStartMenuInternetSupemiumCapabilitiesStartmenu
push 0x80000002
call esi
lea eax, [ebp - 0x24b8]
push eax
push str.SOFTWAREClientsStartMenuInternetSupemiumCapabilitiesURLAssociations
push 0x80000002
call esi
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push 0xd6
push str.Supermium_is_a_web_browser_targetting_legacy_versions_of_Windows_and_has_various_other_important_features.
push 1
push 0
push str.ApplicationDescription
push dword [ebp - 0x24dc]
call edi
lea ecx, [ebp - 0xc34]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405270
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0xc34]
push eax
push 1
push 0
push str.ApplicationIcon
push dword [ebp - 0x24dc]
call edi
push 0x14
push 0x418e80
push 1
push 0
push str.ApplicationName
push dword [ebp - 0x24dc]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str..htm
push dword [ebp - 0x24c0]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str..html
push dword [ebp - 0x24c0]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str..pdf
push dword [ebp - 0x24c0]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str..shtml
push dword [ebp - 0x24c0]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str..svg
push dword [ebp - 0x24c0]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str..webp
push dword [ebp - 0x24c0]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str..xht
push dword [ebp - 0x24c0]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str..xhtml
push dword [ebp - 0x24c0]
call edi
push 0x12
push str.Supemium
push 1
push 0
push str.StartMenuInternet
push dword [ebp - 0x24e8]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str.http
push dword [ebp - 0x24b8]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str.https
push dword [ebp - 0x24b8]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push 0x4197b4
push dword [ebp - 0x24b8]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str.mailto
push dword [ebp - 0x24b8]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push 0x4197cc
push dword [ebp - 0x24b8]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str.news
push dword [ebp - 0x24b8]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str.nntp
push dword [ebp - 0x24b8]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push 0x4197ec
push dword [ebp - 0x24b8]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str.smsto
push dword [ebp - 0x24b8]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str.snews
push dword [ebp - 0x24b8]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push 0x41980c
push dword [ebp - 0x24b8]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push 0x419814
push dword [ebp - 0x24b8]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str.webcal
push dword [ebp - 0x24b8]
call edi
lea eax, [ebp - 0x24cc]
push eax
push str.SOFTWAREClientsStartMenuInternetSupemiumInstallInfo
push 0x80000002
call esi
lea ecx, [ebp - 0x1864]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4054e0
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x1864]
push eax
push 1
push 0
push str.HideIconsCommand
push dword [ebp - 0x24cc]
call edi
lea ecx, [ebp - 0x1c6c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405514
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x1c6c]
push eax
push 1
push 0
push str.ShowIconsCommand
push dword [ebp - 0x24cc]
call edi
lea ecx, [ebp - 0x2074]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405550
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x2074]
push eax
push 1
push 0
push str.ReinstallCommand
push dword [ebp - 0x24cc]
call edi
push 4
lea eax, [ebp - 0x24e0]
push eax
push 4
push 0
push str.IconsVisible
push dword [ebp - 0x24cc]
call edi
lea eax, [ebp - 0x24c4]
push eax
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstallSupermium
push 0x80000002
call esi
mov esi, dword [ebp - 0x24bc]
lea ecx, [ebp - 0x21c]
mov eax, ecx
mov edx, 0x82
sub esi, eax
nop dword [eax]
lea eax, [edx + 0x7fffff7c]
test eax, eax
je 0x4055de
movzx eax, word [ecx + esi]
test ax, ax
je 0x4055de
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x4055c0
lea eax, [ecx - 2]
test edx, edx
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x82
lea eax, [ebp - 0x21c]
cmp word [eax], 0
je 0x405604
add eax, 2
sub ecx, 1
jne 0x4055f6
mov eax, ebx
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x40565c
mov edx, ebx
lea ecx, [ebp - 0x21c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x40564f
mov edi, str.chrome.exe
mov eax, 0x7ffffffe
sub edi, ecx
nop
test eax, eax
je 0x405649
movzx esi, word [ecx + edi]
test si, si
je 0x405649
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x405630
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea ecx, [ebp - 0x21c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405665
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x21c]
push eax
push 1
push 0
push str.DisplayIcon
push dword [ebp - 0x24c4]
call edi
push 0x14
push 0x418e80
push 1
push 0
push str.DisplayName
push dword [ebp - 0x24c4]
call edi
mov esi, dword [ebp - 0x24bc]
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4056b3
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
push esi
push 1
push 0
push str.InstallLocation
push dword [ebp - 0x24c4]
call edi
push 4
lea eax, [ebp - 0x24e0]
push eax
push 4
push 0
push str.NoModify
push dword [ebp - 0x24c4]
call edi
push 4
lea eax, [ebp - 0x24e0]
push eax
push 4
push 0
push str.NoRepair
push dword [ebp - 0x24c4]
call edi
push 0x38
push str.Legacy_Software_Corporation
push 1
push 0
push str.Publisher
push dword [ebp - 0x24c4]
call edi
lea ecx, [ebp - 0x424]
mov edx, 0x82
mov eax, ecx
sub esi, eax
lea eax, [edx + 0x7fffff7c]
test eax, eax
je 0x405751
movzx eax, word [ecx + esi]
test ax, ax
je 0x405751
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x405733
lea eax, [ecx - 2]
test edx, edx
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x82
lea eax, [ebp - 0x424]
nop dword [eax]
cmp word [eax], 0
je 0x40577e
add eax, 2
sub ecx, 1
jne 0x405770
mov eax, ebx
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x4057dc
mov edx, ebx
lea ecx, [ebp - 0x424]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x4057cf
mov edi, str.uninstall.exe
mov eax, 0x7ffffffe
sub edi, ecx
nop dword [eax]
test eax, eax
je 0x4057c9
movzx esi, word [ecx + edi]
test si, si
je 0x4057c9
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x4057b0
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea ecx, [ebp - 0x424]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4057e5
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x424]
push eax
push 1
push 0
push str.UninstallString
push dword [ebp - 0x24c4]
call edi
lea eax, [ebp - 0x24e4]
push eax
push str.SOFTWARERegisteredApplications
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x405842
push 0x72
push str.SoftwareClientsStartMenuInternetSupemiumCapabilities
push 1
push eax
push str.Supemium
push dword [ebp - 0x24e4]
call edi
push 0
push 0x46
push 0x402
push dword [0x41e3dc]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [ebp + 8], 0
je 0x405907
push 0x104
lea eax, [ebp - 0xe3c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov ecx, 0x82
lea eax, [ebp - 0xe3c]
nop
cmp word [eax], 0
je 0x40588e
add eax, 2
sub ecx, 1
jne 0x405880
mov eax, ebx
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x4058e6
mov edx, ebx
lea ecx, [ebp - 0xe3c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x4058d9
mov edi, str.FontsNotoEmoji.ttf
mov eax, 0x7ffffffe
sub edi, ecx
nop dword [eax]
test eax, eax
je 0x4058d9
movzx esi, word [edi + ecx]
test si, si
je 0x4058d9
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x4058c0
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
push 2
lea eax, [ebp - 0xe3c]
push eax
push str.NotoEmoji.ttf
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
lea eax, [ebp - 0xe3c]
push eax
call dword [sym.imp.GDI32.dll_AddFontResourceW]
push 0
push 0x55
push 0x402
push dword [0x41e3dc]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [ebp + 0xc], 0
je 0x405bd6
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
js 0x405bd6
lea eax, [ebp - 0x24c8]
push eax
push 0x414210
push 1
push 0
push 0x414230
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x405bd0
mov esi, dword [ebp - 0x24bc]
lea ecx, [ebp - 0x124c]
mov eax, ecx
mov edx, 0x82
sub esi, eax
nop
lea eax, [edx + 0x7fffff7c]
test eax, eax
je 0x40598e
movzx eax, word [ecx + esi]
test ax, ax
je 0x40598e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x405970
lea eax, [ecx - 2]
test edx, edx
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x82
lea eax, [ebp - 0x124c]
cmp word [eax], 0
je 0x4059b4
add eax, 2
sub ecx, 1
jne 0x4059a6
mov eax, ebx
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x405a06
mov edx, ebx
lea ecx, [ebp - 0x124c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x4059f9
mov edi, str.chrome.exe
mov eax, 0x7ffffffe
sub edi, ecx
nop
test eax, eax
je 0x4059f9
movzx esi, word [ecx + edi]
test si, si
je 0x4059f9
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x4059e0
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x24c8]
lea edx, [ebp - 0x124c]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov eax, dword [ebp - 0x24c8]
push str.Supermium_Web_Browser
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov esi, dword [ebp + 0x14]
test esi, esi
je 0x405a42
mov eax, dword [ebp - 0x24c8]
push str.__ungoogled_supermium
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
cmp dword [ebp + 0x18], 0
je 0x405a6e
mov eax, dword [ebp - 0x24c8]
push str.__classic_omnibox___classic_omnibox_border___compact_ui___disable_featuresDownloadBubble_TabHoverCards_PowerBookmarksSidePanel___enable_featuresSupermiumCustomTabs
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
test esi, esi
je 0x405a6e
mov eax, dword [ebp - 0x24c8]
push str.__ungoogled_supermium___classic_omnibox___classic_omnibox_border___compact_ui___disable_featuresDownloadBubble_TabHoverCards_PowerBookmarksSidePanel___enable_featuresSupermiumCustomTabs
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x24c8]
lea edx, [ebp - 0x24bc]
push edx
push 0x414220
push eax
mov ecx, dword [eax]
call dword [ecx]
test eax, eax
js 0x405bc4
mov esi, dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea eax, [ebp - 0x227c]
push eax
push 0
push 0
push 0x10
push 0
call esi
lea eax, [ebp - 0x2484]
push eax
push 0
push 0
push 2
push 0
call esi
mov ecx, 0x82
lea eax, [ebp - 0x227c]
cmp word [eax], 0
je 0x405ace
add eax, 2
sub ecx, 1
jne 0x405ac0
mov eax, ebx
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x405b26
mov edx, ebx
lea ecx, [ebp - 0x227c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x405b19
mov edi, str.Supermium.lnk
mov eax, 0x7ffffffe
sub edi, ecx
nop dword [eax]
test eax, eax
je 0x405b19
movzx esi, word [edi + ecx]
test si, si
je 0x405b19
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x405b00
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x82
lea eax, [ebp - 0x2484]
cmp word [eax], 0
je 0x405b3f
add eax, 2
sub ecx, 1
jne 0x405b31
mov eax, ebx
mov edx, ecx
sub eax, ecx
neg edx
sbb edx, edx
and edx, eax
test ecx, ecx
je 0x405b8e
lea ecx, [ebp - 0x2484]
lea ecx, [ecx + edx*2]
sub ebx, edx
je 0x405b81
mov esi, str.Supermium.lnk
mov eax, 0x7ffffffe
sub esi, ecx
test eax, eax
je 0x405b81
movzx edx, word [esi + ecx]
test dx, dx
je 0x405b81
mov word [ecx], dx
dec eax
add ecx, 2
sub ebx, 1
jne 0x405b68
test ebx, ebx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x24bc]
lea edx, [ebp - 0x227c]
push 1
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [ebp - 0x24bc]
lea edx, [ebp - 0x2484]
push 1
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [ebp - 0x24bc]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x24c8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
push 0
push 0x64
push 0x402
push dword [0x41e3dc]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004072f8
mov esp, ebp
pop ebp
ret
call fcn.0040a7ec
int3