Function at 0x430280
Capabilities:
Delete registry key
Set registry value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x194
mov esi, ecx
mov eax, dword [0x49503c]
xor eax, ebp
mov dword [ebp - 0x10], eax
lea edi, [ebp - 0x184]
push ecx
push str.FirefoxURL
push edi
call fcn.00451e90
add esp, 0xc
push dword [edi]
call fcn.0045a0a0
add esp, 4
test al, al
je 0x430329
lea edi, [ebp - 0x188]
push esi
push str.FirefoxHTML
push edi
call fcn.00451e90
add esp, 0xc
push dword [edi]
call fcn.0045a0a0
add esp, 4
test al, al
je 0x43034d
call fcn.00451df0
test al, al
je 0x430371
mov eax, dword [0x495660]
cmp eax, 0x3ad6
ja 0x430470
mov eax, dword [0x49506c]
cmp eax, 0x3ad8
jae 0x4303de
push 0xde
push 0x48e2e0
push str.UserChoice_hash_matched__but_Windows_build_is_too_old
call fcn.00429d90
add esp, 0xc
mov edi, 0xa0000004
jmp 0x43038d
push dword [ebp - 0x184]
push 0xce
push 0x48e2e0
push str.ProgID__s_not_found
call fcn.00429d90
add esp, 0x10
mov edi, 0xa0000001
jmp 0x4303aa
push dword [ebp - 0x188]
push 0xd4
push 0x48e2e0
push str.ProgID__s_not_found
call fcn.00429d90
add esp, 0x10
mov edi, 0xa0000001
jmp 0x43038d
push 0xd9
push 0x48e2e0
push str.UserChoice_Hash_mismatch
call fcn.00429d90
add esp, 0xc
mov edi, 0xa0000002
mov eax, dword [ebp - 0x188]
mov dword [ebp - 0x188], 0
test eax, eax
je 0x4303aa
push eax
call fcn.0044fc0e
add esp, 4
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0x184], 0
test eax, eax
je 0x4303c7
push eax
call fcn.0044fc0e
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004503b0
mov eax, edi
add esp, 0x194
pop esi
pop edi
pop ebx
pop ebp
ret
lea edi, [ebp - 0x124]
push 0x114
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [edi - 8], 0x11c
mov dword [edi - 4], 0xa
mov dword [edi + 4], 0x3ad7
sub esp, 0x10
movaps xmm0, xmmword [0x461880]
movups xmmword [esp], xmm0
mov edi, dword [sym.imp.kernel32.dll_VerSetConditionMask]
call edi
mov ebx, 3
push ebx
push 1
push edx
push eax
call edi
push ebx
push 4
push edx
push eax
call edi
push ebx
push 0x20
push edx
push eax
call edi
push ebx
push 0x10
push edx
push eax
call edi
lea ecx, [ebp - 0x12c]
push edx
push eax
push 0x37
push ecx
call dword [sym.imp.kernel32.dll_VerifyVersionInfoW]
test eax, eax
jne 0x430465
mov eax, 0x3ad7
xchg dword [0x49506c], eax
jmp 0x43030b
mov eax, 0x3ad7
xchg dword [0x495660], eax
lea edi, [ebp - 0x18c]
push edi
call fcn.00451660
add esp, 4
mov eax, dword [edi]
mov dword [ebp - 0x19c], eax
test eax, eax
je 0x430b04
mov eax, str.https
mov dword [ebp - 0x12c], eax
mov edi, dword [ebp - 0x184]
mov dword [ebp - 0x128], edi
mov dword [ebp - 0x124], str.http
mov dword [ebp - 0x120], edi
mov dword [ebp - 0x11c], str..html
mov eax, dword [ebp - 0x188]
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], str..htm
mov dword [ebp - 0x110], eax
lea ebx, [ebp - 0x16c]
push ebx
call dword [sym.imp.kernel32.dll_GetSystemTime]
sub esp, 0x20
movups xmm0, xmmword [ebx]
movups xmmword [esp + 0x10], xmm0
mov dword [ebp - 0x198], edi
mov dword [esp + 0xc], edi
mov eax, dword [ebp - 0x19c]
mov dword [esp + 8], eax
mov dword [ebp - 0x190], str.https
mov eax, str.https
mov dword [esp + 4], eax
lea ebx, [ebp - 0x170]
mov dword [esp], ebx
call fcn.00451820
add esp, 0x20
cmp dword [ebx], 0
je 0x430aad
mov dword [ebp - 0x1a0], 0
lea ebx, [ebp - 0x180]
push ebx
call dword [sym.imp.kernel32.dll_GetSystemTime]
lea eax, [ebp - 0x15c]
push eax
push ebx
call dword [sym.imp.kernel32.dll_SystemTimeToFileTime]
test eax, eax
je 0x430752
add dword [ebp - 0x15c], 0xf4240
adc dword [ebp - 0x158], 0
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x15c]
push eax
call dword [sym.imp.kernel32.dll_FileTimeToSystemTime]
test eax, eax
je 0x430752
movups xmm0, xmmword [ebp - 0x14c]
movups xmmword [ebp - 0x180], xmm0
mov eax, dword [ebp - 0x178]
mov dword [ebp - 0x144], eax
movsd xmm0, qword [ebp - 0x180]
movsd qword [ebp - 0x14c], xmm0
movsd xmm0, qword [ebp - 0x16c]
movsd qword [ebp - 0x15c], xmm0
mov eax, dword [ebp - 0x164]
mov dword [ebp - 0x154], eax
xor eax, eax
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x140], eax
lea eax, [ebp - 0x134]
push eax
lea eax, [ebp - 0x15c]
push eax
call dword [sym.imp.kernel32.dll_SystemTimeToFileTime]
test eax, eax
je 0x430633
lea eax, [ebp - 0x13c]
push eax
lea eax, [ebp - 0x14c]
push eax
call dword [sym.imp.kernel32.dll_SystemTimeToFileTime]
test eax, eax
je 0x430633
mov eax, dword [ebp - 0x134]
cmp eax, dword [ebp - 0x13c]
jne 0x430633
mov eax, dword [ebp - 0x138]
cmp dword [ebp - 0x130], eax
je 0x4306ed
push 0x61
push str.SetUserChoice
push str.Hash_is_too_close_to_expiration__sleeping_until_next_hash.
call fcn.00429d90
add esp, 0xc
push 0xc8
call dword [sym.imp.kernel32.dll_Sleep]
lea eax, [ebp - 0x16c]
push eax
call dword [sym.imp.kernel32.dll_GetSystemTime]
sub esp, 0x20
movups xmm0, xmmword [ebp - 0x16c]
movups xmmword [esp + 0x10], xmm0
mov eax, dword [ebp - 0x198]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x19c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x190]
mov dword [esp + 4], eax
lea eax, [ebp - 0x14c]
mov dword [esp], eax
call fcn.00451820
add esp, 0x20
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x14c], 0
mov ecx, dword [ebp - 0x170]
mov dword [ebp - 0x170], eax
test ecx, ecx
je 0x4306e9
push ecx
call fcn.0044fc0e
add esp, 4
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x14c], 0
test eax, eax
je 0x4306e3
push eax
call fcn.0044fc0e
add esp, 4
mov eax, dword [ebp - 0x170]
test eax, eax
je 0x430752
push dword [ebp - 0x190]
lea eax, [ebp - 0x14c]
push eax
call fcn.004517b0
add esp, 8
mov eax, dword [ebp - 0x14c]
test eax, eax
je 0x430752
lea ecx, [ebp - 0x15c]
push ecx
push 0x2001f
push 0
push eax
push SysReAllocString
call dword [sym.imp.advapi32.dll_RegOpenKeyExW]
test eax, eax
je 0x43093c
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
mov edx, str.SetUserChoice
push 0x76
call fcn.0042bc70
add esp, 4
xor ebx, ebx
jmp 0x4309d1
xor ebx, ebx
mov eax, dword [ebp - 0x170]
mov dword [ebp - 0x170], 0
test eax, eax
je 0x430771
push eax
call fcn.0044fc0e
add esp, 4
test bl, bl
je 0x430aad
xor eax, eax
mov dword [ebp - 0x14c], eax
lea ecx, [ebp - 0x14c]
push ecx
push str._n_vSN
push 3
push eax
push 0x45d08c
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x43082d
xor ebx, ebx
mov eax, dword [ebp - 0x190]
cmp word [eax], 0x2e
setne bl
mov edi, dword [ebp - 0x14c]
mov eax, dword [edi]
mov ecx, dword [eax + 0xc]
call dword [section..00cfg]
lea eax, [ebp - 0x15c]
push eax
push 2
push ebx
push dword [ebp - 0x190]
push edi
call ecx
test eax, eax
js 0x43083b
mov edi, dword [ebp - 0x15c]
push 0
xor eax, eax
dec eax
push eax
push dword [ebp - 0x198]
push eax
push edi
call dword [sym.imp.kernel32.dll_CompareStringOrdinal]
cmp eax, 2
sete bl
je 0x430820
push dword [ebp - 0x190]
push dword [ebp - 0x198]
push edi
push 0xc4
push str.VerifyUserDefault
push str.Default_was__s_after_writing_ProgID__s_to_UserChoice_for__s
call fcn.00429d90
add esp, 0x18
test edi, edi
je 0x43087d
push edi
call dword [sym.imp.ole32.dll_CoTaskMemFree]
jmp 0x43087d
mov ecx, eax
mov edx, str.VerifyUserDefault
push 0xaa
jmp 0x430873
cmp eax, 0x80070483
jne 0x430867
push dword [ebp - 0x190]
push dword [ebp - 0x198]
push 0xb7
push str.VerifyUserDefault
push str.UserChoice_ProgID__s_for__s_was_rejected
call fcn.00429d90
add esp, 0x14
jmp 0x43087b
mov ecx, eax
mov edx, str.VerifyUserDefault
push 0xb9
call fcn.0042bc70
add esp, 4
xor ebx, ebx
mov edi, dword [ebp - 0x14c]
test edi, edi
je 0x430895
mov eax, dword [edi]
mov ecx, dword [eax + 8]
call dword [section..00cfg]
push edi
call ecx
test bl, bl
je 0x430b0e
cmp dword [ebp - 0x1a0], 3
je 0x430b15
mov eax, dword [ebp - 0x1a0]
lea ecx, [eax + 1]
mov dword [ebp - 0x194], ecx
mov ecx, dword [ebp + eax*8 - 0x124]
mov dword [ebp - 0x190], ecx
mov ebx, dword [ebp + eax*8 - 0x120]
mov edi, dword [ebp - 0x18c]
lea eax, [ebp - 0x16c]
push eax
call dword [sym.imp.kernel32.dll_GetSystemTime]
sub esp, 0x20
movups xmm0, xmmword [ebp - 0x16c]
movups xmmword [esp + 0x10], xmm0
mov dword [ebp - 0x198], ebx
mov dword [esp + 0xc], ebx
mov dword [ebp - 0x19c], edi
mov dword [esp + 8], edi
mov eax, dword [ebp - 0x190]
mov dword [esp + 4], eax
lea eax, [ebp - 0x170]
mov dword [esp], eax
call fcn.00451820
add esp, 0x20
cmp dword [ebp - 0x170], 0
mov eax, dword [ebp - 0x194]
mov dword [ebp - 0x1a0], eax
jne 0x43053f
jmp 0x430aad
mov edi, dword [ebp - 0x15c]
push 0x48fc36
push edi
call dword [sym.imp.advapi32.dll_RegDeleteKeyW]
test eax, eax
je 0x43096c
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
mov edx, str.SetUserChoice
push 0x80
jmp 0x4309bc
sub esp, 0x24
xor eax, eax
mov dword [esp + 0x20], eax
lea ecx, [ebp - 0x134]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
movaps xmm0, xmmword [0x461890]
movups xmmword [esp + 8], xmm0
mov dword [esp], edi
mov dword [esp + 4], 0x48fc36
call dword [sym.imp.advapi32.dll_RegCreateKeyExW]
test eax, eax
je 0x4309f7
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
mov edx, str.SetUserChoice
push 0x8a
call fcn.0042bc70
add esp, 4
xor ebx, ebx
test edi, edi
je 0x4309d1
push edi
call dword [sym.imp.advapi32.dll_RegCloseKey]
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x14c], 0
test eax, eax
je 0x430754
push eax
call fcn.0044fc0e
add esp, 4
jmp 0x430754
mov eax, dword [ebp - 0x134]
mov dword [ebp - 0x194], eax
mov ebx, dword [ebp - 0x198]
push ebx
call dword [sym.imp.kernel32.dll_lstrlenW]
add eax, eax
add eax, 2
push eax
push ebx
push 1
push 0
push str.ProgID
push dword [ebp - 0x194]
call dword [sym.imp.advapi32.dll_RegSetValueExW]
test eax, eax
je 0x430a37
mov ebx, 0x94
jmp 0x430a6d
push dword [ebp - 0x170]
call dword [sym.imp.kernel32.dll_lstrlenW]
add eax, eax
add eax, 2
push eax
push dword [ebp - 0x170]
push 1
push 0
push str.Hash
push dword [ebp - 0x194]
call dword [sym.imp.advapi32.dll_RegSetValueExW]
test eax, eax
je 0x430aa9
mov ebx, 0x9d
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
mov edx, str.SetUserChoice
push ebx
call fcn.0042bc70
add esp, 4
xor ebx, ebx
cmp dword [ebp - 0x194], 0
je 0x4309c6
push dword [ebp - 0x194]
call dword [sym.imp.advapi32.dll_RegCloseKey]
jmp 0x4309c6
mov bl, 1
jmp 0x430a8b
mov edi, 0x80004005
sub esp, 0x10
movaps xmm0, xmmword [0x4618a0]
movups xmmword [esp], xmm0
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
push esi
push 0x102
push 0x48e2e0
push str.Failed_setting_default_with__s
call fcn.00429d90
add esp, 0x10
mov eax, dword [ebp - 0x18c]
mov dword [ebp - 0x18c], 0
test eax, eax
je 0x43038d
push eax
call fcn.0044fc0e
add esp, 4
jmp 0x43038d
mov edi, 0x80004005
jmp 0x43038d
mov edi, 0xa0000003
jmp 0x430ab2
sub esp, 0x10
movaps xmm0, xmmword [0x4618a0]
movups xmmword [esp], xmm0
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
xor edi, edi
jmp 0x430ade