Function at 0x40dd60
Capabilities:
Check if file exists
Read file on windows

Disassembly:
push ebp
mov eax, 0x107c
mov ebp, esp
push edi
push esi
push ebx
call fcn.0043cef0
sub esp, eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x105c], ecx
mov dword [esp], ecx
lea esi, [ebp - 0x1018]
lea ecx, [ebp - 0x1048]
mov dword [esp + 4], eax
mov edi, esi
call fcn.0040a820
xor eax, eax
mov ecx, 0x400
sub esp, 8
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x1048]
mov dword [ebp - 0x104c], 0
mov dword [esp], eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
sub esp, 4
cmp eax, 1
je 0x40de90
lea edi, [ebp - 0x1028]
mov ebx, esi
mov dword [ebp - 0x1030], edi
mov edx, dword [ebx]
add ebx, 4
lea eax, [edx - 0x1010101]
not edx
and eax, edx
and eax, 0x80808080
je 0x40ddd4
mov edx, eax
shr edx, 0x10
test eax, 0x8080
cmove eax, edx
lea edx, [ebx + 2]
mov ecx, eax
cmove ebx, edx
add cl, al
sbb ebx, 3
sub ebx, esi
cmp ebx, 0xf
ja 0x40dfa0
cmp ebx, 1
je 0x40dfd2
test ebx, ebx
mov eax, edi
jne 0x40dfb7
mov dword [ebp - 0x102c], ebx
mov byte [eax + ebx], 0
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x105c]
mov dword [esp + 8], eax
lea eax, [ebp - 0x1048]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1030]
mov dword [esp], eax
call fcn.0040da50
mov ebx, eax
mov eax, dword [ebp - 0x1030]
sub esp, 0xc
cmp eax, edi
je 0x40de68
mov dword [esp], eax
call fcn.004ed8c0
mov eax, dword [ebp - 0x1048]
lea edx, [ebp - 0x1040]
cmp eax, edx
je 0x40de80
mov dword [esp], eax
call fcn.004ed8c0
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret 8
mov eax, dword [ebp - 0x1048]
mov dword [esp + 8], 0x4fb3d5
mov dword [esp + 4], eax
lea eax, [ebp - 0x104c]
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll_fopen_s]
test eax, eax
mov ebx, eax
jne 0x40dff0
mov eax, dword [ebp - 0x104c]
mov dword [esp + 8], 0xfff
mov dword [esp + 4], 1
mov dword [esp], esi
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fread
test eax, eax
jne 0x40e0a3
call fcn.0042c430
lea edi, [ebp - 0x1028]
mov dword [esp], 0x19
mov esi, eax
mov dword [ebp - 0x1030], edi
call fcn.004ed900
mov dword [eax], 0x74697257
mov dword [eax + 4], 0x67655265
mov dword [eax + 8], 0x65747369
mov dword [eax + 0xc], 0x79654b72
mov dword [eax + 0x10], 0x6f436f54
mov dword [eax + 0x14], 0x6769666e
mov byte [eax + 0x18], 0
mov dword [ebp - 0x1030], eax
lea eax, [ebp - 0x1030]
mov dword [esp + 0x10], str.fread_data_error
mov dword [esp + 0xc], 0x428
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], esi
mov dword [ebp - 0x1028], 0x18
mov dword [ebp - 0x102c], 0x18
call fcn.0042ce70
mov eax, dword [ebp - 0x1030]
cmp eax, edi
je 0x40df87
mov dword [esp], eax
call fcn.004ed8c0
mov eax, dword [ebp - 0x104c]
mov dword [esp], eax
call sub.msvcrt.dll_fclose
jmp 0x40de68
lea eax, [ebx + 1]
mov dword [esp], eax
call fcn.004ed900
mov dword [ebp - 0x1030], eax
mov dword [ebp - 0x1028], ebx
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0x1030]
jmp 0x40de22
movzx eax, byte [ebp - 0x1018]
mov byte [ebp - 0x1028], al
mov eax, edi
jmp 0x40de22
call fcn.0042c430
lea edi, [ebp - 0x1028]
mov dword [esp], 0x19
mov ebx, eax
mov esi, dword [ebp - 0x1048]
mov dword [ebp - 0x1030], edi
call fcn.004ed900
mov dword [eax], 0x74697257
mov dword [eax + 4], 0x67655265
mov dword [eax + 8], 0x65747369
mov dword [eax + 0xc], 0x79654b72
mov dword [eax + 0x10], 0x6f436f54
mov dword [eax + 0x14], 0x6769666e
mov byte [eax + 0x18], 0
mov dword [ebp - 0x1030], eax
lea eax, [ebp - 0x1030]
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], str.fopen_s_file__s_error
mov dword [esp + 0xc], 0x423
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], ebx
mov dword [ebp - 0x1028], 0x18
mov dword [ebp - 0x102c], 0x18
call fcn.0042ce70
mov eax, dword [ebp - 0x1030]
cmp eax, edi
je 0x40e09c
mov dword [esp], eax
call fcn.004ed8c0
xor ebx, ebx
jmp 0x40de68
mov eax, dword [ebp - 0x104c]
mov dword [esp], eax
call sub.msvcrt.dll_fclose
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x104c], 0
mov byte [ebp - 0x19], 0
mov eax, dword [eax]
mov dword [esp], esi
mov dword [esp + 4], eax
call sub.msvcrt.dll_strstr
test eax, eax
je 0x40e184
call fcn.0042c430
lea edi, [ebp - 0x1028]
mov dword [esp], 0x19
mov ebx, eax
mov dword [ebp - 0x1030], edi
call fcn.004ed900
mov dword [eax], 0x74697257
mov dword [eax + 4], 0x67655265
mov dword [eax + 8], 0x65747369
mov dword [eax + 0xc], 0x79654b72
mov dword [eax + 0x10], 0x6f436f54
mov dword [eax + 0x14], 0x6769666e
mov byte [eax + 0x18], 0
mov dword [ebp - 0x1030], eax
lea eax, [ebp - 0x1030]
mov dword [esp + 0x10], str.This_PID_is_exist
mov dword [esp + 0xc], 0x431
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], ebx
mov dword [ebp - 0x1028], 0x18
mov dword [ebp - 0x102c], 0x18
call fcn.0042ce70
mov eax, dword [ebp - 0x1030]
cmp eax, edi
je 0x40e17a
mov dword [esp], eax
call fcn.004ed8c0
mov ebx, 1
jmp 0x40de68
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], 0x4fba35
mov dword [esp + 4], 0x1000
mov dword [esp], esi
mov edi, dword [sym.imp.msvcrt.dll_strncat_s]
call edi
test eax, eax
jne 0x40e1d1
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc], 0xffffffff
mov eax, dword [eax]
mov dword [esp + 4], 0x1000
mov dword [esp], esi
mov dword [esp + 8], eax
call edi
test eax, eax
je 0x40ddc6
call fcn.0042c430
lea esi, [ebp - 0x1030]
mov dword [esp], str.WriteRegisterKeyToConfig
mov edi, eax
mov ecx, esi
call fcn.00409100
sub esp, 4
mov dword [esp + 0x10], str.strncat_s_data_error
mov dword [esp + 0xc], 0x438
mov dword [esp + 8], esi
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.0042ce70
mov eax, dword [ebp - 0x1030]
lea edx, [ebp - 0x1028]
cmp eax, edx
jne 0x40de60
jmp 0x40de68