Function at 0x1400ab110
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp], 0xfffffffffffffffe
mov esi, r9d
mov r12d, r8d
movaps xmm0, xmmword [0x140426640]
test ecx, ecx
je 0x1400ab5cf
movups xmmword [0x1405576cf], xmm0
movups xmmword [0x1405576bf], xmm0
movups xmmword [0x1405576af], xmm0
movups xmmword [0x14055769f], xmm0
cmp qword [0x140564158], 0
jne 0x1400ab198
mov r8d, r12d
xor r8d, 0xb39b3fc7
mov ecx, 0x700
mov edx, 0xb76036ff
call fcn.1400aaef0
mov qword [rbp - 8], rax
mov rcx, rax
call fcn.140098b60
mov rax, qword [rbp - 8]
mov qword [0x140564158], rax
mov rdi, qword [0x140564158]
mov rbx, qword [rdi + 0x3b0]
test rbx, rbx
je 0x1400ab1bb
mov rcx, rbx
call fcn.14009a5f0
mov rcx, rbx
call fcn.1400a9570
mov qword [rdi + 0x3b0], 0
mov byte [0x140564320], 1
cmp qword [0x140564158], 0
jne 0x1400ab207
mov r8d, r12d
xor r8d, 0xb39b3fc7
mov ecx, 0x700
mov edx, 0xb76036ff
call fcn.1400aaef0
mov qword [rbp - 8], rax
mov rcx, rax
call fcn.140098b60
mov rax, qword [rbp - 8]
mov qword [0x140564158], rax
mov rdi, qword [0x140564158]
lea rbx, [rdi + 0x558]
mov rcx, qword [rdi + 0x558]
test rcx, rcx
je 0x1400ab254
cmp dword [rdi + 0x574], 1
jne 0x1400ab238
mov r8, qword [rdi + 0x560]
xor edx, edx
call fcn.14040c5e0
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400ab254
mov r8d, r12d
xor r8d, 0x86362ffc
mov edx, 0x1e7a6e58
call fcn.1400a9560
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
mov byte [rdi + 0x570], 1
mov rcx, qword [0x140564428]
test rcx, rcx
je 0x1400ab291
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [0x1404ee420]
mov qword [0x140564428], 0
cmp qword [0x140564158], 0
jne 0x1400ab2cb
mov r8d, r12d
xor r8d, 0xb39b3fc7
mov ecx, 0x700
mov edx, 0xb76036ff
call fcn.1400aaef0
mov qword [rbp - 8], rax
mov rcx, rax
call fcn.140098b60
mov rax, qword [rbp - 8]
mov qword [0x140564158], rax
mov dword [rbp - 8], r12d
mov rbx, qword [0x140564158]
mov r9, qword [rbx + 0x370]
mov rax, qword [rbx + 0x378]
sub rax, r9
shr rax, 5
imul eax, eax, 0xcccccccd
mov r15d, esi
test eax, eax
jle 0x1400ab3e5
xor r14d, r14d
mov r12d, dword [rbp - 8]
xor r12d, 0xbc876fa5
mov rax, r15
not rax
movabs r13, 0x6c92fe86d550c515
and r13, rax
movabs rdi, 0x6c92fe86d550da74
and rdi, rax
jmp 0x1400ab353
cqo
idiv rcx
shl rax, 0x20
mov ecx, esi
xor ecx, 0xf4
add ecx, dword [0x1404f14e0]
sar rax, cl
cmp r14, rax
jge 0x1400ab3e5
lea rax, [r14 + r14*4]
shl rax, 5
cmp dword [r9 + rax + 0x88], 0
jne 0x1400ab371
cmp qword [r9 + rax + 0x88], 0
je 0x1400ab394
lea r8, [r9 + rax]
add r8, 0x80
mov edx, dword [r9 + rax + 0x24]
mov dword [rsp + 0x20], r12d
mov rcx, rbx
mov r9d, 0x1173f597
call fcn.1400aa840
mov rdx, qword [0x1404f14e0]
mov eax, r15d
and eax, 0x2aaf3aea
or rax, r13
add r14, rax
add r14, rdx
mov r9, qword [rbx + 0x370]
mov rax, qword [rbx + 0x378]
sub rax, r9
mov ecx, r15d
and ecx, 0x2aaf258b
or rcx, rdi
add rcx, rdx
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
jne 0x1400ab330
xor edx, edx
div ecx
jmp 0x1400ab335
mov rax, qword [rbx + 0x398]
sub rax, qword [rbx + 0x390]
shr rax, 2
test eax, eax
mov r13d, dword [rbp - 8]
jle 0x1400ab47e
xor r14d, r14d
mov eax, esi
not eax
mov ecx, eax
and ecx, 0xc7baf99f
mov edi, esi
and edi, 0x38450660
or edi, ecx
and eax, 0x8a334933
mov r12d, esi
and r12d, 0x75ccb6cc
or r12d, eax
nop word [rax + rax]
mov eax, dword [0x1404f14e8]
add eax, edi
xor eax, r13d
mov dword [rsp + 0x20], eax
mov rcx, rbx
mov edx, r14d
xor r8d, r8d
mov r9d, 0x1173f597
call fcn.1400aa840
mov eax, dword [0x1404f14e8]
mov ecx, r12d
xor ecx, eax
and eax, r12d
lea eax, [rcx + rax*2]
add r14d, eax
mov rax, qword [rbx + 0x398]
sub rax, qword [rbx + 0x390]
shr rax, 2
cmp r14d, eax
jl 0x1400ab430
mov rax, qword [0x140564090]
test rax, rax
je 0x1400ab8a9
mov rdi, qword [rax + 0x20]
mov r14, qword [rdi]
cmp r14, rdi
je 0x1400ab561
movabs rbx, 0x6c92fe86d550c514
xor rbx, r15
jmp 0x1400ab4bc
mov rax, r14
mov r14, rax
cmp rax, rdi
je 0x1400ab561
mov dword [r14 + 0x30], 0
mov dword [r14 + 0x28], 0
mov r8, qword [r14 + 0x58]
test r8, r8
je 0x1400ab4e0
mov rcx, qword [r14 + 0x50]
mov dl, 1
call fcn.14040c5e0
mov r8, qword [r14 + 0x98]
mov rax, qword [0x1404f14e0]
add rax, rbx
cmp r8, rax
je 0x1400ab504
mov rcx, qword [r14 + 0x90]
mov dl, 1
call fcn.14040c5e0
mov rcx, qword [r14 + 0x10]
cmp byte [rcx + 0x19], 0
je 0x1400ab550
mov rax, qword [r14 + 8]
movzx ecx, byte [0x1404f14d8]
mov edx, esi
xor dl, 0x81
mov r8d, edx
xor r8b, cl
and dl, cl
add dl, dl
add dl, r8b
cmp byte [rax + 0x19], dl
jne 0x1400ab4b0
mov rcx, r14
mov r14, rax
cmp rcx, qword [rax + 0x10]
jne 0x1400ab4ad
mov rax, qword [r14 + 8]
cmp byte [rax + 0x19], 0
je 0x1400ab530
jmp 0x1400ab4b0
mov rax, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x1400ab550
jmp 0x1400ab4b0
mov rax, qword [0x140564090]
mov rax, qword [rax + 0x30]
mov rcx, qword [rax]
cmp rcx, rax
jne 0x1400ab58c
jmp 0x1400ab8a9
mov rcx, rdx
cmp rdx, rax
je 0x1400ab8a9
mov dword [rcx + 0x20], 0xffffffff
mov r8, qword [rcx + 0x10]
cmp byte [r8 + 0x19], 0
je 0x1400ab5c0
nop
mov rdx, qword [rcx + 8]
cmp byte [rdx + 0x19], 0
jne 0x1400ab580
mov r8, rcx
mov rcx, rdx
cmp r8, qword [rdx + 0x10]
je 0x1400ab5a0
mov rdx, rcx
jmp 0x1400ab580
mov rdx, r8
mov r8, qword [r8]
cmp byte [r8 + 0x19], 0
je 0x1400ab5c0
jmp 0x1400ab580
movups xmmword [0x1405576cf], xmm0
movups xmmword [0x1405576bf], xmm0
movups xmmword [0x1405576af], xmm0
movups xmmword [0x14055769f], xmm0
mov byte [0x140564320], 1
mov rcx, qword [0x140564428]
test rcx, rcx
je 0x1400ab61a
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [0x1404ee420]
mov qword [0x140564428], 0
cmp qword [0x140564158], 0
jne 0x1400ab654
mov r8d, r12d
xor r8d, 0xb39b3fc7
mov ecx, 0x700
mov edx, 0xb76036ff
call fcn.1400aaef0
mov qword [rbp - 8], rax
mov rcx, rax
call fcn.140098b60
mov rax, qword [rbp - 8]
mov qword [0x140564158], rax
mov rdi, qword [0x140564158]
lea rbx, [rdi + 0x558]
mov rcx, qword [rdi + 0x558]
test rcx, rcx
je 0x1400ab6f6
cmp dword [rdi + 0x574], 1
jne 0x1400ab689
mov r8, qword [rdi + 0x560]
xor edx, edx
call fcn.14040c5e0
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400ab6a5
mov r8d, r12d
xor r8d, 0x86362ffc
mov edx, 0x1e7a6e58
call fcn.1400a9560
cmp qword [0x140564158], 0
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
mov byte [rdi + 0x570], 1
jne 0x1400ab70b
mov r8d, r12d
xor r8d, 0xb39b3fc7
mov ecx, 0x700
mov edx, 0xb76036ff
call fcn.1400aaef0
mov qword [rbp - 8], rax
mov rcx, rax
call fcn.140098b60
mov rax, qword [rbp - 8]
mov qword [0x140564158], rax
jmp 0x1400ab70b
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
mov byte [rdi + 0x570], 1
mov rbx, qword [0x140564158]
mov r8, qword [rbx + 0x370]
mov rax, qword [rbx + 0x378]
sub rax, r8
shr rax, 5
imul eax, eax, 0xcccccccd
test eax, eax
jle 0x1400ab7a9
mov edi, 1
mov r14d, 0x80
mov r15d, r12d
xor r15d, 0xbc876fa5
cmp dword [r8 + r14 + 8], 0
jne 0x1400ab758
nop
cmp qword [r8 + r14 + 8], 0
je 0x1400ab773
mov edx, dword [r8 + r14 - 0x5c]
add r8, r14
mov dword [rsp + 0x20], r15d
mov rcx, rbx
mov r9d, 0x1173f597
call fcn.1400aa840
mov r8, qword [rbx + 0x370]
mov rax, qword [rbx + 0x378]
sub rax, r8
shr rax, 5
imul eax, eax, 0xcccccccd
cdqe
cmp rdi, rax
jge 0x1400ab7a9
inc rdi
add r14, 0xa0
cmp dword [r8 + r14 + 8], 0
je 0x1400ab750
jmp 0x1400ab758
mov rax, qword [rbx + 0x398]
sub rax, qword [rbx + 0x390]
shr rax, 2
test eax, eax
jle 0x1400ab80e
mov edi, 1
mov r14d, esi
xor r14d, 0xc7baf99f
nop
lea edx, [rdi - 1]
mov eax, dword [0x1404f14e8]
add eax, r14d
xor eax, r12d
mov dword [rsp + 0x20], eax
mov rcx, rbx
xor r8d, r8d
mov r9d, 0x1173f597
call fcn.1400aa840
mov rax, qword [rbx + 0x398]
sub rax, qword [rbx + 0x390]
shr rax, 2
cmp edi, eax
jge 0x1400ab80e
inc edi
jmp 0x1400ab7d0
mov rax, qword [0x140564090]
test rax, rax
je 0x1400ab841
mov rdi, qword [rax + 0x20]
mov rbx, qword [rdi]
cmp rbx, rdi
jne 0x1400ab8d6
mov rax, qword [0x140564090]
mov rax, qword [rax + 0x30]
mov rcx, qword [rax]
cmp rcx, rax
jne 0x1400ab97c
cmp qword [0x140564158], 0
jne 0x1400ab87b
xor r12d, 0xb39b3fc7
mov ecx, 0x700
mov edx, 0xb76036ff
mov r8d, r12d
call fcn.1400aaef0
mov qword [rbp - 8], rax
mov rcx, rax
call fcn.140098b60
mov rax, qword [rbp - 8]
mov qword [0x140564158], rax
mov rdi, qword [0x140564158]
mov rsi, qword [rdi + 0x3b0]
test rsi, rsi
je 0x1400ab89e
mov rcx, rsi
call fcn.14009a5f0
mov rcx, rsi
call fcn.1400a9570
mov qword [rdi + 0x3b0], 0
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
je 0x1400ab940
mov rbx, rax
cmp rax, rdi
je 0x1400ab82a
mov dword [rbx + 0x30], 0
mov dword [rbx + 0x28], 0
mov r8, qword [rbx + 0x58]
test r8, r8
je 0x1400ab8f8
mov rcx, qword [rbx + 0x50]
mov dl, 1
call fcn.14040c5e0
mov r8, qword [rbx + 0x98]
test r8, r8
je 0x1400ab912
mov rcx, qword [rbx + 0x90]
mov dl, 1
call fcn.14040c5e0
mov rcx, qword [rbx + 0x10]
mov eax, esi
xor al, 0x81
add al, byte [0x1404f14d8]
cmp byte [rcx + 0x19], al
jne 0x1400ab8c0
nop word cs:[rax + rax]
mov rax, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x1400ab930
jmp 0x1400ab8ca
mov rcx, rbx
mov rbx, rax
cmp rcx, qword [rax + 0x10]
jne 0x1400ab961
mov rax, qword [rbx + 8]
movzx ecx, byte [0x140563d10]
add cl, byte [rax + 0x19]
je 0x1400ab940
jmp 0x1400ab8ca
mov rax, rbx
jmp 0x1400ab8ca
mov rdx, rcx
nop dword [rax]
mov rcx, rdx
cmp rdx, rax
je 0x1400ab841
mov dword [rcx + 0x20], 0xffffffff
mov r8, qword [rcx + 0x10]
cmp byte [r8 + 0x19], 0
je 0x1400ab9d0
mov rdx, qword [rcx + 8]
movzx r8d, byte [rdx + 0x19]
movzx r9d, byte [0x140563f15]
mov r10d, r9d
xor r10b, r8b
and r9b, r8b
add r9b, r9b
add r9b, r10b
jne 0x1400ab970
mov r8, rcx
mov rcx, rdx
cmp r8, qword [rdx + 0x10]
jne 0x1400ab969
mov rdx, qword [rcx + 8]
cmp byte [rdx + 0x19], 0
je 0x1400ab9b0
jmp 0x1400ab970
mov rdx, r8
mov r8, qword [r8]
cmp byte [r8 + 0x19], 0
je 0x1400ab9d0
jmp 0x1400ab970