Function at 0x140130260
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rax, rcx
dec rcx
mov rdx, qword [rax - 1]
shr edx, 0xc
cmp rdx, 0x18
jle 0x1401302e5
cmp edx, 0x19
je 0x140130307
cmp edx, 0x5e
je 0x140130322
cmp edx, 0x5d
jne 0x140130367
mov rdx, qword [rcx]
shr rdx, 0x20
jne 0x140130786
mov rdx, qword [rcx + 8]
sar rdx, 1
mov r8, qword [rcx]
and r8d, 0xfffff000
cmp r8d, 0x5d000
jne 0x140130390
test rdx, rdx
jle 0x1401303b9
add rax, 0xf
mov r8d, edx
and r8d, 3
cmp rdx, 4
jae 0x1401305a3
xor r9d, r9d
jmp 0x140130639
cmp edx, 0x17
je 0x1401302ef
cmp edx, 0x18
jne 0x140130367
mov rdx, qword [rcx]
mov rdi, qword [rcx + 8]
lea rsi, [rdi + rcx]
add rsi, 0x10
add rdi, 0x10
jmp 0x14013079c
mov edi, dword [rax + 7]
shr edi, 2
lea rsi, [rcx + rdi]
add rsi, 0xc
add rdi, 0xc
mov rdx, qword [rax - 1]
jmp 0x14013079c
mov rdx, qword [rcx]
shr rdx, 0x20
jne 0x140130596
mov rdx, qword [rcx + 8]
sar rdx, 1
mov r8, qword [rcx]
and r8d, 0xfffff000
cmp r8d, 0x5d000
jne 0x14013036e
test rdx, rdx
jle 0x1401303b2
add rax, 0xf
mov r8d, edx
and r8d, 3
cmp rdx, 4
jae 0x1401303c0
xor r9d, r9d
jmp 0x140130449
add rsp, 0x28
pop rdi
pop rsi
ret
test rdx, rdx
jle 0x1401303b2
add rax, 0xf
mov r8d, edx
and r8d, 3
cmp rdx, 4
jae 0x140130489
xor r9d, r9d
jmp 0x140130519
test rdx, rdx
jle 0x1401303b9
add rax, 0xf
mov r8d, edx
and r8d, 3
cmp rdx, 4
jae 0x140130679
xor r9d, r9d
jmp 0x140130709
xor edx, edx
jmp 0x140130548
xor edx, edx
jmp 0x140130738
movabs r9, 0x7ffffffffffffffc
and rdx, r9
xor r9d, r9d
movzx r10d, byte [rax]
add r10d, r9d
mov r9d, r10d
shl r9d, 0xa
add r9d, r10d
mov r10d, r9d
shr r10d, 6
xor r10d, r9d
movzx r9d, byte [rax + 1]
add r9d, r10d
mov r10d, r9d
shl r10d, 0xa
add r10d, r9d
mov r9d, r10d
shr r9d, 6
xor r9d, r10d
movzx r10d, byte [rax + 2]
add r10d, r9d
mov r9d, r10d
shl r9d, 0xa
add r9d, r10d
mov r10d, r9d
shr r10d, 6
xor r10d, r9d
movzx r9d, byte [rax + 3]
add r9d, r10d
mov r10d, r9d
shl r10d, 0xa
add r10d, r9d
mov r9d, r10d
shr r9d, 6
xor r9d, r10d
add rax, 4
add rdx, 0xfffffffffffffffc
jne 0x1401303d0
test r8, r8
je 0x140130544
xor edx, edx
nop word cs:[rax + rax]
movzx r10d, byte [rax + rdx]
add r10d, r9d
mov r11d, r10d
shl r11d, 0xa
add r11d, r10d
mov r9d, r11d
shr r9d, 6
xor r9d, r11d
inc rdx
cmp r8, rdx
jne 0x140130460
jmp 0x140130544
movabs r9, 0x7ffffffffffffffc
and rdx, r9
xor r9d, r9d
nop dword [rax]
movzx r10d, word [rax]
add r10d, r9d
mov r9d, r10d
shl r9d, 0xa
add r9d, r10d
mov r10d, r9d
shr r10d, 6
xor r10d, r9d
movzx r9d, word [rax + 2]
add r9d, r10d
mov r10d, r9d
shl r10d, 0xa
add r10d, r9d
mov r9d, r10d
shr r9d, 6
xor r9d, r10d
movzx r10d, word [rax + 4]
add r10d, r9d
mov r9d, r10d
shl r9d, 0xa
add r9d, r10d
mov r10d, r9d
shr r10d, 6
xor r10d, r9d
movzx r9d, word [rax + 6]
add r9d, r10d
mov r10d, r9d
shl r10d, 0xa
add r10d, r9d
mov r9d, r10d
shr r9d, 6
xor r9d, r10d
add rax, 8
add rdx, 0xfffffffffffffffc
jne 0x1401304a0
test r8, r8
je 0x140130544
xor edx, edx
movzx r10d, word [rax + rdx*2]
add r10d, r9d
mov r11d, r10d
shl r11d, 0xa
add r11d, r10d
mov r9d, r11d
shr r9d, 6
xor r9d, r11d
inc rdx
cmp r8, rdx
jne 0x140130520
lea edx, [r9 + r9*8]
mov rax, qword [rcx]
mov r8, rax
shr r8, 0x20
jne 0x140130596
mov r8d, edx
shr r8d, 0xb
xor r8d, edx
mov edx, r8d
shl edx, 0xf
add edx, r8d
and edx, 0x3fffffff
cmp edx, 1
adc edx, 0
shl rdx, 0x20
nop word [rax + rax]
mov r8, rax
or r8, rdx
lock cmpxchg qword [rcx], r8
je 0x140130596
mov r8, rax
shr r8, 0x20
je 0x140130580
mov rdi, qword [rcx + 8]
and rdi, 0xfffffffffffffffe
jmp 0x14013078d
movabs r9, 0x7ffffffffffffffc
and rdx, r9
xor r9d, r9d
nop word cs:[rax + rax]
movzx r10d, byte [rax]
add r10d, r9d
mov r9d, r10d
shl r9d, 0xa
add r9d, r10d
mov r10d, r9d
shr r10d, 6
xor r10d, r9d
movzx r9d, byte [rax + 1]
add r9d, r10d
mov r10d, r9d
shl r10d, 0xa
add r10d, r9d
mov r9d, r10d
shr r9d, 6
xor r9d, r10d
movzx r10d, byte [rax + 2]
add r10d, r9d
mov r9d, r10d
shl r9d, 0xa
add r9d, r10d
mov r10d, r9d
shr r10d, 6
xor r10d, r9d
movzx r9d, byte [rax + 3]
add r9d, r10d
mov r10d, r9d
shl r10d, 0xa
add r10d, r9d
mov r9d, r10d
shr r9d, 6
xor r9d, r10d
add rax, 4
add rdx, 0xfffffffffffffffc
jne 0x1401305c0
test r8, r8
je 0x140130734
xor edx, edx
nop word cs:[rax + rax]
movzx r10d, byte [rax + rdx]
add r10d, r9d
mov r11d, r10d
shl r11d, 0xa
add r11d, r10d
mov r9d, r11d
shr r9d, 6
xor r9d, r11d
inc rdx
cmp r8, rdx
jne 0x140130650
jmp 0x140130734
movabs r9, 0x7ffffffffffffffc
and rdx, r9
xor r9d, r9d
nop dword [rax]
movzx r10d, word [rax]
add r10d, r9d
mov r9d, r10d
shl r9d, 0xa
add r9d, r10d
mov r10d, r9d
shr r10d, 6
xor r10d, r9d
movzx r9d, word [rax + 2]
add r9d, r10d
mov r10d, r9d
shl r10d, 0xa
add r10d, r9d
mov r9d, r10d
shr r9d, 6
xor r9d, r10d
movzx r10d, word [rax + 4]
add r10d, r9d
mov r9d, r10d
shl r9d, 0xa
add r9d, r10d
mov r10d, r9d
shr r10d, 6
xor r10d, r9d
movzx r9d, word [rax + 6]
add r9d, r10d
mov r10d, r9d
shl r10d, 0xa
add r10d, r9d
mov r9d, r10d
shr r9d, 6
xor r9d, r10d
add rax, 8
add rdx, 0xfffffffffffffffc
jne 0x140130690
test r8, r8
je 0x140130734
xor edx, edx
movzx r10d, word [rax + rdx*2]
add r10d, r9d
mov r11d, r10d
shl r11d, 0xa
add r11d, r10d
mov r9d, r11d
shr r9d, 6
xor r9d, r11d
inc rdx
cmp r8, rdx
jne 0x140130710
lea edx, [r9 + r9*8]
mov rax, qword [rcx]
mov r8, rax
shr r8, 0x20
jne 0x140130786
mov r8d, edx
shr r8d, 0xb
xor r8d, edx
mov edx, r8d
shl edx, 0xf
add edx, r8d
and edx, 0x3fffffff
cmp edx, 1
adc edx, 0
shl rdx, 0x20
nop word [rax + rax]
mov r8, rax
or r8, rdx
lock cmpxchg qword [rcx], r8
je 0x140130786
mov r8, rax
shr r8, 0x20
je 0x140130770
mov rdi, qword [rcx + 8]
sar rdi, 1
lea rsi, [rdi + rcx]
add rsi, 0x10
add rdi, 0x10
mov rdx, qword [rcx]
mov r8d, edx
shr r8d, 4
and r8d, 0xf0
jne 0x1401307b4
call fcn.140178cf0
mov r8, rax
sub r8, rdi
mov rcx, rsi
xor edx, edx
add rsp, 0x28
pop rdi
pop rsi
jmp fcn.14025c7b0