Function at 0x100f0640
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10195209
mov eax, dword fs:[0]
push eax
sub esp, 0x74
push esi
push edi
mov eax, dword [0x102a67c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x1c], edi
mov eax, dword [0x102a7958]
add eax, 0xabc5fa12
xor eax, 0x5b1c6e88
mov esi, dword [eax + 0x150]
test esi, esi
je 0x100f0b13
mov eax, dword [0x102a7c60]
test al, 1
jne 0x100f06c1
or eax, 1
mov dword [0x102a7c60], eax
push 0x1c93bcf0
push 0x4e9f1122
mov dword [ebp - 4], 0
call fcn.100f1390
add esp, 8
mov dword [0x102a7c5c], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x100f06c6
mov eax, dword [0x102a7c5c]
mov ecx, dword [esi + eax]
mov eax, dword [0x102a7d30]
mov dword [ebp - 0x14], ecx
test al, 1
jne 0x100f0707
or eax, 1
mov dword [0x102a7d30], eax
push 0x84cdad2
push 0x72e242a1
mov dword [ebp - 4], 1
call fcn.100f1390
mov ecx, dword [ebp - 0x14]
add esp, 8
mov dword [0x102a7d2c], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x100f070c
mov eax, dword [0x102a7d2c]
cmp ecx, 2
je 0x100f0b13
cmp dword [esi + eax], 0
jle 0x100f0b13
cmp byte [edi + 0x21], 0
je 0x100f0b13
movss xmm1, dword [edi + 0x28]
lea esi, [edi + 0x24]
movss xmm2, dword [esi]
movss xmm0, dword [esi + 8]
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
xorps xmm1, xmm1
movss dword [ebp - 0x14], xmm1
addss xmm2, xmm0
xorps xmm0, xmm0
sqrtss xmm0, xmm2
comiss xmm0, xmm1
jbe 0x100f0b13
mov eax, dword [edi + 0x30]
add edi, 0x30
cmp eax, dword [edi + 4]
je 0x100f0774
mov dword [edi + 4], eax
mov eax, dword [edi + 8]
sub eax, dword [edi]
sar eax, 3
mov dword [ebp - 0x10], 0x64
cmp eax, 0x64
jae 0x100f0793
lea eax, [ebp - 0x10]
mov ecx, edi
push eax
call fcn.100ef860
mov ecx, dword [0x102a796c]
lea eax, [ebp - 0x4c]
push 1
add ecx, 0xb24e4be6
mov dword [ebp - 0x4c], 0
push eax
xor ecx, 0x90443fc4
mov dword [ebp - 0x48], 0
push esi
call fcn.101120a0
test al, al
je 0x100f07e2
movss xmm0, dword [ebp - 0x4c]
lea eax, [ebp - 0x44]
movss dword [ebp - 0x44], xmm0
mov ecx, edi
movss xmm0, dword [ebp - 0x48]
push eax
movss dword [ebp - 0x40], xmm0
call fcn.100ef8d0
movss xmm0, dword [ebp - 0x14]
call fcn.10184d80
mov ecx, dword [0x102a796c]
lea eax, [ebp - 0x44]
movaps xmm1, xmm0
mov dword [ebp - 0x44], 0
movss xmm0, dword [esi + 8]
movaps xmm2, xmm1
shufps xmm2, xmm1, 1
add ecx, 0xb24e4be6
mulss xmm1, dword [0x101a626c]
xor ecx, 0x90443fc4
push 1
mulss xmm2, dword [0x101a626c]
push eax
addss xmm1, dword [esi]
lea eax, [ebp - 0x70]
mov dword [ebp - 0x40], 0
addss xmm2, dword [esi + 4]
push eax
movss dword [ebp - 0x68], xmm0
movss dword [ebp - 0x70], xmm1
movss dword [ebp - 0x6c], xmm2
call fcn.101120a0
test al, al
je 0x100f088d
movss xmm0, dword [ebp - 0x44]
movss xmm1, dword [ebp - 0x40]
mov eax, dword [edi + 4]
movss dword [ebp - 0x3c], xmm0
movss dword [ebp - 0x38], xmm1
cmp eax, dword [edi + 8]
je 0x100f0881
movss dword [eax], xmm0
movss dword [eax + 4], xmm1
add dword [edi + 4], 8
jmp 0x100f088d
lea ecx, [ebp - 0x3c]
push ecx
push eax
mov ecx, edi
call fcn.10045e80
movss xmm0, dword [ebp - 0x14]
addss xmm0, dword [0x101a61dc]
movsd xmm1, qword [0x101a0f10]
movss dword [ebp - 0x14], xmm0
cvtps2pd xmm0, xmm0
comisd xmm1, xmm0
jae 0x100f07e2
mov eax, dword [edi]
cmp eax, dword [edi + 4]
je 0x100f0b13
movss xmm0, dword [eax]
movss dword [ebp - 0x20], xmm0
movss xmm0, dword [eax + 4]
mov eax, dword [0x102a796c]
add eax, 0xb24e4be6
movss dword [ebp - 0x24], xmm0
xor eax, 0x90443fc4
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + 0x24]
add ecx, 0x24
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x68], eax
movss xmm1, dword [0x101a1054]
or eax, 2
mov dword [ecx], eax
movss xmm0, dword [0x10c02844]
mulss xmm0, xmm1
mov esi, dword [edi]
mov dword [ebp - 4], 2
cvttss2si eax, xmm0
movss xmm0, dword [0x10c02840]
mulss xmm0, xmm1
mov dword [ebp - 0x14], eax
cvttss2si edx, xmm0
movss xmm0, dword [0x10c0283c]
mulss xmm0, xmm1
mov byte [ebp - 0xe], dl
cvttss2si ecx, xmm0
movss xmm0, dword [0x10c02838]
mulss xmm0, xmm1
mov byte [ebp - 0xf], cl
cvttss2si eax, xmm0
movss xmm0, dword [0x10c02834]
mov byte [ebp - 0x10], al
mov eax, dword [ebp - 0x14]
mulss xmm0, xmm1
mov byte [ebp - 0xd], al
cvttss2si eax, xmm0
movss xmm0, dword [0x10c02830]
mulss xmm0, xmm1
mov dword [ebp - 0x18], eax
cvttss2si edx, xmm0
movss xmm0, dword [0x10c0282c]
mulss xmm0, xmm1
mov byte [ebp - 0x12], dl
mov edx, dword [ebp - 0x10]
cvttss2si ecx, xmm0
movss xmm0, dword [0x10c02828]
mulss xmm0, xmm1
mov byte [ebp - 0x13], cl
cvttss2si eax, xmm0
mov byte [ebp - 0x14], al
mov eax, dword [ebp - 0x18]
mov byte [ebp - 0x11], al
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x22], 0
mov eax, dword [edi + 4]
cmovne edx, dword [ebp - 0x14]
sub eax, esi
xor ecx, ecx
sar eax, 3
mov dword [ebp - 0x14], ecx
sub eax, 1
je 0x100f0b0b
movss xmm0, dword [0x101a1038]
movzx eax, dl
movd xmm1, eax
mov eax, edx
shr eax, 8
movzx eax, al
cvtdq2ps xmm1, xmm1
movd xmm2, eax
mov eax, edx
shr eax, 0x10
movzx eax, al
shr edx, 0x18
cvtdq2ps xmm2, xmm2
movd xmm3, eax
movd xmm4, edx
cvtdq2ps xmm3, xmm3
cvtdq2ps xmm4, xmm4
mulss xmm1, xmm0
mulss xmm2, xmm0
mulss xmm3, xmm0
mulss xmm4, xmm0
movss dword [ebp - 0x2c], xmm1
movss dword [ebp - 0x30], xmm2
movss dword [ebp - 0x34], xmm3
movss dword [ebp - 0x38], xmm4
nop
movss xmm0, dword [esi + ecx*8 + 0xc]
mov eax, dword [0x102a796c]
movss dword [ebp - 0x18], xmm0
add eax, 0xb24e4be6
movss xmm0, dword [esi + ecx*8 + 8]
xor eax, 0x90443fc4
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [esi + ecx*8 + 4]
movss dword [ebp - 0x28], xmm0
movss xmm0, dword [esi + ecx*8]
mov esi, dword [eax + 0xc]
lea eax, [ebp - 0x80]
push eax
movss dword [ebp - 0x10], xmm0
movss dword [ebp - 0x80], xmm1
movss dword [ebp - 0x7c], xmm2
movss dword [ebp - 0x78], xmm3
movss dword [ebp - 0x74], xmm4
call fcn.1006c660
movss xmm0, dword [ebp - 0x20]
add esp, 4
movss dword [ebp - 0x54], xmm0
mov ecx, esi
movss xmm0, dword [ebp - 0x24]
movss dword [ebp - 0x50], xmm0
movss xmm0, dword [ebp - 0x1c]
push eax
movss dword [ebp - 0x5c], xmm0
lea eax, [ebp - 0x54]
movss xmm0, dword [ebp - 0x18]
push eax
movss dword [ebp - 0x58], xmm0
lea eax, [ebp - 0x5c]
movss xmm0, dword [ebp - 0x10]
push eax
movss dword [ebp - 0x64], xmm0
lea eax, [ebp - 0x64]
movss xmm0, dword [ebp - 0x28]
push eax
movss dword [ebp - 0x60], xmm0
call fcn.1007d5b0
mov eax, dword [edi + 4]
mov esi, dword [edi]
sub eax, esi
mov ecx, dword [ebp - 0x14]
movss xmm1, dword [ebp - 0x2c]
inc ecx
movss xmm2, dword [ebp - 0x30]
movss xmm3, dword [ebp - 0x34]
movss xmm4, dword [ebp - 0x38]
sar eax, 3
dec eax
mov dword [ebp - 0x14], ecx
cmp ecx, eax
jb 0x100f0a30
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x40]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret