Function at 0x1400a8700
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x50
mov rax, qword [0x140183d00]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rdi, qword [0x140186d50]
cmp dword [rdi + 0x4c90], 0
je 0x1400a8a30
lea r14, [rdi + 0x4c88]
lea rbx, [rdi + 0x4c44]
mov eax, dword [rdi + 0x4c44]
lea rsi, [rdi + 0x4c50]
mov ecx, dword [rdi + 0x4c50]
and ecx, 0xfffffffe
cmp ecx, 2
sete bpl
test al, 0x20
je 0x1400a877b
mov eax, dword [rdi + 0x4cc8]
test eax, eax
je 0x1400a877b
lea rcx, [rdi + 0x4cc0]
cmp eax, dword [rdi + 0x4bb0]
cmovne r14, rcx
lea rax, [rdi + 0x4cf8]
cmp r14, rax
je 0x1400a87d0
cmp dword [rdi + 0x4d00], 0
je 0x1400a87d3
mov rcx, qword [rdi + 0x4cf8]
mov rcx, qword [rcx + 0x380]
cmp rcx, qword [rdi + 0x4ba8]
jne 0x1400a87d3
movss xmm0, dword [rdi + 0x4d1c]
movss xmm1, dword [r14 + 0x24]
ucomiss xmm1, xmm0
ja 0x1400a87d0
ucomiss xmm0, xmm1
jne 0x1400a87d3
jp 0x1400a87d3
movss xmm0, dword [r14 + 0x28]
ucomiss xmm0, dword [rdi + 0x4d20]
jbe 0x1400a87d3
mov r14, rax
cmp dword [rdi + 0x4bb8], 0
jne 0x1400a8848
mov rax, qword [r14]
movsd xmm0, qword [rax + 0x128]
movlhps xmm0, xmm0
movups xmm1, xmmword [r14 + 0x10]
addps xmm1, xmm0
movaps xmmword [rsp + 0x30], xmm1
mov r9d, dword [rdi + 0x4c48]
mov rdx, qword [r14]
lea rcx, [rsp + 0x28]
lea r8, [rsp + 0x30]
call fcn.1400a39c0
test byte [rdi + 0x4c44], 0x40
je 0x1400a8848
cmp dword [rsi], 2
mov rax, qword [r14]
xorps xmm0, xmm0
jne 0x1400a882c
movss xmm0, dword [rax + 0xa4]
movss dword [rax + 0xac], xmm0
mov dword [rax + 0xb4], 0
mov dword [rax + 0xbc], 0
mov rax, qword [r14]
cmp qword [rdi + 0x4ba8], rax
je 0x1400a8903
test byte [rdi + 0x6184], 2
je 0x1400a88f1
mov r8, qword [rax + 8]
cmp byte [0x140187c18], 0
jne 0x1400a88df
xor ecx, ecx
movabs r9, 0x4924924924924925
lea r10, [0x140109b30]
lea r11, [0x140187bec]
nop dword [rax]
mov rax, rcx
shr rax, 2
mul r9
shr rdx, 1
imul rax, rdx, 0xffffffffffffffe4
lea rdx, [r10 + rcx]
movzx esi, byte [rax + rdx + 0x2484]
movzx eax, byte [rax + rdx + 0x2485]
xor sil, byte [rcx + r10 + 0x24a0]
xor al, byte [rcx + r10 + 0x24a1]
mov byte [rcx + r11], sil
mov byte [rcx + r11 + 1], al
add rcx, 2
cmp rcx, 0x2c
jne 0x1400a8890
mov byte [0x140187c18], 1
lea rcx, [0x140187bec]
mov rdx, r8
call fcn.140086520
mov rax, qword [r14]
mov qword [rdi + 0x4ba8], rax
mov qword [rdi + 0x4bf8], 0xffffffffffffffff
mov ecx, dword [rdi + 0x40e4]
mov esi, dword [r14 + 8]
mov eax, dword [rdi + 0x4c44]
cmp ecx, esi
jne 0x1400a891b
mov esi, ecx
jmp 0x1400a892f
test ax, ax
js 0x1400a892f
xor ecx, ecx
xor edx, edx
call fcn.140090cb0
mov esi, dword [r14 + 8]
mov eax, dword [rbx]
mov ecx, dword [rdi + 0x4bb0]
xor ecx, esi
mov edx, eax
and edx, 0x800
or edx, ecx
je 0x1400a8997
mov ecx, eax
and ecx, 0x2000
jne 0x1400a8997
mov ecx, dword [rdi + 0x4bb4]
mov edx, dword [rdi + 0x4c4c]
mov dword [rdi + 0x4d68], ecx
mov ecx, dword [r14 + 8]
mov dword [rdi + 0x4d6c], ecx
mov ecx, dword [r14 + 0xc]
mov dword [rdi + 0x4d70], ecx
mov dword [rdi + 0x4d74], edx
shr eax, 0xa
and al, 1
mov byte [rdi + 0x4d78], al
mov eax, dword [r14 + 0x20]
shr eax, 0x15
and al, 1
mov byte [rdi + 0x4d79], al
mov esi, dword [r14 + 8]
test byte [rdi + 0x6184], 8
mov rax, qword [rdi + 0x4ba8]
mov r8d, dword [rdi + 0x4bb8]
je 0x1400a8aac
mov r9, qword [rax + 8]
cmp byte [0x140187c5c], 0
jne 0x1400a8a8c
xor ecx, ecx
movabs r10, 0xcccccccccccccccd
lea r11, [0x140109b30]
lea r15, [0x140187c19]
nop dword [rax]
mov rax, rcx
mul r10
shr rdx, 2
and rdx, 0xfffffffffffffffc
lea rdx, [rdx + rdx*4]
mov rax, r11
sub rax, rdx
movzx edx, byte [rax + rcx + 0x24dc]
xor dl, byte [rcx + r11 + 0x24f0]
mov byte [rcx + r15], dl
cmp rcx, 0x42
je 0x1400a8a85
add rax, 0x24dc
movzx eax, byte [rax + rcx + 1]
xor al, byte [rcx + r11 + 0x24f1]
mov byte [rcx + r15 + 1], al
add rcx, 2
jmp 0x1400a89e0
mov eax, dword [rdi + 0x4c44]
mov ecx, dword [rdi + 0x4d00]
lea rbx, [rdi + 0x4c44]
test eax, 0x400
je 0x1400a8c3e
test ecx, ecx
jne 0x1400a8c3e
cmp dword [rdi + 0x4c84], 1
je 0x1400a8a6c
cmp dword [rdi + 0x4c80], 0
jne 0x1400a8c6d
cmp dword [rdi + 0x4d38], 0
je 0x1400a8c6d
lea r14, [rdi + 0x4d30]
jmp 0x1400a8745
mov byte [0x140187c5c], 1
lea rcx, [0x140187c19]
mov edx, esi
call fcn.140086520
mov rax, qword [rdi + 0x4ba8]
mov r8d, dword [rdi + 0x4bb8]
mov esi, dword [r14 + 8]
mov rax, qword [rax + 0x3a8]
movsxd r15, r8d
mov rax, qword [rax + r15*8 + 0x3e8]
mov qword [rsp + 0x30], rax
mov ecx, dword [r14 + 0xc]
mov r12, qword [0x140186d50]
mov dword [r12 + 0x4bb0], esi
mov dword [r12 + 0x4bb8], r15d
call fcn.1400a3530
mov rax, qword [r12 + 0x4ba8]
mov dword [rax + r15*4 + 0x3c0], esi
mov rax, qword [r12 + 0x4ba8]
shl r15, 4
movups xmm0, xmmword [r14 + 0x10]
movups xmmword [rax + r15 + 0x3c8], xmm0
mov rax, qword [0x140186d50]
mov rcx, qword [rax + 0x4ba8]
mov rcx, qword [rcx + 0x3a8]
movsxd rax, dword [rax + 0x4bb8]
mov dword [rcx + rax*8 + 0x3e8], 0x7f7fffff
mov rax, qword [0x140186d50]
mov rcx, qword [rax + 0x4ba8]
mov rcx, qword [rcx + 0x3a8]
movsxd rax, dword [rax + 0x4bb8]
mov dword [rcx + rax*8 + 0x3ec], 0x7f7fffff
mov rax, qword [r14 + 0x30]
cmp rax, 0xffffffffffffffff
je 0x1400a8b6c
mov qword [rdi + 0x4bf8], rax
mov eax, dword [rbx]
test eax, 0x400
jne 0x1400a8bcf
movsd xmm0, qword [r14 + 0x10]
movsd xmm1, qword [r14 + 0x18]
addps xmm1, xmm0
mulps xmm1, xmmword [0x140108f10]
movlps qword [rsp + 0x28], xmm1
movzx eax, bpl
movss xmm0, dword [rsp + rax*4 + 0x28]
movss dword [rsp + rax*4 + 0x30], xmm0
mov rax, qword [rdi + 0x4ba8]
mov rax, qword [rax + 0x3a8]
movsxd rcx, dword [rdi + 0x4bb8]
mov rdx, qword [rsp + 0x30]
mov qword [rax + rcx*8 + 0x3e8], rdx
mov eax, dword [rdi + 0x4c44]
test eax, 0x400
je 0x1400a8bdd
test byte [r14 + 0x22], 0x10
jne 0x1400a8bdd
and eax, 0xffffefff
mov dword [rbx], eax
test eax, 0x1000
je 0x1400a8c03
mov ecx, dword [r14 + 8]
mov dword [rdi + 0x4be8], ecx
shl eax, 0x15
sar eax, 0x1f
and eax, 0xd
mov dword [rdi + 0x4bec], eax
mov eax, dword [rdi + 0x4c44]
test eax, 0x4000
jne 0x1400a8c21
mov rax, qword [0x140186d50]
mov word [rax + 0x4c01], 1
mov byte [rax + 0x4c03], 1
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1400f0d70
nop
add rsp, 0x50
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov edx, dword [rdi + 0x4c50]
and edx, 0xfffffffe
cmp edx, 2
sete bpl
test ecx, ecx
je 0x1400a8c80
lea r14, [rdi + 0x4cf8]
lea rsi, [rdi + 0x4c50]
test al, 0x20
jne 0x1400a8760
jmp 0x1400a877b
mov edx, dword [rdi + 0x4c50]
and edx, 0xfffffffe
xor ecx, ecx
cmp edx, 2
sete cl
jmp 0x1400a8c8f
xor ecx, ecx
cmp edx, 2
sete cl
test eax, 0x400
je 0x1400a8c96
or eax, 0x4000
mov dword [rbx], eax
cmp dword [rdi + 0x4bb0], 0
je 0x1400a8cb6
and eax, 0x4000
jne 0x1400a8cb6
mov word [rdi + 0x4c01], 1
mov byte [rdi + 0x4c03], 1
mov rax, qword [rdi + 0x4ba8]
movsxd rdx, dword [rdi + 0x4bb8]
shl rdx, 3
add rdx, qword [rax + 0x3a8]
mov eax, ecx
mov dword [rdx + rax*4 + 0x3e8], 0x7f7fffff
test byte [rdi + 0x6184], 8
je 0x1400a8c21
cmp byte [0x140187beb], 0
jne 0x1400a8d89
mov ecx, 1
xor r8d, r8d
movabs r10, 0x97b425ed097b425f
lea r11, [0x140109b30]
lea rsi, [0x140187bba]
nop word cs:[rax + rax]
mov rax, rcx
mul r10
mov r9, rdx
mov rax, r8
mul r10
shr rdx, 4
imul rax, rdx, 0xffffffffffffffe5
lea rdx, [r11 + r8]
movzx eax, byte [rax + rdx + 0x241b]
xor al, byte [r8 + r11 + 0x2436]
mov byte [r8 + rsi], al
cmp r8, 0x30
je 0x1400a8d82
shr r9, 4
imul rax, r9, 0xffffffffffffffe5
add rax, r11
add rax, 0x241c
movzx eax, byte [rax + r8]
xor al, byte [r8 + r11 + 0x2437]
mov byte [r8 + rsi + 1], al
add r8, 2
add rcx, 2
jmp 0x1400a8d20
mov byte [0x140187beb], 1
lea rcx, [0x140187bba]
call fcn.140086520
jmp 0x1400a8c21