Function at 0x40acb0
Capabilities:
Encode data using xor
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push edi
push esi
mov esi, dword fs:[0x30]
call fcn.0040a9a0
mov ecx, dword [esi + 0x18]
test dword [ecx + 0x40], 0xfffffffd
jne 0x40ae81
cmp dword [ecx + 0x44], 0
jne 0x40ae81
test eax, eax
je 0x40b019
mov eax, dword [eax + 0x30]
test dword [eax + 0x70], 0xfffffffd
jne 0x40acfc
cmp dword [eax + 0x74], 0
je 0x40b019
lea eax, [ebp - 0x10]
push eax
call fcn.0040b060
mov dword [ebp - 8], eax
cmp byte [eax + 6], 0
je 0x40ad3c
xor ecx, ecx
mov dword [ebp - 4], ecx
lea esi, [eax + ecx]
mov eax, 0xa0a0a0a1
mul ecx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
sub cl, al
mov eax, dword [ebp - 8]
add cl, 0x31
xor byte [esi], cl
mov ecx, dword [ebp - 4]
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, 7
jl 0x40ad13
lea eax, [ebp - 0x28]
push eax
call fcn.0040b020
mov edi, eax
cmp byte [edi + 0xe], 0
je 0x40ae6b
xor ecx, ecx
cmp dword [0x410470], 2
jl 0x40ae40
movaps xmm2, xmmword [0x40dd70]
mov ecx, 8
movaps xmm4, xmmword [0x40de30]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x40dd90]
psubd xmm2, xmm0
movd xmm0, dword [edi]
andps xmm2, xmmword [0x40ddc0]
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x40dde0]
xorps xmm2, xmm0
movd dword [edi], xmm2
movaps xmm2, xmmword [0x40dd80]
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x40dd90]
psubd xmm2, xmm0
movd xmm0, dword [edi + 4]
andps xmm2, xmmword [0x40ddc0]
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x40dde0]
xorps xmm2, xmm0
movd dword [edi + 4], xmm2
nop dword [eax]
mov eax, 0xa0a0a0a1
lea esi, [edi + ecx]
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, cl
movsx eax, al
inc ecx
imul eax, eax, 0x33
sub dl, al
add dl, 0x31
xor byte [esi], dl
cmp ecx, 0xf
jl 0x40ae40
push 0
push dword [ebp - 8]
push edi
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0xffffffffffffffff
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
lea eax, [ebp - 0x18]
push eax
call fcn.0040b060
mov dword [ebp - 0x10], eax
cmp byte [eax + 6], 0
je 0x40aec9
xor ecx, ecx
mov dword [ebp - 8], ecx
nop dword [eax + eax]
lea esi, [eax + ecx]
mov eax, 0xa0a0a0a1
mul ecx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
sub cl, al
mov eax, dword [ebp - 0x10]
add cl, 0x31
xor byte [esi], cl
mov ecx, dword [ebp - 8]
inc ecx
mov dword [ebp - 8], ecx
cmp ecx, 7
jl 0x40aea0
lea eax, [ebp - 0x28]
push eax
call fcn.0040b020
mov edi, eax
cmp byte [edi + 0xe], 0
je 0x40b003
xor ecx, ecx
cmp dword [0x410470], 2
mov dword [ebp - 4], ecx
jl 0x40afd4
movaps xmm3, xmmword [0x40dd70]
mov ecx, 8
movaps xmm5, xmmword [0x40de30]
movaps xmm1, xmm3
punpckldq xmm1, xmm3
movaps xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm5
mov eax, dword [0x40dde0]
movaps xmm2, xmmword [0x40dd80]
pmuldq xmm1, xmm5
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm3
mov dword [ebp - 4], ecx
psrad xmm1, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
movaps xmm1, xmm2
pmulld xmm0, xmmword [0x40dd90]
psubd xmm3, xmm0
punpckldq xmm1, xmm2
andps xmm3, xmmword [0x40ddc0]
packuswb xmm3, xmm3
packuswb xmm3, xmm3
movd xmm0, eax
paddb xmm3, xmm0
movd xmm0, dword [edi]
xorps xmm3, xmm0
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm5
pmuldq xmm1, xmm5
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
movd dword [edi], xmm3
psrad xmm1, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x40dd90]
psubd xmm2, xmm0
movd xmm0, eax
andps xmm2, xmmword [0x40ddc0]
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [edi + 4]
xorps xmm2, xmm0
movd dword [edi + 4], xmm2
mov eax, 0xa0a0a0a1
lea esi, [edi + ecx]
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x33
sub cl, al
add cl, 0x31
xor byte [esi], cl
mov ecx, dword [ebp - 4]
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, 0xf
jl 0x40afd4
push 0
push dword [ebp - 0x10]
push edi
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0xffffffffffffffff
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
pop esi
pop edi
mov esp, ebp
pop ebp
ret