Function at 0x102346b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x10f8
call fcn.10512080
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0x10f4], eax
mov ecx, dword [ebp + 0x24]
movsd xmm4, qword [ebp + 0x44]
movsd xmm5, qword [ebp + 0x3c]
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 0x28]
unpcklpd xmm4, xmm4
unpcklpd xmm5, xmm5
mov dword [esp + 0x2c], ecx
mov ecx, dword [ebp + 0x2c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
push esi
mov esi, dword [ebp + 8]
mov dword [esp + 0xc], esi
push edi
mov edi, eax
movups xmmword [esp + 0xb0], xmm4
movups xmmword [esp + 0xd0], xmm5
test edx, edx
jle 0x102347b8
mov dword [esp + 0x14], edx
xor eax, eax
cmp dword [ebp + 0x18], eax
jle 0x1023478e
xorps xmm3, xmm3
mov edx, edi
sub esi, edi
nop dword [eax]
nop dword [eax + eax]
mov dword [ecx], 0
lea edx, [edx + 0x10]
movups xmm1, xmmword [esi + edx - 0x10]
movups xmm0, xmmword [edx - 0x10]
movaps xmm2, xmm1
pmaxub xmm2, xmm0
pminub xmm1, xmm0
psubusb xmm2, xmm1
movaps xmm0, xmm2
punpckhbw xmm2, xmm3
punpcklbw xmm0, xmm3
pmullw xmm0, xmm0
pmullw xmm2, xmm2
movups xmmword [ecx + eax*2 + 4], xmm0
movups xmmword [ecx + eax*2 + 0x14], xmm2
add eax, 0x10
cmp eax, dword [ebp + 0x18]
jl 0x10234740
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 0x18]
add esi, dword [ebp + 0xc]
add edi, dword [ebp + 0x14]
mov dword [esp + 0x10], esi
mov dword [ecx + eax*2 + 4], 0
add ecx, 0x48
sub edx, 1
mov dword [esp + 0x14], edx
jne 0x10234726
mov edx, dword [ebp + 0x1c]
jmp 0x102347bb
mov eax, dword [ebp + 0x18]
xor esi, esi
test eax, eax
jle 0x102349c7
lea ecx, [eax - 4]
xorps xmm1, xmm1
mov dword [esp + 0x18], ecx
nop
mov eax, dword [esp + 0x1c]
lea eax, [eax + esi*2]
movups xmm7, xmmword [eax]
movaps xmm0, xmm7
punpckhwd xmm7, xmm1
punpcklwd xmm0, xmm1
test esi, esi
jne 0x102347ee
pshufd xmm0, xmm0, 0xea
cmp esi, ecx
jl 0x102347f7
pshufd xmm7, xmm7, 0x54
movups xmm2, xmmword [eax + 0x48]
movaps xmm5, xmm2
punpckhwd xmm2, xmm1
punpcklwd xmm5, xmm1
movaps xmmword [esp + 0x40], xmm5
test esi, esi
jne 0x10234819
pshufd xmm5, xmm5, 0xea
movaps xmmword [esp + 0x40], xmm5
cmp esi, ecx
jl 0x10234822
pshufd xmm2, xmm2, 0x54
movups xmm3, xmmword [eax + 0x90]
movaps xmm6, xmm3
punpckhwd xmm3, xmm1
punpcklwd xmm6, xmm1
test esi, esi
jne 0x1023483d
pshufd xmm6, xmm6, 0xea
cmp esi, ecx
jl 0x10234846
pshufd xmm3, xmm3, 0x54
add eax, 0xd8
movaps xmmword [esp + 0x70], xmm0
movaps xmm4, xmm0
mov dword [esp + 0x10], eax
xor edi, edi
movaps xmmword [esp + 0x80], xmm7
movaps xmmword [esp + 0x60], xmm4
movaps xmmword [esp + 0x50], xmm7
test edx, edx
jle 0x102349ab
add edx, 0xfffffffc
mov dword [esp + 0x24], edx
lea edx, [esp + 0xf8]
lea edx, [edx + esi*4]
mov dword [esp + 0x14], edx
nop dword [eax + eax]
paddd xmm4, xmmword [esp + 0x70]
paddd xmm4, xmm0
movaps xmm1, xmmword [esp + 0x60]
paddd xmm4, xmm5
movaps xmm5, xmmword [esp + 0x50]
paddd xmm4, xmm6
paddd xmm5, xmmword [esp + 0x80]
paddd xmm5, xmm7
movaps xmmword [esp + 0x60], xmm0
paddd xmm5, xmm2
movaps xmm0, xmmword [esp + 0x40]
paddd xmm5, xmm3
movaps xmmword [esp + 0x70], xmm1
movaps xmm1, xmmword [esp + 0x50]
movaps xmmword [esp + 0x90], xmm0
movaps xmm0, xmm6
movaps xmmword [esp + 0x80], xmm1
xorps xmm1, xmm1
movaps xmmword [esp + 0x50], xmm7
movaps xmm7, xmm2
movaps xmmword [esp + 0x40], xmm0
movaps xmmword [esp + 0xa0], xmm3
cmp edi, dword [esp + 0x24]
jg 0x1023492d
movups xmm3, xmmword [eax]
movaps xmm6, xmm3
punpckhwd xmm3, xmm1
punpcklwd xmm6, xmm1
test esi, esi
jne 0x1023491d
pshufd xmm6, xmm6, 0xea
cmp esi, ecx
jl 0x10234926
pshufd xmm3, xmm3, 0x54
add eax, 0x48
mov dword [esp + 0x10], eax
mov ecx, 0x108c34c0
movups xmm2, xmmword [ecx + 0x10]
lea edx, [edx + 4]
movups xmm0, xmmword [ecx]
andps xmm2, xmm5
andps xmm0, xmm4
add ecx, 0x20
paddd xmm2, xmm0
movaps xmm1, xmm2
psrldq xmm1, 8
paddd xmm1, xmm2
movaps xmm0, xmm1
psrldq xmm0, 4
paddd xmm0, xmm1
movd dword [edx - 4], xmm0
cmp ecx, 0x108c3540
jl 0x10234932
mov edx, dword [esp + 0x14]
inc edi
movaps xmm0, xmmword [esp + 0x90]
sub edx, 0xffffff80
xorps xmm1, xmm1
movaps xmm2, xmmword [esp + 0xa0]
movaps xmm5, xmmword [esp + 0x40]
movaps xmm4, xmmword [esp + 0x60]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], edx
cmp edi, dword [ebp + 0x1c]
jl 0x10234890
mov edx, dword [ebp + 0x1c]
add esi, 4
cmp esi, dword [ebp + 0x18]
jl 0x102347d0
movups xmm4, xmmword [esp + 0xb0]
movups xmm5, xmmword [esp + 0xd0]
mov eax, dword [ebp + 0x54]
lea edx, [esp + 0xd0]
mov edi, dword [ebp + 0x20]
lea esi, [esp + 0xb0]
xor ecx, ecx
sub edx, eax
sub esi, eax
cvtdq2pd xmm0, qword [edi + ecx*4]
lea eax, [eax + 0x10]
add ecx, 2
movaps xmm1, xmm5
mulpd xmm0, xmm4
movups xmmword [edx + eax - 0x10], xmm0
movups xmm0, xmmword [eax - 0x10]
mulpd xmm1, xmm0
movups xmmword [esi + eax - 0x10], xmm1
cmp ecx, 4
jl 0x102349e1
cmp dword [ebp + 0x58], 0
jne 0x10234b5e
mov eax, dword [ebp + 0x1c]
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x14], ecx
test eax, eax
jle 0x10234ccf
mov edx, dword [ebp + 0x18]
lea esi, [esp + 0xf8]
shr eax, 1
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], esi
nop dword [eax + eax]
xor eax, eax
mov dword [esp + 0x10], eax
test edx, edx
jle 0x10234b2e
shr edx, 1
lea eax, [esp + 0xf8]
cmp ecx, dword [esp + 0x24]
mov dword [esp + 0x28], edx
mov edx, esi
mov esi, dword [ebp + 0x30]
sbb ecx, ecx
and ecx, 0xfffffff0
mov dword [esp + 0x18], edx
add ecx, 0x10
sub esi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], esi
nop
cmp eax, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
movzx esi, byte [esi + eax]
sbb eax, eax
and eax, 0xfffffff8
add eax, 8
add ecx, eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + edx]
add eax, dword [edx]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1059bac0]
mulsd xmm0, qword [ebp + 0x34]
mulsd xmm0, qword [ebp + 0x4c]
addsd xmm0, qword [esp + ecx + 0xd0]
mulsd xmm0, qword [esp + ecx + 0xb0]
minsd xmm0, qword [0x1075c8a8]
xorps xmm0, xmmword [0x10720950]
call fcn.105202e0
mulsd xmm0, qword [0x1075c8b8]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x18]
add edx, 4
mov dword [esp + 0x18], edx
cvttsd2si eax, xmm0
add word [ecx + edi*2], ax
mov ecx, dword [esp + 0x38]
imul eax, esi
add dword [ecx + edi*4], eax
inc edi
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [ebp + 0x18]
jl 0x10234a80
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
inc ecx
add dword [esp + 0x20], eax
sub esi, 0xffffff80
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], esi
cmp ecx, dword [ebp + 0x1c]
jl 0x10234a40
pop edi
pop esi
mov ecx, dword [esp + 0x10f4]
xor ecx, esp
call fcn.105116c0
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x1c]
xor eax, eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], eax
test ecx, ecx
jle 0x10234ccf
movsd xmm1, qword [ebp + 0x4c]
lea edx, [esp + 0xf8]
movsd xmm2, qword [ebp + 0x34]
mov edi, ecx
movsd xmm3, qword [0x1075c8a8]
movss xmm4, dword [0x1075c8c4]
movss xmm5, dword [0x1075c8c0]
movss xmm6, dword [0x105fe8e4]
mov ecx, dword [ebp + 0x18]
shr edi, 1
mov dword [esp + 0x3c], edi
mov dword [esp + 0x14], edx
nop word [eax + eax]
xor esi, esi
test ecx, ecx
jle 0x10234cb3
shr ecx, 1
cmp eax, edi
mov eax, dword [ebp + 0x30]
sbb edi, edi
mov dword [esp + 0x10], edx
and edi, 0xfffffff0
mov dword [esp + 0x24], ecx
add edi, 0x10
lea edx, [esp + 0xf8]
sub eax, edx
mov dword [esp + 0x28], edi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x20]
cmp esi, ecx
movzx edx, byte [eax + esi]
sbb eax, eax
and eax, 0xfffffff8
inc esi
lea ecx, [eax + 8]
mov eax, dword [esp + 0x10]
add ecx, edi
mov edi, dword [esp + 0x30]
mov eax, dword [edi + eax]
mov edi, dword [esp + 0x10]
add dword [esp + 0x10], 4
add eax, dword [edi]
mov edi, dword [esp + 0x34]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1059bac0]
mulsd xmm0, xmm2
mulsd xmm0, xmm1
addsd xmm0, qword [esp + ecx + 0xd0]
mulsd xmm0, qword [esp + ecx + 0xb0]
mov ecx, 0x3f7f127f
minsd xmm0, xmm3
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm4
cvttss2si eax, xmm0
sub ecx, eax
mov dword [esp + 0x2c], ecx
movss xmm0, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1c]
mulss xmm0, xmm5
addss xmm0, xmm6
cvttss2si eax, xmm0
add word [edi + ecx*2], ax
mov edi, dword [esp + 0x28]
imul eax, edx
mov edx, dword [esp + 0x38]
add dword [edx + ecx*4], eax
inc ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x24]
cmp esi, dword [ebp + 0x18]
jl 0x10234bf2
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x3c]
mov ecx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x14]
inc eax
add dword [esp + 0x20], esi
sub edx, 0xffffff80
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
cmp eax, dword [ebp + 0x1c]
jl 0x10234bc0
mov ecx, dword [esp + 0x10fc]
pop edi
pop esi
xor ecx, esp
call fcn.105116c0
mov esp, ebp
pop ebp
ret