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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x19410
call fcn.00417220
mov eax, dword [0x421680]
xor eax, esp
mov dword [esp + 0x1940c], eax
push esi
push edi
push 0x18ff0
lea eax, [esp + 0x414]
push 0
push eax
call fcn.00406480
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
add esp, 0xc
push str..MainInfo.ini
push 0
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 0x41e15e
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 0x41e15e
push str.IpAddress
push str.MainInfo
call edi
push str..MainInfo.ini
push 8
lea ecx, [esp + 0x47c]
push ecx
push 0x41e15e
push str.ClientVersion
push str.MainInfo
call edi
push str..MainInfo.ini
push 0x11
lea edx, [esp + 0x484]
push edx
push 0x41e15e
push str.ClientSerial
push str.MainInfo
call edi
push str..MainInfo.ini
push 0x20
lea eax, [esp + 0x495]
push eax
push 0x41e15e
push str.WindowName
push str.MainInfo
call edi
push str..MainInfo.ini
push 0x32
lea ecx, [esp + 0x4b5]
push ecx
push 0x41e15e
push str.ScreenShotPath
push str.MainInfo
call edi
push str..MainInfo.ini
push 0x20
lea edx, [esp + 0x4e7]
push edx
push 0x41e15e
push str.ClientName
push str.MainInfo
call edi
push str..MainInfo.ini
push 0x20
lea eax, [esp + 0x507]
push eax
push 0x41e15e
push str.PluginName
push str.MainInfo
call edi
push str..MainInfo.ini
push 0xffff
push str.DWMaxAttackSpeed
push str.CharacterInfo
call esi
push str..MainInfo.ini
push 0xffff
push str.DKMaxAttackSpeed
push str.CharacterInfo
mov dword [esp + 0x538], eax
call esi
push str..MainInfo.ini
push 0xffff
push str.FEMaxAttackSpeed
push str.CharacterInfo
mov dword [esp + 0x53c], eax
call esi
push str..MainInfo.ini
push 0xffff
push str.MGMaxAttackSpeed
push str.CharacterInfo
mov dword [esp + 0x540], eax
call esi
push str..MainInfo.ini
push 0
push str.ReconnectTime
push str.ReconnectInfo
mov dword [esp + 0x544], eax
call esi
push str..MainInfo.ini
push 0
push str.HealthBarType
push str.Systems
mov dword [esp + 0x548], eax
call esi
push str..MainInfo.ini
push 0
push str.EnableSky
push str.Systems
mov byte [esp + 0x54c], al
call esi
push str..MainInfo.ini
push 0
push str.EnableMinimap
push str.Systems
mov byte [esp + 0x54d], al
call esi
push str..MainInfo.ini
push 0
push str.EnableMoveList
push str.Systems
mov byte [esp + 0x54e], al
call esi
push 0x43a900
mov byte [esp + 0x543], al
call fcn.004026e0
push 0x4227a8
call fcn.00401250
push 0x4247b0
call fcn.00401490
push 0x428fb8
call fcn.004023f0
mov ecx, 0x360
mov esi, 0x43a904
lea edi, [esp + 0x540]
push 0x2000
rep movsd dword es:[edi], dword [esi]
push 0x4227ac
lea ecx, [esp + 0x12c8]
push ecx
call fcn.00406110
add esp, 0xc
push 0x4800
lea edx, [esp + 0x32c4]
push 0x4247b4
push edx
call fcn.00406110
add esp, 0xc
push 0x11940
lea eax, [esp + 0x7ac4]
push 0x428fbc
push eax
call fcn.00406110
add esp, 0xc
lea esi, [esp + 0x10]
call section..text
mov ecx, esi
push ecx
lea esi, [esp + 0x524]
lea eax, [esp + 0x4e3]
call fcn.00401140
test al, al
jne 0x401a08
mov dword [esp + 0x520], 0
lea edx, [esp + 0x10]
push edx
lea esi, [esp + 0x528]
lea eax, [esp + 0x503]
call fcn.00401140
test al, al
jne 0x401a2f
mov dword [esp + 0x524], 0
mov dword [esp + 0x19400], 0x2b12989e
mov dword [esp + 0x19404], 0x5bf676b6
mov dword [esp + 0x19408], 0xf2084d76
mov dword [esp + 0x1940c], 0xb691dfab
mov dword [esp + 0x19410], 0x2f931c4c
xor ecx, ecx
jmp 0x401a70
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
lea eax, [eax + eax*4]
add eax, eax
add eax, eax
mov edx, ecx
sub edx, eax
mov al, byte [esp + edx + 0x19400]
mov edx, ecx
shr edx, 8
xor dl, al
mov dl, byte [esp + ecx + 0x410]
xor dl, al
xor dl, cl
mov byte [esp + ecx + 0x410], dl
inc ecx
cmp ecx, 0x18ff0
jb 0x401a70
push 0
push 0x20
push 2
push 0
push 1
push 0x40000000
push str..DataLocalClientInfo.bmd
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x401b5e
push str.ERROR:_Couldnt_create_the_file.
call fcn.00401c40
add esp, 4
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00402030
mov eax, dword [esi]
mov eax, dword [eax + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x401b17
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x401b17
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x401b38
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x401b30
or eax, 4
push 0
push eax
call fcn.00402260
push str.pause
call fcn.00405a44
add esp, 4
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x1940c]
xor ecx, esp
call fcn.00405074
mov esp, ebp
pop ebp
ret
push 0
lea edx, [esp + 0x10]
push edx
push 0x18ff0
lea eax, [esp + 0x41c]
push eax
push esi
mov dword [esp + 0x20], 0
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
test eax, eax
jne 0x401bae
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.ERROR:_Couldnt_create_the_file.
call fcn.00401c40
add esp, 4
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00402030
mov ecx, dword [esi]
mov eax, dword [ecx + 4]
jmp 0x401af7
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.SUCCESS:_File_created.
call fcn.00401c40
add esp, 4
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00402030
mov edx, dword [esi]
mov eax, dword [edx + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x401bf1
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x401bf1
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x401c12
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x401c0a
or eax, 4
push 0
push eax
call fcn.00402260
push str.pause
call fcn.00405a44
mov ecx, dword [esp + 0x19418]
add esp, 4
pop edi
pop esi
xor ecx, esp
xor eax, eax
call fcn.00405074
mov esp, ebp
pop ebp
ret