Function at 0x100ac230
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x14
mov eax, dword [0x1020a0c0]
xor eax, esp
mov dword [esp + 0x10], eax
mov eax, dword fs:[0x2c]
mov edx, dword [0x102296ac]
push ebx
mov bl, cl
mov edx, dword [eax + edx*4]
mov eax, dword [0x104e4d60]
cmp eax, dword [edx + 4]
jle 0x100ac28a
push 0x104e4d60
call fcn.1019d7b4
add esp, 4
cmp dword [0x104e4d60], 0xffffffff
jne 0x100ac28a
push 0x101c9810
call fcn.1019d442
push 0x104e4d60
call fcn.1019d76a
add esp, 8
cmp byte [0x104e1dc8], 0
jne 0x100ac8b6
mov eax, dword [0x10227c48]
mov ecx, 4
movq xmm0, qword [0x101f0be4]
push esi
mov esi, dword [0x102296a0]
push edi
mov edi, dword [eax + 0x20]
lea edx, [ecx + 0x1b]
mov eax, dword [0x101f0bec]
mov dword [esp + 0x14], eax
mov ax, word [0x101f0bf0]
movq qword [esp + 0xc], xmm0
mov word [esp + 0x18], ax
test ah, ah
je 0x100ac408
xor ebx, ebx
cmp esi, 2
jl 0x100ac3e0
movaps xmm2, xmmword [0x101ff6c0]
mov ebx, 8
movaps xmm3, xmmword [0x101ffba0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
movd xmm4, ecx
psrad xmm1, xmm4
movd xmm5, edx
movaps xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x101ff720]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x101ff700]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x101ff7d0]
movd xmm0, dword [0x101f0be4]
packuswb xmm1, xmm1
paddb xmm1, xmmword [0x101ff830]
pxor xmm1, xmm0
movaps xmm0, xmm2
movd dword [esp + 0xc], xmm1
movaps xmm1, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm4
movaps xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x101ff720]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x101ff7d0]
movd xmm0, dword [esp + 0x10]
packuswb xmm1, xmm1
paddb xmm1, xmmword [0x101ff830]
pxor xmm1, xmm0
movd dword [esp + 0x10], xmm1
nop
mov eax, 0x5397829d
mov cl, bl
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x31
sub cl, al
add cl, 0x36
xor byte [esp + ebx + 0xc], cl
inc ebx
cmp ebx, 0xe
jl 0x100ac3e0
mov eax, dword [edi]
lea ecx, [esp + 0xc]
push 0
push ecx
push 0x102270fc
mov eax, dword [eax + 0xc]
mov ecx, edi
call eax
cmp byte [0x101f0bbf], 0
mov eax, dword [0x10227c48]
movq xmm0, qword [str.F_Y__IcUKM4A_KJ__]
mov edi, dword [eax + 0x20]
mov eax, dword [0x101f0bbc]
movq qword [esp + 0xc], xmm0
mov dword [esp + 0x14], eax
je 0x100ac588
xor ebx, ebx
cmp esi, 2
jl 0x100ac560
movaps xmm2, xmmword [0x101ff6c0]
mov eax, 4
movaps xmm4, xmmword [0x101ffba0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov ebx, 8
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
movd xmm5, eax
mov eax, 0x1f
psrad xmm1, xmm5
movaps xmm0, xmm1
movd xmm6, eax
mov eax, dword [0x101ff830]
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x101ff720]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x101ff700]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x101ff7d0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [str.F_Y__IcUKM4A_KJ__]
pxor xmm1, xmm0
movaps xmm0, xmm2
movd dword [esp + 0xc], xmm1
movaps xmm1, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x101ff720]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x101ff7d0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [esp + 0x10]
pxor xmm1, xmm0
movd dword [esp + 0x10], xmm1
nop dword [eax]
mov eax, 0x5397829d
mov cl, bl
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x31
sub cl, al
add cl, 0x36
xor byte [esp + ebx + 0xc], cl
inc ebx
cmp ebx, 0xc
jl 0x100ac560
mov eax, dword [edi]
lea ecx, [esp + 0xc]
push 0
push ecx
push 0x10227100
mov eax, dword [eax + 0xc]
mov ecx, edi
call eax
cmp byte [0x101f0ba7], 0
mov eax, dword [0x10227c48]
movq xmm0, qword [0x101f0b9c]
mov edi, dword [eax + 0x20]
mov eax, dword [0x101f0ba4]
movq qword [esp + 0xc], xmm0
mov dword [esp + 0x14], eax
je 0x100ac708
xor ebx, ebx
cmp esi, 2
jl 0x100ac6e0
movaps xmm2, xmmword [0x101ff6c0]
mov eax, 4
movaps xmm4, xmmword [0x101ffba0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov ebx, 8
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
movd xmm5, eax
mov eax, 0x1f
psrad xmm1, xmm5
movaps xmm0, xmm1
movd xmm6, eax
mov eax, dword [0x101ff830]
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x101ff720]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x101ff700]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x101ff7d0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x101f0b9c]
pxor xmm1, xmm0
movaps xmm0, xmm2
movd dword [esp + 0xc], xmm1
movaps xmm1, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x101ff720]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x101ff7d0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [esp + 0x10]
pxor xmm1, xmm0
movd dword [esp + 0x10], xmm1
nop dword [eax]
mov eax, 0x5397829d
mov cl, bl
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x31
sub cl, al
add cl, 0x36
xor byte [esp + ebx + 0xc], cl
inc ebx
cmp ebx, 0xc
jl 0x100ac6e0
mov eax, dword [edi]
lea ecx, [esp + 0xc]
push 0
push ecx
push 0x10227104
mov eax, dword [eax + 0xc]
mov ecx, edi
call eax
cmp byte [0x101f0b9b], 0
mov eax, dword [0x10227c48]
movq xmm0, qword [0x101f0b90]
mov edi, dword [eax + 0x20]
mov eax, dword [0x101f0b98]
movq qword [esp + 0xc], xmm0
mov dword [esp + 0x14], eax
je 0x100ac888
xor ebx, ebx
cmp esi, 2
jl 0x100ac860
movaps xmm2, xmmword [0x101ff6c0]
mov eax, 4
movaps xmm4, xmmword [0x101ffba0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov ebx, 8
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
movd xmm5, eax
mov eax, 0x1f
psrad xmm1, xmm5
movaps xmm0, xmm1
movd xmm6, eax
mov eax, dword [0x101ff830]
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x101ff720]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x101ff700]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x101ff7d0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x101f0b90]
pxor xmm1, xmm0
movaps xmm0, xmm2
movd dword [esp + 0xc], xmm1
movaps xmm1, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x101ff720]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x101ff7d0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [esp + 0x10]
pxor xmm1, xmm0
movd dword [esp + 0x10], xmm1
nop dword [eax]
mov eax, 0x5397829d
mov cl, bl
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x31
sub cl, al
add cl, 0x36
xor byte [esp + ebx + 0xc], cl
inc ebx
cmp ebx, 0xc
jl 0x100ac860
mov eax, dword [edi]
lea ecx, [esp + 0xc]
push 0
push ecx
push 0x10227108
mov eax, dword [eax + 0xc]
mov ecx, edi
call eax
pop edi
pop esi
mov byte [0x104e1dc8], 1
pop ebx
mov ecx, dword [esp + 0x10]
xor ecx, esp
call fcn.1019d163
add esp, 0x14
ret
test bl, bl
je 0x100ac911
mov eax, dword [0x10227c48]
push 0x102270fc
mov ecx, dword [eax + 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
mov eax, dword [0x10227c48]
push 0x10227100
mov ecx, dword [eax + 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
mov eax, dword [0x10227c48]
push 0x10227104
mov ecx, dword [eax + 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
mov eax, dword [0x10227c48]
push 0x10227108
mov ecx, dword [eax + 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
mov byte [0x104e1dc8], 0
mov ecx, dword [esp + 0x14]
pop ebx
xor ecx, esp
call fcn.1019d163
add esp, 0x14
ret