Function at 0x140081de0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x40
lea rbp, [rsp + 0x40]
mov qword [rbp - 8], 0xfffffffffffffffe
mov rsi, rcx
call fcn.140076260
test al, al
je 0x140081e1a
mov rcx, rsi
call fcn.140076100
test al, al
je 0x140081e1a
xor eax, eax
jmp 0x14008235e
mov eax, dword [rsi + 0x87c]
mov ecx, eax
not ecx
xor eax, 0x10
and ecx, 0xffffffef
or ecx, eax
cmp ecx, 0xffffffff
je 0x140081e8c
mov eax, dword [0x140575630]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140081e55
mov rcx, rsi
call fcn.14007ef20
mov eax, dword [0x140575634]
cmp eax, 0xf
jl 0x140081e8c
mov edi, 0x7380dc9e
lea rax, [fcn.140081de0]
lea ebx, [rax + rax]
add ebx, 0x1a60
nop word [rax + rax]
mov rcx, rsi
call fcn.14007ef20
mov eax, dword [0x1405015c0]
add eax, edi
mov ecx, ebx
xor ecx, eax
not ecx
test ecx, eax
jne 0x140081e70
jmp 0x140081e42
mov rcx, qword [0x140575d60]
test rcx, rcx
je 0x140081eb4
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x14013cbc3.0]
mov qword [0x140575d60], 0
mov eax, dword [0x140575634]
cmp eax, 0x31
nop dword [rax]
mov rsi, qword [0x140575a40]
mov eax, dword [0x140575630]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140081ec0
test rsi, rsi
je 0x140081f61
lea rcx, [rsi + 0x20]
mov rdi, qword [rsi + 0x20]
mov r8, qword [rdi + 8]
mov rdx, rcx
call fcn.1400a86a0
mov qword [rdi + 8], rdi
mov qword [rdi], rdi
mov qword [rdi + 0x10], rdi
mov rax, qword [0x1405015b8]
movabs rcx, 0xa2ab64746d57d0cd
xor rcx, rax
movabs rdx, 0x22ab64746d57d0cd
and rdx, rax
lea rax, [rcx + rdx*2]
movabs rcx, 0x6b91dfbcf9fcb72e
add rcx, rax
mov qword [rsi + 0x28], rcx
lea rcx, [rsi + 0x30]
mov rdi, qword [rsi + 0x30]
mov r8, qword [rdi + 8]
mov rdx, rcx
call fcn.1400a8710
mov qword [rdi + 8], rdi
mov qword [rdi], rdi
mov qword [rdi + 0x10], rdi
mov qword [rsi + 0x38], 0
mov byte [rsi + 0x11], 0
cmp qword [0x140575b00], 0
jne 0x140082040
movabs rsi, 0xe3d443167548efb
nop dword [rax]
mov ecx, 0x700
mov edx, 0x9d4bde00
mov r8d, 0xc61b48
call fcn.1400aaae0
mov rcx, rax
mov eax, dword [0x140575634]
cmp eax, 0xb
jle 0x140081fe3
mov rcx, qword [0x1405015b8]
add rcx, rsi
mov eax, dword [0x1405015c0]
lea edx, [rax + 0x10ccba9d]
mov r8d, eax
xor r8d, 0xc2288ed6
and eax, 0x42288ed6
lea r8d, [r8 + rax*2]
add r8d, 0xb21e690f
call fcn.1400aaae0
mov eax, dword [0x140575634]
cmp eax, 0x1e
jmp 0x140081f80
mov qword [rbp - 0x10], rcx
call fcn.140097d10
mov eax, dword [0x140575630]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov rdx, qword [rbp - 0x10]
jne 0x140082028
jmp 0x140082003
mov eax, 0x7380dc9e
add eax, dword [0x1405015c0]
mov qword [0x140575b00], rdx
lea rcx, [fcn.140081de0]
add ecx, ecx
add ecx, 0x4ce0
test ecx, eax
je 0x140082040
mov qword [0x140575b00], rdx
jmp 0x140082003
mov eax, dword [0x140575630]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140082040
mov rdi, qword [0x140575b00]
mov rsi, qword [rdi + 0x3b0]
mov eax, dword [0x140575634]
cmp eax, 0x37
jge 0x140082040
test rsi, rsi
je 0x14008207f
mov rcx, rsi
call fcn.1400996b0
mov rcx, rsi
call fcn.1400a87d0
mov qword [rdi + 0x3b0], 0
mov byte [0x140575c68], 1
cmp qword [0x140575b00], 0
jne 0x1400820c7
mov ecx, 0x700
mov edx, 0x9d4bde00
mov r8d, 0xc61b48
call fcn.1400aaae0
mov qword [rbp - 0x10], rax
mov rcx, rax
call fcn.140097d10
mov rax, qword [rbp - 0x10]
mov qword [0x140575b00], rax
mov rax, qword [0x140575b00]
mov r8, qword [rax + 0x560]
test r8, r8
je 0x14008211e
mov rcx, qword [rax + 0x558]
mov dl, 1
call fcn.14041da70
cmp qword [0x140575b00], 0
jne 0x14008211e
mov ecx, 0x700
mov edx, 0x9d4bde00
mov r8d, 0xc61b48
call fcn.1400aaae0
mov qword [rbp - 0x10], rax
mov rcx, rax
call fcn.140097d10
mov rax, qword [rbp - 0x10]
mov qword [0x140575b00], rax
mov rsi, qword [0x140575b00]
mov rax, qword [rsi + 0x370]
mov rcx, qword [rsi + 0x378]
sub rcx, rax
shr rcx, 5
imul ecx, ecx, 0xcccccccd
mov edi, 0x7380dc9d
mov edx, dword [0x1405015c0]
add edx, edi
cmp ecx, edx
jle 0x1400822d3
xor ebx, ebx
mov r14d, 0x7380dc9e
lea rcx, [fcn.140081de0]
lea r15d, [rcx + rcx]
add r15d, 0x2780
movabs r12, 0xe3d4431675487fb
jmp 0x14008219c
inc rbx
sub rcx, rax
shr rcx, 5
imul ecx, ecx, 0xcccccccd
movsxd rcx, ecx
cmp rbx, rcx
jge 0x1400822d3
lea rcx, [rbx + rbx*4]
shl rcx, 5
cmp dword [rax + rcx + 0x88], 0
jne 0x1400821bd
cmp qword [rax + rcx + 0x88], 0
je 0x140082299
lea r8, [rax + rcx]
add r8, 0x80
mov edx, dword [rax + rcx + 0x24]
mov dword [rsp + 0x20], 0xb4873da
mov rcx, rsi
mov r9d, 0x16d1e9f
call fcn.1400aa0a0
jmp 0x140082299
mov rax, qword [rsi + 0x370]
mov rcx, qword [rsi + 0x378]
mov rdx, rcx
sub rdx, rax
imul rdx, rax
sub rcx, rdx
imul rcx, rdx
mov rax, qword [0x1405015b8]
sub rax, rcx
sub rcx, rdx
imul rcx, rdx
add rax, r12
mov rdx, rax
xor rdx, rcx
and rax, rcx
lea rdx, [rdx + rax*2]
sub ecx, edx
mov rax, rdx
shl rax, cl
mov rcx, rax
sub rcx, rdx
imul rax, rdx
add rax, rcx
lea rdx, [rax + rax*4]
shl rdx, 5
add rdx, 0xffffffffffff9c00
mov rcx, rax
sub rcx, rdx
imul rcx, rdx
sub rax, rcx
imul rax, rcx
shl rax, cl
mov rdx, rax
sub rdx, rcx
add rdx, rax
add rdx, rax
neg rdx
or rdx, rax
shr rdx, 0x20
mov eax, dword [0x140575630]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x1405015c0]
add eax, edi
cmp ecx, eax
je 0x1400822b1
mov eax, dword [0x1405015c0]
add eax, r14d
mov ecx, r15d
xor ecx, eax
not ecx
test ecx, eax
jne 0x1400821f0
mov rax, qword [rsi + 0x370]
mov rcx, qword [rsi + 0x378]
mov edx, dword [0x140575634]
cmp edx, 0x1d
jg 0x1400821f0
jmp 0x140082180
mov rax, qword [rsi + 0x398]
sub rax, qword [rsi + 0x390]
shr rax, 2
test eax, eax
jle 0x140082339
xor edi, edi
nop dword [rax + rax]
mov dword [rsp + 0x20], 0xb4873da
mov rcx, rsi
mov edx, edi
xor r8d, r8d
mov r9d, 0x16d1e9f
call fcn.1400aa0a0
mov eax, dword [0x1405015c0]
mov ecx, eax
xor ecx, 0x7380dc9e
and eax, 0x7380dc9e
lea eax, [rcx + rax*2]
add edi, eax
mov rax, qword [rsi + 0x398]
sub rax, qword [rsi + 0x390]
shr rax, 2
cmp edi, eax
jl 0x1400822f0
movaps xmm0, xmmword [0x140438430]
movups xmmword [0x14056906f], xmm0
movups xmmword [0x14056905f], xmm0
movups xmmword [0x14056904f], xmm0
movups xmmword [0x14056903f], xmm0
mov al, 1
add rsp, 0x40
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
ret