Function at 0x100960f0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10103820
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xdc
mov eax, dword [0x1017d040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0xc0
lea eax, [ebp - 0xd8]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 8
lea ecx, [ebp - 0xd8]
call fcn.100a3840
mov dword [ebp - 4], 0
mov eax, dword fs:[0x2c]
mov ecx, dword [0x101ad6d8]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x101ae598]
cmp eax, dword [ecx + 4]
jle 0x100961c9
push 0x101ae598
call fcn.100fe88b
add esp, 4
cmp dword [0x101ae598], 0xffffffff
jne 0x100961c9
xorps xmm0, xmm0
mov dword [0x101ae6c8], 0
movups xmmword [0x101ae6b8], xmm0
push 0x10105ab0
mov dword [0x101ae6cc], 0xf
mov byte [0x101ae6b8], 0
call fcn.100fec24
add esp, 4
push 0x101ae598
call fcn.100fe83a
add esp, 4
mov eax, dword [0x1017297c]
xor ecx, ecx
cmp dword [0x101ad6e0], 2
movq xmm0, qword [0x10172974]
mov dword [ebp - 0xe0], eax
mov ax, word [0x10172980]
mov word [ebp - 0xdc], ax
mov al, byte [0x10172982]
mov byte [ebp - 0xda], al
movq qword [ebp - 0xe8], xmm0
jl 0x100962f0
movaps xmm2, xmmword [0x10173610]
mov ecx, 8
movaps xmm4, xmmword [0x10173d90]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x10173640]
psubd xmm2, xmm0
movd xmm0, dword [0x10172974]
andps xmm2, xmmword [0x10173750]
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmmword [str.0000000000000000TG]
xorps xmm2, xmm0
movd dword [ebp - 0xe8], xmm2
movaps xmm2, xmmword [0x10173620]
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x10173640]
psubd xmm2, xmm0
movd xmm0, dword [ebp - 0xe4]
andps xmm2, xmmword [0x10173750]
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmmword [str.0000000000000000TG]
xorps xmm2, xmm0
movd dword [ebp - 0xe4], xmm2
nop dword [eax]
mov eax, 0x5397829d
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, cl
movsx eax, al
imul eax, eax, 0x31
sub dl, al
add dl, 0x30
xor byte [ebp + ecx - 0xe8], dl
inc ecx
cmp ecx, 0xf
jl 0x100962f0
push ecx
push 1
lea eax, [ebp - 0xe8]
push eax
lea ecx, [ebp - 0xc0]
call fcn.1002bba0
test eax, eax
lea ecx, [ebp - 0xd8]
mov eax, dword [ebp - 0xd8]
push 0
je 0x1009634f
add ecx, dword [eax + 4]
push 0
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::clear_int__bool_]
jmp 0x1009635a
add ecx, dword [eax + 4]
push 2
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool_]
mov eax, dword [ebp - 0xd8]
lea ecx, [ebp - 0xd8]
push 0xa
add ecx, dword [eax + 4]
call dword [sym.imp.MSVCP140.dll_public:_char___thiscall_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const]
movzx eax, al
lea ecx, [ebp - 0xd8]
push eax
call fcn.100a3d10
add esp, 4
lea ecx, [ebp - 0xc0]
call fcn.1002bb10
test eax, eax
jne 0x100963aa
push eax
mov eax, dword [ebp - 0xd8]
lea ecx, [ebp - 0xd8]
push 2
add ecx, dword [eax + 4]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool_]
cmp dword [0x101ae6cc], 0xf
lea ecx, [ebp - 0xd8]
mov esi, 0x101ae6b8
cmova esi, dword [0x101ae6b8]
call fcn.10096030
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100fe801
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret