Function at 0x1400a18b0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
movaps xmmword [rsp + 0x40], xmm8
movaps xmmword [rsp + 0x30], xmm7
movaps xmmword [rsp + 0x20], xmm6
mov edi, edx
mov rsi, rcx
mov r14, qword [0x140186d50]
mov r15, qword [r14 + 0x4078]
mov dword [r14 + 0x4a40], edx
movups xmm0, xmmword [rcx]
movups xmmword [r14 + 0x4a4c], xmm0
test r8, r8
cmove r8, rcx
movups xmm0, xmmword [r8]
movups xmmword [r14 + 0x4a5c], xmm0
or r9d, dword [r14 + 0x4a00]
or r9d, dword [r14 + 0x4a0c]
mov dword [r14 + 0x4a44], r9d
mov dword [r14 + 0x4a48], 0
test edx, edx
je 0x1400a1a88
cmp dword [r14 + 0x40e4], edi
jne 0x1400a1951
mov dword [r14 + 0x40e8], edi
cmp dword [r14 + 0x4114], edi
je 0x1400a195a
test r9b, 2
je 0x1400a1968
jmp 0x1400a19ab
cmp dword [r14 + 0x4114], edi
jne 0x1400a1949
mov byte [r14 + 0x4118], 1
test r9b, 2
jne 0x1400a19ab
movzx ecx, byte [r15 + 0x170]
mov eax, 1
shl eax, cl
or word [r15 + 0x176], ax
mov eax, dword [r14 + 0x4bb0]
cmp eax, edi
je 0x1400a1994
cmp byte [r14 + 0x4c04], 0
je 0x1400a19ab
mov rdx, qword [r14 + 0x4ba8]
mov rcx, qword [rdx + 0x3a8]
cmp rcx, qword [r15 + 0x3a8]
je 0x1400a19e3
test byte [r14 + 0x4a08], 4
je 0x1400a1a88
mov rbx, qword [0x140186d50]
test byte [rbx + 0x4a45], 4
jne 0x1400a1a88
mov edx, dword [rbx + 0x4a28]
test edx, 0x40000
jne 0x1400a1a27
mov ecx, dword [rbx + 0x4a24]
jmp 0x1400a1a3a
cmp r15, rdx
je 0x1400a19f7
mov ecx, dword [rdx + 0x18]
or ecx, dword [r15 + 0x18]
test ecx, 0x100
je 0x1400a19ab
mov r12, qword [r14 + 0x4078]
cmp byte [r12 + 0x178], 0
je 0x1400a1bfe
movss xmm0, dword [r14 + 0x4a5c]
movss xmm6, dword [r14 + 0x4a64]
unpcklps xmm6, xmm0
jmp 0x1400a1c77
or byte [rbx + 0x4a49], 4
mov ecx, dword [rbx + 0x4a24]
mov dword [rbx + 0x4a8c], ecx
and edx, 0x3fcff
mov r8d, edi
call fcn.1400a7240
test al, al
je 0x1400a1a88
cmp dword [rbx + 0x4bbc], 0
jne 0x1400a1a88
mov dword [rbx + 0x4bbc], edi
mov dword [rbx + 0x4bc8], 0x11
mov dword [rbx + 0x4bc4], edi
mov dword [rbx + 0x4bc0], edi
mov rax, qword [0x140186d50]
mov dword [rax + 0x4be0], edi
mov dword [rax + 0x4be4], 0x3dcccccd
mov qword [r14 + 0x4a08], 0
movss xmm0, dword [rsi + 0xc]
ucomiss xmm0, dword [r15 + 0x254]
jbe 0x1400a1ad0
movss xmm0, dword [r15 + 0x25c]
ucomiss xmm0, dword [rsi + 4]
jbe 0x1400a1ad0
movss xmm0, dword [rsi + 8]
ucomiss xmm0, dword [r15 + 0x250]
jbe 0x1400a1ad0
movss xmm0, dword [r15 + 0x258]
mov bl, 1
ucomiss xmm0, dword [rsi]
ja 0x1400a1b0c
test edi, edi
je 0x1400a1afc
cmp dword [r14 + 0x40e4], edi
je 0x1400a1af8
cmp dword [r14 + 0x4114], edi
je 0x1400a1af8
cmp dword [r14 + 0x4bb0], edi
je 0x1400a1af8
cmp dword [r14 + 0x4bbc], edi
jne 0x1400a1afc
xor ebx, ebx
jmp 0x1400a1b10
xor ebx, ebx
cmp byte [r14 + 0x40e2], 0
je 0x1400a1bdb
test edi, edi
je 0x1400a1b1e
cmp dword [r14 + 0x4a04], edi
jne 0x1400a1b1e
call fcn.1400a3200
test bl, bl
je 0x1400a1b2a
or byte [r14 + 0x4a49], 1
mov rcx, qword [0x140186d50]
movss xmm0, dword [rsi]
mov rax, qword [rcx + 0x4078]
movss xmm1, dword [rax + 0x250]
movaps xmm2, xmm1
cmpless xmm2, xmm0
andps xmm0, xmm2
andnps xmm2, xmm1
orps xmm2, xmm0
movss xmm0, dword [rcx + 0x110]
movss xmm1, dword [rcx + 0x3964]
subss xmm2, xmm1
mov bl, 1
ucomiss xmm0, xmm2
jb 0x1400a1bdb
movss xmm2, dword [rsi + 4]
movss xmm3, dword [rax + 0x254]
movaps xmm4, xmm3
cmpless xmm4, xmm2
andps xmm2, xmm4
andnps xmm4, xmm3
orps xmm4, xmm2
movss xmm2, dword [rcx + 0x114]
movss xmm3, dword [rcx + 0x3968]
subss xmm4, xmm3
ucomiss xmm2, xmm4
jb 0x1400a1bdb
movss xmm4, dword [rsi + 8]
minss xmm4, dword [rax + 0x258]
addss xmm1, xmm4
ucomiss xmm1, xmm0
jbe 0x1400a1bdb
movss xmm0, dword [rsi + 0xc]
minss xmm0, dword [rax + 0x25c]
addss xmm0, xmm3
ucomiss xmm0, xmm2
jbe 0x1400a1bdb
or byte [r14 + 0x4a48], 1
mov eax, ebx
movaps xmm6, xmmword [rsp + 0x20]
movaps xmm7, xmmword [rsp + 0x30]
movaps xmm8, xmmword [rsp + 0x40]
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movss xmm0, dword [r12 + 0x250]
movss xmm1, dword [r12 + 0x258]
movss xmm2, dword [r14 + 0x4a5c]
movss xmm6, dword [r14 + 0x4a64]
minss xmm1, xmm2
cmpltss xmm2, xmm0
movaps xmm3, xmm2
andnps xmm3, xmm1
andps xmm2, xmm0
orps xmm2, xmm3
movss dword [r14 + 0x4a5c], xmm2
movss xmm0, dword [r12 + 0x250]
movss xmm1, dword [r12 + 0x258]
minss xmm1, xmm6
cmpltss xmm6, xmm0
movaps xmm3, xmm6
andnps xmm3, xmm1
andps xmm6, xmm0
orps xmm6, xmm3
movss dword [r14 + 0x4a64], xmm6
unpcklps xmm6, xmm2
mov ebp, dword [r14 + 0x4a40]
mov ecx, dword [r14 + 0x4a44]
movss xmm7, dword [r14 + 0x4a60]
movss xmm8, dword [r14 + 0x4a68]
cmp byte [r14 + 0x4c05], 0
je 0x1400a1d6d
mov r10d, dword [r14 + 0x4bb8]
mov r9d, ecx
and r9d, 0x400
mov r8b, 1
cmp r10d, dword [r12 + 0x170]
jne 0x1400a1d7a
test r9d, r9d
jne 0x1400a1d7a
test cl, 4
je 0x1400a1ce6
xor r9d, r9d
cmp dword [r14 + 0x4c10], 0
jne 0x1400a1d7a
mov qword [r14 + 0x4c08], r12
mov dword [r14 + 0x4c10], ebp
mov r9d, dword [r14 + 0x49fc]
mov dword [r14 + 0x4c14], r9d
mov dword [r14 + 0x4c28], ecx
movsd xmm0, qword [r12 + 0x128]
movlhps xmm0, xmm0
movaps xmm1, xmm7
shufps xmm1, xmm6, 0xd4
movaps xmm2, xmm8
movlhps xmm2, xmm6
shufps xmm1, xmm2, 0x22
subps xmm1, xmm0
movups xmmword [r14 + 0x4c18], xmm1
test ecx, 0x200000
je 0x1400a1d49
mov r9, qword [r14 + 0x4a18]
mov qword [r14 + 0x4c38], r9
xor r9d, r9d
test cl, 4
jne 0x1400a1d7a
mov byte [r14 + 0x4c05], 0
movzx r8d, byte [r14 + 0x4c41]
mov byte [r14 + 0x4c04], r8b
xor r9d, r9d
jmp 0x1400a1d77
mov r9d, ecx
and r9d, 0x400
xor r8d, r8d
cmp byte [r14 + 0x4c41], 0
je 0x1400a217e
test r9d, r9d
jne 0x1400a217e
mov r10d, dword [r14 + 0x4c44]
test r10d, 0x200
jne 0x1400a1e05
test byte [r12 + 0x16], 1
jne 0x1400a217e
test r10d, 0x400
je 0x1400a1e15
mov edx, dword [r14 + 0x4bb8]
cmp edx, dword [r12 + 0x170]
jne 0x1400a217e
mov edx, dword [r14 + 0x4bb4]
cmp edx, dword [r14 + 0x49fc]
jne 0x1400a217e
test cl, 1
jne 0x1400a1f7b
mov edx, dword [r14 + 8]
and edx, 1
mov r9d, ecx
and r9d, 0x100000
or r9d, edx
setne r9b
jmp 0x1400a1f7e
mov r9b, 1
test r10d, 0x400
jne 0x1400a1f7e
test r10b, 0x10
jne 0x1400a1e23
cmp eax, ebp
je 0x1400a217e
lea rax, [r14 + 0x4c88]
lea rbx, [r14 + 0x4cf8]
cmp r12, rdx
mov ecx, 0x4c88
mov r13d, 0x4cf8
cmove r13, rcx
cmove rbx, rax
mov rcx, rbx
call fcn.1400ab840
test al, al
je 0x1400a1eac
mov rax, qword [0x140186d50]
mov rcx, qword [rax + 0x4078]
mov qword [r14 + r13], rcx
mov edx, dword [rax + 0x4a40]
mov dword [rbx + 8], edx
mov edx, dword [rax + 0x49fc]
mov dword [rbx + 0xc], edx
mov edx, dword [rax + 0x4a44]
mov dword [rbx + 0x20], edx
movsd xmm0, qword [rcx + 0x128]
movlhps xmm0, xmm0
movups xmm1, xmmword [rax + 0x4a5c]
subps xmm1, xmm0
movups xmmword [rbx + 0x10], xmm1
test edx, 0x200000
je 0x1400a1eac
mov rax, qword [rax + 0x4a18]
mov qword [rbx + 0x30], rax
test byte [r14 + 0x4c44], 0x20
je 0x1400a217e
movss xmm0, dword [r12 + 0x25c]
ucomiss xmm0, xmm7
jbe 0x1400a217e
movss xmm1, dword [r12 + 0x254]
ucomiss xmm8, xmm1
jbe 0x1400a217e
movss xmm2, dword [r12 + 0x258]
movaps xmm3, xmm6
shufps xmm3, xmm6, 0x55
ucomiss xmm2, xmm3
jbe 0x1400a217e
ucomiss xmm6, dword [r12 + 0x250]
jbe 0x1400a217e
movaps xmm2, xmm0
minss xmm2, xmm8
movaps xmm3, xmm8
cmpltss xmm3, xmm1
movaps xmm4, xmm3
andnps xmm4, xmm2
andps xmm3, xmm1
orps xmm3, xmm4
minss xmm0, xmm7
movaps xmm2, xmm7
cmpltss xmm2, xmm1
movaps xmm4, xmm2
andnps xmm4, xmm0
andps xmm2, xmm1
orps xmm2, xmm4
subss xmm3, xmm2
movaps xmm0, xmm8
subss xmm0, xmm7
mulss xmm0, dword [0x140115180]
ucomiss xmm3, xmm0
jb 0x1400a217e
lea rbx, [r14 + 0x4cc0]
mov rcx, rbx
call fcn.1400ab840
test al, al
je 0x1400a217e
mov rcx, rbx
jmp 0x1400a20db
xor r9d, r9d
mov edx, dword [r14 + 0x4c80]
cmp edx, 0xffffffff
je 0x1400a20e5
test edx, edx
je 0x1400a2047
cmp edx, 1
jne 0x1400a217e
test r9b, r9b
je 0x1400a202f
cmp dword [r14 + 0x4d38], 0
jne 0x1400a2015
mov qword [r14 + 0x4d30], r12
mov dword [r14 + 0x4d38], ebp
mov edx, dword [r14 + 0x49fc]
mov dword [r14 + 0x4d3c], edx
mov dword [r14 + 0x4d50], ecx
movsd xmm0, qword [r12 + 0x128]
movlhps xmm0, xmm0
movaps xmm1, xmm7
shufps xmm1, xmm6, 0xd4
movaps xmm2, xmm8
movlhps xmm2, xmm6
shufps xmm1, xmm2, 0x22
subps xmm1, xmm0
movups xmmword [r14 + 0x4d40], xmm1
test ecx, 0x200000
je 0x1400a2015
mov rcx, qword [r14 + 0x4a18]
mov qword [r14 + 0x4d60], rcx
mov ecx, dword [r14 + 0x4c84]
test ecx, ecx
jle 0x1400a202f
dec ecx
mov dword [r14 + 0x4c84], ecx
je 0x1400a2172
cmp eax, ebp
jne 0x1400a217e
mov dword [r14 + 0x4c84], 1
jmp 0x1400a217e
test r9b, r9b
je 0x1400a217e
cmp eax, ebp
jne 0x1400a20c6
mov byte [r14 + 0x4c41], 0
mov qword [r14 + 0x4c88], r12
mov dword [r14 + 0x4c90], eax
mov eax, dword [r14 + 0x49fc]
mov dword [r14 + 0x4c94], eax
mov dword [r14 + 0x4ca8], ecx
movsd xmm0, qword [r12 + 0x128]
movlhps xmm0, xmm0
movaps xmm1, xmm7
shufps xmm1, xmm6, 0xd4
movaps xmm2, xmm8
movlhps xmm2, xmm6
shufps xmm1, xmm2, 0x22
subps xmm1, xmm0
movups xmmword [r14 + 0x4c98], xmm1
test ecx, 0x200000
je 0x1400a20bf
mov rax, qword [r14 + 0x4a18]
mov qword [r14 + 0x4cb8], rax
mov byte [r14 + 0x4c04], r8b
cmp dword [r14 + 0x4d38], 0
jne 0x1400a217e
lea rcx, [r14 + 0x4d30]
call fcn.1400a3960
jmp 0x1400a217e
cmp eax, ebp
jne 0x1400a2108
cmp dword [r14 + 0x4c90], 0
je 0x1400a217e
mov byte [r14 + 0x4c41], 0
mov byte [r14 + 0x4c04], r8b
jmp 0x1400a217e
test r9b, r9b
je 0x1400a217e
mov qword [r14 + 0x4c88], r12
mov dword [r14 + 0x4c90], ebp
mov eax, dword [r14 + 0x49fc]
mov dword [r14 + 0x4c94], eax
mov dword [r14 + 0x4ca8], ecx
movsd xmm0, qword [r12 + 0x128]
movlhps xmm0, xmm0
movaps xmm1, xmm7
shufps xmm1, xmm6, 0xd4
movaps xmm2, xmm8
movlhps xmm2, xmm6
shufps xmm1, xmm2, 0x22
subps xmm1, xmm0
movups xmmword [r14 + 0x4c98], xmm1
test ecx, 0x200000
je 0x1400a217e
mov rax, qword [r14 + 0x4a18]
mov qword [r14 + 0x4cb8], rax
jmp 0x1400a217e
lea rcx, [r14 + 0x4c88]
call fcn.1400a38d0
cmp dword [r14 + 0x4bb0], ebp
jne 0x1400a19ab
cmp qword [r14 + 0x4ba8], r12
je 0x1400a22b7
mov rbx, qword [0x140186d50]
mov rax, rbx
cmp qword [rbx + 0x4ba8], r12
je 0x1400a228f
test byte [rbx + 0x6184], 2
mov rax, rbx
je 0x1400a227d
mov r8, qword [r12 + 8]
cmp byte [0x140187b1a], 0
jne 0x1400a2267
mov ecx, 1
xor r9d, r9d
movabs r10, 0x642c8590b21642c9
lea r11, [0x140109b30]
lea r13, [0x140187afe]
mov rax, rcx
mul r10
mov rbp, rcx
sub rbp, rdx
shr rbp, 1
add rbp, rdx
shr rbp, 4
mov rax, r9
mul r10
imul rax, rbp, 0xffffffffffffffe9
mov rbp, r9
sub rbp, rdx
shr rbp, 1
add rbp, rdx
shr rbp, 4
imul rdx, rbp, 0xffffffffffffffe9
lea rbp, [r11 + r9]
movzx edx, byte [rdx + rbp + 0x22d7]
xor dl, byte [r9 + r11 + 0x22ee]
mov byte [r9 + r13], dl
movzx eax, byte [rax + rbp + 0x22d8]
xor al, byte [r9 + r11 + 0x22ef]
mov byte [r9 + r13 + 1], al
add r9, 2
add rcx, 2
cmp r9, 0x1c
jne 0x1400a21f1
mov byte [0x140187b1a], 1
lea rcx, [0x140187afe]
mov rdx, r8
call fcn.140086520
mov rax, qword [0x140186d50]
mov qword [rbx + 0x4ba8], r12
mov qword [rbx + 0x4bf8], 0xffffffffffffffff
mov word [rbx + 0x4c40], 0
mov byte [rbx + 0x4c05], 0
mov cl, 1
cmp byte [rax + 0x4c41], 0
jne 0x1400a22b1
movzx ecx, byte [rax + 0x4c05]
mov byte [rax + 0x4c04], cl
mov eax, dword [r12 + 0x170]
mov dword [r14 + 0x4bb8], eax
mov ecx, dword [r14 + 0x49fc]
call fcn.1400a3530
mov eax, dword [r14 + 0x49fc]
mov dword [r14 + 0x4bb4], eax
mov byte [r14 + 0x4c00], 1
test byte [r14 + 0x4a46], 0x20
je 0x1400a2300
mov rax, qword [r14 + 0x4a18]
mov qword [r14 + 0x4bf8], rax
movsxd rax, dword [r12 + 0x170]
shl rax, 4
movsd xmm0, qword [r12 + 0x128]
movlhps xmm0, xmm0
shufps xmm7, xmm6, 0xd4
movlhps xmm8, xmm6
shufps xmm7, xmm8, 0x22
subps xmm7, xmm0
movups xmmword [r12 + rax + 0x3c8], xmm7
jmp 0x1400a19ab