Function at 0x100adda0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x14
mov eax, dword [0x1020c0c0]
xor eax, esp
mov dword [esp + 0x10], eax
mov eax, dword fs:[0x2c]
mov edx, dword [0x1022b6ec]
push ebx
mov bl, cl
mov edx, dword [eax + edx*4]
mov eax, dword [0x1051e260]
cmp eax, dword [edx + 4]
jle 0x100addfa
push 0x1051e260
call fcn.101a0794
add esp, 4
cmp dword [0x1051e260], 0xffffffff
jne 0x100addfa
push 0x101cc860
call fcn.101a0422
push 0x1051e260
call fcn.101a074a
add esp, 8
cmp byte [0x104539a0], 0
jne 0x100ae426
mov eax, dword [0x10229c80]
mov ecx, 4
movq xmm0, qword [0x101dd4a8]
push esi
mov esi, dword [0x1022b6e0]
push edi
mov edi, dword [eax + 0x20]
lea edx, [ecx + 0x1b]
mov eax, dword [0x101dd4b0]
mov dword [esp + 0x14], eax
mov ax, word [0x101dd4b4]
movq qword [esp + 0xc], xmm0
mov word [esp + 0x18], ax
test ah, ah
je 0x100adf78
xor ebx, ebx
cmp esi, 2
jl 0x100adf50
movaps xmm2, xmmword [0x102025e0]
mov ebx, 8
movaps xmm3, xmmword [0x10202aa0]
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 [0x10202660]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x10202620]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x10202710]
movd xmm0, dword [0x101dd4a8]
packuswb xmm1, xmm1
paddb xmm1, xmmword [str.2222222222222222777777777777777788888888888888889999999999999999]
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 [0x10202660]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x10202710]
movd xmm0, dword [esp + 0x10]
packuswb xmm1, xmm1
paddb xmm1, xmmword [str.2222222222222222777777777777777788888888888888889999999999999999]
pxor xmm1, xmm0
movd dword [esp + 0x10], xmm1
nop
mov eax, 0x4d4873ed
mov cl, bl
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x35
sub cl, al
add cl, 0x32
xor byte [esp + ebx + 0xc], cl
inc ebx
cmp ebx, 0xe
jl 0x100adf50
mov eax, dword [edi]
lea ecx, [esp + 0xc]
push 0
push ecx
push 0x1022911c
mov eax, dword [eax + 0xc]
mov ecx, edi
call eax
cmp byte [0x101dd3eb], 0
mov eax, dword [0x10229c80]
movq xmm0, qword [str.B_ULSEgQOIHD_PiTYJN_]
mov edi, dword [eax + 0x20]
mov eax, dword [0x101dd3e8]
movq qword [esp + 0xc], xmm0
mov dword [esp + 0x14], eax
je 0x100ae0f8
xor ebx, ebx
cmp esi, 2
jl 0x100ae0d0
movaps xmm2, xmmword [0x102025e0]
mov eax, 4
movaps xmm4, xmmword [0x10202aa0]
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 [str.2222222222222222777777777777777788888888888888889999999999999999]
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x10202660]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x10202620]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x10202710]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [str.B_ULSEgQOIHD_PiTYJN_]
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 [0x10202660]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x10202710]
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, 0x4d4873ed
mov cl, bl
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x35
sub cl, al
add cl, 0x32
xor byte [esp + ebx + 0xc], cl
inc ebx
cmp ebx, 0xc
jl 0x100ae0d0
mov eax, dword [edi]
lea ecx, [esp + 0xc]
push 0
push ecx
push 0x10229120
mov eax, dword [eax + 0xc]
mov ecx, edi
call eax
cmp byte [0x101dd4fb], 0
mov eax, dword [0x10229c80]
movq xmm0, qword [str._A_RhKM_IH]
mov edi, dword [eax + 0x20]
mov eax, dword [0x101dd4f8]
movq qword [esp + 0xc], xmm0
mov dword [esp + 0x14], eax
je 0x100ae278
xor ebx, ebx
cmp esi, 2
jl 0x100ae250
movaps xmm2, xmmword [0x102025e0]
mov eax, 4
movaps xmm4, xmmword [0x10202aa0]
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 [str.2222222222222222777777777777777788888888888888889999999999999999]
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x10202660]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x10202620]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x10202710]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [str._A_RhKM_IH]
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 [0x10202660]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x10202710]
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, 0x4d4873ed
mov cl, bl
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x35
sub cl, al
add cl, 0x32
xor byte [esp + ebx + 0xc], cl
inc ebx
cmp ebx, 0xc
jl 0x100ae250
mov eax, dword [edi]
lea ecx, [esp + 0xc]
push 0
push ecx
push 0x10229124
mov eax, dword [eax + 0xc]
mov ecx, edi
call eax
cmp byte [0x101dd4a7], 0
mov eax, dword [0x10229c80]
movq xmm0, qword [str.EVUEYYg_SIYPFXYSCgPWK_J_]
mov edi, dword [eax + 0x20]
mov eax, dword [0x101dd4a4]
movq qword [esp + 0xc], xmm0
mov dword [esp + 0x14], eax
je 0x100ae3f8
xor ebx, ebx
cmp esi, 2
jl 0x100ae3d0
movaps xmm2, xmmword [0x102025e0]
mov eax, 4
movaps xmm4, xmmword [0x10202aa0]
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 [str.2222222222222222777777777777777788888888888888889999999999999999]
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x10202660]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x10202620]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x10202710]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [str.EVUEYYg_SIYPFXYSCgPWK_J_]
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 [0x10202660]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x10202710]
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, 0x4d4873ed
mov cl, bl
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x35
sub cl, al
add cl, 0x32
xor byte [esp + ebx + 0xc], cl
inc ebx
cmp ebx, 0xc
jl 0x100ae3d0
mov eax, dword [edi]
lea ecx, [esp + 0xc]
push 0
push ecx
push 0x10229128
mov eax, dword [eax + 0xc]
mov ecx, edi
call eax
pop edi
pop esi
mov byte [0x104539a0], 1
pop ebx
mov ecx, dword [esp + 0x10]
xor ecx, esp
call fcn.101a0143
add esp, 0x14
ret
test bl, bl
je 0x100ae481
mov eax, dword [0x10229c80]
push 0x1022911c
mov ecx, dword [eax + 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
mov eax, dword [0x10229c80]
push 0x10229120
mov ecx, dword [eax + 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
mov eax, dword [0x10229c80]
push 0x10229124
mov ecx, dword [eax + 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
mov eax, dword [0x10229c80]
push 0x10229128
mov ecx, dword [eax + 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
mov byte [0x104539a0], 0
mov ecx, dword [esp + 0x14]
pop ebx
xor ecx, esp
call fcn.101a0143
add esp, 0x14
ret