Function at 0x42dae0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x507040]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ecx + 4]
push edi
mov edi, dword [ebp + 0x28]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x30], esi
lea eax, [edi*4]
call fcn.0045df40
xor ecx, ecx
mov edx, esp
mov dword [ebp - 0x10], ecx
cmp dword [esi + 0x298], ecx
je 0x42db2b
mov esi, dword [esi + 0x29c]
sub esi, dword [ebp + 0x24]
mov dword [ebp - 8], esi
cmp esi, edi
jg 0x42db3e
jmp 0x42db30
mov esi, edi
mov dword [ebp - 8], edi
movss xmm0, dword [0x4fddd4]
comiss xmm0, dword [ebp + 0x20]
jbe 0x42db43
mov esi, edi
mov dword [ebp - 8], esi
movsd xmm7, qword [0x4fddc8]
xorps xmm2, xmm2
xor edi, edi
movss dword [ebp - 0x24], xmm2
xorps xmm6, xmm6
cmp dword [ebp + 0x18], ecx
jne 0x42dd9b
mov ecx, dword [ebp + 0x14]
movss xmm3, dword [0x4fd72c]
movsd xmm5, qword [0x4fdd90]
test esi, esi
jle 0x42dca2
mov edx, dword [ebp + 0x2c]
cmp esi, 2
jb 0x42dc21
lea eax, [ecx - 4]
lea eax, [eax + esi*4]
cmp edx, eax
ja 0x42dba0
lea eax, [edx - 4]
lea eax, [eax + esi*4]
cmp eax, ecx
jae 0x42dc21
mov eax, esi
and eax, 0x80000001
jns 0x42dbae
dec eax
or eax, 0xfffffffe
inc eax
movaps xmm2, xmmword [0x4fdf20]
mov dword [ebp - 0x1c], esi
mov esi, edx
sub dword [ebp - 0x1c], eax
sub ecx, edx
mov dword [ebp - 0xc], ecx
movsd xmm1, qword [esi + ecx]
xorps xmm0, xmm0
movsd xmm0, xmm2
addps xmm1, xmm0
cvtps2pd xmm0, xmm1
call fcn.0045f970
movaps xmm2, xmmword [0x4fdf20]
add edi, 2
mov ecx, dword [ebp - 0xc]
mov eax, edi
cvttpd2dq xmm0, xmm0
movq qword [esi], xmm0
add esi, 8
cmp edi, dword [ebp - 0x1c]
jl 0x42dbc2
mov esi, dword [ebp - 8]
movsd xmm5, qword [0x4fdd90]
movss xmm3, dword [0x4fd72c]
movsd xmm7, qword [0x4fddc8]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x2c]
cmp eax, esi
jge 0x42dcda
movsd xmm6, qword [0x4fdb50]
lea eax, [edx + edi*4]
mov dword [ebp - 0xc], ecx
sub ecx, edx
mov edx, esi
mov dword [ebp - 0x18], eax
sub edx, edi
mov edi, esi
mov esi, eax
nop dword [eax]
movss xmm0, dword [esi + ecx]
movaps xmm1, xmm5
addss xmm0, xmm3
movaps xmm3, xmm7
cvtps2pd xmm4, xmm0
andps xmm3, xmm4
movaps xmm0, xmm4
xorps xmm0, xmm3
movaps xmm2, xmm4
cmpltsd xmm0, xmm5
andps xmm1, xmm0
orps xmm1, xmm3
addsd xmm2, xmm1
subsd xmm2, xmm1
movaps xmm0, xmm2
subsd xmm0, xmm4
cmpnlesd xmm0, xmm3
movss xmm3, dword [0x4fd72c]
andps xmm0, xmm6
subsd xmm2, xmm0
cvttsd2si eax, xmm2
mov dword [esi], eax
add esi, 4
sub edx, 1
jne 0x42dc40
movss xmm2, dword [ebp - 0x24]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x2c]
mov esi, dword [ebp + 0x28]
cmp edi, esi
jge 0x42e059
mov eax, dword [ebp + 0x10]
lea esi, [edx + edi*4]
movss xmm6, dword [0x4fd680]
sub eax, edx
mov dword [ebp - 0x20], eax
sub ecx, edx
mov eax, dword [ebp + 0xc]
sub eax, edx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0x28]
sub eax, edi
mov dword [ebp - 8], eax
jmp 0x42dce4
movss xmm2, dword [ebp - 0x24]
jmp 0x42dca5
mov ecx, dword [ebp - 0xc]
movss xmm1, dword [esi + ecx]
mov edx, esp
mov edi, dword [ebp - 0x18]
movaps xmm0, xmm1
mov ecx, dword [ebp - 0x10]
add edi, esi
mulss xmm0, xmm1
comiss xmm6, xmm0
jbe 0x42dd11
addss xmm2, xmm0
mov dword [edx + ecx*4], edi
inc ecx
mov dword [ebp - 0x10], ecx
movss dword [ebp - 0x24], xmm2
jmp 0x42dd7c
addss xmm1, xmm3
movaps xmm3, xmm7
cvtps2pd xmm4, xmm1
movaps xmm1, xmm5
andps xmm3, xmm4
movaps xmm0, xmm4
xorps xmm0, xmm3
movaps xmm2, xmm4
cmpltsd xmm0, xmm5
andps xmm1, xmm0
orps xmm1, xmm3
addsd xmm2, xmm1
subsd xmm2, xmm1
movsd xmm1, qword [0x4fdb50]
movaps xmm0, xmm2
subsd xmm0, xmm4
cmpnlesd xmm0, xmm3
andps xmm0, xmm1
subsd xmm2, xmm0
cvttsd2si eax, xmm2
movss xmm2, dword [ebp - 0x24]
mov dword [esi], eax
imul eax, eax
movd xmm0, eax
mov eax, dword [ebp - 0x20]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [eax + esi]
mov eax, dword [ebp - 8]
movss dword [edi], xmm0
movss xmm3, dword [0x4fd72c]
add esi, 4
sub eax, 1
mov dword [ebp - 8], eax
jne 0x42dce1
mov esi, dword [ebp + 0x28]
jmp 0x42e05d
movsd xmm3, qword [0x4fe020]
xor eax, eax
movss xmm4, dword [0x4fd72c]
movsd xmm1, qword [0x4fdd90]
mov dword [ebp - 0x1c], eax
test esi, esi
jle 0x42deca
mov esi, dword [ebp + 0x10]
mov edi, esi
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp + 0xc]
sub eax, esi
mov ecx, dword [ebp + 8]
sub edx, esi
sub ecx, esi
mov dword [ebp - 0x18], eax
mov esi, dword [ebp + 0x2c]
sub esi, edi
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x2c], esi
mov esi, dword [ebp + 0x14]
sub esi, edi
mov dword [ebp - 0x20], esi
mov esi, dword [ebp - 8]
mov dword [ebp - 0x1c], esi
cmp dword [edi + eax], 1
je 0x42deaa
comiss xmm6, dword [ecx + edi]
movss xmm0, dword [edx + edi]
xorps xmm5, xmm5
divss xmm0, dword [edi]
mov edx, dword [ebp - 0x2c]
movaps xmm3, xmm7
sqrtss xmm5, xmm0
movaps xmm0, xmm5
addss xmm0, xmm4
cvtps2pd xmm4, xmm0
andps xmm3, xmm4
movaps xmm0, xmm4
xorps xmm0, xmm3
movaps xmm2, xmm4
cmpltsd xmm0, xmm1
andps xmm1, xmm0
orps xmm1, xmm3
addsd xmm2, xmm1
subsd xmm2, xmm1
movsd xmm1, qword [0x4fdb50]
movaps xmm0, xmm2
subsd xmm0, xmm4
movss xmm4, dword [0x4fd72c]
cmpnlesd xmm0, xmm3
movsd xmm3, qword [0x4fe020]
andps xmm0, xmm1
movsd xmm1, qword [0x4fdd90]
subsd xmm2, xmm0
jbe 0x42de93
xorps xmm5, xmmword [0x4fe030]
xorps xmm2, xmm3
cvttsd2si eax, xmm2
mov dword [edi + edx], eax
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xc]
movss dword [eax + edi], xmm5
mov eax, dword [ebp - 0x18]
jmp 0x42deb2
cvttsd2si eax, xmm2
mov dword [edi + edx], eax
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xc]
movss dword [eax + edi], xmm5
mov eax, dword [ebp - 0x18]
jmp 0x42deb2
movsd xmm3, qword [0x4fe020]
add edi, 4
sub esi, 1
jne 0x42ddf0
movss xmm2, dword [ebp - 0x24]
mov edx, esp
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
mov esi, dword [ebp + 0x28]
cmp eax, esi
jge 0x42e060
mov edi, dword [ebp + 0x14]
movss xmm7, dword [0x4fd680]
lea esi, [edi + eax*4]
mov eax, dword [ebp + 8]
sub dword [ebp + 0x18], eax
sub eax, edi
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0x2c]
sub eax, edi
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x10]
sub eax, edi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0xc]
sub eax, edi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x28]
nop dword [eax]
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp + 0x18]
add edi, esi
mov dword [ebp - 0x20], edi
cmp dword [edi + edx], 1
mov edx, esp
je 0x42e02f
mov eax, dword [ebp - 0x10]
movss xmm1, dword [eax + esi]
mov eax, dword [ebp - 0xc]
divss xmm1, dword [esi + eax]
comiss xmm7, xmm1
jbe 0x42df8b
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp + 0x24]
cmp dword [ebp - 0x1c], eax
jl 0x42df8b
mov eax, dword [ebp - 0x10]
movaps xmm0, xmm1
add eax, esi
addss xmm2, xmm0
mov dword [edx + ecx*4], eax
inc ecx
comiss xmm6, dword [edi]
mov eax, dword [ebp + 0x28]
movss dword [ebp - 0x24], xmm2
jbe 0x42df7b
cvtps2pd xmm0, xmm1
sqrtsd xmm0, xmm0
xorps xmm0, xmm3
cvtsd2ss xmm0, xmm0
movss dword [esi], xmm0
jmp 0x42e02f
xorps xmm0, xmm0
sqrtss xmm0, xmm1
movss dword [esi], xmm0
jmp 0x42e02f
xorps xmm5, xmm5
movsd xmm3, qword [0x4fddc8]
sqrtss xmm5, xmm1
movsd xmm1, qword [0x4fdd90]
movaps xmm0, xmm5
addss xmm0, xmm4
comiss xmm6, dword [edi]
mov edi, dword [ebp - 8]
cvtps2pd xmm4, xmm0
andps xmm3, xmm4
movaps xmm0, xmm4
xorps xmm0, xmm3
movaps xmm2, xmm4
cmpltsd xmm0, xmm1
andps xmm1, xmm0
orps xmm1, xmm3
addsd xmm2, xmm1
subsd xmm2, xmm1
movsd xmm1, qword [0x4fdb50]
movaps xmm0, xmm2
subsd xmm0, xmm4
cmpnlesd xmm0, xmm3
andps xmm0, xmm1
subsd xmm2, xmm0
jbe 0x42dffc
xorps xmm2, xmmword [0x4fe020]
xorps xmm5, xmmword [0x4fe030]
cvttsd2si eax, xmm2
movss xmm2, dword [ebp - 0x24]
mov dword [esi + edi], eax
mov eax, dword [ebp - 8]
movss dword [esi], xmm5
mov eax, dword [esi + eax]
imul eax, eax
movd xmm0, eax
mov eax, dword [ebp - 0xc]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esi + eax]
mov eax, dword [ebp - 0x10]
movss dword [eax + esi], xmm0
mov eax, dword [ebp + 0x28]
mov edi, dword [ebp - 0x1c]
add esi, 4
movsd xmm3, qword [0x4fe020]
inc edi
movss xmm4, dword [0x4fd72c]
mov dword [ebp - 0x1c], edi
cmp edi, eax
jl 0x42df10
mov esi, dword [ebp + 0x28]
mov dword [ebp - 0x10], ecx
jmp 0x42e060
mov edx, esp
xor ecx, ecx
xorps xmm6, xmm6
movaps xmm1, xmm2
mulss xmm1, dword [ebp + 0x20]
mulss xmm1, dword [ebp + 0x20]
addss xmm1, xmm2
test ecx, ecx
je 0x42e1e3
cvttss2si eax, xmm1
inc eax
cmp eax, esi
cmovg eax, esi
cmp ecx, eax
cmovl eax, ecx
xor edi, edi
mov dword [ebp - 0x20], eax
mov dword [ebp - 0xc], edi
test eax, eax
jle 0x42e163
lea eax, [ecx - 1]
mov dword [ebp - 8], eax
nop
lea eax, [edi + 1]
mov esi, edi
mov dword [ebp - 0x18], eax
mov edi, eax
cmp eax, ecx
jge 0x42e13f
cmp dword [ebp - 8], 4
jl 0x42e123
lea eax, [ecx - 3]
mov dword [ebp - 0x28], eax
nop
mov ecx, dword [edx + esi*4]
mov eax, dword [edx + edi*4]
mov edx, edi
movss xmm0, dword [eax]
mov eax, esp
comiss xmm0, dword [ecx]
cmovbe edx, esi
lea esi, [edi + 1]
mov ecx, dword [eax + edx*4]
mov eax, dword [eax + edi*4 + 4]
movss xmm0, dword [eax]
mov eax, esp
comiss xmm0, dword [ecx]
cmovbe esi, edx
lea edx, [edi + 2]
mov ecx, dword [eax + esi*4]
mov eax, dword [eax + edx*4]
movss xmm0, dword [eax]
mov eax, esp
comiss xmm0, dword [ecx]
cmovbe edx, esi
lea esi, [edi + 3]
mov ecx, dword [eax + edx*4]
mov eax, dword [eax + esi*4]
movss xmm0, dword [eax]
comiss xmm0, dword [ecx]
cmovbe esi, edx
add edi, 4
mov eax, edi
mov edx, esp
cmp edi, dword [ebp - 0x28]
jl 0x42e0c0
cmp eax, dword [ebp - 0x10]
jge 0x42e13f
mov edx, esp
mov eax, dword [edx + edi*4]
mov ecx, dword [edx + esi*4]
movss xmm0, dword [eax]
mov eax, edi
comiss xmm0, dword [ecx]
cmovbe eax, esi
inc edi
mov esi, eax
cmp edi, dword [ebp - 0x10]
jl 0x42e125
mov edi, dword [ebp - 0xc]
mov eax, dword [edx + esi*4]
dec dword [ebp - 8]
mov ecx, dword [edx + edi*4]
mov dword [edx + edi*4], eax
mov edi, dword [ebp - 0x18]
mov dword [edx + esi*4], ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0xc], edi
cmp edi, dword [ebp - 0x20]
jl 0x42e0a0
xor edi, edi
test ecx, ecx
jle 0x42e1e3
movss xmm2, dword [0x4fd8c8]
mov eax, dword [ebp + 0xc]
mov esi, dword [edx + edi*4]
xorps xmm0, xmm0
sub esi, eax
mov eax, dword [ebp - 0x30]
cvtss2sd xmm0, xmm1
sar esi, 2
comisd xmm0, xmmword [eax + 0x2a8]
jb 0x42e1c9
mov eax, dword [ebp + 8]
subss xmm1, xmm2
mov ecx, dword [ebp + 0x2c]
movss xmm0, dword [eax + esi*4]
movss dword [ebp - 8], xmm0
mov eax, dword [ebp - 8]
and eax, 0xbf800000
or eax, 0x3f800000
mov dword [ebp - 8], eax
cvttss2si eax, dword [ebp - 8]
mov dword [ecx + esi*4], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x10]
movss xmm0, dword [eax + esi*4]
jmp 0x42e1d6
mov eax, dword [ebp + 0x2c]
movaps xmm0, xmm6
mov dword [eax + esi*4], 0
mov eax, dword [ebp + 0xc]
inc edi
movss dword [eax + esi*4], xmm0
cmp edi, ecx
jl 0x42e174
movaps xmm0, xmm1
lea esp, [ebp - 0x38]
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043d9c9
mov esp, ebp
pop ebp
ret