Function at 0x40cdea
Capabilities:
Check if file exists
Copy file
Create directory
Get common file path
Read .ini file

Disassembly:
sub esp, 0x61c
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x618], eax
push ebx
push ebp
push edi
xor eax, eax
mov ebx, 0x206
push ebx
mov word [esp + 0x218], ax
xor ebp, ebp
lea eax, [esp + 0x21a]
push ebp
push eax
call fcn.00412740
xor eax, eax
push ebx
mov word [esp + 0x42c], ax
lea eax, [esp + 0x42e]
push ebp
push eax
call fcn.00412740
add esp, 0x18
mov edi, 0x4aff08
push 0x104
push edi
push ebp
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x5c
push ebp
push edi
call dword [sym.imp.SHLWAPI.dll_StrRChrW]
sub eax, edi
and eax, 0xfffffffe
cmp eax, 0xfffe
jae 0x40d037
mov ebx, dword [sym.imp.SHLWAPI.dll_StrCpyW]
xor ecx, ecx
push esi
mov word [eax + 0x4aff08], cx
lea eax, [esp + 0x218]
push edi
push eax
call ebx
mov esi, dword [sym.imp.SHLWAPI.dll_StrCatW]
lea eax, [esp + 0x218]
push str.Langdefault.lng
push eax
call esi
push edi
lea eax, [esp + 0x424]
push eax
call ebx
mov edi, str.FFEncryptor.ini
lea eax, [esp + 0x420]
push edi
push eax
call esi
xor eax, eax
push 0x206
mov word [esp + 0x14], ax
lea eax, [esp + 0x16]
push ebp
push eax
call fcn.00412740
add esp, 0xc
lea eax, [esp + 0x10]
push eax
push ebp
push ebp
push 0x801a
push ebp
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov esi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov ebx, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x40cf21
push str.WinTools
lea eax, [esp + 0x14]
push eax
call esi
push ebp
lea eax, [esp + 0x14]
push eax
call ebx
push 0x42b130
lea eax, [esp + 0x14]
push eax
call esi
push ebp
lea eax, [esp + 0x14]
push eax
call ebx
push edi
lea eax, [esp + 0x14]
push eax
call esi
mov ebp, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea eax, [esp + 0x10]
push eax
call ebp
mov edi, dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x40cf49
push 1
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x428]
push eax
call edi
lea eax, [esp + 0x10]
push eax
push 0x48fef0
call dword [sym.imp.SHLWAPI.dll_StrCpyW]
lea eax, [esp + 0x10]
push eax
xor eax, eax
push eax
push eax
push 0x801a
push eax
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x40cfa8
push str.WinTools
lea eax, [esp + 0x14]
push eax
call esi
push 0
lea eax, [esp + 0x14]
push eax
call ebx
push 0x42b130
lea eax, [esp + 0x14]
push eax
call esi
push 0
lea eax, [esp + 0x14]
push eax
call ebx
push str.default.lng
lea eax, [esp + 0x14]
push eax
call esi
lea eax, [esp + 0x10]
push eax
call ebp
test eax, eax
jne 0x40cfd1
push 1
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x220]
push eax
call edi
push ecx
push 0x35fac
mov edx, str.Version
jmp 0x40d007
push 0x48fef0
push 0
mov esi, str.Version
push esi
push str.OPTIONS
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ebx, 0x35fac
cmp eax, ebx
jge 0x40d00e
push 0
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x220]
push eax
call edi
push ecx
push ebx
mov edx, esi
call fcn.0040fc10
pop ecx
pop ecx
lea eax, [esp + 0x10]
push eax
push 0x4d00a0
call dword [sym.imp.SHLWAPI.dll_StrCpyW]
mov ecx, dword [esp + 0x628]
pop esi
pop edi
pop ebp
pop ebx
xor ecx, esp
call fcn.00411b03
add esp, 0x61c
ret
call fcn.00411c33
int3