Function at 0x4305e0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x30
push esi
push edi
mov eax, edx
mov dword [ebp - 0xc], eax
mov edx, ecx
mov dword [ebp - 0x10], edx
add eax, 0xffffffe0
mov esi, dword [edx]
mov ecx, esi
sar ecx, 1
mov edi, esi
mov dword [ebp - 0x20], esi
sar edi, 2
mov dword [ebp - 0x14], ecx
lea esi, [ecx*4]
mov dword [ebp - 0x24], edi
add eax, esi
mov dword [ebp - 0x28], esi
mov esi, dword [ebx + 8]
add ecx, edi
cmp dword [ebp - 0x20], 0x400
mov edx, dword [edx + 0x14]
lea esi, [esi + ecx*4]
mov dword [ebp - 8], edx
mov edi, esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], edi
jge 0x4306d0
nop dword [eax + eax]
movaps xmm2, xmmword [0x4765b0]
movups xmm1, xmmword [eax - 0x20]
movups xmm0, xmmword [eax - 0x10]
cmpneqps xmm1, xmm2
cmpneqps xmm0, xmm2
orps xmm1, xmm0
movups xmm0, xmmword [eax]
movmskps edx, xmm1
movups xmm1, xmmword [eax + 0x10]
cmpneqps xmm1, xmm2
cmpneqps xmm0, xmm2
orps xmm1, xmm0
movmskps ecx, xmm1
or edx, ecx
jne 0x43079e
mov ecx, dword [ebp - 4]
sub edi, 0x20
sub dword [ebp - 8], 0xffffff80
sub eax, 0x40
movups xmmword [edi], xmm2
movaps xmm0, xmmword [0x4765b0]
movups xmmword [edi + 0x10], xmm0
movaps xmm0, xmmword [0x4765b0]
movups xmmword [ecx], xmm0
movaps xmm0, xmmword [0x4765b0]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
mov dword [ebp - 4], ecx
cmp eax, dword [ebp - 0xc]
jae 0x430650
mov edx, edi
mov dword [ebp - 4], ecx
jmp 0x430803
movaps xmm3, xmmword [0x4765b0]
movups xmm2, xmmword [eax - 0x60]
movups xmm0, xmmword [eax - 0x50]
movups xmm1, xmmword [eax - 0x20]
cmpneqps xmm0, xmm3
cmpneqps xmm2, xmm3
cmpneqps xmm1, xmm3
orps xmm2, xmm0
movups xmm0, xmmword [eax - 0x10]
cmpneqps xmm0, xmm3
orps xmm1, xmm0
movups xmm0, xmmword [eax - 0x30]
orps xmm2, xmm1
movups xmm1, xmmword [eax + 0x10]
movmskps edx, xmm2
movups xmm2, xmmword [eax - 0x40]
cmpneqps xmm0, xmm3
cmpneqps xmm2, xmm3
cmpneqps xmm1, xmm3
orps xmm2, xmm0
movups xmm0, xmmword [eax]
cmpneqps xmm0, xmm3
orps xmm1, xmm0
orps xmm2, xmm1
movmskps ecx, xmm2
or edx, ecx
jne 0x43079b
movups xmmword [edi - 0x40], xmm3
sub edi, 0x40
movaps xmm0, xmmword [0x4765b0]
add eax, 0xffffff80
add dword [ebp - 8], 0x100
movups xmmword [edi + 0x10], xmm0
movaps xmm0, xmmword [0x4765b0]
movups xmmword [edi + 0x20], xmm0
movaps xmm0, xmmword [0x4765b0]
movups xmmword [edi + 0x30], xmm0
movaps xmm0, xmmword [0x4765b0]
movups xmmword [esi], xmm0
movaps xmm0, xmmword [0x4765b0]
movups xmmword [esi + 0x10], xmm0
movaps xmm0, xmmword [0x4765b0]
movups xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [0x4765b0]
movups xmmword [esi + 0x30], xmm0
add esi, 0x40
cmp eax, dword [ebp - 0xc]
jae 0x4306d0
mov dword [ebp - 4], esi
mov edx, edi
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 4], ecx
cmp eax, dword [ebp - 0xc]
jb 0x430803
mov edx, dword [ebp - 8]
add edx, 0x20
movups xmm2, xmmword [eax + 0x10]
sub edi, 0x10
movups xmm4, xmmword [eax]
movaps xmm1, xmm2
shufps xmm1, xmm4, 0xaa
movaps xmm3, xmm2
mulps xmm1, xmmword [edx + 0x10]
sub eax, 0x20
shufps xmm3, xmm4, 0
mulps xmm3, xmmword [edx]
subps xmm3, xmm1
movaps xmm1, xmm4
shufps xmm4, xmm2, 0x77
mulps xmm4, xmmword [edx - 0x20]
shufps xmm1, xmm2, 0xdd
mulps xmm1, xmmword [edx - 0x10]
add edx, 0x40
subps xmm4, xmm1
movups xmmword [edi], xmm4
movups xmmword [ecx], xmm3
add ecx, 0x10
cmp eax, dword [ebp - 0xc]
jae 0x4307b4
mov edx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x28]
add ecx, dword [ebx + 8]
mov dword [ebp - 8], ecx
mov eax, dword [edi + 4]
sub eax, 6
mov dword [ebp - 0xc], eax
test eax, eax
jle 0x430834
push dword [ebp - 4]
push edx
push dword [ebp - 0x14]
mov edx, dword [edi + 0x18]
push ecx
mov ecx, dword [edi]
call fcn.00430010
mov eax, dword [ebp - 0xc]
add esp, 0x10
dec eax
mov ecx, 1
mov dword [ebp - 4], ecx
mov dword [ebp - 0xc], eax
test eax, eax
jle 0x4308ad
mov esi, 2
mov dword [ebp - 0x1c], esi
nop dword [eax]
test esi, esi
jle 0x430899
mov eax, dword [ebp - 0x14]
mov edx, 4
mov edi, dword [ebp - 8]
shl edx, cl
sar eax, cl
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], eax
lea ecx, [eax*4]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x10]
push edx
push eax
mov edx, edi
call fcn.00430180
add edi, dword [ebp - 0x28]
add esp, 8
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x30]
sub esi, 1
jne 0x430873
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
dec eax
rol esi, 1
inc ecx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], ecx
mov dword [ebp - 0xc], eax
test eax, eax
jg 0x430850
mov edi, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
test eax, eax
jle 0x4308cd
mov ecx, dword [ebp - 8]
dec eax
shr eax, 5
inc eax
nop dword [eax]
call fcn.0042fd20
sub ecx, 0xffffff80
sub eax, 1
jne 0x4308c0
mov eax, dword [edi]
mov ecx, dword [ebx + 8]
mov edx, dword [edi + 0x2c]
sar eax, 1
mov dword [ebp - 0x30], ecx
lea ecx, [ecx + eax*4]
mov eax, dword [edi + 0xc]
mov edi, dword [ebp - 0x30]
mov esi, ecx
mov dword [ebp - 0x1c], eax
nop dword [eax + eax]
mov eax, dword [edx]
sub esi, 0x10
movaps xmm4, xmmword [0x4765d0]
movups xmm7, xmmword [ecx + eax*4]
mov eax, dword [edx + 4]
movaps xmm0, xmm7
movaps xmm3, xmm7
movups xmm5, xmmword [ecx + eax*4]
mov eax, dword [edx + 8]
movaps xmm6, xmm5
movups xmm2, xmmword [ecx + eax*4]
mov eax, dword [edx + 0xc]
add edx, 0x10
shufps xmm0, xmm2, 0x11
shufps xmm3, xmm2, 0x55
movups xmm1, xmmword [ecx + eax*4]
mov eax, dword [ebp - 0x1c]
shufps xmm7, xmm2, 0
shufps xmm6, xmm1, 0x11
xorps xmm6, xmm4
addps xmm6, xmm0
movaps xmm0, xmm5
shufps xmm0, xmm1, 0x55
shufps xmm5, xmm1, 0
subps xmm3, xmm0
addps xmm7, xmm5
mulps xmm6, xmmword [0x476570]
mulps xmm3, xmmword [eax + 0x10]
mulps xmm7, xmmword [eax]
add eax, 0x20
mov dword [ebp - 0x1c], eax
movaps xmm1, xmm6
xorps xmm1, xmm4
addps xmm3, xmm7
movaps xmm0, xmm3
addps xmm3, xmm6
xorps xmm0, xmm4
subps xmm1, xmm0
movups xmmword [edi], xmm3
add edi, 0x10
movhps qword [esi], xmm1
movlps qword [esi + 8], xmm1
cmp edi, esi
jb 0x4308f0
mov edi, dword [ebp - 0x10]
mov esi, dword [ebp - 0x18]
mov edx, esi
mov ecx, dword [ebx + 8]
mov eax, dword [edi + 0x14]
mov edi, dword [ebp - 0x20]
lea eax, [eax + edi*4]
mov edi, esi
nop
movups xmm5, xmmword [ecx]
sub edx, 0x10
movups xmm3, xmmword [eax]
movaps xmm2, xmm5
shufps xmm5, xmmword [ecx + 0x10], 0xdd
shufps xmm2, xmmword [ecx + 0x10], 0x88
movaps xmm0, xmm5
movups xmm1, xmmword [eax + 0x10]
add ecx, 0x20
mulps xmm0, xmmword [eax + 0x10]
mulps xmm5, xmmword [eax]
add eax, 0x20
mulps xmm3, xmm2
mulps xmm1, xmm2
subps xmm3, xmm0
addps xmm5, xmm1
shufps xmm3, xmm3, 0x1b
xorps xmm5, xmmword [0x476600]
movups xmmword [edx], xmm3
movups xmmword [edi], xmm5
add edi, 0x10
cmp ecx, edx
jb 0x4309a0
mov edi, dword [ebp - 0x24]
mov ecx, esi
mov eax, dword [ebx + 8]
lea edx, [edi + 8]
add edi, 8
lea edx, [eax + edx*4]
lea edi, [eax + edi*4]
movups xmm4, xmmword [ecx - 0x10]
lea edi, [edi - 0x40]
movups xmm2, xmmword [ecx - 0x20]
lea edx, [edx + 0x40]
movups xmm3, xmmword [ecx - 0x30]
lea eax, [edx - 0x20]
movups xmm1, xmmword [ecx - 0x40]
sub ecx, 0x40
movups xmmword [edi + 0x10], xmm4
movups xmmword [edi], xmm2
movups xmmword [edi - 0x10], xmm3
movups xmmword [edi - 0x20], xmm1
movaps xmm0, xmmword [0x476600]
shufps xmm4, xmm4, 0x1b
shufps xmm2, xmm2, 0x1b
xorps xmm4, xmm0
movups xmmword [edx - 0x60], xmm4
xorps xmm2, xmm0
shufps xmm3, xmm3, 0x1b
shufps xmm1, xmm1, 0x1b
xorps xmm3, xmm0
movups xmmword [edx - 0x50], xmm2
xorps xmm1, xmm0
movups xmmword [edx - 0x40], xmm3
movups xmmword [edx - 0x30], xmm1
cmp eax, ecx
jb 0x430a02
cmp dword [ebp - 0x24], 0x10
mov eax, esi
mov ecx, dword [ebp - 8]
jle 0x430af5
nop dword [eax]
nop word [eax + eax]
movups xmm0, xmmword [esi + 0x70]
lea esi, [esi + 0x80]
movups xmm1, xmmword [esi - 0x20]
add eax, 0xffffff80
movups xmm2, xmmword [esi - 0x30]
movups xmm3, xmmword [esi - 0x40]
movups xmm4, xmmword [esi - 0x50]
movups xmm5, xmmword [esi - 0x60]
movups xmm6, xmmword [esi - 0x70]
movups xmm7, xmmword [esi - 0x80]
shufps xmm0, xmm0, 0x1b
movups xmmword [eax], xmm0
shufps xmm1, xmm1, 0x1b
movups xmmword [eax + 0x10], xmm1
shufps xmm2, xmm2, 0x1b
movups xmmword [eax + 0x20], xmm2
shufps xmm3, xmm3, 0x1b
movups xmmword [eax + 0x30], xmm3
shufps xmm4, xmm4, 0x1b
movups xmmword [eax + 0x40], xmm4
shufps xmm5, xmm5, 0x1b
movups xmmword [eax + 0x50], xmm5
shufps xmm6, xmm6, 0x1b
shufps xmm7, xmm7, 0x1b
movups xmmword [eax + 0x60], xmm6
movups xmmword [eax + 0x70], xmm7
cmp eax, ecx
ja 0x430a80
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
movups xmm0, xmmword [esi + 0x30]
lea esi, [esi + 0x40]
movups xmm1, xmmword [esi - 0x20]
sub eax, 0x40
movups xmm2, xmmword [esi - 0x30]
movups xmm3, xmmword [esi - 0x40]
shufps xmm0, xmm0, 0x1b
movups xmmword [eax], xmm0
shufps xmm1, xmm1, 0x1b
movups xmmword [eax + 0x10], xmm1
shufps xmm2, xmm2, 0x1b
shufps xmm3, xmm3, 0x1b
movups xmmword [eax + 0x20], xmm2
movups xmmword [eax + 0x30], xmm3
cmp eax, ecx
ja 0x430af5
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret