Function at 0x41f585
Capabilities:
Delete file
Get common file path
Get file size
Read file on windows
Set registry value
Write file on windows

Disassembly:
push ebp
sub esp, 0x318
lea ebp, [esp - 4]
mov eax, dword [0x50db70]
xor eax, ebp
mov dword [ebp + 0x318], eax
push 0x24
mov eax, 0x4c4358
call fcn.00422cc6
mov eax, dword [ebp + 0x328]
mov esi, dword [ebp + 0x324]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x32c]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x2c], eax
call fcn.00417be0
mov edx, eax
push 9
pop ecx
xor eax, eax
xor ebx, ebx
mov word [ebp + 0x2e8], bx
lea edi, [ebp + 0x2ea]
rep stosd dword es:[edi], eax
push edx
stosw word es:[edi], ax
lea eax, [ebp + 0x2e8]
push 0x4c7c50
push eax
call fcn.00423151
add esp, 0xc
push esi
lea ecx, [ebp + 0x8c]
call fcn.00401c20
push str.icon.ico
lea ecx, [ebp + 0x8c]
mov dword [ebp - 4], ebx
call fcn.00403af0
push esi
lea ecx, [ebp + 0xc4]
call fcn.00401c20
push str.User_DataDefault_
lea ecx, [ebp + 0xc4]
mov byte [ebp - 4], 1
call fcn.00403af0
lea eax, [ebp + 0x2e8]
push eax
lea ecx, [ebp + 0xc4]
call fcn.00403af0
push str..ico
lea ecx, [ebp + 0xc4]
call fcn.00403af0
cmp dword [ebp + 0xa4], 8
mov eax, dword [ebp + 0x90]
jae 0x41f66e
lea eax, [ebp + 0x90]
push ebx
push 0x80
push 4
push ebx
push ebx
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
xor esi, esi
cmp edi, 0xffffffff
mov dword [ebp - 0x14], ebx
je 0x41f70e
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
lea eax, [esi + 0xa]
push eax
call fcn.004211ce
pop ecx
push ebx
lea ecx, [ebp - 0x28]
push ecx
push esi
push eax
push edi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x28], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x895440
push 0xf4240
call fcn.0041743d
mov ecx, eax
xor eax, eax
mov byte [ebp + 0x310], bl
lea edi, [ebp + 0x311]
stosd dword es:[edi], eax
stosw word es:[edi], ax
push ecx
stosb byte es:[edi], al
lea eax, [ebp + 0x310]
push 0x4cad9c
push eax
call fcn.004240eb
push 8
lea eax, [ebp + 0x310]
push eax
mov eax, dword [ebp - 0x14]
add eax, esi
push eax
call fcn.00421e50
add esp, 0x20
add esi, 8
cmp dword [ebp + 0xdc], 8
mov eax, dword [ebp + 0xc8]
jae 0x41f723
lea eax, [ebp + 0xc8]
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
push eax
call edi
cmp dword [ebp - 0x14], ebx
je 0x41f781
cmp dword [ebp + 0xdc], 8
mov eax, dword [ebp + 0xc8]
jae 0x41f746
lea eax, [ebp + 0xc8]
push ebx
push 0x80
push 1
push ebx
push 1
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [ebp - 0x18], eax
je 0x41f781
push ebx
lea ecx, [ebp - 0x30]
push ecx
push esi
push dword [ebp - 0x14]
mov dword [ebp - 0x30], ebx
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp + 0xa4], 8
mov eax, dword [ebp + 0x90]
jae 0x41f796
lea eax, [ebp + 0x90]
push eax
call edi
push dword [ebp - 0x20]
lea ecx, [ebp + 0x38]
call fcn.00401c20
mov esi, str.hao123Juzi.exe
push esi
lea ecx, [ebp + 0x38]
mov byte [ebp - 4], 2
call fcn.00403af0
mov edi, 0x4c83f0
push edi
lea ecx, [ebp + 0x70]
call fcn.00401c20
push 0xffffffffffffffff
push ebx
lea eax, [ebp + 0x38]
push eax
lea ecx, [ebp + 0x70]
mov byte [ebp - 4], 3
call fcn.00403f40
push 0x4c9348
lea ecx, [ebp + 0x70]
call fcn.00403af0
push str.__class13
lea ecx, [ebp + 0xa8]
call fcn.00401c20
push str.___type4
lea ecx, [ebp + 0xa8]
mov byte [ebp - 4], 4
call fcn.00403af0
push str.___procid
lea ecx, [ebp + 0xa8]
call fcn.00403af0
push dword [ebp - 0x24]
lea ecx, [ebp + 0xa8]
call fcn.00403af0
push str.___param_hao123
lea ecx, [ebp + 0xa8]
call fcn.00403af0
push str.___ico_
lea ecx, [ebp + 0xa8]
call fcn.00403af0
push 0xffffffffffffffff
push ebx
lea eax, [ebp + 0xc4]
push eax
lea ecx, [ebp + 0xa8]
call fcn.00403f40
push edi
lea ecx, [ebp + 0xa8]
call fcn.00403af0
push 0xffffffffffffffff
push ebx
lea eax, [ebp + 0xa8]
push eax
lea ecx, [ebp + 0x70]
call fcn.00403f40
cmp dword [ebp + 0x88], 8
mov eax, dword [ebp + 0x74]
jae 0x41f888
lea eax, [ebp + 0x74]
push eax
call fcn.00417c95
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [esp], 0xbb8
call edi
push 0x206
lea eax, [ebp + 0xe2]
push ebx
push eax
mov word [ebp + 0xe0], bx
call fcn.004221d0
add esp, 0xc
push ebx
push 0x1a
lea eax, [ebp + 0xe0]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea eax, [ebp + 0xe0]
push str.MicrosoftInternet_ExplorerQuick_Launchhao123
push eax
call fcn.00422334
pop ecx
pop ecx
push dword [ebp - 0x20]
lea ecx, [ebp + 0x54]
call fcn.00401c20
push esi
lea ecx, [ebp + 0x54]
mov byte [ebp - 4], 5
call fcn.00403af0
lea ecx, [ebp]
call fcn.0041f2bc
cmp dword [ebp + 0xdc], 8
mov ecx, dword [ebp + 0xc8]
mov byte [ebp - 4], 6
jae 0x41f916
lea ecx, [ebp + 0xc8]
cmp dword [ebp + 0x6c], 8
mov eax, dword [ebp + 0x58]
jae 0x41f922
lea eax, [ebp + 0x58]
push ecx
push eax
lea ecx, [ebp]
call fcn.0041f55b
mov esi, 0x3e8
push esi
call edi
lea ecx, [ebp - 0xd]
call sym.setup_DongFangInput.exe_public:_class_DuiLib::CMarkup____thiscall_DuiLib::CDialogBuilder::GetMarkup_void_
push ebx
push str.hao123
push dword [ebp - 0x2c]
lea ecx, [ebp - 0xd]
mov byte [ebp - 4], 7
call fcn.00420095
push esi
call edi
lea eax, [ebp - 0x1c]
push eax
push str.SoftWare
push reloc.WS2_32.dll_accept
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
cmp eax, ebx
jne 0x41f9d2
lea eax, [ebp - 0x14]
push eax
mov esi, 0xf003f
push esi
push ebx
push str.hao123JuziBrowser
push dword [ebp - 0x1c]
mov dword [ebp - 0x14], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
je 0x41f9ae
push ebx
lea eax, [ebp - 0x14]
push eax
push ebx
push esi
push ebx
push ebx
push ebx
push 0x4cac38
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x41f9cd
push 4
lea eax, [ebp - 0x18]
push eax
push 4
push ebx
push str.firstrun
push dword [ebp - 0x14]
mov dword [ebp - 0x18], ebx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 0x14]
call edi
push dword [ebp - 0x1c]
call edi
lea ecx, [ebp - 0xd]
mov byte [ebp - 4], 6
call sym.setup_DongFangInput.exe_void___cdecl_DuiLib::DUI__Trace_wchar_t_const__
lea ecx, [ebp]
mov byte [ebp - 4], 5
call fcn.0041f2d0
xor esi, esi
push ebx
inc esi
push esi
lea ecx, [ebp + 0x54]
call fcn.00401e20
push ebx
push esi
lea ecx, [ebp + 0xa8]
call fcn.00401e20
push ebx
push esi
lea ecx, [ebp + 0x70]
call fcn.00401e20
push ebx
push esi
lea ecx, [ebp + 0x38]
call fcn.00401e20
push ebx
push esi
lea ecx, [ebp + 0xc4]
call fcn.00401e20
push ebx
push esi
lea ecx, [ebp + 0x8c]
call fcn.00401e20
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x318]
xor ecx, ebp
call fcn.004221b5
add ebp, 0x31c
leave
ret 0xc