Function at 0x42f410
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, 0x58
push esi
mov esi, edx
mov eax, esi
mov dword [ebp - 4], esi
cdq
and edx, 3
add eax, edx
sar eax, 2
push edi
mov edi, ecx
mov dword [ebp - 0x1c], eax
push 0x10
lea ecx, [eax*4]
mov dword [ebp - 0x14], edi
push ecx
call fcn.0044b179
mov ecx, dword [ebp - 0x1c]
push 0x10
mov dword [ebp - 0x24], eax
lea ecx, [ecx + esi]
shl ecx, 2
push ecx
call fcn.0044b179
movd xmm0, esi
add esp, 0x10
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x18], eax
mov eax, esi
sar eax, 1
mov dword [ebp - 0x10], eax
movss dword [ebp - 8], xmm0
cvtps2pd xmm0, xmm0
call fcn.0046326c
cmp dword [ebp - 0x1c], 0
lea edx, [edi + 8]
movsd xmm3, qword [0x4fddc8]
movaps xmm5, xmm0
mulsd xmm5, qword [0x4fdb78]
mov ecx, dword [ebp - 0x18]
movsd xmm2, qword [0x4fdd90]
movsd xmm4, qword [0x4fdb50]
mov dword [edi], esi
addsd xmm5, qword [0x4fdad0]
mov dword [edx], ecx
andps xmm3, xmm5
movaps xmm0, xmm5
xorps xmm0, xmm3
movaps xmm1, xmm5
cmpltsd xmm0, xmm2
andps xmm2, xmm0
orps xmm2, xmm3
addsd xmm1, xmm2
subsd xmm1, xmm2
movaps xmm0, xmm1
subsd xmm0, xmm5
cmpnlesd xmm0, xmm3
andps xmm0, xmm4
subsd xmm1, xmm0
cvttsd2si eax, xmm1
movss xmm1, dword [0x4fdcc8]
mov dword [ebp - 0x34], eax
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [edi + 0x2c], eax
jle 0x42f5dc
lea eax, [esi + esi]
mov dword [ebp - 0xc], 1
movd xmm0, eax
movaps xmm2, xmm1
divss xmm2, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
xor eax, eax
mov dword [ebp - 0x20], eax
lea edi, [ecx + esi*4]
xor esi, esi
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x30], xmm2
divss xmm1, xmm0
movss dword [ebp - 0x2c], xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
movss dword [ebp - 0x28], xmm0
call fcn.00462f09
mov eax, dword [ebp - 0x18]
movss dword [eax + esi*8], xmm0
movss xmm0, dword [ebp - 0x28]
cvtps2pd xmm0, xmm0
call fcn.00464148
movd xmm1, dword [ebp - 0xc]
xorps xmm0, xmmword [0x4fe020]
mov eax, dword [ebp - 0x18]
cvtdq2ps xmm1, xmm1
cvtsd2ss xmm0, xmm0
mulss xmm1, dword [ebp - 0x2c]
movss dword [eax + esi*8 + 4], xmm0
movaps xmm0, xmm1
call fcn.0045f8e0
mov eax, dword [ebp - 0x20]
lea edi, [edi + 8]
add dword [ebp - 0xc], 2
movaps xmm1, xmm0
movss xmm2, dword [ebp - 0x30]
inc esi
shufps xmm1, xmm0, 1
add eax, 4
movss dword [edi - 8], xmm1
movss dword [edi - 4], xmm0
mov dword [ebp - 0x20], eax
cmp esi, dword [ebp - 0x1c]
jl 0x42f544
mov edi, dword [ebp - 0x14]
movss xmm1, dword [0x4fdcc8]
mov esi, dword [ebp - 4]
lea ecx, [edi + 8]
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x18]
jmp 0x42f5df
mov dword [ebp - 0xc], edx
mov eax, esi
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [ebp - 0x2c], eax
test eax, eax
jle 0x42f6b8
divss xmm1, dword [ebp - 8]
mov edi, 2
mov dword [ebp - 0x20], eax
lea esi, [ecx + esi*4]
movss dword [ebp - 0x30], xmm1
nop word [eax + eax]
xorps xmm0, xmm0
cvtsi2ss xmm0, edi
mulss xmm0, xmm1
cvtps2pd xmm0, xmm0
call fcn.0045f870
movaps xmm1, xmm0
lea esi, [esi + 8]
shufpd xmm1, xmm0, 1
add edi, 4
sub dword [ebp - 0x20], 1
mulsd xmm1, qword [0x4fdad0]
mulsd xmm0, qword [0x4fdde8]
cvtsd2ss xmm1, xmm1
cvtsd2ss xmm0, xmm0
movss dword [esi - 8], xmm1
movss xmm1, dword [ebp - 0x30]
movss dword [esi - 4], xmm0
jne 0x42f610
mov edx, dword [ebp - 0x34]
mov eax, 1
mov edi, eax
lea ecx, [edx - 2]
shl edi, cl
lea ecx, [edx - 1]
shl eax, cl
dec eax
xor esi, esi
mov dword [ebp - 0x34], eax
xor edx, edx
xor ecx, ecx
test edi, edi
je 0x42f692
mov eax, edi
test esi, eax
je 0x42f689
bts edx, ecx
inc ecx
mov eax, edi
sar eax, cl
test eax, eax
jne 0x42f682
mov ecx, dword [ebp - 0x24]
mov eax, edx
not eax
and eax, dword [ebp - 0x34]
dec eax
mov dword [ecx + esi*8], eax
mov dword [ecx + esi*8 + 4], edx
inc esi
cmp esi, dword [ebp - 0x2c]
jl 0x42f678
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 4]
lea eax, [edi + 8]
mov dword [ebp - 0xc], eax
jmp 0x42f6c2
movss xmm0, dword [ebp - 8]
movss dword [ebp - 8], xmm0
movss xmm0, dword [0x4fdd18]
mov eax, esi
divss xmm0, dword [ebp - 8]
sar eax, 2
mov dword [ebp - 8], eax
mov eax, esi
sar eax, 3
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
shl eax, 2
push 0x10
push eax
movss dword [edi + 0x30], xmm0
shufps xmm0, xmm0, 0
movaps xmmword [ebp - 0x50], xmm0
call fcn.0044b179
mov edx, eax
lea ecx, [esi*4]
mov eax, dword [edi + 8]
add esp, 8
add eax, ecx
mov dword [edi + 0xc], edx
mov dword [ebp - 0x34], eax
xor ecx, ecx
mov eax, dword [ebp - 8]
test eax, eax
jle 0x42f768
mov esi, dword [ebp - 0x34]
nop dword [eax]
movups xmm3, xmmword [esi + ecx*4]
movups xmm4, xmmword [esi + ecx*4 + 0x10]
movaps xmm2, xmm3
movaps xmm1, xmm4
shufps xmm2, xmm3, 0xb1
xorps xmm2, xmmword [0x4765d0]
shufps xmm1, xmm4, 0xb1
xorps xmm1, xmmword [0x4765d0]
movups xmmword [edx + ecx*8], xmm3
movups xmmword [edx + ecx*8 + 0x10], xmm2
movups xmmword [edx + ecx*8 + 0x20], xmm4
movups xmmword [edx + ecx*8 + 0x30], xmm1
add ecx, 8
cmp ecx, eax
jl 0x42f720
mov esi, dword [ebp - 4]
lea eax, [edi + 8]
mov dword [ebp - 0xc], eax
lea eax, [esi*8]
push 0x10
push eax
call fcn.0044b179
mov esi, dword [ebp - 0x10]
xor ecx, ecx
mov edx, dword [edi + 8]
add esi, 0xfffffffc
add esp, 8
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 4]
mov dword [edi + 0x10], eax
cmp dword [ebp - 0x18], ecx
jle 0x42f812
xor edi, edi
nop dword [eax]
mov esi, dword [ebp - 0x1c]
lea edi, [edi + 0x40]
movsd xmm5, qword [edx + esi*4 + 8]
movhps xmm5, qword [edx + ecx*4]
movsd xmm4, qword [edx + esi*4]
movaps xmm3, xmm5
movhps xmm4, qword [edx + ecx*4 + 8]
sub esi, 4
movaps xmm2, xmm4
shufps xmm3, xmm5, 0xb1
xorps xmm3, xmmword [0x476630]
add ecx, 4
xorps xmm5, xmmword [0x4765c0]
shufps xmm2, xmm4, 0xb1
xorps xmm2, xmmword [0x476630]
xorps xmm4, xmmword [0x4765c0]
movups xmmword [edi + eax - 0x40], xmm3
movups xmmword [edi + eax - 0x30], xmm5
movups xmmword [edi + eax - 0x20], xmm2
movups xmmword [edi + eax - 0x10], xmm4
mov dword [ebp - 0x1c], esi
cmp ecx, dword [ebp - 0x18]
jl 0x42f7a0
mov edi, dword [ebp - 0x14]
lea esi, [edi + 8]
mov dword [ebp - 0xc], esi
mov esi, dword [ebp - 4]
cmp ecx, dword [ebp - 8]
jge 0x42f8a2
mov esi, ecx
shl esi, 4
mov dword [ebp - 0x34], esi
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x34]
shl esi, 2
mov dword [ebp - 0x24], esi
nop
mov esi, dword [ebp - 0x24]
lea edi, [edi + 0x40]
movsd xmm4, qword [esi + edx + 8]
movhps xmm4, qword [edx + ecx*4]
movsd xmm3, qword [esi + edx]
movaps xmm2, xmm4
movhps xmm3, qword [edx + ecx*4 + 8]
sub esi, 0x10
movaps xmm1, xmm3
shufps xmm2, xmm4, 0xb1
xorps xmm2, xmmword [0x476590]
add ecx, 4
xorps xmm4, xmmword [0x4765c0]
shufps xmm1, xmm3, 0xb1
xorps xmm1, xmmword [0x476590]
xorps xmm3, xmmword [0x4765c0]
movups xmmword [edi + eax - 0x40], xmm2
movups xmmword [edi + eax - 0x30], xmm4
movups xmmword [edi + eax - 0x20], xmm1
movups xmmword [edi + eax - 0x10], xmm3
mov dword [ebp - 0x24], esi
mov esi, dword [ebp - 4]
cmp ecx, dword [ebp - 8]
jl 0x42f830
mov edi, dword [ebp - 0x14]
lea eax, [edi + 8]
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 0x10]
mov edx, dword [ebp - 0x10]
lea ecx, [eax + esi*4]
mov eax, dword [edi + 8]
lea eax, [eax + edx*4]
mov edx, dword [ebp - 8]
test edx, edx
jle 0x42f911
movaps xmm3, xmmword [ebp - 0x50]
lea esi, [edx - 1]
shr esi, 2
inc esi
mov dword [ebp - 0x24], esi
mov esi, dword [ebp - 4]
nop dword [eax]
sub dword [ebp - 0x24], 1
lea eax, [eax + 0x20]
movups xmm2, xmmword [eax - 0x10]
lea ecx, [ecx + 0x40]
movaps xmm1, xmm2
shufps xmm2, xmmword [eax - 0x20], 0x77
shufps xmm1, xmmword [eax - 0x20], 0x22
mulps xmm2, xmm3
mulps xmm1, xmm3
movups xmmword [ecx - 0x40], xmm2
shufps xmm2, xmm2, 0x1b
movups xmmword [ecx - 0x30], xmm1
shufps xmm1, xmm1, 0x1b
movups xmmword [ecx - 0x20], xmm1
movups xmmword [ecx - 0x10], xmm2
jne 0x42f8d0
lea eax, [edi + 8]
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 8]
push 0x10
lea eax, [eax + edx*4]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x10]
add eax, esi
shl eax, 2
push eax
call fcn.0044b179
mov ecx, dword [ebp - 8]
add esp, 8
mov dword [edi + 0x14], eax
test ecx, ecx
jle 0x42fa8b
lea edx, [ecx - 1]
add eax, 0x20
shr edx, 2
inc edx
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x24]
mov esi, edx
nop dword [eax]
sub dword [ebp - 0x20], 1
lea edx, [edx - 0x10]
movups xmm2, xmmword [esi]
lea esi, [esi + 0x10]
movups xmm4, xmmword [edx]
lea eax, [eax + 0x40]
movaps xmm0, xmm2
movaps xmm3, xmm4
shufps xmm0, xmm2, 0x5f
xorps xmm0, xmmword [0x4765f0]
shufps xmm3, xmm4, 0x4e
xorps xmm3, xmmword [0x4765f0]
movups xmmword [eax - 0x60], xmm0
shufps xmm2, xmm2, 0xa
movups xmmword [eax - 0x50], xmm2
shufps xmm4, xmm4, 0x1b
movups xmmword [eax - 0x40], xmm4
movups xmmword [eax - 0x30], xmm3
jne 0x42f950
mov eax, dword [edi + 8]
dec ecx
mov edx, dword [ebp - 0x10]
mov esi, dword [ebp - 4]
shr ecx, 2
inc ecx
lea edx, [eax + edx*4]
mov eax, dword [edi + 0x14]
lea eax, [eax + esi*4]
movups xmm2, xmmword [edx]
lea edx, [edx + 0x20]
movups xmm1, xmmword [edx - 0x10]
movaps xmm0, xmm2
shufps xmm0, xmm1, 0xdd
lea eax, [eax + 0x20]
movups xmmword [eax - 0x20], xmm0
shufps xmm2, xmm1, 0x88
movups xmmword [eax - 0x10], xmm2
sub ecx, 1
jne 0x42f9b0
mov ecx, dword [ebp - 4]
mov esi, dword [edi + 8]
push 0x10
lea eax, [ecx*8]
push eax
call fcn.0044b179
mov edx, eax
add esp, 8
mov dword [edi + 0x18], edx
lea eax, [esi + 0x20]
lea ecx, [edx + 0x20]
sub edx, esi
mov esi, dword [ebp - 4]
sub edx, 0x20
mov dword [ebp - 0x34], edx
mov edx, dword [ebp - 8]
mov edi, dword [ebp - 0x34]
dec edx
shr edx, 2
inc edx
nop
movups xmm5, xmmword [eax - 0x10]
lea eax, [eax + 0x40]
movups xmm4, xmmword [eax - 0x30]
movaps xmm3, xmm5
shufps xmm5, xmmword [eax - 0x60], 0x44
movaps xmm2, xmm4
shufps xmm4, xmmword [eax - 0x40], 0x44
lea ecx, [ecx + 0x40]
shufps xmm3, xmmword [eax - 0x60], 0x11
shufps xmm2, xmmword [eax - 0x40], 0x11
xorps xmm5, xmmword [0x4765d0]
xorps xmm4, xmmword [0x4765d0]
movups xmmword [edi + eax - 0x40], xmm5
movups xmmword [ecx - 0x50], xmm4
movups xmmword [ecx - 0x40], xmm3
movups xmmword [ecx - 0x30], xmm2
movaps xmm0, xmmword [0x476600]
xorps xmm5, xmm0
xorps xmm4, xmm0
movups xmmword [ecx + esi*4 - 0x60], xmm5
xorps xmm3, xmm0
movups xmmword [ecx + esi*4 - 0x50], xmm4
xorps xmm2, xmm0
movups xmmword [ecx + esi*4 - 0x40], xmm3
movups xmmword [ecx + esi*4 - 0x30], xmm2
sub edx, 1
jne 0x42fa10
mov edi, dword [ebp - 0x14]
lea eax, [edi + 8]
jmp 0x42faa3
lea eax, [esi*8]
push 0x10
push eax
call fcn.0044b179
mov dword [edi + 0x18], eax
add esp, 8
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x10]
shl eax, 2
push 0x10
push eax
call fcn.0044b179
add esp, 8
mov dword [edi + 0x1c], eax
test esi, esi
jle 0x42fce8
lea ecx, [eax + 0x20]
dec esi
mov eax, dword [ebp - 0x34]
shr esi, 5
add eax, 0x40
inc esi
movups xmm5, xmmword [eax + 0x20]
lea eax, [eax + 0x80]
movups xmm6, xmmword [eax - 0xa0]
movaps xmm1, xmm5
movups xmm4, xmmword [eax - 0xc0]
movaps xmm2, xmm6
shufps xmm1, xmmword [eax - 0x80], 0x44
lea ecx, [ecx + 0x40]
shufps xmm5, xmmword [eax - 0x80], 0x11
xorps xmm1, xmmword [0x4765d0]
shufps xmm2, xmm4, 0x44
xorps xmm2, xmmword [0x4765d0]
movups xmmword [ecx - 0x60], xmm5
movups xmmword [ecx - 0x50], xmm1
shufps xmm6, xmm4, 0x11
movups xmmword [ecx - 0x40], xmm6
movups xmmword [ecx - 0x30], xmm2
sub esi, 1
jne 0x42fad2
mov eax, dword [ebp - 8]
mov esi, dword [edi + 8]
shl eax, 2
push 0x10
push eax
call fcn.0044b179
mov ecx, dword [ebp - 4]
add esp, 8
mov dword [edi + 0x20], eax
sub esi, 0xffffff80
add eax, 0x20
lea edx, [ecx - 1]
shr edx, 6
inc edx
nop
movups xmm5, xmmword [esi + 0x40]
lea esi, [esi + 0x100]
movups xmm6, xmmword [esi - 0x140]
movaps xmm1, xmm5
movups xmm4, xmmword [esi - 0x180]
movaps xmm2, xmm6
shufps xmm1, xmmword [esi - 0x100], 0x44
lea eax, [eax + 0x40]
shufps xmm5, xmmword [esi - 0x100], 0x11
xorps xmm1, xmmword [0x4765d0]
shufps xmm2, xmm4, 0x44
xorps xmm2, xmmword [0x4765d0]
movups xmmword [eax - 0x60], xmm5
movups xmmword [eax - 0x50], xmm1
shufps xmm6, xmm4, 0x11
movups xmmword [eax - 0x40], xmm6
movups xmmword [eax - 0x30], xmm2
sub edx, 1
jne 0x42fb50
cmp ecx, 0x80
jl 0x42fcfc
mov eax, dword [ebp - 0x18]
mov esi, dword [edi + 8]
shl eax, 2
push 0x10
push eax
call fcn.0044b179
mov dword [edi + 0x24], eax
add esp, 8
add esi, 0x100
lea ecx, [eax + 0x20]
mov eax, dword [ebp - 4]
lea edx, [eax - 1]
shr edx, 7
inc edx
movups xmm5, xmmword [esi + 0x80]
lea esi, [esi + 0x200]
movups xmm6, xmmword [esi - 0x280]
movaps xmm1, xmm5
movups xmm4, xmmword [esi - 0x300]
movaps xmm2, xmm6
shufps xmm1, xmmword [esi - 0x200], 0x44
lea ecx, [ecx + 0x40]
shufps xmm5, xmmword [esi - 0x200], 0x11
xorps xmm1, xmmword [0x4765d0]
shufps xmm2, xmm4, 0x44
xorps xmm2, xmmword [0x4765d0]
movups xmmword [ecx - 0x60], xmm5
movups xmmword [ecx - 0x50], xmm1
shufps xmm6, xmm4, 0x11
movups xmmword [ecx - 0x40], xmm6
movups xmmword [ecx - 0x30], xmm2
sub edx, 1
jne 0x42fbe2
cmp eax, 0x100
jl 0x42fd03
mov eax, dword [ebp - 0x18]
mov esi, dword [edi + 8]
sar eax, 1
shl eax, 2
push 0x10
push eax
call fcn.0044b179
mov ecx, dword [ebp - 4]
add esp, 8
dec ecx
mov dword [edi + 0x28], eax
shr ecx, 8
add eax, 0x20
add esi, 0x200
inc ecx
nop word [eax + eax]
movups xmm5, xmmword [esi + 0x100]
lea esi, [esi + 0x400]
movups xmm6, xmmword [esi - 0x500]
movaps xmm1, xmm5
movups xmm4, xmmword [esi - 0x600]
movaps xmm2, xmm6
shufps xmm1, xmmword [esi - 0x400], 0x44
lea eax, [eax + 0x40]
shufps xmm5, xmmword [esi - 0x400], 0x11
xorps xmm1, xmmword [0x4765d0]
shufps xmm2, xmm4, 0x44
xorps xmm2, xmmword [0x4765d0]
movups xmmword [eax - 0x60], xmm5
movups xmmword [eax - 0x50], xmm1
shufps xmm6, xmm4, 0x11
movups xmmword [eax - 0x40], xmm6
movups xmmword [eax - 0x30], xmm2
sub ecx, 1
jne 0x42fc80
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov eax, dword [ebp - 8]
shl eax, 2
push 0x10
push eax
call fcn.0044b179
add esp, 8
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], 0
mov dword [edi + 0x28], 0
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret