Function at 0x140089320
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r14
push rsi
push rdi
push rbx
sub rsp, 0x60
lea rbp, [rsp + 0x60]
mov qword [rbp - 8], 0xfffffffffffffffe
mov rdi, rdx
mov rsi, rcx
movzx eax, byte [0x14058ef1c]
mov qword [rbp - 0x10], rax
mov qword [rbp - 0x18], r8
mov rax, qword [r8 + 0x10]
test rax, rax
je 0x140089412
mov rbx, qword [rbp - 0x18]
mov rcx, qword [rbx + 0x18]
mov r8, rcx
sub r8, rax
movabs rdx, 0x891a0c6388521779
mov r9, qword [0x1405109d8]
add r9, rdx
cmp r8, r9
jae 0x1400893d0
mov eax, dword [0x1405125f8]
mov rcx, qword [rbp - 0x10]
neg ecx
add eax, ecx
add eax, 0x85ed
cdqe
add rax, qword [0x140512608]
mov ecx, 1
xor edx, edx
mov r8d, 0x286af526
mov r9d, 0xaa816c6a
call qword [case.0x140114b5b.0]
mov qword [rsp + 0x20], 2
mov edx, 2
mov rcx, rbx
mov r9, rax
call fcn.140089750
jmp 0x140089412
mov r8, qword [0x1405109d8]
xor rdx, r8
movabs r9, 0x91a0c6388521779
and r9, r8
lea rdx, [rdx + r9*2]
add rdx, rax
mov qword [rbx + 0x10], rdx
mov r8, rbx
cmp rcx, 0x10
jb 0x1400893fe
mov r8, qword [rbx]
mov word [r8 + rax], 0x203a
movzx eax, byte [0x1405109d0]
add al, 0xb8
mov byte [r8 + rdx], al
mov rcx, qword [rdi + 8]
mov r8d, dword [rdi]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
lea rdi, [rbp - 0x38]
mov rdx, rdi
call qword [case.0x140114b5b.0]
mov r8, qword [rbp - 0x28]
cmp qword [rbp - 0x20], 0x10
jb 0x14008943c
mov rdi, qword [rbp - 0x38]
mov r9, qword [rbp - 0x18]
mov rcx, qword [r9 + 0x10]
mov rax, qword [r9 + 0x18]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x140089468
mov qword [rsp + 0x20], r8
mov rcx, r9
mov rdx, r8
mov r9, rdi
call fcn.140089750
jmp 0x140089494
lea rbx, [rcx + r8]
mov qword [r9 + 0x10], rbx
mov r14, r9
cmp rax, 0x10
jb 0x14008947c
mov r14, qword [r9]
add rcx, r14
mov rdx, rdi
call fcn.14042d4b0
movzx eax, byte [0x1405109d0]
add al, 0xb8
mov byte [r14 + rbx], al
mov rax, qword [rbp - 0x20]
cmp rax, 0x10
jb 0x14008958e
mov rdi, qword [rbp - 0x38]
lea rbx, [rax + 1]
cmp rbx, 0x1000
jb 0x1400894e5
mov rcx, qword [rdi - 8]
sub rdi, rcx
add rdi, 0xfffffffffffffff8
cmp rdi, 0x20
jae 0x14008968f
xor edx, edx
test dl, dl
nop dword [rax]
mov edx, dword [0x14058ec94]
cmp edx, 0x4d
jge 0x1400894d0
add rax, 0x28
mov rbx, rax
mov rdi, rcx
xor eax, eax
test al, al
je 0x140089562
mov r14, qword [rbp - 0x10]
neg r14d
nop word cs:[rax + rax]
mov eax, dword [0x1405125f4]
add eax, r14d
add eax, 0x85ed
cdqe
add rax, qword [0x140512600]
mov rcx, rdi
mov rdx, rbx
call qword [case.0x140114b5b.0]
mov eax, dword [0x14058ec94]
mov ecx, dword [0x1405109d4]
mov edx, ecx
not edx
mov r8d, ecx
and r8d, 0xf2feed38
mov r9d, edx
and r9d, 0xd0112c7
or r9d, r8d
xor ecx, 0xd0112c7
and edx, 0x72feed38
or edx, ecx
not edx
lea ecx, [r9 + rdx*2]
cmp eax, ecx
jge 0x140089500
mov rcx, qword [rbp - 0x10]
or ecx, dword [0x1405125f4]
mov eax, dword [0x1405109d4]
add eax, ecx
add eax, 0xd01988f
cdqe
add rax, qword [0x140512600]
mov rcx, rdi
mov rdx, rbx
call qword [case.0x140114b5b.0]
movabs rax, 0x891a0c6388521786
movabs rcx, 0x891a0c6388521777
mov rbx, qword [rbp - 0x18]
nop word cs:[rax + rax]
movzx edx, byte [rbx]
mov r8, qword [rbx + 1]
mov r9d, dword [rbx + 9]
movzx r10d, word [rbx + 0xd]
movzx r11d, byte [rbx + 0xf]
mov rdi, qword [rbx + 0x10]
mov qword [rsi + 0x10], rdi
mov rdi, qword [rbx + 0x18]
mov qword [rsi + 0x18], rdi
mov byte [rsi], dl
mov qword [rsi + 1], r8
mov dword [rsi + 9], r9d
mov word [rsi + 0xd], r10w
mov byte [rsi + 0xf], r11b
mov qword [rbx + 0x10], 0
mov rdx, qword [0x1405109d8]
add rdx, rax
mov qword [rbx + 0x18], rdx
mov byte [rbx], 0
mov edx, dword [0x14058ec90]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x140089681
nop word cs:[rax + rax]
movzx edx, byte [rbx]
mov r8, qword [rbx + 1]
mov r9d, dword [rbx + 9]
movzx r10d, word [rbx + 0xd]
movzx r11d, byte [rbx + 0xf]
mov rdi, qword [rbx + 0x10]
mov qword [rsi + 0x10], rdi
mov rdi, qword [rbx + 0x18]
mov qword [rsi + 0x18], rdi
mov byte [rsi], dl
mov qword [rsi + 1], r8
mov dword [rsi + 9], r9d
mov word [rsi + 0xd], r10w
mov byte [rsi + 0xf], r11b
mov rdx, qword [0x1405109d8]
add rdx, rcx
mov qword [rbx + 0x10], rdx
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
mov edx, dword [0x14058ec94]
cmp edx, 0x12
jge 0x140089620
jmp 0x1400895b0
mov rax, rsi
add rsp, 0x60
pop rbx
pop rdi
pop rsi
pop r14
pop rbp
ret
call fcn.1403e571c
int3