Function at 0x4046d0
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 0x41418b
mov eax, dword fs:[0]
push eax
mov eax, 0x2620
call fcn.00413b60
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 - 0x25d4], ebx
mov edi, ecx
push 0x208
lea eax, [ebp - 0xe3c]
push 0
push eax
call fcn.00408db0
add esp, 0xc
lea eax, [ebp - 0x104c]
push 0x20a
push 0
push eax
call fcn.00408db0
add esp, 0xc
lea eax, [ebp - 0x82c]
push 0x408
push 0
push eax
call fcn.00408db0
add esp, 0xc
lea eax, [ebp - 0xc34]
push 0x408
push 0
push eax
call fcn.00408db0
add esp, 0xc
lea eax, [ebp - 0x2484]
push 0x408
push 0
push eax
call fcn.00408db0
add esp, 0xc
lea eax, [ebp - 0x1c74]
push 0x408
push 0
push eax
call fcn.00408db0
add esp, 0xc
lea eax, [ebp - 0x207c]
push 0x408
push 0
push eax
call fcn.00408db0
add esp, 0xc
lea eax, [ebp - 0x186c]
push 0x208
push 0
push eax
call fcn.00408db0
add esp, 0xc
lea eax, [ebp - 0x424]
push 0x208
push 0
push eax
call fcn.00408db0
add esp, 0xc
lea eax, [ebp - 0x21c]
push 0x208
push 0
push eax
call fcn.00408db0
add esp, 0xc
mov dword [ebp - 0x25ec], 1
mov dword [ebp - 0x2608], 0x3d090
push 0
push 0xa
push 0x402
push dword [0x41f3ec]
call dword [sym.imp.USER32.dll_SendMessageW]
mov esi, dword [0x41e8c0]
lea eax, [ebp - 0x25cc]
neg esi
mov dword [ebp - 0x25cc], 0x114
push eax
sbb esi, esi
add esi, 0x80000002
mov dword [ebp - 0x2604], esi
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x25c0], 0x23f0
mov eax, esi
mov ecx, 0x80000002
cmovb eax, ecx
mov dword [ebp - 0x25d8], eax
lea ecx, [ebp - 0x104c]
mov esi, ebx
mov eax, ecx
mov edx, 0x104
sub esi, eax
nop dword [eax]
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x40488e
movzx eax, word [esi + ecx]
test ax, ax
je 0x40488e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x404870
lea eax, [ecx - 2]
test edx, edx
xorps xmm0, xmm0
cmovne eax, ecx
movlpd qword [ebp - 0x262c], xmm0
xor ecx, ecx
movlpd qword [ebp - 0x2624], xmm0
push ebx
movlpd qword [ebp - 0x261a], xmm0
mov word [eax], cx
mov eax, 0x614
mov dword [ebp - 0x2612], ecx
mov word [ebp - 0x261c], ax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, dword [sym.imp.SHELL32.dll_SHFileOperationW]
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xffffffff
je 0x404932
lea eax, [ebp - 0x104c]
mov dword [ebp - 0x2628], 3
mov dword [ebp - 0x2624], eax
lea eax, [ebp - 0x262c]
push eax
call ebx
test eax, eax
jne 0x404918
push dword [ebp - 0x25d4]
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
call esi
cmp eax, 0x91
jne 0x404932
push 0
push 0x41a0f4
push str.Clearing_of_target_directory_failed._Supermium_is_likely_running_or_a_file_permission_issue_is_occurring._nCheck_Task_Managers_Processes_tab_for_instances_of_chrome.exe__close_them_and_try_again.
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
jmp 0x405c80
lea eax, [ebp - 0x186c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
jne 0x404a63
call esi
mov edx, eax
lea ecx, [ebp - 0x249c]
call fcn.00406eb0
lea eax, [ebp - 0x249c]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp - 0x24b4]
call fcn.00407040
add esp, 4
cmp dword [eax + 0x14], 7
jbe 0x40497f
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 0x4049ce
mov edx, dword [ebp - 0x24b4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4049c4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405c9c
push ecx
push edx
call fcn.004074eb
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 0x404a2b
mov edx, dword [ebp - 0x249c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404a21
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405c9c
push ecx
push edx
call fcn.004074eb
add esp, 8
xor eax, eax
mov dword [ebp - 0x248c], 0
push eax
push eax
push 0x402
push dword [0x41f3ec]
mov word [ebp - 0x249c], ax
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x2488], 7
call eax
xor eax, eax
jmp 0x405c80
call dword [sym.imp.KERNEL32.dll_GetVersion]
lea ecx, [ebp - 0x186c]
cmp al, 6
jb 0x404a7a
push 0x41a2e4
jmp 0x404a7f
push 0x41a304
call fcn.00401160
lea eax, [ebp - 0x186c]
mov dword [ebp - 0x2628], 2
mov dword [ebp - 0x2624], eax
lea eax, [ebp - 0x104c]
mov dword [ebp - 0x2620], eax
lea eax, [ebp - 0x262c]
push eax
call ebx
test eax, eax
je 0x404b3c
call esi
mov edx, eax
lea ecx, [ebp - 0x249c]
call fcn.00406eb0
lea eax, [ebp - 0x249c]
mov dword [ebp - 4], 1
push eax
lea ecx, [ebp - 0x24b4]
call fcn.00407040
add esp, 4
cmp dword [eax + 0x14], 7
jbe 0x404aea
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 0x4049ce
mov edx, dword [ebp - 0x24b4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4049c4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405c9c
jmp 0x4049c4
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0x32
push 0x402
push dword [0x41f3ec]
call eax
cmp dword [ebp + 0x10], 0
mov ebx, 0x82
jne 0x4058b3
call fcn.004011f0
lea eax, [ebp - 0x25fc]
push eax
push str.SupermiumHTM
push 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
jne 0x4058b3
mov esi, dword [ebp - 0x25d4]
lea ecx, [ebp - 0x82c]
mov eax, ecx
mov edx, 0x102
sub esi, eax
nop word [eax + eax]
lea eax, [edx + 0x7ffffefc]
test eax, eax
je 0x404bbe
movzx eax, word [esi + ecx]
test ax, ax
je 0x404bbe
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x404ba0
test edx, edx
lea eax, [ecx - 2]
mov esi, 0x41a33c
mov edx, 0x102
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea ecx, [ebp - 0xc34]
mov eax, ecx
sub esi, eax
nop
lea eax, [edx + 0x7ffffefc]
test eax, eax
je 0x404bfe
movzx eax, word [esi + ecx]
test ax, ax
je 0x404bfe
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x404be0
test edx, edx
lea eax, [ecx - 2]
mov edx, 0x102
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0xc34]
cmp word [eax], cx
je 0x404c23
add eax, 2
sub edx, 1
jne 0x404c16
mov ecx, 0x102
mov edi, edx
mov eax, ecx
sub eax, edx
neg edi
sbb edi, edi
and edi, eax
test edx, edx
je 0x404c7f
mov esi, ecx
lea edx, [ebp - 0xc34]
lea edx, [edx + edi*2]
sub esi, edi
je 0x404c72
mov ebx, dword [ebp - 0x25d4]
mov eax, 0x7ffffffe
sub ebx, edx
test eax, eax
je 0x404c6d
movzx edi, word [ebx + edx]
test di, di
je 0x404c6d
mov word [edx], di
dec eax
add edx, 2
sub esi, 1
jne 0x404c54
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 0x404c95
add eax, 2
sub edx, 1
jne 0x404c87
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, 0x41a340
mov eax, 0x7ffffffe
sub ebx, edx
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
mov edx, ecx
lea eax, [ebp - 0xc34]
cmp word [eax], 0
je 0x404d01
add eax, 2
sub edx, 1
jne 0x404cf3
mov eax, ecx
mov edi, edx
sub eax, edx
neg edi
sbb edi, edi
and edi, eax
test edx, edx
je 0x404d5b
mov esi, ecx
lea edx, [ebp - 0xc34]
lea edx, [edx + edi*2]
sub esi, edi
je 0x404d4e
mov ebx, str.chrome.exe____single_argument__1
mov eax, 0x7ffffffe
sub ebx, edx
nop dword [eax]
test eax, eax
je 0x404d49
movzx edi, word [ebx + edx]
test di, di
je 0x404d49
mov word [edx], di
dec eax
add edx, 2
sub esi, 1
jne 0x404d30
mov ebx, 0x82
test esi, esi
lea eax, [edx - 2]
cmovne eax, edx
xor edx, edx
mov word [eax], dx
lea edx, [ebp - 0x2484]
mov edi, 0x41a33c
mov eax, edx
mov esi, ecx
sub edi, eax
nop dword [eax]
lea eax, [esi + 0x7ffffefc]
test eax, eax
je 0x404d8e
movzx eax, word [edx + edi]
test ax, ax
je 0x404d8e
mov word [edx], ax
add edx, 2
sub esi, 1
jne 0x404d70
test esi, esi
lea eax, [edx - 2]
mov edi, 0x41a33c
mov esi, ecx
cmovne eax, edx
xor edx, edx
mov word [eax], dx
lea edx, [ebp - 0x1c74]
mov eax, edx
sub edi, eax
nop dword [eax]
lea eax, [esi + 0x7ffffefc]
test eax, eax
je 0x404dce
movzx eax, word [edx + edi]
test ax, ax
je 0x404dce
mov word [edx], ax
add edx, 2
sub esi, 1
jne 0x404db0
test esi, esi
lea eax, [edx - 2]
mov edi, 0x41a33c
mov esi, ecx
cmovne eax, edx
xor edx, edx
mov word [eax], dx
lea edx, [ebp - 0x207c]
mov eax, edx
sub edi, eax
nop dword [eax]
lea eax, [esi + 0x7ffffefc]
test eax, eax
je 0x404e0e
movzx eax, word [edx + edi]
test ax, ax
je 0x404e0e
mov word [edx], ax
add edx, 2
sub esi, 1
jne 0x404df0
lea eax, [edx - 2]
test esi, esi
cmovne eax, edx
xor edx, edx
mov word [eax], dx
mov edx, ecx
lea eax, [ebp - 0x2484]
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 - 0x2484]
lea edx, [edx + edi*2]
sub esi, edi
je 0x404e7e
mov ebx, dword [ebp - 0x25d4]
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 - 0x1c74]
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 - 0x1c74]
lea edx, [edx + edi*2]
sub esi, edi
je 0x404eee
mov ebx, dword [ebp - 0x25d4]
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 - 0x207c]
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 - 0x207c]
lea edx, [edx + edi*2]
sub esi, edi
je 0x404f5e
mov ebx, dword [ebp - 0x25d4]
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 - 0x2484]
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 - 0x2484]
lea edx, [edx + edi*2]
sub esi, edi
je 0x404fce
mov ebx, str.chrome.exe____hide_icons
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 - 0x1c74]
cmp word [eax], 0
je 0x404ff1
add eax, 2
sub edx, 1
jne 0x404fe3
mov eax, ecx
mov edi, edx
sub eax, edx
neg edi
sbb edi, edi
and edi, eax
test edx, edx
je 0x40504b
mov esi, ecx
lea edx, [ebp - 0x1c74]
lea edx, [edx + edi*2]
sub esi, edi
je 0x40503e
mov ebx, str.chrome.exe____make_default_browser
mov eax, 0x7ffffffe
sub ebx, edx
nop dword [eax]
test eax, eax
je 0x405039
movzx edi, word [edx + ebx]
test di, di
je 0x405039
mov word [edx], di
dec eax
add edx, 2
sub esi, 1
jne 0x405020
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 - 0x207c]
cmp word [eax], 0
je 0x405061
add eax, 2
sub edx, 1
jne 0x405053
mov eax, ecx
mov esi, edx
sub eax, edx
neg esi
sbb esi, esi
and esi, eax
test edx, edx
je 0x4050b6
lea edx, [ebp - 0x207c]
lea edx, [edx + esi*2]
sub ecx, esi
je 0x4050a9
mov edi, str.chrome.exe____show_icons
mov eax, 0x7ffffffe
sub edi, edx
nop word [eax + eax]
test eax, eax
je 0x4050a9
movzx esi, word [edx + edi]
test si, si
je 0x4050a9
mov word [edx], si
dec eax
add edx, 2
sub ecx, 1
jne 0x405090
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 - 0x25fc]
call esi
lea ecx, [ebp - 0x82c]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4050e0
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x82c]
push eax
push 1
push str.DefaultIcon
push dword [ebp - 0x25fc]
call esi
lea ecx, [ebp - 0xc34]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405112
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0xc34]
push eax
push 1
push str.shellopencommand
push dword [ebp - 0x25fc]
call esi
mov edi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
lea eax, [ebp - 0x25f8]
push eax
push str.SoftwareClassesSupermiumHTM
push dword [ebp - 0x25d8]
call edi
push 0x30
push str.Supermium_HTML_Document
push 1
push 0
push dword [ebp - 0x25f8]
call esi
lea ecx, [ebp - 0x82c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405171
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x82c]
push eax
push 1
push str.DefaultIcon
push dword [ebp - 0x25f8]
call esi
lea ecx, [ebp - 0xc34]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4051a3
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0xc34]
push eax
push 1
push str.shellopencommand
push dword [ebp - 0x25f8]
call esi
lea eax, [ebp - 0x25f4]
push eax
push str.SOFTWAREClientsStartMenuInternetSupemium
push dword [ebp - 0x25d8]
call edi
test eax, eax
jne 0x4058b3
push 0x14
push 0x419e90
push 1
push eax
push dword [ebp - 0x25f4]
call esi
lea ecx, [ebp - 0xc34]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405203
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0xc34]
push eax
push 1
push str.shellopencommand
push dword [ebp - 0x25f4]
call esi
lea ecx, [ebp - 0x82c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405235
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x82c]
push eax
push 1
push str.DefaultIcon
push dword [ebp - 0x25f4]
call esi
mov edi, dword [ebp - 0x25d8]
lea eax, [ebp - 0x25f0]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
push eax
push str.SOFTWAREClientsStartMenuInternetSupemiumCapabilities
push edi
call esi
lea eax, [ebp - 0x25dc]
push eax
push str.SOFTWAREClientsStartMenuInternetSupemiumCapabilitiesFileAssociations
push edi
call esi
lea eax, [ebp - 0x260c]
push eax
push str.SOFTWAREClientsStartMenuInternetSupemiumCapabilitiesStartMenu
push edi
call esi
lea eax, [ebp - 0x25d0]
push eax
push str.SOFTWAREClientsStartMenuInternetSupemiumCapabilitiesURLAssociations
push edi
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 - 0x25f0]
call edi
lea ecx, [ebp - 0x82c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4052d0
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x82c]
push eax
push 1
push 0
push str.ApplicationIcon
push dword [ebp - 0x25f0]
call edi
push 0x14
push 0x419e90
push 1
push 0
push str.ApplicationName
push dword [ebp - 0x25f0]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str..htm
push dword [ebp - 0x25dc]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str..html
push dword [ebp - 0x25dc]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str..pdf
push dword [ebp - 0x25dc]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str..shtml
push dword [ebp - 0x25dc]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str..svg
push dword [ebp - 0x25dc]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str..webp
push dword [ebp - 0x25dc]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str..xht
push dword [ebp - 0x25dc]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str..xhtml
push dword [ebp - 0x25dc]
call edi
push 0x12
push str.Supemium
push 1
push 0
push str.StartMenuInternet
push dword [ebp - 0x260c]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str.http
push dword [ebp - 0x25d0]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str.https
push dword [ebp - 0x25d0]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push 0x41a974
push dword [ebp - 0x25d0]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str.mailto
push dword [ebp - 0x25d0]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push 0x41a98c
push dword [ebp - 0x25d0]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str.news
push dword [ebp - 0x25d0]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str.nntp
push dword [ebp - 0x25d0]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push 0x41a9ac
push dword [ebp - 0x25d0]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str.smsto
push dword [ebp - 0x25d0]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str.snews
push dword [ebp - 0x25d0]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push 0x41a9cc
push dword [ebp - 0x25d0]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push 0x41a9d4
push dword [ebp - 0x25d0]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push str.webcal
push dword [ebp - 0x25d0]
call edi
lea eax, [ebp - 0x25e8]
push eax
push str.SOFTWAREClientsStartMenuInternetSupemiumInstallInfo
push dword [ebp - 0x25d8]
call esi
lea ecx, [ebp - 0x2484]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405540
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x2484]
push eax
push 1
push 0
push str.HideIconsCommand
push dword [ebp - 0x25e8]
call edi
lea ecx, [ebp - 0x207c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405574
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x207c]
push eax
push 1
push 0
push str.ShowIconsCommand
push dword [ebp - 0x25e8]
call edi
lea ecx, [ebp - 0x1c74]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4055b0
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x1c74]
push eax
push 1
push 0
push str.ReinstallCommand
push dword [ebp - 0x25e8]
call edi
push 4
lea eax, [ebp - 0x25ec]
push eax
push 4
push 0
push str.IconsVisible
push dword [ebp - 0x25e8]
call edi
lea eax, [ebp - 0x25e0]
push eax
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstallSupermium
push dword [ebp - 0x25d8]
call esi
mov esi, dword [ebp - 0x25d4]
lea ecx, [ebp - 0x424]
mov eax, ecx
mov edx, 0x82
sub esi, eax
nop
lea eax, [edx + 0x7fffff7c]
test eax, eax
je 0x40563e
movzx eax, word [ecx + esi]
test ax, ax
je 0x40563e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x405620
lea eax, [ecx - 2]
test edx, edx
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x82
lea eax, [ebp - 0x424]
cmp word [eax], 0
je 0x405664
add eax, 2
sub ecx, 1
jne 0x405656
mov eax, ebx
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x4056bc
mov edx, ebx
lea ecx, [ebp - 0x424]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x4056af
mov edi, str.chrome.exe
mov eax, 0x7ffffffe
sub edi, ecx
nop
test eax, eax
je 0x4056a9
movzx esi, word [ecx + edi]
test si, si
je 0x4056a9
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x405690
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 0x4056c5
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x424]
push eax
push 1
push 0
push str.DisplayIcon
push dword [ebp - 0x25e0]
call edi
push 0x14
push 0x419e90
push 1
push 0
push str.DisplayName
push dword [ebp - 0x25e0]
call edi
mov esi, dword [ebp - 0x25d4]
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405713
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
push esi
push 1
push 0
push str.InstallLocation
push dword [ebp - 0x25e0]
call edi
push 4
lea eax, [ebp - 0x25ec]
push eax
push 4
push 0
push str.NoModify
push dword [ebp - 0x25e0]
call edi
push 4
lea eax, [ebp - 0x25ec]
push eax
push 4
push 0
push str.NoRepair
push dword [ebp - 0x25e0]
call edi
push 4
lea eax, [ebp - 0x2608]
push eax
push 4
push 0
push str.EstimatedSize
push dword [ebp - 0x25e0]
call edi
push 0x24
push str.126.0.6478.249_R3
push 1
push 0
push str.DisplayVersion
push dword [ebp - 0x25e0]
call edi
lea ecx, [ebp - 0x21c]
mov edx, 0x82
mov eax, ecx
sub esi, eax
nop dword [eax]
lea eax, [edx + 0x7fffff7c]
test eax, eax
je 0x4057ce
movzx eax, word [ecx + esi]
test ax, ax
je 0x4057ce
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x4057b0
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 0x4057f4
add eax, 2
sub ecx, 1
jne 0x4057e6
mov eax, ebx
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x40584c
mov edx, ebx
lea ecx, [ebp - 0x21c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x40583f
mov edi, str.uninstall.exe
mov eax, 0x7ffffffe
sub edi, ecx
nop
test eax, eax
je 0x405839
movzx esi, word [ecx + edi]
test si, si
je 0x405839
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x405820
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 0x405855
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x21c]
push eax
push 1
push 0
push str.UninstallString
push dword [ebp - 0x25e0]
call edi
lea eax, [ebp - 0x2600]
push eax
push str.SOFTWARERegisteredApplications
push dword [ebp - 0x2604]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x4058b3
push 0x72
push str.SoftwareClientsStartMenuInternetSupemiumCapabilities
push 1
push eax
push str.Supemium
push dword [ebp - 0x2600]
call edi
push 0
push 0x46
push 0x402
push dword [0x41f3ec]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [ebp + 8], 0
je 0x405977
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 0x4058fe
add eax, 2
sub ecx, 1
jne 0x4058f0
mov eax, ebx
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x405956
mov edx, ebx
lea ecx, [ebp - 0xe3c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x405949
mov edi, str.FontsNotoEmoji.ttf
mov eax, 0x7ffffffe
sub edi, ecx
nop dword [eax]
test eax, eax
je 0x405949
movzx esi, word [edi + ecx]
test si, si
je 0x405949
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x405930
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 [0x41f3ec]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [ebp + 0xc], 0
je 0x405c66
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
js 0x405c66
lea eax, [ebp - 0x25e4]
push eax
push 0x415220
push 1
push 0
push 0x415240
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x405c60
mov esi, dword [ebp - 0x25d4]
lea ecx, [ebp - 0x1664]
mov eax, ecx
mov edx, 0x82
sub esi, eax
nop
lea eax, [edx + 0x7fffff7c]
test eax, eax
je 0x4059fe
movzx eax, word [esi + ecx]
test ax, ax
je 0x4059fe
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x4059e0
lea eax, [ecx - 2]
test edx, edx
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x82
lea eax, [ebp - 0x1664]
cmp word [eax], 0
je 0x405a24
add eax, 2
sub ecx, 1
jne 0x405a16
mov eax, ebx
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x405a76
mov edx, ebx
lea ecx, [ebp - 0x1664]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x405a69
mov edi, str.chrome.exe
mov eax, 0x7ffffffe
sub edi, ecx
nop
test eax, eax
je 0x405a69
movzx esi, word [ecx + edi]
test si, si
je 0x405a69
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x405a50
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x25e4]
lea edx, [ebp - 0x1664]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov eax, dword [ebp - 0x25e4]
push str.Supermium_Web_Browser
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov esi, dword [ebp + 0x14]
test esi, esi
je 0x405ab2
mov eax, dword [ebp - 0x25e4]
push str.__ungoogled_supermium
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
cmp dword [ebp + 0x18], 0
je 0x405ade
mov eax, dword [ebp - 0x25e4]
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 0x405ade
mov eax, dword [ebp - 0x25e4]
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 - 0x25e4]
lea edx, [ebp - 0x25d8]
push edx
push 0x415230
push eax
mov ecx, dword [eax]
call dword [ecx]
test eax, eax
js 0x405c54
cmp dword [0x41e8c0], 0
lea eax, [ebp - 0x145c]
mov esi, dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
push eax
push 0
push 0
je 0x405b2c
push 0x10
push 0
call esi
lea eax, [ebp - 0x1254]
push eax
push 0
push 0
push 2
jmp 0x405b3f
push 0x19
push 0
call esi
lea eax, [ebp - 0x1254]
push eax
push 0
push 0
push 0x17
push 0
call esi
mov ecx, 0x82
lea eax, [ebp - 0x145c]
nop
cmp word [eax], 0
je 0x405b5e
add eax, 2
sub ecx, 1
jne 0x405b50
mov eax, ebx
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x405bb6
mov edx, ebx
lea ecx, [ebp - 0x145c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x405ba9
mov edi, str.Supermium.lnk
mov eax, 0x7ffffffe
sub edi, ecx
nop dword [eax]
test eax, eax
je 0x405ba9
movzx esi, word [edi + ecx]
test si, si
je 0x405ba9
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x405b90
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x82
lea eax, [ebp - 0x1254]
cmp word [eax], 0
je 0x405bcf
add eax, 2
sub ecx, 1
jne 0x405bc1
mov eax, ebx
mov edx, ecx
sub eax, ecx
neg edx
sbb edx, edx
and edx, eax
test ecx, ecx
je 0x405c1e
lea ecx, [ebp - 0x1254]
lea ecx, [ecx + edx*2]
sub ebx, edx
je 0x405c11
mov esi, str.Supermium.lnk
mov eax, 0x7ffffffe
sub esi, ecx
test eax, eax
je 0x405c11
movzx edx, word [esi + ecx]
test dx, dx
je 0x405c11
mov word [ecx], dx
dec eax
add ecx, 2
sub ebx, 1
jne 0x405bf8
test ebx, ebx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x25d8]
lea edx, [ebp - 0x145c]
push 1
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [ebp - 0x25d8]
lea edx, [ebp - 0x1254]
push 1
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [ebp - 0x25d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x25e4]
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 [0x41f3ec]
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.004074ad
mov esp, ebp
pop ebp
ret
call fcn.0040aafc
int3