Function at 0x10014fc0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x14
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov ebx, dword [ebp + 0x18]
mov edx, dword [ecx]
mov esi, dword [ecx + 4]
lea ecx, [eax + 0x7c4]
mov dword [esp + 4], edx
lea edx, [eax + 8]
mov dword [esp + 8], edx
lea edi, [eax + 0xf20]
mov eax, dword [eax + 0xf20]
lea ebx, [ebx + 3]
and ebx, 0xfffffffc
mov dword [esp], ecx
cmp dword [eax + 8], 0
jne 0x10015016
cmp dword [eax + 0x18], 0
jne 0x10015016
cmp dword [eax + 0x1c], 0
je 0x100152b4
push dword [esp + 4]
push edi
call fcn.10026390
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
push edi
call fcn.10024840
push ebx
push esi
push dword [esp + 0x28]
push edi
call fcn.10026000
push ebx
mov eax, dword [ebp + 8]
push dword [esp + 0x30]
push esi
push dword [esp + 0x3c]
lea edx, [eax + 0x164]
push edx
push edi
call fcn.10026590
push ebx
push esi
push dword [esp + 0x50]
push edi
call fcn.10024ef0
push ebx
push esi
push dword [esp + 0x5c]
push dword [esp + 0x64]
push dword [esp + 0x60]
push edi
call fcn.100239e0
add esp, 0x68
push ebx
push dword [esp + 8]
push esi
mov eax, dword [ebp + 8]
push dword [esp + 0xc]
push dword [esp + 0x18]
lea edx, [eax + 0x49c]
push edx
push edi
call fcn.100245c0
push ebx
mov eax, dword [ebp + 8]
push esi
push dword [esp + 0x24]
push dword [esp + 0x30]
lea edx, [eax + 0xe10]
push edx
push edi
call fcn.100223b0
push ebx
push esi
push edi
call fcn.1002b6b0
push ebx
push dword [ebp + 0xc]
push dword [ebp + 0x10]
push edi
call fcn.1002c020
add esp, 0x50
cmp dword [ebp + 0x14], 0
je 0x100152b4
mov eax, dword [ebp + 8]
test esi, esi
mov edx, dword [eax + 0xf20]
mov eax, dword [edx + 0x1c]
jbe 0x1001522b
cmp esi, 4
jb 0x100152be
mov edx, dword [ebp + 0x14]
and edx, 0xf
je 0x10015106
test dl, 3
jne 0x100152be
neg edx
add edx, 0x10
shr edx, 2
lea ecx, [edx + 4]
cmp esi, ecx
jb 0x100152be
mov edi, esi
sub edi, edx
and edi, 3
neg edi
add edi, esi
test edx, edx
jbe 0x1001516b
xor ecx, ecx
mov dword [esp + 4], edi
mov edi, ecx
mov dword [esp], eax
mov dword [esp + 8], esi
mov esi, ebx
mov ebx, edx
movss xmm0, dword [esi + edi*4 + 0xb08]
mulss xmm0, dword [0x103433a4]
shufps xmm0, xmm0, 0
call fcn.1002d210
cvttss2si eax, xmm0
mov edx, dword [ebp + 0x14]
add dword [edx + edi*4], eax
inc edi
cmp edi, ebx
jb 0x10015133
mov edi, dword [esp + 4]
mov edx, ebx
mov eax, dword [esp]
mov ebx, esi
mov esi, dword [esp + 8]
movaps xmm0, xmmword [0x10343390]
lea ecx, [ebx + edx*4 + 8]
test cl, 0xf
je 0x100151b2
mov dword [esp], eax
mov dword [esp + 8], esi
mov esi, edx
movups xmm0, xmmword [ebx + esi*4 + 0xb08]
mulps xmm0, xmmword [0x10343390]
call fcn.1002d210
cvttps2dq xmm1, xmm0
mov eax, dword [ebp + 0x14]
paddd xmm1, xmmword [eax + esi*4]
movdqa xmmword [eax + esi*4], xmm1
add esi, 4
cmp esi, edi
jb 0x10015184
jmp 0x100151e7
mov dword [esp], eax
mov dword [esp + 8], esi
mov esi, edx
movaps xmm0, xmmword [ebx + esi*4 + 0xb08]
mulps xmm0, xmmword [0x10343390]
call fcn.1002d210
cvttps2dq xmm1, xmm0
mov eax, dword [ebp + 0x14]
paddd xmm1, xmmword [eax + esi*4]
movdqa xmmword [eax + esi*4], xmm1
add esi, 4
cmp esi, edi
jb 0x100151bb
mov eax, dword [esp]
mov esi, dword [esp + 8]
cmp edi, esi
jae 0x1001522b
mov dword [esp + 8], esi
mov dword [esp], eax
mov esi, dword [ebp + 0x14]
movss xmm0, dword [ebx + edi*4 + 0xb08]
mulss xmm0, dword [0x103433a4]
shufps xmm0, xmm0, 0
call fcn.1002d210
cvttss2si eax, xmm0
add dword [esi + edi*4], eax
inc edi
cmp edi, dword [esp + 8]
jb 0x100151fc
mov eax, dword [esp]
mov esi, dword [esp + 8]
test eax, eax
je 0x100152b4
test esi, esi
jbe 0x100152b4
movss xmm2, dword [0x103433a0]
xor eax, eax
movss xmm1, dword [0x103433ac]
movss xmm0, dword [0x103433b0]
mov ecx, dword [ebp + 0x14]
nop dword [eax + eax]
movss xmm4, dword [ebx + eax*4 + 0x6a0]
mulss xmm4, xmm2
movss xmm5, dword [0x103433a8]
andps xmm5, xmm4
movaps xmm3, xmm5
pxor xmm3, xmm4
cmpltss xmm3, xmm1
andps xmm3, xmm1
orps xmm3, xmm5
movaps xmm7, xmm3
addss xmm7, xmm4
subss xmm7, xmm3
movaps xmm6, xmm7
subss xmm6, xmm4
cmpnless xmm6, xmm5
andps xmm6, xmm0
subss xmm7, xmm6
cvtss2si edx, xmm7
add dword [ecx + eax*4], edx
inc eax
cmp eax, esi
jb 0x10015260
add esp, 0x14
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor edi, edi
jmp 0x100151ee