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 0x413fbb
mov eax, dword fs:[0]
push eax
mov eax, 0x2500
call fcn.00413990
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.00408bf0
add esp, 0xc
lea eax, [ebp - 0x145c]
push 0x20a
push 0
push eax
call fcn.00408bf0
add esp, 0xc
lea eax, [ebp - 0xc34]
push 0x408
push 0
push eax
call fcn.00408bf0
add esp, 0xc
lea eax, [ebp - 0x82c]
push 0x408
push 0
push eax
call fcn.00408bf0
add esp, 0xc
lea eax, [ebp - 0x1864]
push 0x408
push 0
push eax
call fcn.00408bf0
add esp, 0xc
lea eax, [ebp - 0x2074]
push 0x408
push 0
push eax
call fcn.00408bf0
add esp, 0xc
lea eax, [ebp - 0x1c6c]
push 0x408
push 0
push eax
call fcn.00408bf0
add esp, 0xc
lea eax, [ebp - 0x1044]
push 0x208
push 0
push eax
call fcn.00408bf0
add esp, 0xc
lea eax, [ebp - 0x21c]
push 0x208
push 0
push eax
call fcn.00408bf0
add esp, 0xc
lea eax, [ebp - 0x424]
push 0x208
push 0
push eax
call fcn.00408bf0
add esp, 0xc
mov dword [ebp - 0x24e0], 1
mov dword [ebp - 0x24ec], 0x3d090
push 0
push 0xa
push 0x402
push dword [0x41f3dc]
call dword [sym.imp.USER32.dll_SendMessageW]
lea ecx, [ebp - 0x145c]
mov esi, ebx
mov eax, ecx
mov edx, 0x104
sub esi, eax
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x404840
movzx eax, word [esi + ecx]
test ax, ax
je 0x404840
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x404822
lea eax, [ecx - 2]
test edx, edx
xorps xmm0, xmm0
cmovne eax, ecx
movlpd qword [ebp - 0x250c], xmm0
xor ecx, ecx
movlpd qword [ebp - 0x2504], xmm0
push ebx
movlpd qword [ebp - 0x24fa], xmm0
mov word [eax], cx
mov eax, 0x614
mov dword [ebp - 0x24f2], ecx
mov word [ebp - 0x24fc], ax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, dword [sym.imp.SHELL32.dll_SHFileOperationW]
cmp eax, 0xffffffff
je 0x4048d0
lea eax, [ebp - 0x145c]
mov dword [ebp - 0x2508], 3
mov dword [ebp - 0x2504], eax
lea eax, [ebp - 0x250c]
push eax
call esi
test eax, eax
je 0x4048c9
push 0
push 0x41a0e4
push str.Clearing_of_target_directory_failed._Supermium_is_likely_running_or_a_file_permission_issue_is_occurring._n_Check_Task_Managers_Processes_tab_for_instances_of_chrome.exe_and_try_again.
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
jmp 0x405c10
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 0x404a05
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x249c]
call fcn.00406cf0
lea eax, [ebp - 0x249c]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp - 0x24b4]
call fcn.00406e80
add esp, 4
cmp dword [eax + 0x14], 7
jbe 0x404921
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 0x404970
mov edx, dword [ebp - 0x24b4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404966
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405c2c
push ecx
push edx
call fcn.0040732b
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 0x4049cd
mov edx, dword [ebp - 0x249c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4049c3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405c2c
push ecx
push edx
call fcn.0040732b
add esp, 8
xor eax, eax
mov dword [ebp - 0x248c], 0
push eax
push eax
push 0x402
push dword [0x41f3dc]
mov word [ebp - 0x249c], ax
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x2488], 7
call eax
xor eax, eax
jmp 0x405c10
call dword [sym.imp.KERNEL32.dll_GetVersion]
lea ecx, [ebp - 0x1044]
cmp al, 6
jb 0x404a1c
push 0x41a2c0
jmp 0x404a21
push 0x41a2e0
call fcn.00401160
lea eax, [ebp - 0x1044]
mov dword [ebp - 0x2508], 2
mov dword [ebp - 0x2504], eax
lea eax, [ebp - 0x145c]
mov dword [ebp - 0x2500], eax
lea eax, [ebp - 0x250c]
push eax
call esi
test eax, eax
je 0x404ae2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x249c]
call fcn.00406cf0
lea eax, [ebp - 0x249c]
mov dword [ebp - 4], 1
push eax
lea ecx, [ebp - 0x24b4]
call fcn.00406e80
add esp, 4
cmp dword [eax + 0x14], 7
jbe 0x404a90
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 0x404970
mov edx, dword [ebp - 0x24b4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404966
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405c2c
jmp 0x404966
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0x32
push 0x402
push dword [0x41f3dc]
call eax
cmp dword [ebp + 0x10], 0
mov ebx, 0x82
jne 0x405862
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 0x405862
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 0x404b5e
movzx eax, word [esi + ecx]
test ax, ax
je 0x404b5e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x404b40
test edx, edx
lea eax, [ecx - 2]
mov esi, 0x41a318
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 0x404b9e
movzx eax, word [esi + ecx]
test ax, ax
je 0x404b9e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x404b80
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 0x404bc3
add eax, 2
sub edx, 1
jne 0x404bb6
mov ecx, 0x102
mov edi, edx
mov eax, ecx
sub eax, edx
neg edi
sbb edi, edi
and edi, eax
test edx, edx
je 0x404c1f
mov esi, ecx
lea edx, [ebp - 0x82c]
lea edx, [edx + edi*2]
sub esi, edi
je 0x404c12
mov ebx, dword [ebp - 0x24bc]
mov eax, 0x7ffffffe
sub ebx, edx
test eax, eax
je 0x404c0d
movzx edi, word [ebx + edx]
test di, di
je 0x404c0d
mov word [edx], di
dec eax
add edx, 2
sub esi, 1
jne 0x404bf4
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 0x404c35
add eax, 2
sub edx, 1
jne 0x404c27
mov eax, ecx
mov edi, edx
sub eax, edx
neg edi
sbb edi, edi
and edi, eax
test edx, edx
je 0x404c8b
mov esi, ecx
lea edx, [ebp - 0xc34]
lea edx, [edx + edi*2]
sub esi, edi
je 0x404c7e
mov ebx, 0x41a31c
mov eax, 0x7ffffffe
sub ebx, edx
test eax, eax
je 0x404c79
movzx edi, word [ebx + edx]
test di, di
je 0x404c79
mov word [edx], di
dec eax
add edx, 2
sub esi, 1
jne 0x404c60
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 0x404ca1
add eax, 2
sub edx, 1
jne 0x404c93
mov eax, ecx
mov edi, edx
sub eax, edx
neg edi
sbb edi, edi
and edi, eax
test edx, edx
je 0x404cfb
mov esi, ecx
lea edx, [ebp - 0x82c]
lea edx, [edx + edi*2]
sub esi, edi
je 0x404cee
mov ebx, str.chrome.exe____single_argument__1
mov eax, 0x7ffffffe
sub ebx, edx
nop dword [eax]
test eax, eax
je 0x404ce9
movzx edi, word [ebx + edx]
test di, di
je 0x404ce9
mov word [edx], di
dec eax
add edx, 2
sub esi, 1
jne 0x404cd0
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, 0x41a318
mov eax, edx
mov esi, ecx
sub edi, eax
nop dword [eax]
lea eax, [esi + 0x7ffffefc]
test eax, eax
je 0x404d2e
movzx eax, word [edi + edx]
test ax, ax
je 0x404d2e
mov word [edx], ax
add edx, 2
sub esi, 1
jne 0x404d10
test esi, esi
lea eax, [edx - 2]
mov edi, 0x41a318
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 0x404d6e
movzx eax, word [edx + edi]
test ax, ax
je 0x404d6e
mov word [edx], ax
add edx, 2
sub esi, 1
jne 0x404d50
test esi, esi
lea eax, [edx - 2]
mov edi, 0x41a318
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 0x404dae
movzx eax, word [edx + edi]
test ax, ax
je 0x404dae
mov word [edx], ax
add edx, 2
sub esi, 1
jne 0x404d90
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 0x404dd1
add eax, 2
sub edx, 1
jne 0x404dc3
mov eax, ecx
mov edi, edx
sub eax, edx
neg edi
sbb edi, edi
and edi, eax
test edx, edx
je 0x404e2b
mov esi, ecx
lea edx, [ebp - 0x1864]
lea edx, [edx + edi*2]
sub esi, edi
je 0x404e1e
mov ebx, dword [ebp - 0x24bc]
mov eax, 0x7ffffffe
sub ebx, edx
nop dword [eax]
test eax, eax
je 0x404e19
movzx edi, word [edx + ebx]
test di, di
je 0x404e19
mov word [edx], di
dec eax
add edx, 2
sub esi, 1
jne 0x404e00
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 0x404e41
add eax, 2
sub edx, 1
jne 0x404e33
mov eax, ecx
mov edi, edx
sub eax, edx
neg edi
sbb edi, edi
and edi, eax
test edx, edx
je 0x404e9b
mov esi, ecx
lea edx, [ebp - 0x2074]
lea edx, [edx + edi*2]
sub esi, edi
je 0x404e8e
mov ebx, dword [ebp - 0x24bc]
mov eax, 0x7ffffffe
sub ebx, edx
nop dword [eax]
test eax, eax
je 0x404e89
movzx edi, word [edx + ebx]
test di, di
je 0x404e89
mov word [edx], di
dec eax
add edx, 2
sub esi, 1
jne 0x404e70
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 0x404eb1
add eax, 2
sub edx, 1
jne 0x404ea3
mov eax, ecx
mov edi, edx
sub eax, edx
neg edi
sbb edi, edi
and edi, eax
test edx, edx
je 0x404f0b
mov esi, ecx
lea edx, [ebp - 0x1c6c]
lea edx, [edx + edi*2]
sub esi, edi
je 0x404efe
mov ebx, dword [ebp - 0x24bc]
mov eax, 0x7ffffffe
sub ebx, edx
nop dword [eax]
test eax, eax
je 0x404ef9
movzx edi, word [edx + ebx]
test di, di
je 0x404ef9
mov word [edx], di
dec eax
add edx, 2
sub esi, 1
jne 0x404ee0
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 0x404f21
add eax, 2
sub edx, 1
jne 0x404f13
mov eax, ecx
mov edi, edx
sub eax, edx
neg edi
sbb edi, edi
and edi, eax
test edx, edx
je 0x404f7b
mov esi, ecx
lea edx, [ebp - 0x1864]
lea edx, [edx + edi*2]
sub esi, edi
je 0x404f6e
mov ebx, str.chrome.exe____hide_icons
mov eax, 0x7ffffffe
sub ebx, edx
nop dword [eax]
test eax, eax
je 0x404f69
movzx edi, word [edx + ebx]
test di, di
je 0x404f69
mov word [edx], di
dec eax
add edx, 2
sub esi, 1
jne 0x404f50
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 0x404f91
add eax, 2
sub edx, 1
jne 0x404f83
mov eax, ecx
mov edi, edx
sub eax, edx
neg edi
sbb edi, edi
and edi, eax
test edx, edx
je 0x404feb
mov esi, ecx
lea edx, [ebp - 0x2074]
lea edx, [edx + edi*2]
sub esi, edi
je 0x404fde
mov ebx, str.chrome.exe____make_default_browser
mov eax, 0x7ffffffe
sub ebx, edx
nop dword [eax]
test eax, eax
je 0x404fd9
movzx edi, word [edx + ebx]
test di, di
je 0x404fd9
mov word [edx], di
dec eax
add edx, 2
sub esi, 1
jne 0x404fc0
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 0x405001
add eax, 2
sub edx, 1
jne 0x404ff3
mov eax, ecx
mov esi, edx
sub eax, edx
neg esi
sbb esi, esi
and esi, eax
test edx, edx
je 0x405056
lea edx, [ebp - 0x1c6c]
lea edx, [edx + esi*2]
sub ecx, esi
je 0x405049
mov edi, str.chrome.exe____show_icons
mov eax, 0x7ffffffe
sub edi, edx
nop word [eax + eax]
test eax, eax
je 0x405049
movzx esi, word [edx + edi]
test si, si
je 0x405049
mov word [edx], si
dec eax
add edx, 2
sub ecx, 1
jne 0x405030
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 0x405080
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 0x4050b2
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 0x405110
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 0x405142
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 0x405862
push 0x14
push 0x419e80
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 0x4051a1
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 0x4051d3
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 0x405280
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 0x419e80
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 0x41a94c
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 0x41a964
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 0x41a984
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 0x41a9a4
push dword [ebp - 0x24b8]
call edi
push 0x1a
push str.SupermiumHTM
push 1
push 0
push 0x41a9ac
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 0x4054f0
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 0x405524
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 0x405560
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 0x4055ee
movzx eax, word [ecx + esi]
test ax, ax
je 0x4055ee
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x4055d0
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 0x405614
add eax, 2
sub ecx, 1
jne 0x405606
mov eax, ebx
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x40566c
mov edx, ebx
lea ecx, [ebp - 0x21c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x40565f
mov edi, str.chrome.exe
mov eax, 0x7ffffffe
sub edi, ecx
nop
test eax, eax
je 0x405659
movzx esi, word [ecx + edi]
test si, si
je 0x405659
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x405640
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 0x405675
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 0x419e80
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 0x4056c3
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 4
lea eax, [ebp - 0x24ec]
push eax
push 4
push 0
push str.EstimatedSize
push dword [ebp - 0x24c4]
call edi
push 0x1e
push str.122.0.6261.152
push 1
push 0
push str.DisplayVersion
push dword [ebp - 0x24c4]
call edi
lea ecx, [ebp - 0x424]
mov edx, 0x82
mov eax, ecx
sub esi, eax
nop dword [eax]
lea eax, [edx + 0x7fffff7c]
test eax, eax
je 0x40577e
movzx eax, word [ecx + esi]
test ax, ax
je 0x40577e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x405760
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 0x4057a4
add eax, 2
sub ecx, 1
jne 0x405796
mov eax, ebx
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x4057fc
mov edx, ebx
lea ecx, [ebp - 0x424]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x4057ef
mov edi, str.uninstall.exe
mov eax, 0x7ffffffe
sub edi, ecx
nop
test eax, eax
je 0x4057e9
movzx esi, word [ecx + edi]
test si, si
je 0x4057e9
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x4057d0
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 0x405805
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 0x405862
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 [0x41f3dc]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [ebp + 8], 0
je 0x405927
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 0x4058ae
add eax, 2
sub ecx, 1
jne 0x4058a0
mov eax, ebx
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x405906
mov edx, ebx
lea ecx, [ebp - 0xe3c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x4058f9
mov edi, str.FontsNotoEmoji.ttf
mov eax, 0x7ffffffe
sub edi, ecx
nop dword [eax]
test eax, eax
je 0x4058f9
movzx esi, word [edi + ecx]
test si, si
je 0x4058f9
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x4058e0
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 [0x41f3dc]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [ebp + 0xc], 0
je 0x405bf6
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
js 0x405bf6
lea eax, [ebp - 0x24c8]
push eax
push 0x415210
push 1
push 0
push 0x415230
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x405bf0
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 0x4059ae
movzx eax, word [ecx + esi]
test ax, ax
je 0x4059ae
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x405990
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 0x4059d4
add eax, 2
sub ecx, 1
jne 0x4059c6
mov eax, ebx
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x405a26
mov edx, ebx
lea ecx, [ebp - 0x124c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x405a19
mov edi, str.chrome.exe
mov eax, 0x7ffffffe
sub edi, ecx
nop
test eax, eax
je 0x405a19
movzx esi, word [ecx + edi]
test si, si
je 0x405a19
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x405a00
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 0x405a62
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 0x405a8e
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 0x405a8e
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 0x415220
push eax
mov ecx, dword [eax]
call dword [ecx]
test eax, eax
js 0x405be4
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 0x405aee
add eax, 2
sub ecx, 1
jne 0x405ae0
mov eax, ebx
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x405b46
mov edx, ebx
lea ecx, [ebp - 0x227c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x405b39
mov edi, str.Supermium.lnk
mov eax, 0x7ffffffe
sub edi, ecx
nop dword [eax]
test eax, eax
je 0x405b39
movzx esi, word [edi + ecx]
test si, si
je 0x405b39
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x405b20
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 0x405b5f
add eax, 2
sub ecx, 1
jne 0x405b51
mov eax, ebx
mov edx, ecx
sub eax, ecx
neg edx
sbb edx, edx
and edx, eax
test ecx, ecx
je 0x405bae
lea ecx, [ebp - 0x2484]
lea ecx, [ecx + edx*2]
sub ebx, edx
je 0x405ba1
mov esi, str.Supermium.lnk
mov eax, 0x7ffffffe
sub esi, ecx
test eax, eax
je 0x405ba1
movzx edx, word [esi + ecx]
test dx, dx
je 0x405ba1
mov word [ecx], dx
dec eax
add ecx, 2
sub ebx, 1
jne 0x405b88
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 [0x41f3dc]
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.004072ed
mov esp, ebp
pop ebp
ret
call fcn.0040a93c
int3