Function at 0x56f2e0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
and esp, 0xfffffff0
push ebp
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push esi
push edi
sub esp, 0x110
xor edx, edx
mov eax, dword [0x81eca8]
test eax, eax
mov dword [ebp - 0x100], eax
cmovg edx, eax
mov eax, edx
shl eax, 4
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0x104], esp
add eax, 0xf
and eax, 0xfffffff0
call fcn.0063fc60
mov eax, esp
mov dword [ebp - 0xc], eax
xor esi, esi
mov eax, dword [0x81ecb0]
test eax, eax
cmovle eax, esi
shl eax, 4
imul eax, edx
add eax, 0xf
and eax, 0xfffffff0
call fcn.0063fc60
mov eax, esp
mov dword [ebp - 0xfc], eax
mov eax, dword [ecx]
mov dword [ebp - 0x10], eax
test eax, eax
jle 0x56f39a
mov edx, eax
shr edx, 1
test edx, edx
jbe 0x57024e
xor ecx, ecx
mov esi, dword [ebp - 0xc]
xor eax, eax
pxor xmm0, xmm0
inc ecx
movups xmmword [eax + esi], xmm0
movups xmmword [eax + esi + 0x10], xmm0
add eax, 0x20
cmp ecx, edx
jb 0x56f36e
lea edx, [ecx + ecx + 1]
lea eax, [edx - 1]
cmp eax, dword [ebp - 0x10]
jae 0x56f39a
shl edx, 4
mov eax, dword [ebp - 0xc]
pxor xmm0, xmm0
movups xmmword [edx + eax - 0x10], xmm0
mov eax, dword [ebx + 8]
mov edx, dword [eax]
mov dword [ebp - 0xe4], edx
test edx, edx
jle 0x57023f
mov edx, dword [0x6c7a94]
xor eax, eax
mov esi, dword [0x6c7a90]
imul edx, esi
mov ecx, dword [0x6c7a68]
sub ecx, edx
mov edx, dword [0x6c7a88]
add ecx, esi
shl edx, 4
sub ecx, edx
mov edi, dword [ebp - 0x10]
shr edi, 1
mov dword [ebp - 0xf8], edi
mov edi, dword [ebp - 0x100]
lea edx, [ecx + 0x10]
shl edi, 4
mov dword [ebp - 0x10c], edi
mov edi, dword [ebp - 0xfc]
mov dword [ebp - 0xec], edx
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xf4], edi
mov dword [ebp - 0x108], eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0x118], ecx
mov dword [ebp - 0x110], esi
mov edx, dword [ebp - 0xf8]
cmp dword [ebp - 0x10], 0
jg 0x56f465
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x110]
lea edi, [ebp - 0xf0]
mov esi, dword [edi]
inc esi
add dword [ebp - 0xf4], eax
add dword [ebp - 0xe8], eax
add dword [ebp - 0xec], ecx
add dword [ebp - 0x108], ecx
mov dword [edi], esi
cmp esi, dword [ebp - 0xe4]
jb 0x56f426
jmp 0x56f4dc
mov eax, dword [ebp - 0x10]
shl eax, 4
mov dword [ebp - 0x114], eax
mov esi, dword [ebp - 0xe8]
mov edx, dword [ebp - 0xec]
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0xf0]
cmp dword [ebp - 0x10], 6
jle 0x5701a5
push dword [ebp - 0x114]
push edx
push eax
mov dword [ebp - 0xec], edx
mov dword [ebp - 0xf4], eax
call fcn.0062a530
mov eax, dword [ebp - 0xf4]
add esp, 0xc
mov edx, dword [ebp - 0xec]
mov ecx, dword [ebp - 0x10c]
add eax, ecx
add esi, ecx
inc edi
mov ecx, dword [ebp - 0x110]
add edx, ecx
add dword [ebp - 0x108], ecx
cmp edi, dword [ebp - 0xe4]
jb 0x56f489
mov eax, dword [ebx + 0x20]
mov edi, dword [0x6c6ed4]
neg edi
mov eax, dword [eax]
add edi, eax
imul edi, dword [0x6c6ed0]
mov esi, dword [0x6c6ec8]
shl esi, 4
mov edx, dword [0x6c6ea8]
sub edx, esi
add edi, edx
mov edx, dword [0x6c6e4c]
neg edx
mov ecx, dword [ebp - 0x100]
add edx, eax
shl ecx, 4
mov dword [ebp - 0x108], ecx
mov ecx, dword [0x6c6e40]
shl ecx, 3
imul edx, dword [0x6c6e48]
mov esi, dword [0x6c6e20]
sub esi, ecx
mov ecx, dword [0x6c6e1c]
add edx, esi
neg ecx
add ecx, eax
imul ecx, dword [0x6c6e18]
mov dword [ebp - 0xe0], edi
mov edi, dword [0x6c6e10]
shl edi, 3
mov esi, dword [0x6c6df0]
sub esi, edi
mov edi, dword [ebx + 0x1c]
add ecx, esi
mov dword [ebp - 0xf4], 0
mov dword [ebp - 0xf8], eax
movsd xmm0, qword [edi]
mov dword [ebp - 0xdc], ecx
unpcklpd xmm0, xmm0
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0x10]
mov edi, eax
shl edi, 4
mov esi, dword [ebp - 0xe0]
movsd xmm2, qword [edx + eax*8 + 8]
movups xmm3, xmmword [esi + edi + 0x10]
mov esi, dword [ebp - 0xdc]
mulpd xmm3, xmm0
movsd xmm1, qword [esi + eax*8 + 8]
test ecx, ecx
jle 0x56f99f
cmp ecx, 2
jl 0x57019e
xor esi, esi
mov edi, ecx
mov dword [ebp - 0xe8], esi
and edi, 0xfffffffe
mov dword [ebp - 0xec], esi
mov esi, dword [ebp - 0x108]
imul esi, eax
add esi, dword [ebp - 0xfc]
test byte [ebx + 0x18], 0xf
je 0x56f732
movaps xmm6, xmm2
movaps xmm4, xmm1
unpcklpd xmm6, xmm6
unpcklpd xmm4, xmm4
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], esi
movups xmmword [ebp - 0xc8], xmm4
movups xmmword [ebp - 0xb8], xmm6
movsd qword [ebp - 0x28], xmm1
movsd qword [ebp - 0x20], xmm2
movups xmmword [ebp - 0xa8], xmm3
movups xmmword [ebp - 0x118], xmm0
mov dword [ebp - 0xf0], edx
mov dword [ebp - 0xf4], eax
mov esi, dword [ebp - 0xec]
mov edi, dword [ebp - 0xe8]
mov eax, dword [ebx + 0x14]
add esp, 0xffffffec
movups xmm1, xmmword [0x68ef60]
mov edx, dword [ebx + 0x10]
pxor xmm4, xmm4
movups xmm3, xmmword [eax + edi*8]
movups xmm0, xmmword [edx + edi*8]
mulpd xmm1, xmm3
mov ecx, dword [ebx + 0x18]
lea eax, [ebp - 0xd8]
subpd xmm1, xmm0
movups xmm2, xmmword [ecx + edi*8]
subpd xmm1, xmm2
subpd xmm3, xmm2
mulpd xmm1, xmmword [eax + 0x20]
mulpd xmm3, xmmword [eax + 0x10]
addpd xmm1, xmm3
mov dword [esp], eax
movaps xmm0, xmm1
movups xmm5, xmmword [eax + 0x30]
unpcklpd xmm0, xmm4
unpckhpd xmm1, xmm4
movups xmmword [esp + 4], xmm5
movups xmmword [ebp - 0x68], xmm0
movups xmmword [ebp - 0x58], xmm1
call fcn.0061fed0
mov eax, dword [ebp - 0x14]
add edi, 2
movups xmm3, xmmword [ebp - 0xd8]
add esp, 0x14
movaps xmm4, xmm3
movups xmm2, xmmword [esi + eax]
movsd xmm6, qword [esi + eax + 8]
movups xmm5, xmmword [esi + eax + 0x10]
movsd xmm7, qword [esi + eax + 0x18]
xorps xmm4, xmmword [0x68ef50]
shufpd xmm4, xmm4, 1
unpcklpd xmm2, xmm2
unpcklpd xmm6, xmm6
unpcklpd xmm5, xmm5
unpcklpd xmm7, xmm7
mulpd xmm2, xmm3
mulpd xmm6, xmm4
mulpd xmm5, xmm3
mulpd xmm7, xmm4
addpd xmm6, xmm2
addpd xmm7, xmm5
movups xmm1, xmmword [ebp - 0x58]
movups xmm0, xmmword [ebp - 0x68]
addpd xmm0, xmm6
addpd xmm1, xmm7
movups xmmword [esi + eax], xmm0
movups xmmword [esi + eax + 0x10], xmm1
add esi, 0x20
cmp edi, dword [ebp - 0x18]
jb 0x56f641
jmp 0x56f86e
movaps xmm6, xmm2
movaps xmm4, xmm1
unpcklpd xmm6, xmm6
unpcklpd xmm4, xmm4
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], esi
movups xmmword [ebp - 0x98], xmm4
movups xmmword [ebp - 0x88], xmm6
movsd qword [ebp - 0x28], xmm1
movsd qword [ebp - 0x20], xmm2
movups xmmword [ebp - 0xa8], xmm3
movups xmmword [ebp - 0x118], xmm0
mov dword [ebp - 0xf0], edx
mov dword [ebp - 0xf4], eax
mov esi, dword [ebp - 0xec]
mov edi, dword [ebp - 0xe8]
mov eax, dword [ebx + 0x14]
add esp, 0xffffffec
movups xmm1, xmmword [0x68ef60]
mov edx, dword [ebx + 0x10]
pxor xmm3, xmm3
movups xmm2, xmmword [eax + edi*8]
movups xmm0, xmmword [edx + edi*8]
mulpd xmm1, xmm2
subpd xmm1, xmm0
mov ecx, dword [ebx + 0x18]
lea eax, [ebp - 0xd8]
subpd xmm1, xmmword [ecx + edi*8]
subpd xmm2, xmmword [ecx + edi*8]
mulpd xmm1, xmmword [eax + 0x50]
mulpd xmm2, xmmword [eax + 0x40]
addpd xmm1, xmm2
mov dword [esp], eax
movaps xmm0, xmm1
movups xmm4, xmmword [eax + 0x30]
unpcklpd xmm0, xmm3
unpckhpd xmm1, xmm3
movups xmmword [esp + 4], xmm4
movups xmmword [ebp - 0x48], xmm0
movups xmmword [ebp - 0x38], xmm1
call fcn.0061fed0
mov eax, dword [ebp - 0x14]
add edi, 2
movups xmm3, xmmword [ebp - 0xd8]
add esp, 0x14
movaps xmm4, xmm3
movups xmm2, xmmword [esi + eax]
movsd xmm6, qword [esi + eax + 8]
movups xmm5, xmmword [esi + eax + 0x10]
movsd xmm7, qword [esi + eax + 0x18]
xorps xmm4, xmmword [0x68ef50]
shufpd xmm4, xmm4, 1
unpcklpd xmm2, xmm2
unpcklpd xmm6, xmm6
unpcklpd xmm5, xmm5
unpcklpd xmm7, xmm7
mulpd xmm2, xmm3
mulpd xmm6, xmm4
mulpd xmm5, xmm3
mulpd xmm7, xmm4
addpd xmm6, xmm2
addpd xmm7, xmm5
movups xmm1, xmmword [ebp - 0x38]
movups xmm0, xmmword [ebp - 0x48]
addpd xmm0, xmm6
addpd xmm1, xmm7
movups xmmword [esi + eax], xmm0
movups xmmword [esi + eax + 0x10], xmm1
add esi, 0x20
cmp edi, dword [ebp - 0x18]
jb 0x56f784
movsd xmm1, qword [ebp - 0x28]
movsd xmm2, qword [ebp - 0x20]
movups xmm3, xmmword [ebp - 0xa8]
movups xmm0, xmmword [ebp - 0x118]
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0x10]
mov esi, edi
shl esi, 4
cmp edi, ecx
jae 0x56f99f
mov dword [ebp - 0x18], edi
mov edi, dword [ebp - 0x108]
imul edi, eax
movsd qword [ebp - 0x28], xmm1
movsd qword [ebp - 0x20], xmm2
movups xmmword [ebp - 0xa8], xmm3
movups xmmword [ebp - 0x118], xmm0
add edi, dword [ebp - 0xfc]
mov dword [ebp - 0xf0], edx
add esi, edi
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0xf4], eax
mov edx, dword [ebx + 0x14]
add esp, 0xffffffec
movsd xmm1, qword [0x68ef98]
mov eax, dword [ebx + 0x10]
pxor xmm2, xmm2
mulsd xmm1, qword [edx + edi*8]
mov ecx, dword [ebx + 0x18]
movsd xmm0, qword [edx + edi*8]
subsd xmm1, qword [eax + edi*8]
subsd xmm0, qword [ecx + edi*8]
subsd xmm1, qword [ecx + edi*8]
mulsd xmm0, qword [ebp - 0x28]
mulsd xmm1, qword [ebp - 0x20]
addsd xmm1, xmm0
movsd xmm2, xmm1
lea eax, [ebp - 0xd8]
movups xmmword [ebp - 0x78], xmm2
mov dword [esp], eax
movups xmm3, xmmword [eax + 0x30]
movups xmmword [esp + 4], xmm3
call fcn.0061fed0
movups xmm3, xmmword [esi]
movups xmm0, xmmword [ebp - 0xd8]
movaps xmm2, xmm3
movaps xmm1, xmm0
inc edi
xorps xmm1, xmmword [0x68ef50]
add esp, 0x14
shufpd xmm1, xmm1, 1
unpcklpd xmm2, xmm3
unpckhpd xmm3, xmm3
mulpd xmm2, xmm0
mulpd xmm3, xmm1
addpd xmm3, xmm2
movups xmm4, xmmword [ebp - 0x78]
addpd xmm4, xmm3
movups xmmword [esi], xmm4
add esi, 0x10
cmp edi, dword [ebp - 0x10]
jb 0x56f8e0
movups xmm0, xmmword [ebp - 0x118]
mov edx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0x10]
inc eax
cmp eax, dword [ebp - 0xe4]
jb 0x56f58c
mov esi, dword [0x6c6e98]
mov edi, dword [0x6c6e94]
pxor xmm1, xmm1
imul esi, edi
fld1
mov ecx, dword [ebp - 0x10]
mov edx, ecx
shr edx, 1
mov dword [ebp - 0xe8], edx
mov eax, dword [ebp - 0xf8]
mov edx, dword [0x6c6e60]
sub edx, esi
mov esi, dword [0x6c6e88]
shr ecx, 2
mov dword [ebp - 0xb8], ecx
sub eax, dword [0x6c6ea4]
mov ecx, dword [0x6c6e8c]
imul ecx, esi
imul eax, dword [0x6c6ea0]
neg ecx
add eax, edx
mov edx, dword [0x6c6e80]
add ecx, edi
mov dword [ebp - 0xf4], edi
mov edi, esi
shl edx, 4
sub edi, edx
add edi, ecx
add edi, eax
mov dword [ebp - 0x110], edi
lea edi, [esi + esi]
sub edi, edx
add edi, ecx
add edi, eax
mov dword [ebp - 0xf0], edi
lea edi, [esi + esi*2]
sub edi, edx
add edi, ecx
add edi, eax
mov dword [ebp - 0x10c], edi
lea edi, [esi*4]
sub edi, edx
add ecx, edi
mov dword [ebp - 0xec], 0
add eax, ecx
mov dword [ebp - 0x9c], esi
mov dword [ebp - 0xf8], eax
mov ecx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xec]
mov edx, dword [ebp - 0xc]
fld qword [0x68ef78]
wait
mov edi, esi
fld qword [0x68ef78]
wait
shl edi, 4
mov eax, dword [ebp - 0xe0]
cmp dword [ebp - 0x10], 0
movups xmm0, xmmword [eax + edi + 0x10]
movsd qword [ebp - 0x118], xmm0
fld qword [ebp - 0x118]
wait
unpckhpd xmm0, xmm0
fld st(0)
movsd qword [ebp - 0x118], xmm0
fmul st(1)
wait
fxch st(1)
fmul st(3), st(0)
wait
fld qword [ebp - 0x118]
wait
fld st(0)
fmul st(1)
wait
movsd qword [ebp - 0x118], xmm1
faddp st(3)
wait
fxch st(2)
fdivr st(5)
wait
fxch st(2)
fmul st(3), st(0)
wait
fld qword [ebp - 0x118]
wait
fld st(0)
fmulp st(2)
wait
fxch st(1)
faddp st(5)
wait
fxch st(2)
fmul st(4), st(0)
wait
fxch st(4)
fstp qword [ebp - 0x118]
wait
fmulp st(1)
wait
movsd xmm2, qword [ebp - 0x118]
fsubrp st(1)
wait
fmulp st(1)
wait
fstp qword [ebp - 0x118]
wait
movhpd xmm2, qword [ebp - 0x118]
movaps xmm3, xmm2
xorps xmm3, xmmword [0x68ef50]
shufpd xmm3, xmm3, 1
jle 0x57018a
mov eax, dword [ebp - 0x108]
imul eax, esi
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0xf4]
imul eax, esi
mov edi, dword [ebp - 0x110]
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xec], esi
add edi, eax
mov dword [ebp - 0xbc], edi
mov edi, dword [ebp - 0xf0]
add edi, eax
mov dword [ebp - 0xc0], edi
mov edi, dword [ebp - 0x10c]
add edi, eax
add eax, dword [ebp - 0xf8]
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edi
mov eax, dword [ebp - 0xdc]
cmp dword [ebp - 0xb8], 0
jbe 0x570180
mov ecx, eax
xor esi, esi
shl ecx, 4
mov edi, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xbc]
mov dword [ebp - 0xb0], ecx
add edi, ecx
mov dword [ebp - 0xa4], edi
add edx, ecx
mov edi, dword [ebp - 0xc4]
mov dword [ebp - 0xb4], edx
mov dword [ebp - 0xdc], eax
add edi, ecx
mov dword [ebp - 0xa8], edi
mov edi, dword [ebp - 0xc8]
add edi, ecx
mov ecx, esi
mov dword [ebp - 0xac], edi
mov edi, dword [ebp - 0xb4]
mov dword [ebp - 0xa0], esi
shl esi, 6
movups xmm4, xmmword [edi + ecx*4 + 0x10]
mov edx, dword [ebp - 0x94]
movaps xmm5, xmm4
xorps xmm5, xmmword [0x68ef50]
shufpd xmm5, xmm5, 1
movups xmm6, xmmword [edx + esi]
movsd xmm0, qword [edx + esi + 8]
unpcklpd xmm6, xmm6
unpcklpd xmm0, xmm0
mulpd xmm6, xmm4
mulpd xmm0, xmm5
addpd xmm0, xmm6
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0xb0]
movups xmm5, xmmword [edx + esi + 0x10]
movsd xmm6, qword [edx + esi + 0x18]
addpd xmm0, xmmword [edi + eax]
mov edi, dword [ebp - 0xa4]
unpcklpd xmm5, xmm5
unpcklpd xmm6, xmm6
movups xmm7, xmmword [edi + ecx*4 + 0x10]
movaps xmm4, xmm7
xorps xmm4, xmmword [0x68ef50]
shufpd xmm4, xmm4, 1
mulpd xmm5, xmm7
mulpd xmm6, xmm4
mov edi, dword [ebp - 0xa8]
addpd xmm6, xmm5
movups xmm7, xmmword [edi + ecx*4 + 0x10]
addpd xmm0, xmm6
movaps xmm4, xmm7
movups xmm5, xmmword [edx + esi + 0x20]
movsd xmm6, qword [edx + esi + 0x28]
xorps xmm4, xmmword [0x68ef50]
shufpd xmm4, xmm4, 1
unpcklpd xmm5, xmm5
unpcklpd xmm6, xmm6
mulpd xmm5, xmm7
mulpd xmm6, xmm4
mov edi, dword [ebp - 0xac]
addpd xmm6, xmm5
movups xmm7, xmmword [edi + ecx*4 + 0x10]
addpd xmm0, xmm6
movaps xmm4, xmm7
movups xmm5, xmmword [edx + esi + 0x30]
movsd xmm6, qword [edx + esi + 0x38]
xorps xmm4, xmmword [0x68ef50]
shufpd xmm4, xmm4, 1
unpcklpd xmm5, xmm5
unpcklpd xmm6, xmm6
mulpd xmm5, xmm7
mulpd xmm6, xmm4
addpd xmm6, xmm5
addpd xmm0, xmm6
mov edx, dword [ebp - 0xb0]
mov esi, dword [ebp - 0xa0]
inc esi
add ecx, dword [ebp - 0x9c]
movups xmmword [edx + eax], xmm0
cmp esi, dword [ebp - 0xb8]
jb 0x56fbf4
mov eax, dword [ebp - 0xdc]
lea esi, [esi*4 + 1]
dec esi
mov ecx, dword [ebp - 0x9c]
imul ecx, esi
cmp esi, dword [ebp - 0x10]
jae 0x56fdc1
mov edx, eax
shl edx, 4
mov edi, dword [ebp - 0xbc]
mov dword [ebp - 0xdc], eax
add edi, edx
mov dword [ebp - 0x98], edi
nop dword [eax]
mov eax, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
movups xmm0, xmmword [ecx + eax + 0x10]
mov eax, esi
movaps xmm4, xmm0
shl eax, 4
inc esi
xorps xmm4, xmmword [0x68ef50]
shufpd xmm4, xmm4, 1
add ecx, dword [ebp - 0x9c]
movups xmm5, xmmword [edi + eax]
movsd xmm6, qword [edi + eax + 8]
unpcklpd xmm5, xmm5
unpcklpd xmm6, xmm6
mulpd xmm5, xmm0
mulpd xmm6, xmm4
addpd xmm6, xmm5
mov edi, dword [ebp - 0xc]
addpd xmm6, xmmword [edx + edi]
movups xmmword [edx + edi], xmm6
cmp esi, dword [ebp - 0x10]
jb 0x56fd60
mov eax, dword [ebp - 0xdc]
inc eax
cmp eax, dword [ebp - 0x10]
jb 0x56fb9a
mov ecx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xec]
mov edx, dword [ebp - 0xc]
test ecx, ecx
jbe 0x570176
xor edi, edi
xor eax, eax
nop dword [eax]
nop dword [eax]
movups xmm0, xmmword [eax + edx]
inc edi
movsd xmm4, qword [eax + edx + 8]
movups xmm5, xmmword [eax + edx + 0x10]
movsd xmm6, qword [eax + edx + 0x18]
unpcklpd xmm0, xmm0
unpcklpd xmm4, xmm4
unpcklpd xmm5, xmm5
unpcklpd xmm6, xmm6
mulpd xmm0, xmm2
mulpd xmm4, xmm3
mulpd xmm5, xmm2
mulpd xmm6, xmm3
addpd xmm4, xmm0
addpd xmm6, xmm5
movups xmmword [eax + edx], xmm4
movups xmmword [eax + edx + 0x10], xmm6
add eax, 0x20
cmp edi, ecx
jb 0x56fdf0
lea edi, [edi + edi + 1]
lea eax, [edi - 1]
cmp eax, dword [ebp - 0x10]
jae 0x56fe7d
shl edi, 4
movaps xmm4, xmm2
unpcklpd xmm4, xmm2
unpckhpd xmm2, xmm2
movups xmm0, xmmword [edi + edx - 0x10]
movaps xmm3, xmm0
xorps xmm3, xmmword [0x68ef50]
shufpd xmm3, xmm3, 1
mulpd xmm4, xmm0
mulpd xmm2, xmm3
addpd xmm2, xmm4
movups xmmword [edi + edx - 0x10], xmm2
inc esi
cmp esi, dword [ebp - 0xe4]
jb 0x56fa74
fstp st(0)
mov ecx, dword [0x6c7b90]
mov esi, dword [0x6c7bb0]
cmp dword [ebp - 0x10], 2
jl 0x57016f
mov eax, 1
lea edx, [esi*8]
neg edx
add edx, ecx
mov dword [ebp - 0x114], edx
lea edx, [edx + 8]
and edx, 0xf
cmovne edx, eax
lea edi, [edx + 2]
cmp edi, dword [ebp - 0x10]
jg 0x57016f
mov edi, dword [ebp - 0x10]
mov eax, edi
sub eax, edx
and eax, 1
neg eax
add eax, edi
test edx, edx
jbe 0x56ff31
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x110], ecx
mov dword [ebp - 0x10c], esi
mov dword [ebp - 0x108], eax
mov ecx, dword [ebp - 0x118]
mov esi, dword [ebp - 0x114]
mov edi, dword [ebp - 0xc]
mov eax, ecx
shl eax, 4
movsd xmm0, qword [edi + eax]
movsd qword [esi + ecx*8 + 8], xmm0
inc ecx
cmp ecx, edx
jb 0x56ff0a
mov ecx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x108]
mov esi, dword [ebp - 0x10c]
mov dword [ebp - 0x10c], esi
mov dword [ebp - 0x110], ecx
mov esi, dword [ebp - 0x114]
mov edi, dword [ebp - 0xc]
mov ecx, edx
shl ecx, 4
add ecx, edi
movsd xmm0, qword [ecx]
movhpd xmm0, qword [ecx + 0x10]
movups xmmword [esi + edx*8 + 8], xmm0
add edx, 2
cmp edx, eax
jb 0x56ff46
mov ecx, dword [ebp - 0x110]
mov esi, dword [ebp - 0x10c]
cmp eax, dword [ebp - 0x10]
jae 0x56ff93
shl esi, 3
mov edi, dword [ebp - 0xc]
sub ecx, esi
mov esi, dword [ebp - 0x10]
mov edx, eax
shl edx, 4
movsd xmm0, qword [edi + edx]
movsd qword [ecx + eax*8 + 8], xmm0
inc eax
cmp eax, esi
jb 0x56ff7e
cmp dword [ebp - 0xe4], 0
jle 0x5700c3
mov edx, dword [0x6c7a94]
xor eax, eax
mov esi, dword [0x6c7a90]
imul edx, esi
mov ecx, dword [0x6c7a68]
sub ecx, edx
mov edx, dword [0x6c7a88]
add ecx, esi
shl edx, 4
sub ecx, edx
mov edi, dword [ebp - 0x10]
mov edx, dword [ebp - 0xfc]
shr edi, 1
mov dword [ebp - 0x108], edi
lea edi, [ecx + 0x10]
mov dword [ebp - 0xf0], edx
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xf8], edi
shl dword [ebp - 0x100], 4
mov edx, dword [ebp - 0x108]
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0xec], eax
mov dword [ebp - 0x118], ecx
mov dword [ebp - 0x110], esi
cmp dword [ebp - 0x10], 0
jg 0x570050
mov eax, dword [ebp - 0x100]
mov ecx, dword [ebp - 0x110]
lea edi, [ebp - 0xf4]
mov esi, dword [edi]
inc esi
add dword [ebp - 0xf0], eax
add dword [ebp - 0xec], eax
add dword [ebp - 0xf8], ecx
add dword [ebp - 0x10c], ecx
mov dword [edi], esi
cmp esi, dword [ebp - 0xe4]
jb 0x570011
jmp 0x5700c3
mov eax, dword [ebp - 0x10]
shl eax, 4
mov dword [ebp - 0x114], eax
mov esi, dword [ebp - 0xec]
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xf8]
mov edi, dword [ebp - 0xf4]
cmp dword [ebp - 0x10], 6
jle 0x5700d5
push dword [ebp - 0x114]
push eax
push edx
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xf8], edx
call fcn.0062a530
mov edx, dword [ebp - 0xf8]
add esp, 0xc
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x100]
add eax, ecx
add esi, ecx
inc edi
mov ecx, dword [ebp - 0x110]
add edx, ecx
add dword [ebp - 0x10c], ecx
cmp edi, dword [ebp - 0xe4]
jb 0x570074
mov eax, dword [ebp - 0x104]
mov esp, eax
lea esp, [ebp - 8]
pop edi
pop esi
pop ebp
mov esp, ebx
pop ebx
ret
mov dword [ebp - 0xf8], edx
mov edx, dword [ebp - 0x108]
mov dword [ebp - 0xec], esi
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xf4], edi
test edx, edx
jbe 0x570168
mov ecx, dword [ebp - 0x118]
xor eax, eax
mov esi, dword [ebp - 0x10c]
lea edi, [ecx + esi]
mov ecx, dword [ebp - 0xf0]
xor esi, esi
movups xmm0, xmmword [ecx]
inc eax
movups xmm1, xmmword [ecx + 0x10]
add ecx, 0x20
movups xmmword [esi + edi + 0x10], xmm0
movups xmmword [esi + edi + 0x20], xmm1
add esi, 0x20
cmp eax, edx
jb 0x570110
lea eax, [eax + eax + 1]
lea ecx, [eax - 1]
cmp ecx, dword [ebp - 0x10]
jae 0x570017
shl eax, 4
mov ecx, dword [ebp - 0xfc]
mov edi, dword [ebp - 0xec]
lea esi, [ecx + eax]
add eax, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x10c]
movups xmm0, xmmword [esi + edi - 0x10]
movups xmmword [eax + ecx], xmm0
jmp 0x570017
mov eax, 1
jmp 0x570130
xor eax, eax
jmp 0x56ff6e
mov edi, 1
jmp 0x56fe42
mov esi, 1
jmp 0x56fd30
inc esi
cmp esi, dword [ebp - 0xe4]
jb 0x56fa74
fstp st(0)
jmp 0x56ff93
xor edi, edi
jmp 0x56f898
mov dword [ebp - 0xec], edx
mov edx, dword [ebp - 0xf8]
mov dword [ebp - 0xe8], esi
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xf0], edi
test edx, edx
jbe 0x570238
mov esi, dword [ebp - 0x108]
xor eax, eax
mov ecx, dword [ebp - 0x118]
lea edi, [ecx + esi]
mov ecx, dword [ebp - 0xf4]
xor esi, esi
movups xmm0, xmmword [esi + edi + 0x10]
movups xmm1, xmmword [esi + edi + 0x20]
inc eax
add esi, 0x20
movups xmmword [ecx], xmm0
movups xmmword [ecx + 0x10], xmm1
add ecx, 0x20
cmp eax, edx
jb 0x5701e0
lea eax, [eax + eax + 1]
lea ecx, [eax - 1]
cmp ecx, dword [ebp - 0x10]
jae 0x56f42c
shl eax, 4
mov ecx, dword [ebp - 0x118]
mov edi, dword [ebp - 0x108]
lea esi, [ecx + eax]
add eax, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xe8]
movups xmm0, xmmword [esi + edi]
movups xmmword [eax + ecx - 0x10], xmm0
jmp 0x56f42c
mov eax, 1
jmp 0x570200
cmp dword [ebp - 0x10], 0
jg 0x56fe8c
jmp 0x5700c3
mov edx, 1
jmp 0x56f383