Function at 0x4014e0
Capabilities:
Create directory
Delete file
Encode data using xor
Read .ini file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x954
mov eax, dword [0x406040]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push 0x2ba
lea eax, [ebp - 0x550]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
xor eax, eax
mov dword [ebp - 0x288], 0
push 0x78
push eax
mov word [ebp - 0x26e], ax
xorps xmm0, xmm0
lea eax, [ebp - 0x258]
push eax
movups xmmword [ebp - 0x280], xmm0
call sub.VCRUNTIME140.dll_memset
push 0x184
lea eax, [ebp - 0x18c]
mov byte [ebp - 0x1d5], 0
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
add esp, 0x24
push str..Configs.txt
push 1
push str.PortaCS
push str.Configs
call esi
push str..Configs.txt
push 1
push str.FixConsumo
push str.Configs
mov word [ebp - 0x296], ax
call esi
push str..Configs.txt
push 1
push str.Minimizer
push str.Configs
mov dword [ebp - 0x294], eax
call esi
push str..Configs.txt
push 1
push str.Camera3D
push str.Configs
mov dword [ebp - 0x290], eax
call esi
push str..Configs.txt
push 1
push str.AutoClick
push str.Configs
mov dword [ebp - 0x28c], eax
call esi
push str..Configs.txt
push 0
push str.ReconnectSwitch
push str.Configs
mov dword [ebp - 0x284], eax
call esi
push str..Configs.txt
push 0
push str.ReconnectTimer
push str.Configs
mov word [ebp - 0x270], ax
call esi
push str..Configs.txt
push 0
push str.MuHelperOfflineSwitch
push str.Configs
mov dword [ebp - 0x26c], eax
call esi
push str..Configs.txt
push 0
push str.EnableSiegeAllMaps
push str.Configs
mov dword [ebp - 0x268], eax
call esi
push str..Configs.txt
push 0
mov dword [ebp - 0x264], eax
push str.EnableManagerFPS
push str.Configs
call esi
push str..Configs.txt
push 0
push str.LimitFPS
push str.Configs
mov dword [ebp - 0x260], eax
call esi
push str..Configs.txt
push 0
push str.HelperActiveAlert
push str.Configs
mov dword [ebp - 0x25c], eax
call esi
push str..Configs.txt
push 0
push str.HelperActiveLevel
push str.Configs
mov dword [ebp - 0x1e0], eax
call esi
push str..Configs.txt
push 0
push str.CharListSeason13
push str.Configs
mov dword [ebp - 0x1dc], eax
call esi
push str..Configs.txt
push 0
test eax, eax
push str.EnableSkillMountCustom
push str.Configs
setne byte [ebp - 0x1d8]
call esi
push str..Configs.txt
push 0
test eax, eax
push str.FixCrashModels
push str.Configs
setne byte [ebp - 0x1d7]
call esi
push str..Configs.txt
push 0xffff
test eax, eax
push str.DWMaxAttackSpeed
push str.Configs
setne byte [ebp - 0x1d6]
call esi
push str..Configs.txt
push 0xffff
push str.DKMaxAttackSpeed
push str.Configs
mov dword [ebp - 0x1d4], eax
call esi
push str..Configs.txt
push 0xffff
push str.FEMaxAttackSpeed
push str.Configs
mov dword [ebp - 0x1d0], eax
call esi
push str..Configs.txt
push 0xffff
push str.MGMaxAttackSpeed
push str.Configs
mov dword [ebp - 0x1cc], eax
call esi
push str..Configs.txt
push 0xffff
push str.DLMaxAttackSpeed
push str.Configs
mov dword [ebp - 0x1c8], eax
call esi
push str..Configs.txt
push 0xffff
push str.SUMaxAttackSpeed
push str.Configs
mov dword [ebp - 0x1c4], eax
call esi
push str..Configs.txt
push 0xffff
mov dword [ebp - 0x1c0], eax
push str.RFMaxAttackSpeed
push str.Configs
call esi
push str..Configs.txt
push 1
push str.DWAnimationSpeed
push str.Configs
mov dword [ebp - 0x1bc], eax
call esi
push str..Configs.txt
push 1
push str.DKAnimationSpeed
push str.Configs
mov dword [ebp - 0x1b8], eax
call esi
push str..Configs.txt
push 1
push str.FEAnimationSpeed
push str.Configs
mov dword [ebp - 0x1b4], eax
call esi
push str..Configs.txt
push 1
push str.MGAnimationSpeed
push str.Configs
mov dword [ebp - 0x1b0], eax
call esi
push str..Configs.txt
push 1
push str.DLAnimationSpeed
push str.Configs
mov dword [ebp - 0x1ac], eax
call esi
push str..Configs.txt
push 1
push str.SUAnimationSpeed
push str.Configs
mov dword [ebp - 0x1a8], eax
call esi
push str..Configs.txt
push 1
push str.RFAnimationSpeed
push str.Configs
mov dword [ebp - 0x1a4], eax
call esi
push str..Configs.txt
push 0
push str.LuaCripted
push str.Configs
mov dword [ebp - 0x1a0], eax
call esi
push str..Configs.txt
push 0
test eax, eax
push str.DisablePushSkills
push str.Configs
setne byte [ebp - 0x19c]
call esi
push str..Configs.txt
push 0
test eax, eax
push str.ItemToolTipDrop
push str.Configs
setne byte [ebp - 0x19b]
call esi
push str..Configs.txt
push 0
test eax, eax
push str.PersonalShopCustom
push str.Configs
setne byte [ebp - 0x19a]
call esi
push str..Configs.txt
push 0
test eax, eax
push str.PersonalShopCoin1Switch
push str.Configs
setne byte [ebp - 0x199]
call esi
test eax, eax
push str..Configs.txt
setne byte [ebp - 0x198]
push 0
push str.PersonalShopCoin2Switch
push str.Configs
call esi
push str..Configs.txt
push 0
test eax, eax
push str.PersonalShopCoin3Switch
push str.Configs
setne byte [ebp - 0x197]
call esi
push str..Configs.txt
push 0
test eax, eax
push str.PersonalShopCoin4Switch
push str.Configs
setne byte [ebp - 0x196]
call esi
push str..Configs.txt
push 0
test eax, eax
push str.SupportChsViet
push str.Configs
setne byte [ebp - 0x195]
call esi
push str..Configs.txt
push 0x190
push str.MaxLevel
push str.Configs
mov dword [ebp - 0x194], eax
call esi
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push str..Configs.txt
push 8
mov dword [ebp - 0x190], eax
lea eax, [ebp - 0x29e]
push eax
push 0x40479f
push str.ClientVersion
push str.Configs
call esi
push str..Configs.txt
push 0x20
lea eax, [ebp - 0x53f]
push eax
push 0x40479f
push str.IpAddress
push str.Configs
call esi
push str..Configs.txt
push 0x11
lea eax, [ebp - 0x550]
push eax
push 0x40479f
push str.Serial
push str.Configs
call esi
push str..Configs.txt
push 0x41
lea eax, [ebp - 0x51f]
push eax
push 0x40479f
push str.Screen
push str.Configs
call esi
push str..Configs.txt
push pe_nt_image_headers32
lea eax, [ebp - 0x49e]
push eax
push 0x40479f
push str.WindowName
push str.Configs
call esi
push str..Configs.txt
push 0x20
lea eax, [ebp - 0x4de]
push eax
push 0x40479f
push str.DLLName
push str.Configs
call esi
push str..Configs.txt
push 0x20
lea eax, [ebp - 0x4be]
push eax
push 0x40479f
push str.DllFunction
push str.Configs
call esi
push str..Configs.txt
push 0x20
lea eax, [ebp - 0x39e]
push eax
push 0x40479f
push str.DLLName2
push str.Configs
call esi
push str..Configs.txt
push 0x20
lea eax, [ebp - 0x37e]
push eax
push 0x40479f
push str.DllFunction2
push str.Configs
call esi
push str..Configs.txt
push 0x20
lea eax, [ebp - 0x35e]
push eax
push 0x40479f
push str.DLLName3
push str.Configs
call esi
push str..Configs.txt
push 0x20
lea eax, [ebp - 0x33e]
push eax
push 0x40479f
push str.DllFunction3
push str.Configs
call esi
push str..Configs.txt
push 0x20
lea eax, [ebp - 0x31e]
push eax
push 0x40479f
push str.DLLName4
push str.Configs
call esi
push str..Configs.txt
push 0x20
lea eax, [ebp - 0x2fe]
push eax
push 0x40479f
push str.DllFunction4
push str.Configs
call esi
push str..Configs.txt
push 0x20
lea eax, [ebp - 0x2de]
push eax
push 0x40479f
push str.DLLName5
push str.Configs
call esi
push str..Configs.txt
push 0x20
lea eax, [ebp - 0x2be]
push eax
push 0x40479f
push str.DllFunction5
push str.Configs
call esi
push str..Configs.txt
push 0x7d
lea eax, [ebp - 0x88]
push eax
push 0x40479f
push str.PrivateCode
push str.Configs
call esi
push str..Configs.txt
push 0x41
lea eax, [ebp - 0x18c]
push eax
push 0x40479f
push str.ReconnectMessage_1
push str.Configs
call esi
push str..Configs.txt
push 0x41
lea eax, [ebp - 0x14b]
push eax
push 0x40479f
push str.ReconnectMessage_2
push str.Configs
call esi
push str..Configs.txt
push 0x41
lea eax, [ebp - 0x10a]
push eax
push 0x40479f
push str.ReconnectMessage_3
push str.Configs
call esi
push str..Configs.txt
push 0x41
lea eax, [ebp - 0xc9]
push eax
push 0x40479f
push str.ReconnectMessage_4
push str.Configs
call esi
push str..Configs.txt
push 0x1e
lea eax, [ebp - 0x258]
push eax
push 0x40479f
push str.ServerName1
push str.Configs
call esi
push str..Configs.txt
push 0x1e
lea eax, [ebp - 0x23a]
push eax
push 0x40479f
push str.ServerName2
push str.Configs
call esi
push str..Configs.txt
push 0x1e
lea eax, [ebp - 0x21c]
push eax
push 0x40479f
push str.ServerName3
push str.Configs
call esi
push str..Configs.txt
push 0x1e
lea eax, [ebp - 0x1fe]
push eax
push 0x40479f
push str.ServerName4
push str.Configs
call esi
lea ecx, [ebp - 0x950]
call fcn.00401050
push ecx
lea eax, [ebp - 0x288]
push eax
lea eax, [ebp - 0x4de]
push eax
lea ecx, [ebp - 0x950]
call fcn.00401180
mov ecx, dword [ebp - 0x288]
xor edx, edx
test al, al
lea eax, [ebp - 0x280]
cmove ecx, edx
push ecx
push eax
mov dword [ebp - 0x288], ecx
lea eax, [ebp - 0x39e]
push eax
lea ecx, [ebp - 0x950]
call fcn.00401180
mov ecx, dword [ebp - 0x280]
xor edx, edx
test al, al
lea eax, [ebp - 0x27c]
cmove ecx, edx
push ecx
push eax
lea eax, [ebp - 0x35e]
mov dword [ebp - 0x280], ecx
push eax
lea ecx, [ebp - 0x950]
call fcn.00401180
mov ecx, dword [ebp - 0x27c]
xor edx, edx
test al, al
lea eax, [ebp - 0x278]
cmove ecx, edx
push ecx
push eax
lea eax, [ebp - 0x31e]
mov dword [ebp - 0x27c], ecx
push eax
lea ecx, [ebp - 0x950]
call fcn.00401180
mov ecx, dword [ebp - 0x278]
xor edx, edx
test al, al
lea eax, [ebp - 0x274]
cmove ecx, edx
push ecx
push eax
lea eax, [ebp - 0x2de]
mov dword [ebp - 0x278], ecx
push eax
lea ecx, [ebp - 0x950]
call fcn.00401180
mov ecx, dword [ebp - 0x274]
xor edx, edx
test al, al
cmove ecx, edx
xor eax, eax
mov dword [ebp - 0x274], ecx
nop dword [eax + eax]
mov cl, byte [ebp + eax - 0x550]
mov edx, eax
xor cl, al
shr edx, 8
xor dl, 0xe4
xor cl, 0x9d
sub cl, dl
mov byte [ebp + eax - 0x550], cl
inc eax
cmp eax, 0x548
jb 0x401d60
push 0
push str.Settings
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push str.Settings__Configs.ever
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push 0
push 0x20
push 2
push 0
push 1
push 0x40000000
push str.Settings__Configs.ever
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x401de5
push 0
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
push 0x548
lea eax, [ebp - 0x550]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.0040315c
mov esp, ebp
pop ebp
ret