Function at 0x140272580
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x88
lea rbp, [rsp + 0x80]
mov qword [rbp], 0xfffffffffffffffe
mov rsi, rcx
test rdx, rdx
je 0x14027260e
mov rdi, r8
mov rbx, rdx
mov rax, qword [0x14055d0a0]
mov rcx, rax
shr rcx, 0x20
or ecx, eax
mov qword [rbp - 8], rcx
mov qword [rbp - 0x18], 0
movabs r12, 0xc987cc5fdc30fdee
mov rax, qword [0x14051fb98]
add rax, r12
mov qword [rbp - 0x10], rax
mov byte [rbp - 0x28], 0
cmp r8, 0xf
jbe 0x140272622
lea rax, [fcn.140272580]
add eax, eax
add eax, 0x4860
mov ecx, eax
not ecx
test ecx, eax
je 0x1402726e2
jmp 0x14027271a
cmp qword [rsi + 0x20], 0x10
jb 0x1402726bc
mov rax, qword [rsi + 8]
jmp 0x1402726c0
lea r15, [fcn.140272580]
lea eax, [r15 + r15]
add eax, 0x3360
mov r13d, eax
not r13d
and eax, r13d
lea ecx, [r15 + r15]
add ecx, 0x3361
and r13d, 0xfffffffe
xor r13d, ecx
or r13d, eax
lea r14, [rbp - 0x28]
nop word cs:[rax + rax]
cmp r13d, 0xffffffff
jne 0x140272692
mov qword [rbp - 0x18], rdi
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call fcn.14040cc90
mov byte [rbp + rdi - 0x28], 0
mov eax, dword [0x14055d098]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x140272743
mov qword [rbp - 0x18], rdi
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call fcn.14040cc90
mov byte [rbp + rdi - 0x28], 0
lea eax, [r15 + r15]
add eax, 0x3340
mov ecx, eax
not ecx
test ecx, eax
jne 0x140272660
jmp 0x140272666
lea rax, [rsi + 8]
mov qword [rsi + 0x18], 0
mov byte [rax], 0
mov rax, rsi
add rsp, 0x88
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov eax, dword [0x14051f7a4]
sub eax, dword [rbp - 8]
add eax, 0xea0e
cdqe
add rax, qword [0x14051f7c8]
lea rcx, [rbp - 0x28]
mov rdx, rdi
mov r9, rbx
call qword [case.0x140303ece.0]
mov eax, dword [0x14055d098]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x140272743
mov eax, dword [0x14051f7a4]
or eax, dword [rbp - 8]
add eax, 0xea0e
cdqe
add rax, qword [0x14051f7c8]
lea rcx, [rbp - 0x28]
mov rdx, rdi
mov r9, rbx
call qword [case.0x140303ece.0]
jmp 0x1402726e2
mov rdi, qword [rbp - 0x18]
mov rax, qword [0x14051fb98]
add rax, r12
cmp qword [rbp - 0x10], rax
jbe 0x14027275d
mov r14, qword [rbp - 0x28]
jmp 0x140272761
lea r14, [rbp - 0x28]
lea rbx, [rbp - 0x48]
cmp rdi, 0xf
ja 0x14027277d
movups xmm0, xmmword [r14]
movups xmmword [rbx], xmm0
mov r13d, 0xf
jmp 0x140272907
mov rax, qword [0x14051fb98]
lea r13, [rax + r12]
or r13, rdi
movabs rcx, 0x7fffffffffffffff
cmp r13, rcx
cmovae r13, rcx
movabs rcx, 0xc987cc5fdc310ddd
add rcx, rax
cmp r13, rcx
jbe 0x1402727e4
lea rcx, [r13 + 0x28]
call fcn.1403e4d2c
mov rcx, qword [0x14051fb98]
movabs rdx, 0xc987cc5fdc30fe06
add rdx, rcx
add rdx, rax
movabs r15, 0xc987cc5fdc30fdbf
add r15, rcx
and r15, rdx
mov qword [r15 - 8], rax
jmp 0x14027282f
mov eax, dword [0x14055d09c]
cmp eax, 0x16
jg 0x140272810
mov eax, dword [0x14055d09c]
mov ecx, 0xc070f38b
add ecx, dword [0x14051fb90]
cmp eax, ecx
jl 0x140272823
nop word cs:[rax + rax]
mov eax, dword [0x14055d098]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140272810
jmp 0x1402727ef
lea rcx, [r13 + 1]
call fcn.1403e4d2c
mov r15, rax
mov eax, dword [0x14055d098]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140272868
mov qword [rbp - 0x48], r15
lea r8, [rdi + 1]
mov rcx, r15
mov rdx, r14
call fcn.14040cc90
mov eax, dword [0x14055d098]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x140272907
lea ecx, [rdi + rdi]
mov rax, rdi
shl rax, cl
mov rcx, qword [0x14051fb98]
movabs rdx, 0xc987cc5fdc30fddf
xor rdx, rcx
not rcx
movabs r8, 0x367833a023cf0220
and r8, rcx
or r8, rdx
not r8
lea r8, [rdx + r8*2]
sub r8, rdi
add r8, rax
mov rdx, r8
mov ecx, eax
shl rdx, cl
sub r8, rdx
imul r8, rdx
mov rax, r8
mov ecx, edx
shl rax, cl
mov ecx, r8d
neg ecx
mov edx, ecx
xor edx, eax
and ecx, eax
lea ecx, [rdx + rcx*2]
mov rax, r8
shl rax, cl
mov qword [rbp - 0x48], r15
mov rdx, r8
mov ecx, eax
shl rdx, cl
mov ecx, edx
shl r8, cl
mov ecx, r8d
sub ecx, edx
imul ecx, edx
mov rax, r8
shl rax, cl
mov ecx, eax
shl r8, cl
add r8, rax
mov rcx, r15
mov rdx, r14
call fcn.14040cc90
jmp 0x140272840
mov qword [rbp - 0x38], rdi
mov qword [rbp - 0x30], r13
lea rax, [0x140427b38]
mov qword [rbp - 0x50], rax
lea rax, [rbp - 0x50]
cmp rax, rsi
je 0x14027299b
test rdi, rdi
sete al
movzx ecx, byte [0x14055c1f8]
lea r14, [rsi + 8]
test cl, al
jne 0x14027295f
xor cl, al
jne 0x14027295f
cmp r13, 0x10
jb 0x140272946
mov rbx, qword [rbp - 0x48]
mov rax, qword [rsi + 0x20]
cmp rax, rdi
jae 0x140272974
mov rcx, r14
mov rdx, rdi
mov r9, rbx
call fcn.140086c60
jmp 0x140272997
cmp qword [rsi + 0x20], 0x10
jb 0x14027296a
mov r14, qword [rsi + 8]
mov qword [rsi + 0x18], 0
jmp 0x140272993
cmp rax, 0x10
jb 0x14027297e
mov r14, qword [rsi + 8]
mov qword [rsi + 0x18], rdi
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call fcn.14040cc90
add r14, rdi
mov byte [r14], 0
mov r13, qword [rbp - 0x30]
cmp r13, 0x10
jb 0x140272a5a
mov rdx, qword [rbp - 0x48]
mov rax, qword [0x14055d0a0]
lea r9, [rax + r13]
inc r9
cmp r9, 0x1000
jb 0x140272a22
mov rax, qword [rdx - 8]
sub rdx, rax
add rdx, 0xfffffffffffffff8
cmp rdx, 0x1f
ja 0x140272b96
nop word cs:[rax + rax]
mov ecx, dword [0x14055d09c]
cmp ecx, 0x40
jle 0x1402729f6
mov ecx, dword [0x14055d09c]
cmp ecx, 0x51
jge 0x1402729e0
movabs rcx, 0x9957a00037498a25
add r13, rcx
mov rcx, r13
xor rcx, 0x28
and r13d, 0x28
lea rcx, [rcx + r13*2]
movabs r9, 0x66a85fffc8b675db
add r9, rcx
mov rdx, rax
mov eax, dword [0x14051f7a0]
or eax, dword [rbp - 8]
add eax, 0xea0e
cdqe
add rax, qword [0x14051f7b8]
mov dword [rsp + 0x28], 0xcd760f93
mov dword [rsp + 0x20], 0x919f62ff
mov ecx, 1
mov r8d, 1
call qword [case.0x140303ece.0]
mov ecx, dword [0x14055d098]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, 0xc070f376
add ecx, dword [0x14051fb90]
xor edx, edx
div ecx
test edx, edx
nop word [rax + rax]
mov rax, qword [rbp - 0x10]
mov rcx, qword [0x14051fb98]
add rcx, r12
mov edx, dword [0x14055d09c]
mov r8d, dword [0x14051fb90]
mov r9d, r8d
xor r9d, 0xc070f38a
and r8d, 0x4070f38a
lea r8d, [r9 + r8*2]
cmp edx, r8d
jge 0x140272a80
cmp rax, rcx
jbe 0x1402726cb
movabs r9, 0xc987cc5fdc30fde0
movabs rcx, 0xc987cc5fdc310dde
lea rdx, [fcn.140272580]
lea r8d, [rdx + rdx]
add r8d, 0xf20
mov r10d, r8d
not r10d
nop word [rax + rax]
mov edx, dword [0x14055d098]
lea r11d, [rdx - 1]
imul r11d, edx
test r11b, 1
jne 0x140272b1a
mov rdx, qword [rbp - 0x28]
mov r11, qword [0x14051fb98]
mov edi, dword [0x14055d09c]
cmp edi, 0xf
jle 0x140272b21
test r10d, r8d
jne 0x140272af0
jmp 0x140272b04
add r9, r11
add r9, rax
add rcx, r11
cmp r9, rcx
jbe 0x140272b4a
mov rcx, qword [rdx - 8]
add rdx, 0xfffffffffffffff8
sub rdx, rcx
cmp rdx, 0x20
jae 0x140272b9b
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov rax, qword [rbp - 8]
or eax, dword [0x14051f7a0]
add eax, 0xea0e
cdqe
add rax, qword [0x14051f7b8]
mov r8d, dword [0x14051fb90]
lea ecx, [r8 - 0x3f8f0c8b]
lea r10d, [r8 + 0x52105673]
add r8d, 0x8de70307
mov dword [rsp + 0x28], r8d
mov dword [rsp + 0x20], r10d
mov r8d, ecx
call qword [case.0x140303ece.0]
jmp 0x1402726cb
call fcn.1403c4adc
call fcn.1403c4adc
int3