Function at 0x100abf70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x3f98
call fcn.1019c8c0
mov eax, dword [0x102090c0]
xor eax, esp
mov dword [esp + 0x3f94], eax
mov eax, dword [0x10228e54]
push esi
push edi
cmp dword [eax], 0
jne 0x100abfb8
mov ecx, 0x103387a4
call fcn.100ad810
pop edi
pop esi
mov ecx, dword [esp + 0x3f94]
xor ecx, esp
call fcn.1019ba64
mov esp, ebp
pop ebp
ret
cmp dword [0x103387b4], 0
je 0x100acabe
mov ecx, dword [0x103387ac]
mov eax, dword [0x103387a8]
dec ecx
and ecx, dword [0x103387b0]
mov ecx, dword [eax + ecx*4]
movss xmm0, dword [ecx + 0x3f10]
ucomiss xmm0, dword [0x101fac3c]
lahf
test ah, 0x44
jnp 0x100acabe
push ecx
lea ecx, [esp + 0x24]
call fcn.100acaf0
call fcn.100ad460
mov eax, dword [0x10228e54]
mov ecx, dword [eax]
mov eax, dword [ecx]
mov eax, dword [eax + 0x270]
call eax
test al, al
je 0x100ac094
mov eax, dword [0x10228e54]
mov ecx, dword [0x1022867c]
mov esi, dword [eax]
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10450864]
cmp eax, dword [ecx + 4]
jle 0x100ac078
push 0x10450864
call fcn.1019bffa
add esp, 4
cmp dword [0x10450864], 0xffffffff
jne 0x100ac078
mov edx, 0xc60bf9f2
mov ecx, 0x101ebf45
call fcn.1007da20
mov ecx, eax
call fcn.100d1920
push 0x10450864
mov dword [0x1045085c], eax
call fcn.1019bfa6
add esp, 4
mov eax, dword [0x1045085c]
movd xmm0, dword [esi + eax]
mov eax, dword [0x10226ca4]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax + 0x10]
mulss xmm0, dword [eax + 0x20]
jmp 0x100ac0a1
mov eax, dword [0x10226ca4]
mov eax, dword [eax + 0x10]
movss xmm0, dword [eax + 0x10]
subss xmm0, dword [esp + 0x3f30]
andps xmm0, xmmword [0x101fb210]
comiss xmm0, dword [0x101fa850]
jbe 0x100ac5f9
cmp byte [esp + 0x3f2c], 0
je 0x100ac36a
cmp byte [0x101ec273], 0
movups xmm0, xmmword [str.X_DKeOUQK__7d1_g8___L]
movups xmmword [esp + 0x3f60], xmm0
movq xmm0, qword [0x101ec26c]
movq qword [esp + 0x3f70], xmm0
je 0x100ac28a
xor ecx, ecx
cmp dword [0x10228670], 2
mov dword [esp + 8], ecx
jl 0x100ac250
movaps xmm0, xmmword [0x101faf50]
movaps xmm4, xmmword [0x101fadd0]
movaps xmm3, xmmword [0x101fb260]
movaps xmm5, xmmword [0x101fae70]
movaps xmmword [esp + 0x3f40], xmm0
mov edx, dword [esp + 0x3f40]
nop word [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x101faf00]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [esp + ecx + 0x3f60]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [esp + ecx + 0x3f60], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x101faf00]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [esp + ecx + 0x3f64]
xorps xmm1, xmm0
movd dword [esp + ecx + 0x3f64], xmm1
add ecx, 8
cmp ecx, 0x18
jl 0x100ac140
jmp 0x100ac28a
mov eax, 0x92492493
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 [esp + 8]
shl cl, 3
sub al, cl
mov ecx, dword [esp + 8]
add al, 0x35
xor byte [esp + ecx + 0x3f60], al
inc ecx
mov dword [esp + 8], ecx
cmp ecx, 0x18
jl 0x100ac250
xorps xmm0, xmm0
mov dword [esp + 0x3f50], 0
lea ecx, [esp + 0x3f60]
movaps xmmword [esp + 0x3f40], xmm0
mov dword [esp + 0x3f54], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100ac2b5
sub ecx, edx
lea eax, [esp + 0x3f60]
push ecx
push eax
lea ecx, [esp + 0x3f48]
call fcn.10027a80
cmp dword [esp + 0x3f54], 0xf
lea edx, [esp + 0x3f40]
xorps xmm0, xmm0
cmova edx, dword [esp + 0x3f40]
sub esp, 0x18
mov esi, esp
mov ecx, edx
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
lea edi, [ecx + 1]
mov dword [esi + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100ac308
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.10027a80
call fcn.100cf5b0
mov ecx, dword [esp + 0x3f54]
cmp ecx, 0xf
jbe 0x100ac35b
mov edx, dword [esp + 0x3f40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ac351
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acad2
push ecx
push edx
call fcn.1019bd5d
add esp, 8
mov ecx, 0x103387a4
call fcn.100ad810
jmp 0x100aca89
movups xmm0, xmmword [0x101ec21c]
mov eax, dword [0x101ec23c]
xor ecx, ecx
cmp dword [0x10228670], 2
movups xmmword [esp + 0x3f60], xmm0
mov dword [esp + 0x3f80], eax
movups xmm0, xmmword [0x101ec22c]
mov dword [esp + 8], ecx
movups xmmword [esp + 0x3f70], xmm0
jl 0x100ac4e6
movaps xmm0, xmmword [0x101faf50]
movaps xmm4, xmmword [0x101fadd0]
movaps xmm3, xmmword [0x101fb260]
movaps xmm5, xmmword [0x101fae70]
movaps xmmword [esp + 0x3f40], xmm0
mov edx, dword [esp + 0x3f40]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x101faf00]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [esp + ecx + 0x3f60]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [esp + ecx + 0x3f60], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x101faf00]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [esp + ecx + 0x3f64]
xorps xmm1, xmm0
movd dword [esp + ecx + 0x3f64], xmm1
add ecx, 8
cmp ecx, 0x20
jl 0x100ac3d2
mov dword [esp + 8], ecx
cmp ecx, 0x24
jge 0x100ac520
mov eax, 0x92492493
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 [esp + 8]
shl cl, 3
sub al, cl
mov ecx, dword [esp + 8]
add al, 0x35
xor byte [esp + ecx + 0x3f60], al
inc ecx
mov dword [esp + 8], ecx
cmp ecx, 0x24
jl 0x100ac4e6
xorps xmm0, xmm0
mov dword [esp + 0x3f50], 0
lea ecx, [esp + 0x3f60]
movaps xmmword [esp + 0x3f40], xmm0
mov dword [esp + 0x3f54], 0
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100ac550
sub ecx, edx
lea eax, [esp + 0x3f60]
push ecx
push eax
lea ecx, [esp + 0x3f48]
call fcn.10027a80
cmp dword [esp + 0x3f54], 0xf
lea edx, [esp + 0x3f40]
xorps xmm0, xmm0
cmova edx, dword [esp + 0x3f40]
sub esp, 0x18
mov esi, esp
mov ecx, edx
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
lea edi, [ecx + 1]
mov dword [esi + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100ac5a3
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.10027a80
call fcn.100cf5b0
mov ecx, dword [esp + 0x3f54]
cmp ecx, 0xf
jbe 0x100ac35b
mov edx, dword [esp + 0x3f40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ac351
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acad2
jmp 0x100ac351
cmp byte [esp + 0x3ee4], 0
je 0x100aca89
mov eax, dword [0x10226cb0]
push dword [esp + 0x3f34]
mov ecx, dword [eax + 0x18]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
test eax, eax
je 0x100aca89
mov edx, dword [esp + 0x3f10]
test edx, edx
je 0x100aca89
mov eax, dword [0x10226cb0]
push edx
mov ecx, dword [eax + 0x40]
mov eax, dword [ecx]
mov eax, dword [eax + 0x80]
call eax
mov ecx, eax
test ecx, ecx
je 0x100aca89
cmp dword [ecx + 0xac], 0
jle 0x100aca89
mov eax, dword [ecx + 0xb0]
add eax, ecx
mov dword [esp + 0xc], eax
je 0x100aca89
movss xmm0, dword [esp + 0x3f20]
lea eax, [esp + 0x3f40]
subss xmm0, dword [esp + 0x3f14]
push eax
lea ecx, [esp + 0x3f64]
movss dword [esp + 0x3f64], xmm0
movss xmm0, dword [esp + 0x3f28]
subss xmm0, dword [esp + 0x3f1c]
movss dword [esp + 0x3f68], xmm0
movss xmm0, dword [esp + 0x3f2c]
subss xmm0, dword [esp + 0x3f20]
movss dword [esp + 0x3f6c], xmm0
call fcn.1008a230
xorps xmm1, xmm1
lea ecx, [esp + 0x3f60]
movss xmm0, dword [eax]
subss xmm0, xmm1
movss dword [esp + 0x3f60], xmm0
movss xmm0, dword [eax + 4]
subss xmm0, xmm1
movss dword [esp + 0x3f64], xmm0
movss xmm0, dword [eax + 8]
subss xmm0, xmm1
movss dword [esp + 0x3f68], xmm0
call fcn.1008a320
movq xmm0, qword [eax]
movq qword [esp + 0x10], xmm0
movss xmm0, dword [esp + 0x10]
mulss xmm0, dword [0x101fa73c]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x3f60], xmm0
call fcn.101c2aa0
cvtsd2ss xmm0, xmm0
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0x14]
mulss xmm0, dword [0x101fa73c]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
call fcn.101c2aa0
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movsd xmm0, qword [esp + 0x10]
mulss xmm1, dword [esp + 8]
mulss xmm1, dword [0x101fabe0]
addss xmm1, dword [esp + 0x3f20]
movss dword [esp + 0x3f40], xmm1
call fcn.101c3d20
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movsd xmm0, qword [esp + 0x3f60]
mulss xmm1, dword [esp + 8]
mulss xmm1, dword [0x101fabe0]
addss xmm1, dword [esp + 0x3f24]
movss dword [esp + 0x3f44], xmm1
call fcn.101c3d20
mov ecx, dword [esp + 0x3f38]
cvtsd2ss xmm0, xmm0
xorps xmm0, xmmword [0x101fb240]
mulss xmm0, dword [0x101fabe0]
addss xmm0, dword [esp + 0x3f28]
movss dword [esp + 0x3f48], xmm0
cmp ecx, 0xffffffff
jg 0x100ac809
lea edi, [esp + 0x8bc]
jmp 0x100ac834
cmp dword [esp + 0x8b8], ecx
jbe 0x100acad7
mov eax, dword [esp + 0x8b0]
add ecx, dword [esp + 0x8b4]
dec eax
and ecx, eax
mov eax, dword [esp + 0x8ac]
mov edi, dword [eax + ecx*4]
add edi, 0x68
xor esi, esi
lea eax, [esp + 0x3f40]
mov edx, esi
push eax
lea eax, [esp + 0x3f18]
mov ecx, edi
push eax
push dword [esp + 0x14]
call fcn.1008b940
test al, al
jne 0x100aca71
inc esi
cmp esi, 0x13
jl 0x100ac836
movups xmm0, xmmword [0x101ec240]
mov ax, word [0x101ec258]
mov word [esp + 0x3f78], ax
movups xmmword [esp + 0x3f60], xmm0
movq xmm0, qword [0x101ec250]
movq qword [esp + 0x3f70], xmm0
test ah, ah
je 0x100aca2e
xor ecx, ecx
cmp dword [0x10228670], 2
mov dword [esp + 8], ecx
jl 0x100ac9f4
movaps xmm0, xmmword [0x101faf50]
movaps xmm4, xmmword [0x101fadd0]
movaps xmm3, xmmword [0x101fb260]
movaps xmm5, xmmword [0x101fae70]
movaps xmmword [esp + 0x3f40], xmm0
mov edx, dword [esp + 0x3f40]
nop word [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x101faf00]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [esp + ecx + 0x3f60]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [esp + ecx + 0x3f60], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x101faf00]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [esp + ecx + 0x3f64]
xorps xmm1, xmm0
movd dword [esp + ecx + 0x3f64], xmm1
add ecx, 8
cmp ecx, 0x18
jl 0x100ac8e0
mov dword [esp + 8], ecx
cmp ecx, 0x1a
jge 0x100aca2e
mov eax, 0x92492493
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 [esp + 8]
shl cl, 3
sub al, cl
mov ecx, dword [esp + 8]
add al, 0x35
xor byte [esp + ecx + 0x3f60], al
inc ecx
mov dword [esp + 8], ecx
cmp ecx, 0x1a
jl 0x100ac9f4
sub esp, 0x18
lea ecx, [esp + 0x3f78]
mov edx, esp
lea esi, [ecx + 1]
xorps xmm0, xmm0
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100aca51
sub ecx, esi
lea eax, [esp + 0x3f78]
push ecx
push eax
mov ecx, edx
call fcn.10027a80
call fcn.100cf5b0
jmp 0x100aca89
mov eax, dword [esp + 0x3f34]
cmp eax, 0x41
jae 0x100acadc
imul eax, eax, 0x3ef0
inc dword [eax + 0x10230700]
lea ecx, [esp + 0x3e6c]
call fcn.1002c130
lea ecx, [esp + 0x8a8]
call fcn.10090c90
mov eax, dword [esp + 0x8a8]
push 8
push eax
mov dword [esp + 0x8b0], 0
call fcn.1019bd5d
add esp, 8
mov ecx, dword [esp + 0x3f9c]
pop edi
pop esi
xor ecx, esp
call fcn.1019ba64
mov esp, ebp
pop ebp
ret
call fcn.101a0e96
call fcn.10094d90
call fcn.10090c80
int3