Function at 0x100945d0
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 0x10101920
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xdc
mov eax, dword [0x1017b040]
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 fcn.100fe07e
add esp, 8
lea ecx, [ebp - 0xd8]
call fcn.100a1990
mov dword [ebp - 4], 0
mov eax, dword fs:[0x2c]
mov ecx, dword [0x101ab6a8]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x101ac56c]
cmp eax, dword [ecx + 4]
jle 0x100946a9
push 0x101ac56c
call fcn.100fc9b9
add esp, 4
cmp dword [0x101ac56c], 0xffffffff
jne 0x100946a9
xorps xmm0, xmm0
mov dword [0x101ac6a0], 0
movups xmmword [0x101ac690], xmm0
push 0x10103bb0
mov dword [0x101ac6a4], 0xf
mov byte [0x101ac690], 0
call fcn.100fcd52
add esp, 4
push 0x101ac56c
call fcn.100fc968
add esp, 4
cmp byte [0x10170b91], 0
mov eax, dword [0x10170b8c]
movq xmm0, qword [0x10170b84]
mov dword [ebp - 0xe0], eax
mov ax, word [0x10170b90]
movq qword [ebp - 0xe8], xmm0
mov word [ebp - 0xdc], ax
je 0x100947fb
xor ecx, ecx
cmp dword [0x101ab6b0], 2
jl 0x100947d0
movaps xmm2, xmmword [0x101717f0]
mov ecx, 8
movaps xmm4, xmmword [0x10171ee0]
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 [0x10171840]
psubd xmm2, xmm0
movd xmm0, dword [0x10170b84]
andps xmm2, xmmword [0x10171900]
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x101719a0]
xorps xmm2, xmm0
movd dword [ebp - 0xe8], xmm2
movaps xmm2, xmmword [0x10171800]
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 [0x10171840]
psubd xmm2, xmm0
movd xmm0, dword [ebp - 0xe4]
andps xmm2, xmmword [0x10171900]
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x101719a0]
xorps xmm2, xmm0
movd dword [ebp - 0xe4], xmm2
nop
mov eax, 0x4bda12f7
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, cl
movsx eax, al
imul eax, eax, 0x36
sub dl, al
add dl, 0x33
xor byte [ebp + ecx - 0xe8], dl
inc ecx
cmp ecx, 0xe
jl 0x100947d0
push ecx
push 1
lea eax, [ebp - 0xe8]
push eax
lea ecx, [ebp - 0xc0]
call fcn.1002bc70
test eax, eax
lea ecx, [ebp - 0xd8]
mov eax, dword [ebp - 0xd8]
push 0
je 0x1009482f
add ecx, dword [eax + 4]
push 0
call dword [0x1010527c]
jmp 0x1009483a
add ecx, dword [eax + 4]
push 2
call dword [0x101052cc]
mov eax, dword [ebp - 0xd8]
lea ecx, [ebp - 0xd8]
push 0xa
add ecx, dword [eax + 4]
call dword [0x10105234]
movzx eax, al
lea ecx, [ebp - 0xd8]
push eax
call fcn.100a1e60
add esp, 4
lea ecx, [ebp - 0xc0]
call fcn.1002bbe0
test eax, eax
jne 0x1009488a
push eax
mov eax, dword [ebp - 0xd8]
lea ecx, [ebp - 0xd8]
push 2
add ecx, dword [eax + 4]
call dword [0x101052cc]
cmp dword [0x101ac6a4], 0xf
lea ecx, [ebp - 0xd8]
mov esi, 0x101ac690
cmova esi, dword [0x101ac690]
call fcn.10094510
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.100fc92f
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret