Function at 0x40de4f
Capabilities:
Persist via default file association registry key
Set registry value

Disassembly:
push 0x3a0
mov eax, 0x45ebc1
call fcn.00446e42
mov esi, dword [ebp + 8]
xor eax, eax
push 0x208
push eax
mov word [ebp - 0x21c], ax
lea eax, [ebp - 0x21a]
push eax
call fcn.004468a0
add esp, 0xc
push 0x104
lea eax, [ebp - 0x21c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x3ac]
push eax
push str.kszxapp
push 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
mov esi, dword [sym.imp.DuiLib.dll_public:_void___thiscall_DuiLib::CDuiString::destructor_void_]
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ebx, dword [sym.imp.DuiLib.dll_public:_int___thiscall_DuiLib::CDuiString::GetLength_void_const]
test eax, eax
jne 0x40df66
push 0xffffffffffffffff
push str.kszxappProtocol
lea ecx, [ebp - 0x3a8]
call dword [sym.imp.DuiLib.dll_public:_void___thiscall_DuiLib::CDuiString::constructor_wchar_t_const___int_]
and dword [ebp - 4], 0
push 0xffffffffffffffff
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x2a0]
call dword [sym.imp.DuiLib.dll_public:_void___thiscall_DuiLib::CDuiString::constructor_wchar_t_const___int_]
lea ecx, [ebp - 0x3a8]
mov byte [ebp - 4], 1
call ebx
add eax, eax
push eax
lea ecx, [ebp - 0x3a8]
call dword [sym.imp.DuiLib.dll_public:_wchar_t_const____thiscall_DuiLib::CDuiString::GetData_void_const]
push eax
push 1
push 0
push 0
push dword [ebp - 0x3ac]
call edi
lea ecx, [ebp - 0x2a0]
call ebx
add eax, eax
push eax
lea ecx, [ebp - 0x2a0]
call dword [sym.imp.DuiLib.dll_public:_wchar_t_const____thiscall_DuiLib::CDuiString::operator_wchar_t_const__void_const]
push eax
push 2
push 0
push str.URL_Protocol
push dword [ebp - 0x3ac]
call edi
push dword [ebp - 0x3ac]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0x2a0]
mov byte [ebp - 4], 0
call esi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3a8]
call esi
lea eax, [ebp - 0x3ac]
push eax
push str.kszxappDefaultIcon
push 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
jne 0x40dfee
lea ecx, [ebp - 0x2a0]
call dword [sym.imp.DuiLib.dll_public:_void___thiscall_DuiLib::CDuiString::constructor_void_]
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x2a0]
push str._s_1
push eax
mov dword [ebp - 4], 2
call dword [sym.imp.DuiLib.dll_public:_int___cdecl_DuiLib::CDuiString::Format_wchar_t_const__]
add esp, 0xc
lea ecx, [ebp - 0x2a0]
call ebx
add eax, eax
push eax
lea ecx, [ebp - 0x2a0]
call dword [sym.imp.DuiLib.dll_public:_wchar_t_const____thiscall_DuiLib::CDuiString::operator_wchar_t_const__void_const]
push eax
push 1
push 0
push 0
push dword [ebp - 0x3ac]
call edi
push dword [ebp - 0x3ac]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2a0]
call esi
lea eax, [ebp - 0x3ac]
push eax
push str.kszxapp_shellopencommand
push 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
jne 0x40e076
lea ecx, [ebp - 0x324]
call dword [sym.imp.DuiLib.dll_public:_void___thiscall_DuiLib::CDuiString::constructor_void_]
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x324]
push 0x4659f0
push eax
mov dword [ebp - 4], 3
call dword [sym.imp.DuiLib.dll_public:_int___cdecl_DuiLib::CDuiString::Format_wchar_t_const__]
add esp, 0xc
lea ecx, [ebp - 0x324]
call ebx
add eax, eax
push eax
lea ecx, [ebp - 0x324]
call dword [sym.imp.DuiLib.dll_public:_wchar_t_const____thiscall_DuiLib::CDuiString::operator_wchar_t_const__void_const]
push eax
push 1
push 0
push 0
push dword [ebp - 0x3ac]
call edi
push dword [ebp - 0x3ac]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x324]
call esi
call fcn.00446ec5
ret 4