Function at 0x425670
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0xae8
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
movss xmm0, dword [0x92b7a0]
movaps xmm2, xmmword [0x92ba90]
push esi
mov dword [ebp - 0xabc], edx
lea esi, [ebp - 0x308]
mov edx, ecx
movss dword [ebp - 0xab0], xmm0
sub esi, edx
mov dword [ebp - 0xaa4], edx
push edi
mov dword [ebp - 0xaa8], esi
lea edi, [ebp - 0x318]
sub edi, edx
movss dword [ebp - 0xab4], xmm0
lea esi, [ebp - 0x2f8]
xor ecx, ecx
sub esi, edx
lea eax, [edx + 0x10]
mov dword [ebp - 0xaac], esi
mov esi, dword [ebp - 0xaa8]
mov edx, dword [ebp - 0xaac]
nop word [eax + eax]
movups xmm1, xmmword [eax - 0x10]
movups xmm0, xmmword [eax - 0xc]
mulps xmm1, xmm2
subps xmm0, xmm1
movups xmm1, xmmword [eax]
mulps xmm1, xmm2
movups xmmword [ebp + ecx*4 - 0x318], xmm0
add ecx, 0x10
movups xmm0, xmmword [eax + 4]
subps xmm0, xmm1
movups xmm1, xmmword [eax + 0x10]
mulps xmm1, xmm2
movups xmmword [edi + eax], xmm0
movups xmm0, xmmword [eax + 0x14]
subps xmm0, xmm1
movups xmm1, xmmword [eax + 0x20]
mulps xmm1, xmm2
movups xmmword [esi + eax], xmm0
movups xmm0, xmmword [eax + 0x24]
subps xmm0, xmm1
movups xmmword [edx + eax], xmm0
add eax, 0x40
cmp ecx, 0x40
jl 0x425700
mov edx, dword [ebp - 0xaa4]
cmp ecx, 0x4f
jge 0x42583f
movss xmm4, dword [0x92b4b8]
mov esi, 0x4f
mov eax, esi
sub eax, ecx
cmp eax, 4
jl 0x42580e
lea esi, [ebp - 0x314]
sub esi, edx
lea eax, [edx + 8]
mov dword [ebp - 0xaac], esi
lea eax, [eax + ecx*4]
mov edx, dword [ebp - 0xaac]
mov esi, 0x4f
nop
movss xmm1, dword [eax - 8]
movss xmm3, dword [eax - 4]
movss xmm2, dword [eax]
movaps xmm0, xmm3
mulss xmm1, xmm4
mulss xmm3, xmm4
subss xmm0, xmm1
movss xmm1, dword [eax + 4]
movss dword [ebp + ecx*4 - 0x318], xmm0
movaps xmm0, xmm2
subss xmm0, xmm3
mulss xmm2, xmm4
movss dword [ebp + ecx*4 - 0x314], xmm0
movaps xmm0, xmm1
subss xmm0, xmm2
mulss xmm1, xmm4
add ecx, 4
movss dword [edi + eax], xmm0
movss xmm0, dword [eax + 8]
subss xmm0, xmm1
movss dword [edx + eax], xmm0
add eax, 0x10
cmp ecx, 0x4c
jl 0x4257a0
mov edx, dword [ebp - 0xaa4]
cmp ecx, 0x4f
jae 0x42583f
movss xmm2, dword [edx + ecx*4]
lea edx, [edx + ecx*4]
sub esi, ecx
nop dword [eax]
mulss xmm2, xmm4
mov eax, edx
lea edx, [eax + 4]
movss xmm0, dword [edx]
subss xmm0, xmm2
movss xmm2, dword [edx]
movss dword [edi + eax], xmm0
sub esi, 1
jne 0x425820
sub esp, 0xc
lea edx, [ebp - 0x318]
lea ecx, [ebp - 0x48]
call fcn.00437c40
mulss xmm0, dword [0x92b36c]
lea eax, [ebp - 0x594]
add esp, 0xc
movss dword [ebp - 0xaa8], xmm0
push 0x4fc
shufps xmm0, xmm0, 0
push 0
push eax
movaps xmmword [ebp - 0xae0], xmm0
call fcn.00458760
add esp, 0xc
mov dword [ebp - 0x598], 0x3f800000
xor esi, esi
movq xmm0, qword [0x92b800]
lea eax, [esi + 1]
movd xmm1, eax
movq qword [ebp - 0xad0], xmm0
movaps xmm0, xmmword [0x92bb20]
pshufd xmm1, xmm1, 0
paddd xmm1, xmmword [ebp - 0xad0]
cvtdq2pd xmm1, xmm1
call fcn.00471b80
movsd xmm2, qword [ebp + esi*4 - 0x48]
xorps xmm2, xmmword [0x92bc70]
cvtps2pd xmm1, xmm2
mulpd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movsd qword [ebp + esi*4 - 0x594], xmm0
add esi, 2
cmp esi, 0x10
jl 0x425890
lea edx, [ebp - 0x598]
lea ecx, [ebp - 0xaa0]
call fcn.00425ef0
push 0x48
lea eax, [ebp - 0x98]
push 0
push eax
call fcn.00458760
movzx ecx, word [0x5ad6a0]
lea edx, [ebp - 0x94]
movsd xmm7, qword [0x92b3d8]
add esp, 0xc
mov eax, 0x5ad6a0
nop dword [eax + eax]
add eax, 2
movsx edi, cx
mov dword [ebp - 0xaa4], eax
xor esi, esi
movzx eax, word [eax]
movsx ecx, ax
sub ecx, edi
shl ecx, 2
test ecx, ecx
jle 0x4259e8
movss xmm6, dword [0x92b4d0]
lea eax, [ebp - 0xaa0]
movss xmm3, dword [edx - 4]
movaps xmm5, xmm6
movss xmm4, dword [edx]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
shl edi, 5
add eax, edi
divss xmm5, xmm0
nop dword [eax + eax]
movss xmm1, dword [eax + 4]
xorps xmm2, xmm2
movss xmm0, dword [eax]
add eax, 8
mulss xmm0, xmm0
mulss xmm1, xmm1
cvtsi2ss xmm2, esi
inc esi
addss xmm0, xmm1
mulss xmm2, xmm5
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x92b588]
addsd xmm1, xmm7
divsd xmm0, xmm1
cvtpd2ps xmm1, xmm0
movaps xmm0, xmm6
subss xmm0, xmm2
mulss xmm0, xmm1
mulss xmm1, xmm2
addss xmm3, xmm0
addss xmm4, xmm1
cmp esi, ecx
jl 0x425980
mov eax, dword [ebp - 0xaa4]
movss dword [edx - 4], xmm3
movss dword [edx], xmm4
movzx eax, word [eax]
movzx ecx, ax
add edx, 4
mov eax, dword [ebp - 0xaa4]
cmp eax, 0x5ad6c2
jl 0x425930
movss xmm0, dword [ebp - 0x98]
xor ecx, ecx
mulss xmm0, dword [0x92b5b8]
movaps xmm1, xmmword [ebp - 0xae0]
movss dword [ebp - 0x98], xmm0
movss xmm0, dword [ebp - 0x54]
mulss xmm0, dword [0x92b5b8]
movss dword [ebp - 0x54], xmm0
movups xmm0, xmmword [ebp - 0x98]
movups xmmword [ebp - 0x50], xmm0
movups xmm0, xmmword [ebp - 0x88]
movups xmmword [ebp - 0x40], xmm0
movups xmm0, xmmword [ebp - 0x78]
movups xmmword [ebp - 0x30], xmm0
movups xmm0, xmmword [ebp - 0x68]
movups xmmword [ebp - 0x20], xmm0
movq xmm0, qword [ebp - 0x58]
movq qword [ebp - 0x10], xmm0
xorps xmm0, xmm0
movsd xmm0, xmm1
cvtps2pd xmm2, xmm0
mulpd xmm2, xmmword [0x92ba00]
nop dword [eax]
nop dword [eax + eax]
cvtps2pd xmm0, qword [ebp + ecx*4 - 0x50]
mulpd xmm0, xmm2
cvtpd2ps xmm0, xmm0
movsd qword [ebp + ecx*4 - 0x50], xmm0
cvtps2pd xmm0, qword [ebp + ecx*4 - 0x48]
mulpd xmm0, xmm2
cvtpd2ps xmm0, xmm0
movsd qword [ebp + ecx*4 - 0x48], xmm0
cvtps2pd xmm0, qword [ebp + ecx*4 - 0x40]
mulpd xmm0, xmm2
cvtpd2ps xmm0, xmm0
movsd qword [ebp + ecx*4 - 0x40], xmm0
cvtps2pd xmm0, qword [ebp + ecx*4 - 0x38]
mulpd xmm0, xmm2
cvtpd2ps xmm0, xmm0
movsd qword [ebp + ecx*4 - 0x38], xmm0
add ecx, 8
cmp ecx, 0x10
jl 0x425a80
cmp ecx, 0x12
jge 0x425b9d
movsd xmm2, qword [0x92b400]
mov eax, 0x12
movss xmm3, dword [ebp - 0xaa8]
sub eax, ecx
cmp eax, 4
jl 0x425b64
cvtps2pd xmm1, xmm3
mulsd xmm1, xmm2
movss xmm0, dword [ebp + ecx*4 - 0x50]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp + ecx*4 - 0x50], xmm0
movss xmm0, dword [ebp + ecx*4 - 0x4c]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp + ecx*4 - 0x4c], xmm0
movss xmm0, dword [ebp + ecx*4 - 0x48]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp + ecx*4 - 0x48], xmm0
movss xmm0, dword [ebp + ecx*4 - 0x44]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp + ecx*4 - 0x44], xmm0
add ecx, 4
cmp ecx, 0xf
jl 0x425b00
cmp ecx, 0x12
jae 0x425b9d
xorps xmm1, xmm1
cvtss2sd xmm1, xmm3
mulsd xmm1, xmm2
nop dword [eax]
nop dword [eax + eax]
movss xmm0, dword [ebp + ecx*4 - 0x50]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp + ecx*4 - 0x50], xmm0
inc ecx
cmp ecx, 0x12
jl 0x425b80
movss xmm0, dword [ebp - 0xab4]
xor esi, esi
nop word [eax + eax]
cvtps2pd xmm0, xmm0
subsd xmm0, qword [0x92b5d0]
movsd qword [ebp - 0xab8], xmm0
movss xmm0, dword [ebp + esi - 0x50]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x92b4e0]
call fcn.004740c1
movsd xmm2, qword [ebp - 0xab8]
xorps xmm1, xmm1
cvtsd2ss xmm0, xmm0
cvtss2sd xmm1, xmm0
comisd xmm2, xmm1
jbe 0x425bf7
movaps xmm3, xmm2
jmp 0x425bfa
movaps xmm3, xmm1
movss xmm4, dword [ebp - 0xab0]
movaps xmm0, xmm4
subss xmm0, dword [0x92b668]
cvtps2pd xmm0, xmm0
comisd xmm0, xmm3
ja 0x425c24
comisd xmm2, xmm1
jbe 0x425c21
movaps xmm0, xmm2
jmp 0x425c24
movaps xmm0, xmm1
cvtpd2ps xmm1, xmm0
movaps xmm0, xmm1
movss dword [ebp + esi - 0x98], xmm1
maxss xmm0, xmm4
movss dword [ebp - 0xab0], xmm0
cvtps2pd xmm0, xmm1
comisd xmm2, xmm0
ja 0x425c4c
movaps xmm2, xmm0
add esi, 4
cvtpd2ps xmm0, xmm2
cmp esi, 0x48
jl 0x425bb0
mov esi, dword [ebp - 0xabc]
lea edx, [ebp - 0x98]
mov ecx, esi
call fcn.00425ca0
movss xmm0, dword [esi]
subss xmm0, dword [0x92b630]
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
movss dword [esi], xmm0
pop esi
call fcn.004575d6
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret