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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push edi
push esi
mov esi, dword fs:[0x30]
call fcn.0040ac80
mov ecx, dword [esi + 0x18]
test dword [ecx + 0x40], 0xfffffffd
jne 0x40b16b
cmp dword [ecx + 0x44], 0
jne 0x40b16b
test eax, eax
je 0x40b2fa
mov eax, dword [eax + 0x30]
test dword [eax + 0x70], 0xfffffffd
jne 0x40afcc
cmp dword [eax + 0x74], 0
je 0x40b2fa
lea eax, [ebp - 0x10]
push eax
call fcn.0040b340
mov dword [ebp - 8], eax
cmp byte [eax + 6], 0
je 0x40b01a
xor ecx, ecx
mov dword [ebp - 4], ecx
lea esi, [eax + ecx]
mov eax, 0x24924925
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 4]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 4]
add al, 0x31
inc ecx
xor byte [esi], al
mov eax, dword [ebp - 8]
mov dword [ebp - 4], ecx
cmp ecx, 7
jl 0x40afe3
lea eax, [ebp - 0x20]
push eax
call fcn.0040b300
mov edi, eax
cmp byte [edi + 0xe], 0
je 0x40b155
xor ecx, ecx
cmp dword [0x410470], 2
mov dword [ebp - 4], ecx
jl 0x40b120
movaps xmm2, xmmword [0x40ddd0]
mov ecx, 8
movaps xmm4, xmmword [0x40de70]
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
mov dword [ebp - 4], ecx
psrad xmm1, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x40ddf0]
psubd xmm2, xmm0
movd xmm0, dword [edi]
andps xmm2, xmmword [0x40de10]
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x40de30]
xorps xmm2, xmm0
movd dword [edi], xmm2
movaps xmm2, xmmword [0x40dde0]
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 [0x40ddf0]
psubd xmm2, xmm0
movd xmm0, dword [edi + 4]
andps xmm2, xmmword [0x40de10]
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x40de30]
xorps xmm2, xmm0
movd dword [edi + 4], xmm2
mov eax, 0x92492493
lea esi, [edi + ecx]
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 4]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 4]
add al, 0x31
inc ecx
xor byte [esi], al
mov dword [ebp - 4], ecx
cmp ecx, 0xf
jl 0x40b120
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 - 0x10]
push eax
call fcn.0040b340
mov dword [ebp - 8], eax
cmp byte [eax + 6], 0
je 0x40b1b0
xor ecx, ecx
nop
lea esi, [eax + ecx]
mov eax, 0x24924925
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
mov dl, al
shl dl, 3
sub dl, al
mov al, cl
shl dl, 3
inc ecx
sub al, dl
add al, 0x31
xor byte [esi], al
mov eax, dword [ebp - 8]
cmp ecx, 7
jl 0x40b180
lea eax, [ebp - 0x20]
push eax
call fcn.0040b300
mov edi, eax
cmp byte [edi + 0xe], 0
je 0x40b155
xor ecx, ecx
cmp dword [0x410470], 2
mov dword [ebp - 4], ecx
jl 0x40b2c0
movaps xmm3, xmmword [0x40ddd0]
mov ecx, 8
movaps xmm5, xmmword [0x40de70]
movaps xmm1, xmm3
punpckldq xmm1, xmm3
movaps xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm5
mov eax, dword [0x40de30]
movaps xmm2, xmmword [0x40dde0]
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 [0x40ddf0]
psubd xmm3, xmm0
punpckldq xmm1, xmm2
andps xmm3, xmmword [0x40de10]
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 [0x40ddf0]
psubd xmm2, xmm0
movd xmm0, eax
andps xmm2, xmmword [0x40de10]
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [edi + 4]
xorps xmm2, xmm0
movd dword [edi + 4], xmm2
nop word [eax + eax]
mov eax, 0x92492493
lea esi, [edi + ecx]
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 4]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 4]
add al, 0x31
inc ecx
xor byte [esi], al
mov dword [ebp - 4], ecx
cmp ecx, 0xf
jl 0x40b2c0
jmp 0x40b155
pop esi
pop edi
mov esp, ebp
pop ebp
ret