Function at 0x100aa8c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x90
mov esi, ecx
mov edi, dword [esp + 0xa4]
test byte [esp + 0xac], 1
jne 0x100aa8f7
vmovss xmm1, dword [edi + 0x14]
vxorps xmm0, xmm0, xmm0
vucomiss xmm1, xmm0
jne 0x100aa8ee
jnp 0x100aa8f7
mov dword [edi + 0x28], 0
jmp 0x100aa8fc
vmovss xmm0, dword [edi + 0x28]
vmovss xmm1, dword [edi + 0x24]
vmulss xmm2, xmm0, xmm0
vfmadd231ss xmm2, xmm1, xmm1
vcvtss2sd xmm2, xmm2, xmm2
vsqrtsd xmm2, xmm2, xmm2
vcvtsd2ss xmm3, xmm2, xmm2
vxorps xmm2, xmm2, xmm2
vucomiss xmm3, xmm2
jne 0x100aa926
jnp 0x100aad30
mov ebp, dword [esp + 0xa8]
vinsertps xmm0, xmm0, xmm1, 0x10
vbroadcastss xmm1, xmm3
vdivps xmm4, xmm0, xmm1
vmovups xmmword [esp + 0x80], xmm3
vdivss xmm2, xmm2, xmm3
vxorps xmm0, xmm0, xmm0
vcmpeqps xmm0, xmm4, xmm0
vshufps xmm0, xmm0, xmm0, 0x50
vpcmpeqd xmm1, xmm1, xmm1
vtestpd xmm0, xmm1
jae 0x100aa987
vxorpd xmm1, xmm1, xmm1
xor eax, eax
vxorps xmm0, xmm0, xmm0
vmovups xmmword [esp + 0x40], xmm0
vucomiss xmm2, xmm1
seta al
vmovss xmm0, dword [eax*4 + 0x100fe0e0]
jmp 0x100aaa50
vmovshdup xmm0, xmm4
vmovups xmmword [esp + 0x60], xmm0
vcvtss2sd xmm0, xmm0, xmm0
vcvtss2sd xmm1, xmm4, xmm4
vmovsd qword [esp], xmm1
vmovsd qword [esp + 8], xmm0
vmovups xmmword [esp + 0x10], xmm2
vmovups xmmword [esp + 0x50], xmm4
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
fstp dword [esp + 0x3c]
vmovss xmm0, dword [0x100fe0b8]
vmulss xmm0, xmm0, dword [esp + 0x3c]
vaddss xmm1, xmm0, dword [0x100fd770]
vxorps xmm2, xmm2, xmm2
vcmpltss xmm2, xmm0, xmm2
vblendvps xmm0, xmm0, xmm1, xmm2
vmovups xmmword [esp + 0x40], xmm0
vmovups xmm0, xmmword [esp + 0x50]
vmulss xmm0, xmm0, xmm0
vmovups xmm1, xmmword [esp + 0x60]
vfmadd231ss xmm0, xmm1, xmm1
vcvtss2sd xmm0, xmm0, xmm0
vsqrtsd xmm0, xmm0, xmm0
vcvtsd2ss xmm0, xmm0, xmm0
vbroadcastss xmm1, dword [0x100f54d8]
vxorps xmm1, xmm1, xmmword [esp + 0x10]
vcvtss2sd xmm0, xmm0, xmm0
vcvtss2sd xmm1, xmm1, xmm1
vmovsd qword [esp + 8], xmm0
vmovsd qword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
fstp dword [esp + 0x38]
vmovss xmm0, dword [0x100fe0b8]
vmulss xmm0, xmm0, dword [esp + 0x38]
vxorps xmm1, xmm1, xmm1
vucomiss xmm1, xmm0
jbe 0x100aaa50
vaddss xmm0, xmm0, dword [0x100fd770]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
mov ebx, dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
call ebx
fstp dword [esp + 0x34]
vmovss xmm0, dword [esp + 0x34]
vmovss dword [esp + 0x10], xmm0
vmovups xmm0, xmmword [esp + 0x40]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call ebx
fstp dword [esp + 0x30]
mov dword [esp + 4], 0x43b40000
mov dword [esp], 0
call ebx
fstp dword [esp + 0x2c]
vmovss xmm0, dword [esp + 0x2c]
vmovss dword [esp + 0x40], xmm0
vmovss xmm0, dword [edi + 0x10]
vsubss xmm0, xmm0, dword [ebp + 4]
vmovups xmmword [esp + 0x70], xmm0
vaddss xmm0, xmm0, dword [esp + 0x30]
vmovss dword [esp + 0x60], xmm0
vmovss xmm0, dword [esp + 0x10]
vmulss xmm0, xmm0, dword [0x100fe0c4]
vmovd eax, xmm0
vcvtss2sd xmm0, xmm0, xmm0
and eax, 0x7fffffff
cmp eax, 0x7f800000
je 0x100aad3d
movzx ebx, byte [esp + 0xb0]
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp dword [esp + 0x28]
vmovss xmm0, dword [esp + 0x28]
vmovss dword [esp + 0x10], xmm0
vmovss xmm0, dword [0x100fe0c4]
vmulss xmm0, xmm0, dword [esp + 0x60]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esp + 0x50], xmm0
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp dword [esp + 0x24]
vmovss xmm0, dword [esp + 0x24]
vmovss dword [esp + 0x60], xmm0
vmovsd xmm0, qword [esp + 0x50]
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp dword [esp + 0x20]
vmovss xmm2, dword [esp + 0x20]
vmovss xmm0, dword [0x100fe0c4]
vmulss xmm0, xmm0, dword [esp + 0x40]
vmovd eax, xmm0
and eax, 0x7fffffff
cmp eax, 0x7f800000
je 0x100aad5a
vmovss xmm1, dword [esp + 0x10]
vmulss xmm0, xmm1, xmm2
vmulss xmm2, xmm1, dword [esp + 0x60]
vmovups xmm3, xmmword [esp + 0x80]
vmulss xmm1, xmm0, xmm3
mov eax, 0xfffff9e7
and eax, dword [edi + 0x30]
vmulss xmm0, xmm2, xmm3
mov dword [edi + 0x30], eax
vmovss xmm2, dword [edi + 0xc]
cmp bl, 9
jne 0x100aac70
vmovss xmm3, dword [ebp]
vmovss xmm4, dword [0x100fe448]
vcmpnltps xmm3, xmm3, xmm4
vcmpnleps xmm2, xmm4, xmm2
vorps xmm2, xmm2, xmm3
vmovd ecx, xmm2
vbroadcastss xmm2, dword [0x100f550c]
vandps xmm3, xmm2, xmmword [esp + 0x70]
vmovaps xmm4, xmm1
test cl, 1
jne 0x100aabff
vbroadcastss xmm4, dword [0x100f54d8]
vxorps xmm4, xmm1, xmm4
vcmpnless xmm3, xmm3, dword [0x100fe44c]
vblendvps xmm3, xmm4, xmm1, xmm3
vmovss dword [edi + 0x24], xmm3
vmovss dword [edi + 0x28], xmm0
vandps xmm1, xmm1, xmm2
vucomiss xmm1, dword [0x100fe450]
jbe 0x100aac3f
vxorps xmm1, xmm1, xmm1
xor ecx, ecx
vucomiss xmm3, xmm1
setbe cl
lea ecx, [ecx*8 + 8]
or eax, ecx
mov dword [edi + 0x30], eax
vbroadcastss xmm1, dword [0x100f550c]
vandps xmm1, xmm0, xmm1
vmovss xmm2, dword [0x100fe450]
vucomiss xmm2, xmm1
jae 0x100aad30
vxorps xmm1, xmm1, xmm1
xor ecx, ecx
vucomiss xmm0, xmm1
seta cl
jmp 0x100aad22
vbroadcastss xmm3, dword [0x100f54d8]
vxorps xmm3, xmm1, xmm3
vmovss xmm4, dword [0x100fe0bc]
vcmpltss xmm4, xmm4, xmm2
vblendvps xmm1, xmm1, xmm3, xmm4
vcmpltss xmm2, xmm2, dword [0x100fe0e8]
vblendvps xmm1, xmm1, xmm3, xmm2
vmovss dword [edi + 0x24], xmm1
vmovss dword [edi + 0x28], xmm0
cmp bl, 2
jne 0x100aacec
cmp byte [esi + 9], 0
je 0x100aacec
vxorps xmm2, xmm2, xmm2
vucomiss xmm1, xmm2
jne 0x100aacc0
jnp 0x100aacd5
xor ecx, ecx
vucomiss xmm2, xmm1
setbe cl
lea ecx, [ecx*8 + 8]
or eax, ecx
mov dword [edi + 0x30], eax
vucomiss xmm0, xmm2
jne 0x100aacdd
jnp 0x100aad30
vxorps xmm1, xmm1, xmm1
xor ecx, ecx
vucomiss xmm1, xmm0
seta cl
jmp 0x100aad22
vxorps xmm2, xmm2, xmm2
vucomiss xmm1, xmm2
jne 0x100aacf8
jnp 0x100aad0d
xor ecx, ecx
vucomiss xmm2, xmm1
seta cl
lea ecx, [ecx*8 + 8]
or eax, ecx
mov dword [edi + 0x30], eax
vucomiss xmm0, xmm2
jne 0x100aad15
jnp 0x100aad30
vxorps xmm1, xmm1, xmm1
xor ecx, ecx
vucomiss xmm1, xmm0
setbe cl
shl ecx, 9
add ecx, 0x200
or eax, ecx
mov dword [edi + 0x30], eax
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
vmovsd qword [esp], xmm0
vmovsd qword [esp + 0x10], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp st(0)
vmovsd xmm0, qword [esp + 0x10]
jmp 0x100aaaf1
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esp + 0x50], xmm0
vmovsd qword [esp], xmm0
vmovss dword [esp + 0x40], xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp st(0)
vmovsd xmm0, qword [esp + 0x50]
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp st(0)
vmovss xmm2, dword [esp + 0x40]
jmp 0x100aab81