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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xec
mov eax, dword [0x427040]
xor eax, esp
mov dword [esp + 0xe8], eax
push esi
push 0xae
lea eax, [esp + 0x3c]
push 0
push eax
call fcn.00406ce0
add esp, 0xc
push str..MainInfo.ini
push 0xad75
push str.IpAddressPort
push str.MainInfo
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push str..MainInfo.ini
push 0x20
mov word [esp + 0x80], ax
lea eax, [esp + 0x40]
push eax
push 0x42414e
push str.CustomerName
push str.MainInfo
call esi
push str..MainInfo.ini
push 0x20
lea eax, [esp + 0x60]
push eax
push 0x42414e
push str.IpAddress
push str.MainInfo
call esi
push str..MainInfo.ini
push 8
lea eax, [esp + 0x82]
push eax
push 0x42414e
push str.ClientVersion
push str.MainInfo
call esi
push str..MainInfo.ini
push 0x11
lea eax, [esp + 0x8a]
push eax
push 0x42414e
push str.ClientSerial
push str.MainInfo
call esi
push str..MainInfo.ini
push 0x20
lea eax, [esp + 0x9b]
push eax
push 0x42414e
push str.WindowName
push str.MainInfo
call esi
push str..MainInfo.ini
push 0x32
lea eax, [esp + 0xbb]
push eax
push 0x42414e
push str.ScreenShotPath
push str.MainInfo
call esi
movaps xmm0, xmmword [0x424190]
xor eax, eax
movaps xmm3, xmmword [0x424160]
movups xmm4, xmmword [0x424170]
movaps xmmword [esp + 0x10], xmm0
lea ecx, [eax + 4]
movaps xmm0, xmmword [0x424180]
mov edx, dword [esp + 0x10]
movaps xmmword [esp + 0x20], xmm0
mov esi, dword [esp + 0x20]
nop dword [eax]
nop dword [eax + eax]
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd xmm0, dword [esp + ecx + 0x34]
paddd xmm2, xmm3
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
xorps xmm2, xmm0
movd xmm0, edx
xorps xmm2, xmm0
movd xmm0, eax
pshufd xmm1, xmm0, 0
add eax, 8
paddd xmm1, xmm3
movd xmm0, esi
psrld xmm1, 8
andps xmm1, xmm4
packuswb xmm1, xmm1
packuswb xmm1, xmm1
xorps xmm1, xmm0
movd xmm0, ecx
psubb xmm2, xmm1
movd dword [esp + ecx + 0x34], xmm2
pshufd xmm2, xmm0, 0
movd xmm0, dword [esp + ecx + 0x38]
paddd xmm2, xmm3
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
xorps xmm2, xmm0
movd xmm0, edx
xorps xmm2, xmm0
movd xmm0, ecx
pshufd xmm1, xmm0, 0
paddd xmm1, xmm3
movd xmm0, esi
psrld xmm1, 8
andps xmm1, xmm4
packuswb xmm1, xmm1
packuswb xmm1, xmm1
xorps xmm1, xmm0
psubb xmm2, xmm1
movd dword [esp + ecx + 0x38], xmm2
add ecx, 8
cmp ecx, 0xac
jb 0x4012b0
cmp eax, 0xae
jae 0x401394
mov cl, byte [esp + eax + 0x38]
mov edx, eax
xor cl, al
shr edx, 8
xor dl, 0x95
xor cl, 0xca
sub cl, dl
mov byte [esp + eax + 0x38], cl
inc eax
cmp eax, 0xae
jb 0x401375
push 0
push 0x20
push 2
push 0
push 1
push 0x40000000
push str.info.bmd
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x4013db
mov edx, str.Erro_ao_criar_o_arquivo_info.bmd_
call fcn.00401430
push eax
call fcn.004016f0
add esp, 4
pop esi
mov ecx, dword [esp + 0xe8]
xor ecx, esp
call fcn.0040519b
mov esp, ebp
pop ebp
ret
push 0
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0
push eax
push 0xae
lea eax, [esp + 0x44]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x401412
mov edx, str.Erro_ao_escrever_no_arquivo_info.bmd_
call fcn.00401430
push eax
call fcn.004016f0
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0xec]
pop esi
xor ecx, esp
call fcn.0040519b
mov esp, ebp
pop ebp
ret