Function at 0x4041f0
Capabilities:
Encode data using xor
Read .ini file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0xc366c
call fcn.00411280
mov eax, dword [0x41a054]
xor eax, esp
mov dword [esp + 0xc3668], eax
push ebx
push esi
push edi
jmp 0x404223
jmp 0x404235
push 0xc3260
xor ebx, ebx
lea eax, [esp + 0x414]
push ebx
push eax
call fcn.00408ae0
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
add esp, 0xc
push str..MainInfo.ini
push ebx
push str.LauncherType
push str.MainInfo
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push str..MainInfo.ini
push 0x20
lea ecx, [esp + 0x419]
push ecx
push str.XTLauncherExecutable
push str.LauncherName
push str.MainInfo
mov byte [esp + 0x428], al
call edi
push str..MainInfo.ini
push 0xad75
push str.IpAddressPort
push str.MainInfo
call esi
push str..MainInfo.ini
push 0x20
lea edx, [esp + 0x439]
push edx
push 0x41730e
push str.CustomerName
push str.MainInfo
mov word [esp + 0x48a], ax
call edi
push str..MainInfo.ini
push 0x20
lea eax, [esp + 0x459]
push eax
push 0x41730e
push str.IpAddress
push str.MainInfo
call edi
push str..MainInfo.ini
push 8
lea ecx, [esp + 0x47c]
push ecx
push 0x41730e
push str.ClientVersion
push str.MainInfo
call edi
push str..MainInfo.ini
push 0x11
lea edx, [esp + 0x484]
push edx
push 0x41730e
push str.ClientSerial
push str.MainInfo
call edi
push str..MainInfo.ini
push 0x20
lea eax, [esp + 0x495]
push eax
push 0x41730e
push str.WindowName
push str.MainInfo
call edi
push str..MainInfo.ini
push 0x32
lea ecx, [esp + 0x4b5]
push ecx
push 0x41730e
push str.ScreenShotPath
push str.MainInfo
call edi
push str..MainInfo.ini
push 0x20
lea edx, [esp + 0x4e7]
push edx
push 0x41730e
push str.ClientName
push str.MainInfo
call edi
push str..MainInfo.ini
push 0x20
lea eax, [esp + 0x507]
push eax
push 0x41730e
push str.PluginName
push str.MainInfo
call edi
push str..MainInfo.ini
push 0x20
lea ecx, [esp + 0x527]
push ecx
push 0x41730e
push str.CameraName
push str.MainInfo
call edi
push str..MainInfo.ini
push ebx
push str.HelperActiveAlert
push str.HelperInfo
call esi
push str..MainInfo.ini
push 0x50
push str.HelperActiveLevel
push str.HelperInfo
mov dword [esp + 0x55c], eax
call esi
push str..MainInfo.ini
push 0xffff
push str.DWMaxAttackSpeed
push str.CharacterInfo
mov dword [esp + 0x560], eax
call esi
push str..MainInfo.ini
push 0xffff
push str.DKMaxAttackSpeed
push str.CharacterInfo
mov dword [esp + 0x564], eax
call esi
push str..MainInfo.ini
push 0xffff
push str.FEMaxAttackSpeed
push str.CharacterInfo
mov dword [esp + 0x568], eax
call esi
push str..MainInfo.ini
push 0xffff
push str.MGMaxAttackSpeed
push str.CharacterInfo
mov dword [esp + 0x56c], eax
call esi
push str..MainInfo.ini
push 0xffff
push str.DLMaxAttackSpeed
push str.CharacterInfo
mov dword [esp + 0x570], eax
call esi
push str..MainInfo.ini
push 0xffff
push str.SUMaxAttackSpeed
push str.CharacterInfo
mov dword [esp + 0x574], eax
call esi
push str..MainInfo.ini
push 0xffff
push str.RFMaxAttackSpeed
push str.CharacterInfo
mov dword [esp + 0x578], eax
call esi
push str..MainInfo.ini
push ebx
mov dword [esp + 0x574], eax
push str.ReconnectTime
push str.ReconnectInfo
call esi
push str..MainInfo.ini
push ebx
push str.ItemLevel_15
push 0x41748c
mov dword [esp + 0x580], eax
call esi
push str..MainInfo.ini
push ebx
push str.ReduceMemory
push str.Custom
mov dword [esp + 0x584], eax
call esi
push str..MainInfo.ini
push ebx
push str.RemoveClass
push str.Custom
mov dword [esp + 0x588], eax
call esi
push str..MainInfo.ini
push ebx
push str.RankUserType
push str.Custom
mov dword [esp + 0x58c], eax
call esi
push str..MainInfo.ini
push ebx
push str.DisableMasterSkillTree
push str.Custom
mov dword [esp + 0x590], eax
call esi
push str..MainInfo.ini
push ebx
push str.EnableCsSkillsAllMaps
push str.Custom
mov dword [esp + 0x594], eax
call esi
push str..MainInfo.ini
push ebx
push str.DisableReflectEffect
push str.Custom
mov dword [esp + 0x598], eax
call esi
push str..MainInfo.ini
push ebx
push str.RankUserShowOverHead
push str.Custom
mov dword [esp + 0x59c], eax
call esi
push str..MainInfo.ini
push 1
push str.RankUserOnlyOnSafeZone
push str.Custom
mov dword [esp + 0x5f4], eax
call esi
push str..MainInfo.ini
push 1
push str.RankUserShowReset
push str.Custom
mov dword [esp + 0x5f8], eax
call esi
push str..MainInfo.ini
push 1
push str.RankUserShowMasterReset
push str.Custom
mov dword [esp + 0x5fc], eax
call esi
push str..MainInfo.ini
push ebx
push str.RankUserNeedAltKey
push str.Custom
mov dword [esp + 0x600], eax
call esi
push str..MainInfo.ini
push ebx
push str.EnableVipShop
push str.Custom
mov dword [esp + 0x604], eax
call esi
mov dword [esp + 0x590], eax
push str..MainInfo.ini
push 3
push str.VipTypes
push str.Custom
call esi
push str..MainInfo.ini
push ebx
push str.PrintLogo
push str.Custom
mov dword [esp + 0x5a4], eax
call esi
push str..MainInfo.ini
push ebx
push str.CustomMenuSwitch
push str.Custom
mov dword [esp + 0x5a8], eax
call esi
push str..MainInfo.ini
push ebx
push str.CustomMenuType
push str.Custom
mov dword [esp + 0x5ac], eax
call esi
push str..MainInfo.ini
push ebx
push str.EnableEventTimeButton
push str.Custom
mov dword [esp + 0x5b0], eax
call esi
push str..MainInfo.ini
push ebx
push str.EnableVipShopButton
push str.Custom
mov dword [esp + 0x5b4], eax
call esi
push str..MainInfo.ini
push ebx
push str.EnableRankingButton
push str.Custom
mov dword [esp + 0x5b8], eax
call esi
push str..MainInfo.ini
push ebx
push str.EnableCommandButton
push str.Custom
mov dword [esp + 0x5bc], eax
call esi
push str..MainInfo.ini
push ebx
push str.EnableOptionButton
push str.Custom
mov dword [esp + 0x5c0], eax
call esi
push str..MainInfo.ini
push ebx
push str.EnableCoinStatus
push str.Custom
mov dword [esp + 0x5c4], eax
call esi
push str..MainInfo.ini
push ebx
push str.EnableShopValueSystem
push str.Custom
mov dword [esp + 0x5c8], eax
call esi
push str..MainInfo.ini
push ebx
push str.EnableStoreBlessButtom
push str.Custom
mov dword [esp + 0x5cc], eax
call esi
push str..MainInfo.ini
push ebx
push str.EnableStoreSoulButtom
push str.Custom
mov dword [esp + 0x5d0], eax
call esi
push str..MainInfo.ini
push ebx
mov dword [esp + 0x5cc], eax
push str.EnableStoreChaosButtom
push str.Custom
call esi
push str..MainInfo.ini
push ebx
push str.EnableStoreCoin1Buttom
push str.Custom
mov dword [esp + 0x5d8], eax
call esi
push str..MainInfo.ini
push ebx
push str.EnableStoreCoin2Buttom
push str.Custom
mov dword [esp + 0x5dc], eax
call esi
push str..MainInfo.ini
push ebx
push str.EnableStoreCoin3Buttom
push str.Custom
mov dword [esp + 0x5e0], eax
call esi
push str..MainInfo.ini
push ebx
push str.EnableOffStoreButtom
push str.Custom
mov dword [esp + 0x5e4], eax
call esi
push str..MainInfo.ini
push ebx
push str.CustomMonsterEnable
push str.Custom
mov dword [esp + 0x5e8], eax
call esi
push str..MainInfo.ini
push ebx
push str.DisablePartyHpBar
push str.Custom
mov dword [esp + 0x5ec], eax
call esi
push str..MainInfo.ini
push ebx
push str.CustomInterfaceType
push str.Custom
mov dword [esp + 0x5f0], eax
call esi
push str..MainInfo.ini
push 1
push str.CustomInterfaceHelperBar
push str.Custom
mov dword [esp + 0x608], eax
call esi
push str..MainInfo.ini
push ebx
push str.PingTest
push str.Custom
mov dword [esp + 0x60c], eax
call esi
push str..MainInfo.ini
push ebx
push str.CustomGlovesEnable
push str.Custom
mov dword [esp + 0x610], eax
call esi
push 0x4d5838
mov dword [esp + 0x608], eax
call fcn.00402c00
mov ecx, 0x47d938
call fcn.00402670
mov ecx, 0x48a280
call fcn.00403800
push 0x4400c8
call fcn.00402150
mov ecx, 0x41b4b0
call fcn.00401250
push 0x41b568
call fcn.004014e0
push 0x43db78
call fcn.004019d0
push 0x459710
call fcn.004023d0
push 0x48d168
call fcn.00403d10
push 0x41d7d0
call fcn.00401720
push 0x4d23e8
call fcn.00405e80
push 0x4ad510
call fcn.00403fc0
push 0x47e3c8
call fcn.00402fe0
push 0x482d40
call fcn.004032f0
mov ecx, 0x43f710
call fcn.00401e70
push 0x43e2b8
call fcn.00401c00
call fcn.00405bd0
mov ecx, 0x484008
call fcn.00403570
push 0x4b5dd8
call fcn.00405420
push 0x4c09c0
call fcn.004056d0
push 0x4cb5a8
call fcn.00405980
push 0x4ae0d0
call fcn.00404d20
push 0x3390
lea edx, [esp + 0x60c]
push 0x4d58bc
push edx
call fcn.0040e180
add esp, 0xc
push 0x3390
lea eax, [esp + 0x399c]
push 0x4d8c4c
push eax
call fcn.0040e180
add esp, 0xc
push 0x3390
lea ecx, [esp + 0x6d2c]
push 0x4dbfdc
push ecx
call fcn.0040e180
add esp, 0xc
push 0x2ee0
lea edx, [esp + 0xab48]
push 0x48a284
mov ecx, 0x2a3
mov esi, 0x47d93c
lea edi, [esp + 0xa0c0]
push edx
rep movsd dword es:[edi], dword [esi]
call fcn.0040e180
add esp, 0xc
push 0x19640
lea eax, [esp + 0xda28]
push 0x4400cc
push eax
call fcn.0040e180
add esp, 0xc
push 0x203a0
lea ecx, [esp + 0x27068]
push 0x48d16c
push ecx
call fcn.0040e180
add esp, 0xc
push 0x203a0
lea edx, [esp + 0x47408]
push 0x41d7d4
push edx
call fcn.0040e180
add esp, 0xc
push 0x2260
lea eax, [esp + 0x6785c]
push 0x41b56c
mov ecx, 0x2d
mov esi, 0x41b4b4
lea edi, [esp + 0x677ac]
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.0040e180
add esp, 0xc
mov ecx, 0x1ce
mov esi, 0x43db7c
lea edi, [esp + 0x69ab8]
push 0x24220
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x6a1f4]
push 0x459714
push ecx
call fcn.0040e180
add esp, 0xc
push 0x2710
lea edx, [esp + 0x8e414]
push 0x4d23ec
push edx
call fcn.0040e180
add esp, 0xc
push 0x4970
lea eax, [esp + 0x916dc]
push 0x47e3cc
mov ecx, 0x2ee
mov esi, 0x4ad514
lea edi, [esp + 0x90b28]
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.0040e180
add esp, 0xc
push 0x12c0
lea ecx, [esp + 0x9604c]
push 0x482d44
push ecx
call fcn.0040e180
add esp, 0xc
push 0x1450
lea edx, [esp + 0x97cbc]
push 0x43e2bc
mov ecx, 0x26c
mov esi, 0x43f714
lea edi, [esp + 0x97310]
push edx
rep movsd dword es:[edi], dword [esi]
call fcn.0040e180
add esp, 0xc
push 0x6270
lea eax, [esp + 0x991e4]
push 0x48400c
mov ecx, 0x36
mov esi, 0x4d2310
lea edi, [esp + 0x99110]
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.0040e180
add esp, 0xc
push 0xabe0
lea ecx, [esp + 0x9f454]
push 0x4b5ddc
push ecx
call fcn.0040e180
add esp, 0xc
push 0xabe0
lea edx, [esp + 0xaa034]
push 0x4c09c4
push edx
call fcn.0040e180
add esp, 0xc
push 0x6d60
lea eax, [esp + 0xb4c14]
push 0x4cb5ac
push eax
call fcn.0040e180
add esp, 0xc
push 0x7d00
lea ecx, [esp + 0xbb974]
push 0x4ae0d4
push ecx
call fcn.0040e180
add esp, 0xc
lea esi, [esp + 0x10]
call section..text
mov edx, esi
push edx
lea esi, [esp + 0x544]
lea eax, [esp + 0x4e3]
call fcn.00401140
test al, al
jne 0x404bd0
mov dword [esp + 0x540], ebx
lea eax, [esp + 0x10]
push eax
lea esi, [esp + 0x548]
lea eax, [esp + 0x503]
call fcn.00401140
test al, al
jne 0x404bf3
mov dword [esp + 0x544], ebx
lea ecx, [esp + 0x10]
push ecx
lea esi, [esp + 0x54c]
lea eax, [esp + 0x523]
call fcn.00401140
test al, al
jne 0x404c16
mov dword [esp + 0x548], ebx
xor eax, eax
jmp 0x404c20
mov cl, byte [esp + eax + 0x410]
mov edx, eax
xor cl, al
shr edx, 8
xor dl, 0x95
xor cl, 0xda
sub cl, dl
mov byte [esp + eax + 0x410], cl
inc eax
cmp eax, 0xc3260
jb 0x404c20
push ebx
push 0x20
push 2
push ebx
push 1
push 0x40000000
push str.premium_main.premium
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x404cd3
push ebx
lea edx, [esp + 0x10]
push edx
push 0xc3260
lea eax, [esp + 0x41c]
push eax
push esi
mov dword [esp + 0x20], ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
test eax, eax
jne 0x404ca4
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xc3668]
xor ecx, esp
call fcn.00406085
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x404cbc
jmp 0x404cd3
mov ecx, dword [esp + 0xc3674]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.00406085
mov esp, ebp
pop ebp
ret