Function at 0x140271860
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x50]
mov qword [rbp], 0xfffffffffffffffe
mov rsi, rcx
mov rax, qword [rdx + 0x18]
test rax, rax
je 0x140271921
mov rdi, rdx
mov rcx, rax
xor rcx, 1
mov rdx, rax
not rdx
movabs rbx, 0x7ffffffffffffffe
xor rbx, rax
and rbx, rdx
or rbx, rcx
not rbx
add rbx, rbx
xorps xmm0, xmm0
movaps xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], 0
add rbx, rcx
je 0x14027195e
js 0x140271994
lea r14, [rbx + rbx]
cmp rbx, 0x800
jb 0x14027192e
movabs rax, 0x7fffffffffffffed
cmp rbx, rax
jae 0x140271999
mov rax, qword [0x140575a90]
lea rcx, [rax + r14]
add rcx, 0x27
mov edx, 0xf3e803e7
mov r8d, 0x487d7862
call fcn.1400aaae0
lea rcx, [rax + 0x27]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x140271944
cmp qword [rsi + 0x20], 8
jb 0x14027197e
mov rax, qword [rsi + 8]
jmp 0x140271982
mov rcx, r14
mov edx, 0xf3e803e7
mov r8d, 0x487d7862
call fcn.1400aaae0
mov rcx, rax
mov qword [rbp - 0x20], rcx
lea r15, [rcx + rbx*2]
mov qword [rbp - 0x10], r15
xor edx, edx
mov r8, r14
call fcn.14041da70
mov qword [rbp - 0x18], r15
mov eax, 0xf6b75844
add eax, dword [0x1405368f8]
lea rcx, [fcn.140271860]
add ecx, ecx
add ecx, 0x1760
test ecx, eax
jne 0x1402719b0
jmp 0x14027199e
lea rax, [rsi + 8]
mov qword [rsi + 0x18], 0
mov word [rax], 0
jmp 0x140271c8f
call fcn.140274ab0
call fcn.140085ac0
movsxd r15, dword [0x1404459d8]
mov eax, dword [0x140576c44]
cmp eax, 0x62
jl 0x1402719c9
mov eax, dword [0x1404459d8]
mov eax, dword [0x140576c40]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1402719b0
jmp 0x14027199e
lea rax, [0x1404459d8]
add r15, rax
nop word cs:[rax + rax]
mov r12d, dword [0x1404459e8]
mov eax, dword [0x140576c40]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x140271a00
mov eax, dword [0x1404459e8]
jmp 0x1402719e0
mov rdx, qword [rbp - 0x20]
mov rcx, rdi
mov r8, rbx
mov r9b, 1
call fcn.140271d50
mov rbx, qword [rbp - 0x20]
lea rdi, [rsi + 8]
mov rax, qword [rsi + 0x20]
mov rcx, qword [0x140576080]
mov rdx, rcx
xor rdx, rax
and rcx, rax
lea r13, [rdx + rcx*2]
test rbx, rbx
je 0x140271a62
mov rcx, rbx
mov edx, 0x8d8e217
mov r8d, 0x6a7abd04
call fcn.1400aac30
mov r14, rax
cmp r13, rax
jae 0x140271a76
mov rcx, rdi
mov rdx, r14
mov r9, rbx
call fcn.1400926c0
jmp 0x140271a9c
cmp r13, 8
jb 0x140271a6c
mov rdi, qword [rsi + 8]
mov qword [rsi + 0x18], 0
jmp 0x140271a97
cmp r13, 8
jb 0x140271a80
mov rdi, qword [rsi + 8]
mov qword [rsi + 0x18], r14
lea r8, [r14 + r14]
mov rcx, rdi
mov rdx, rbx
call fcn.14041d3c0
lea rdi, [rdi + r14*2]
mov word [rdi], 0
mov r9, qword [rbp - 0x20]
mov r8d, 0xf6b75845
mov r10d, 0xf6b75844
lea rax, [fcn.140271860]
lea r11d, [rax + rax]
add r11d, 0xec0
nop
mov ecx, dword [0x140535e98]
mov edx, dword [0x140576c40]
lea eax, [rdx - 1]
imul eax, edx
mov edi, dword [0x1405368f8]
add edi, r8d
xor edx, edx
div edi
test edx, edx
je 0x140271af1
mov eax, dword [0x1405368f8]
add eax, r10d
test r11d, eax
jmp 0x140271ac0
lea edx, [rcx + 1]
mov dword [0x140535e98], edx
xor edx, ecx
not edx
test edx, ecx
je 0x140271b06
xor eax, eax
jmp 0x140271b60
xor r8d, r8d
test r12d, r12d
jg 0x140271b12
xor eax, eax
jmp 0x140271b60
xor r10d, r10d
nop word cs:[rax + rax]
movsxd r8, r8d
mov r11, qword [r15 + r8]
mov rax, r11
xor rax, r11
not rax
and rax, r10
xor rax, r11
mov r10d, dword [0x1405368f8]
neg r10d
add r8d, r10d
add r8d, 0x948a7c5
mov r10, rax
cmp r8d, r12d
jl 0x140271b20
nop word cs:[rax + rax]
mov r8d, dword [0x140576c40]
lea r10d, [r8 - 1]
imul r10d, r8d
test r10b, 1
jne 0x140271b60
mov r8d, dword [0x140576c44]
mov r10d, 0xf6b75896
add r10d, dword [0x1405368f8]
cmp r8d, r10d
jge 0x140271b60
test r9, r9
je 0x140271c8f
mov r8, qword [rbp - 0x10]
sub r8, r9
cmp r8, 0x1000
jb 0x140271c72
mov r10, qword [r9 - 8]
add r9, 0xfffffffffffffff8
sub r9, r10
cmp r9, 0x20
jae 0x140271c16
and edx, ecx
xor ecx, ecx
cmp edx, 1
movabs rdx, 0xaed83ebd6208e55d
adc rdx, rcx
movabs rcx, 0x5127c1429df71aa3
xor rcx, rdx
and edx, 3
lea rcx, [rcx + rdx*2]
neg rcx
movabs rdx, 0x1f5cd79d72b15a16
add rdx, qword [0x1404459b8]
mov r9d, dword [0x140576c40]
lea r11d, [r9 - 1]
imul r11d, r9d
test r11b, 1
jne 0x140271cb4
jmp 0x140271ca3
call fcn.1403d599c
sub rdx, rax
movabs rax, 0xe0a328628d4ea5ea
add rax, rdx
mov rdx, rax
not rdx
xor rax, rcx
not rcx
and rcx, rdx
or rcx, rax
not rcx
mov rax, qword [0x140575a90]
mov rdx, rax
xor rdx, rcx
and rcx, rax
lea rax, [rdx + rcx*2]
add r8, qword [0x1405368f0]
mov qword [0x140575a90], rax
movabs rax, 0x5e3983f4e1c16e2
add r8, rax
mov r9, r10
mov dword [rsp + 0x28], 0xbbc0698e
mov dword [rsp + 0x20], 0x581ad427
xor ecx, ecx
mov rdx, r9
xor r9d, r9d
call fcn.140141aa0
mov rax, rsi
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov r9d, dword [0x140576c44]
cmp r9d, 0x19
jl 0x140271c1b
mov r9d, 0xf6b75843
nop word [rax + rax]
mov r11d, dword [0x140576c40]
lea edi, [r11 + 1]
imul edi, r11d
and edi, 1
mov r11d, dword [0x1405368f8]
add r11d, r9d
cmp edi, r11d
jne 0x140271cc0
jmp 0x140271ca3