Function at 0x456a10
Capabilities:
Check if file exists
Create directory
Delete file
Get common file path
Get file attributes
Initialize winsock library
Set file attributes

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], r12
mov byte [rax + 0x20], r9b
push rbp
lea rbp, [rax - 0x148]
sub rsp, 0x240
lea rcx, [0x004e0f30]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
xor ebx, ebx
mov dword [0x004e1460], eax
cmp byte [0x004e1a28], bl
jne 0x456a96
xor edx, edx
lea rcx, [rsp + 0x30]
mov r8d, 0x198
call fcn.00424830
mov ecx, 0x202
lea rdx, [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x456a8f
lea rcx, [0x004e0f30]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor al, al
jmp 0x456d2c
mov byte [0x004e1a28], 1
xor r9d, r9d
lea r12, [0x004e1050]
xor r8d, r8d
mov qword [rsp + 0x20], r12
xor ecx, ecx
lea edx, [r9 + 0x1a]
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov edi, 0x103
lea rcx, [0x004e1258]
mov edx, edi
lea rax, [rdx + 0x7ffffefb]
test rax, rax
je 0x456ae7
movzx eax, word [rcx - 0x208]
test ax, ax
je 0x456ae7
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x456ac2
test rdx, rdx
lea rax, [rcx - 2]
mov r8, r12
mov rdx, rdi
cmovne rax, rcx
lea rcx, [rsp + 0x30]
mov word [rax], bx
lea rax, [rsp + 0x30]
sub r8, rax
lea rax, [rdx + 0x7ffffefb]
test rax, rax
je 0x456b2b
movzx eax, word [r8 + rcx]
test ax, ax
je 0x456b2b
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x456b08
test rdx, rdx
lea rax, [rcx - 2]
lea r8, [0x00490d70]
mov rdx, rdi
cmovne rax, rcx
lea rcx, [rsp + 0x30]
mov word [rax], bx
call fcn.004044ac
cmp word [rsp + 0x30], bx
je 0x456b88
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x456b7b
test al, 0x10
jne 0x456d45
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x456b88
xor edx, edx
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea r8, str.Terminal
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.004044ac
cmp word [rsp + 0x30], bx
je 0x456bd7
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x456bca
test al, 0x10
jne 0x456d62
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x456bd7
xor edx, edx
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea r8, str.Community
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.004044ac
cmp word [rsp + 0x30], bx
je 0x456c26
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x456c19
test al, 0x10
jne 0x456d7f
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x456c26
xor edx, edx
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea r8, str.MetaQuotesTerminalCommunitydns.dat
mov rdx, rdi
mov rcx, r12
call fcn.004044ac
lea r8, str.MetaQuotesTerminalCommunitycookies.dat
mov rdx, rdi
lea rcx, [0x004e1258]
call fcn.004044ac
call fcn.0045679c
call fcn.00456620
call fcn.00455938
call fcn.00455080
lea rcx, [0x004e0f30]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea rdx, str..mql5.com
call fcn.004544cc
lea rdx, str..mql5.net
call fcn.004544cc
lea rdx, str..finteza.com
call fcn.004544cc
lea rdx, str..metaquotes.net
call fcn.004544cc
lea rdx, str..metatrader.com
call fcn.004544cc
call fcn.004565a0
test al, al
je 0x456d2a
mov rcx, qword [0x004e1a18]
test rcx, rcx
je 0x456cef
lea rdx, [rbp + 0x168]
mov dword [rbp + 0x168], ebx
call qword [sym.imp.KERNEL32.dll_GetExitCodeThread]
cmp dword [rbp + 0x168], edi
je 0x456d2a
mov rcx, qword [0x004e1a18]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [0x004e1a18], rbx
lea rcx, [rbp + 0x168]
mov dword [rbp + 0x168], ebx
mov qword [rsp + 0x28], rcx
lea r9, [0x004e0f30]
xor ecx, ecx
mov dword [rsp + 0x20], 0x10000
lea r8, [0x00452df0]
mov edx, 0x400000
call fcn.00437280
mov qword [0x004e1a18], rax
mov al, 1
lea r11, [rsp + 0x240]
mov rbx, qword [r11 + 0x10]
mov rdi, qword [r11 + 0x18]
mov r12, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret
test al, 1
je 0x456b88
xor eax, 1
lea rcx, [rsp + 0x30]
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x456b88
test al, 1
je 0x456bd7
xor eax, 1
lea rcx, [rsp + 0x30]
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x456bd7
test al, 1
je 0x456c26
xor eax, 1
lea rcx, [rsp + 0x30]
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x456c26