Function at 0x1401b4e30
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rax, rcx
dec rcx
mov rdx, qword [rax - 1]
shr edx, 0xc
cmp rdx, 0x19
jle 0x1401b4ebd
cmp edx, 0x1a
je 0x1401b4ef7
cmp edx, 0x5f
je 0x1401b4f26
cmp edx, 0x5e
jne 0x1401b4f73
mov rdx, qword [rcx]
shr rdx, 0x20
jne 0x1401b5394
mov rdx, qword [rax + 7]
sar rdx, 1
test al, 1
je 0x1401b4f98
mov r8, qword [rcx]
and r8d, 0xfffff000
cmp r8d, 0x5e000
jne 0x1401b4f98
test rdx, rdx
jle 0x1401b4fc1
add rax, 0xf
mov r8d, edx
and r8d, 3
cmp rdx, 4
jae 0x1401b5281
xor r9d, r9d
jmp 0x1401b5319
cmp edx, 0x18
je 0x1401b4ecb
cmp edx, 0x19
jne 0x1401b4f73
mov rdx, qword [rcx]
mov rdi, qword [rcx + 8]
lea rsi, [rdi + rcx]
add rsi, 0x10
add rdi, 0x10
mov r8d, edx
shr r8d, 4
and r8d, 0xf0
jne 0x1401b53c2
jmp 0x1401b53ba
mov edi, dword [rax + 7]
shr edi, 2
lea rsi, [rcx + rdi]
add rsi, 0xc
add rdi, 0xc
mov rdx, qword [rax - 1]
mov r8d, edx
shr r8d, 4
and r8d, 0xf0
jne 0x1401b53c2
jmp 0x1401b53ba
mov rdx, qword [rcx]
shr rdx, 0x20
jne 0x1401b5274
mov rdx, qword [rax + 7]
sar rdx, 1
test al, 1
je 0x1401b4f7a
mov r8, qword [rcx]
and r8d, 0xfffff000
cmp r8d, 0x5e000
jne 0x1401b4f7a
test rdx, rdx
jle 0x1401b4fba
add rax, 0xf
mov r8d, edx
and r8d, 3
cmp rdx, 4
jae 0x1401b5169
xor r9d, r9d
jmp 0x1401b51f9
add rsp, 0x28
pop rdi
pop rsi
ret
test rdx, rdx
jle 0x1401b4fba
add rax, 0xf
mov r8d, edx
and r8d, 3
cmp rdx, 4
jae 0x1401b4fc8
xor r9d, r9d
jmp 0x1401b5059
test rdx, rdx
jle 0x1401b4fc1
add rax, 0xf
mov r8d, edx
and r8d, 3
cmp rdx, 4
jae 0x1401b5099
xor r9d, r9d
jmp 0x1401b5129
xor edx, edx
jmp 0x1401b5228
xor edx, edx
jmp 0x1401b5348
movabs r9, 0x7ffffffffffffffc
and rdx, r9
xor r9d, r9d
nop dword [rax + 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 0x1401b4fe0
test r8, r8
je 0x1401b5224
xor edx, edx
nop word cs:[rax + rax]
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 0x1401b5070
jmp 0x1401b5224
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 0x1401b50b0
test r8, r8
je 0x1401b5344
xor edx, edx
nop word cs:[rax + rax]
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 0x1401b5140
jmp 0x1401b5344
movabs r9, 0x7ffffffffffffffc
and rdx, r9
xor r9d, r9d
nop dword [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 0x1401b5180
test r8, r8
je 0x1401b5224
xor edx, edx
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 0x1401b5200
lea edx, [r9 + r9*8]
mov rax, qword [rcx]
mov r8, rax
shr r8, 0x20
jne 0x1401b5274
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]
lea r8, [rax + rdx]
lock cmpxchg qword [rcx], r8
je 0x1401b5274
mov r8, rax
shr r8, 0x20
je 0x1401b5260
mov rdi, qword [rcx + 8]
and rdi, 0xfffffffffffffffe
jmp 0x1401b539b
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 0x1401b52a0
test r8, r8
je 0x1401b5344
xor edx, edx
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 0x1401b5320
lea edx, [r9 + r9*8]
mov rax, qword [rcx]
mov r8, rax
shr r8, 0x20
jne 0x1401b5394
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]
lea r8, [rax + rdx]
lock cmpxchg qword [rcx], r8
je 0x1401b5394
mov r8, rax
shr r8, 0x20
je 0x1401b5380
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 0x1401b53c2
call fcn.140204c80
mov r8, rax
sub r8, rdi
mov rcx, rsi
xor edx, edx
add rsp, 0x28
pop rdi
pop rsi
jmp fcn.1402a4b90