Function at 0x456a24
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 0x456aaa
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 0x456aa3
lea rcx, [0x004e0f30]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor al, al
jmp 0x456d40
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 0x456afb
movzx eax, word [rcx - 0x208]
test ax, ax
je 0x456afb
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x456ad6
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 0x456b3f
movzx eax, word [r8 + rcx]
test ax, ax
je 0x456b3f
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x456b1c
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 0x456b9c
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x456b8f
test al, 0x10
jne 0x456d59
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x456b9c
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 0x456beb
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x456bde
test al, 0x10
jne 0x456d76
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x456beb
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 0x456c3a
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x456c2d
test al, 0x10
jne 0x456d93
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x456c3a
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.004567b0
call fcn.00456634
call fcn.0045594c
call fcn.00455094
lea rcx, [0x004e0f30]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea rdx, str..mql5.com
call fcn.004544e0
lea rdx, str..mql5.net
call fcn.004544e0
lea rdx, str..finteza.com
call fcn.004544e0
lea rdx, str..metaquotes.net
call fcn.004544e0
lea rdx, str..metatrader.com
call fcn.004544e0
call fcn.004565b4
test al, al
je 0x456d3e
mov rcx, qword [0x004e1a18]
test rcx, rcx
je 0x456d03
lea rdx, [rbp + 0x168]
mov dword [rbp + 0x168], ebx
call qword [sym.imp.KERNEL32.dll_GetExitCodeThread]
cmp dword [rbp + 0x168], edi
je 0x456d3e
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 0x456b9c
xor eax, 1
lea rcx, [rsp + 0x30]
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x456b9c
test al, 1
je 0x456beb
xor eax, 1
lea rcx, [rsp + 0x30]
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x456beb
test al, 1
je 0x456c3a
xor eax, 1
lea rcx, [rsp + 0x30]
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x456c3a