Function at 0x5b708330
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
mov edi, eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
mov ebx, 1
test cl, 0x10
jne 0x5b70834e
mov ebx, dword [eax + 4]
mov esi, dword [eax + 0xc]
mov edx, esi
imul edx, ebx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 4], esi
fild dword [ebp - 0x18]
test edx, edx
jns 0x5b70836c
fadd dword [0x5b722e00]
fld1
xorps xmm6, xmm6
fdivrp st(1)
movaps xmm1, xmm6
movss dword [ebp - 0x14], xmm1
fstp dword [ebp - 0xc]
movss xmm2, dword [ebp - 0xc]
test cl, 0x40
je 0x5b7083b2
mov edx, esi
mov esi, dword [eax + 4]
add esi, esi
mov ecx, edi
add esi, esi
xor eax, eax
subss xmm1, dword [ecx + eax*4]
inc eax
cmp eax, ebx
jl 0x5b708395
dec edx
add ecx, esi
test edx, edx
jg 0x5b708393
mov eax, dword [ebp + 8]
mulss xmm1, xmm2
movss dword [ebp - 0x14], xmm1
test byte [eax + 8], 0x80
jne 0x5b7083c5
mulss xmm2, dword [0x5b722d70]
movss dword [ebp - 0xc], xmm2
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, dword [ebp + 8]
xor esi, esi
mov dword [ebp - 8], eax
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 4], ecx
jae 0x5b70846e
mov ecx, dword [edx + 8]
test cl, 0x20
jne 0x5b70846e
mov eax, dword [ebp - 4]
fild dword [ebp - 0x18]
fild dword [ebp - 4]
test eax, eax
jns 0x5b7083fc
fadd dword [0x5b722e00]
fdivp st(1)
fmul dword [0x5b722dfc]
call fcn.5b71ef03
mov ecx, dword [ebp + 8]
movss xmm1, dword [ebp - 0xc]
movss xmm2, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
mov eax, dword [ecx + 4]
add eax, eax
xor edx, edx
add eax, eax
jmp 0x5b708427
mov ebx, dword [ebp - 0x10]
movaps xmm0, xmm2
xor ecx, ecx
lea esp, [esp]
addss xmm0, dword [edi + ecx*4]
inc ecx
cmp ecx, ebx
jl 0x5b708430
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 4]
mov ebx, edx
add edx, dword [ebp - 0x18]
sar ebx, 0x10
movss xmm3, dword [ecx + ebx*8 + 4]
mov ecx, dword [ecx + esi*8]
mov ebx, dword [ebp + 0xc]
inc esi
mulss xmm3, xmm1
add edi, eax
mulss xmm3, xmm0
movss dword [ebx + ecx*8], xmm3
cmp esi, dword [ebp - 4]
jb 0x5b708424
xorps xmm6, xmm6
jmp 0x5b7084be
mov ecx, dword [eax + 4]
mov eax, dword [edx + 8]
mov edx, dword [edx + 4]
and eax, 0x20
add edx, edx
mov dword [ebp + 8], eax
add edx, edx
jmp 0x5b708486
mov ebx, dword [ebp - 0x10]
movaps xmm0, xmm1
xor eax, eax
jmp 0x5b708490
addss xmm0, dword [edi + eax*4]
inc eax
cmp eax, ebx
jl 0x5b708490
cmp dword [ebp + 8], 0
mulss xmm0, xmm2
jne 0x5b7084a9
mulss xmm0, dword [ecx + 4]
mov eax, dword [ecx]
mov ebx, dword [ebp + 0xc]
inc esi
add ecx, 8
add edi, edx
movss dword [ebx + eax*8], xmm0
cmp esi, dword [ebp - 4]
jb 0x5b708483
mov edx, dword [ebp - 8]
cmp esi, dword [edx]
jge 0x5b7084d5
mov ecx, dword [edx + 4]
mov eax, dword [ecx + esi*8]
inc esi
movss dword [ebx + eax*8], xmm6
cmp esi, dword [edx]
jl 0x5b7084c5
movss xmm5, dword [0x5b722db0]
xor ecx, ecx
lea eax, [ebx + 8]
jmp 0x5b7084f0
movss xmm3, dword [eax + 0x10]
movss xmm2, dword [eax - 8]
movss xmm0, dword [eax + 8]
subss xmm0, xmm3
addss xmm3, dword [eax + 8]
movaps xmm1, xmm2
addss xmm2, dword [eax]
subss xmm1, dword [eax]
movss dword [eax + 4], xmm0
movaps xmm4, xmm3
addss xmm4, xmm2
movss dword [eax - 8], xmm4
subss xmm2, xmm3
movss dword [eax + 8], xmm2
movss dword [eax], xmm1
movss dword [eax + 0x10], xmm1
xorps xmm0, xmm5
movss dword [eax + 0x14], xmm0
movss dword [eax - 4], xmm6
movss dword [eax + 0xc], xmm6
add ecx, 4
add eax, 0x20
cmp ecx, dword [edx]
jl 0x5b7084f0
mov esi, dword [0x5b725624]
mov edx, 4
lea ecx, [ecx]
mov edi, edx
sar edi, 1
mov dword [ebp + 8], edi
add edi, edx
add edi, edi
add edi, edi
mov eax, ebx
add edi, edi
movss xmm1, dword [eax + edx*8]
movss xmm0, dword [eax]
movaps xmm2, xmm1
addss xmm2, xmm0
movss dword [eax], xmm2
subss xmm0, xmm1
lea ecx, [eax + edx*8 - 8]
movss dword [eax + edx*8], xmm0
add eax, 8
jmp 0x5b7085a0
movss xmm2, dword [esi]
movss xmm3, dword [esi + 4]
movss xmm4, dword [eax + edx*8]
movss xmm0, dword [eax + edx*8 + 4]
movaps xmm6, xmm0
mulss xmm0, xmm2
movaps xmm1, xmm4
mulss xmm1, xmm2
mulss xmm4, xmm3
addss xmm0, xmm4
movss xmm4, dword [eax]
mulss xmm6, xmm3
subss xmm1, xmm6
movaps xmm6, xmm4
subss xmm4, xmm1
addss xmm6, xmm1
movss dword [eax], xmm6
movss dword [eax + edx*8], xmm4
movss xmm1, dword [eax + 4]
movaps xmm4, xmm1
addss xmm4, xmm0
movss dword [eax + 4], xmm4
subss xmm1, xmm0
movss dword [eax + edx*8 + 4], xmm1
movss xmm1, dword [ecx + edx*8]
movss xmm4, dword [ecx + edx*8 + 4]
movaps xmm0, xmm1
mulss xmm0, xmm2
movaps xmm6, xmm4
mulss xmm4, xmm2
movss xmm2, dword [ecx]
xorps xmm0, xmm5
mulss xmm6, xmm3
subss xmm0, xmm6
mulss xmm1, xmm3
movaps xmm3, xmm2
subss xmm2, xmm0
addss xmm3, xmm0
movss dword [ecx], xmm3
movss dword [ecx + edx*8], xmm2
movss xmm0, dword [ecx + 4]
subss xmm1, xmm4
movaps xmm2, xmm0
addss xmm2, xmm1
movss dword [ecx + 4], xmm2
subss xmm0, xmm1
movss dword [ecx + edx*8 + 4], xmm0
add eax, 8
sub ecx, 8
add esi, 8
cmp eax, ecx
jne 0x5b7085a0
movss xmm0, dword [eax + edx*8]
movss xmm1, dword [eax + 4]
mov ecx, dword [ebp - 8]
subss xmm1, xmm0
movss dword [eax + edx*8 + 4], xmm1
fld dword [eax]
addss xmm0, dword [eax + 4]
movss dword [eax + 4], xmm0
fstp dword [eax + edx*8]
mov ecx, dword [ecx]
add eax, edi
lea ecx, [ebx + ecx*8]
cmp eax, ecx
jae 0x5b7086c0
mov ecx, dword [ebp + 8]
add ecx, ecx
add ecx, ecx
add ecx, ecx
mov ebx, 8
sub ebx, ecx
add esi, ebx
mov ebx, dword [ebp + 0xc]
jmp 0x5b708571
mov eax, dword [ebp - 8]
add edx, edx
cmp edx, dword [eax]
jl 0x5b708560
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8