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

Disassembly:
nop
call fcn.140164a70
int3
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x40
mov ebx, r9d
mov rdi, r8
mov r14, rdx
mov eax, r9d
and eax, 0x3f
cmp eax, 0x11
jae 0x1402e05be
cmp eax, 8
jae 0x1402e0616
cmp eax, 3
jbe 0x1402e0639
cmp eax, 5
jbe 0x1402e06c3
xor esi, esi
cmp eax, 7
jne 0x1402e104f
nop
sub esi, dword [r14 - 4]
movsxd rax, esi
lea rsi, [r14 + rax]
add rsi, 0xffffffffffffff78
mov r8, rsi
mov r9d, 0xba68bf9c
mov rdi, rcx
call fcn.1402dd930
test edi, edi
je 0x1402e0b0e
mov rcx, rsi
call fcn.1400954d0
jmp 0x1402e104f
cmp eax, 0x19
ja 0x1402e0829
cmp eax, 0x13
ja 0x1402e086c
cmp eax, 0x11
je 0x1402e0735
cmp eax, 0x13
jne 0x1402e07f3
mov r14d, r14d
mov ebx, 0x349e9504
mov ecx, edi
mov eax, ebx
and eax, 0x24
cmp eax, 0x11
jae 0x1402e07e9
cmp eax, 8
jb 0x1402e0568
cmp eax, 0xa
jbe 0x1402e066a
cmp eax, 0xd
ja 0x1402e0af5
jmp 0x1402e074b
cmp eax, 0xb
jb 0x1402e066a
jne 0x1402e06f6
test ecx, ecx
je 0x1402e09ac
mov rcx, r14
call fcn.1400954d0
mov rsi, r14
jmp 0x1402e104f
cmp eax, 2
jae 0x1402e06e1
mov esi, 0xffffffff
test eax, eax
jne 0x1402e104f
mov r8, rcx
mov rcx, r14
mov rdx, rdi
mov r9d, 0x4af0cad8
call fcn.1402e0540
mov esi, eax
jmp 0x1402e104f
cmp eax, 0xa
je 0x1402e0717
cmp eax, 8
jne 0x1402e0726
nop
mov rax, qword [0x140791248]
test rax, rax
je 0x1402e0a7c
nop
mov rcx, qword [rax + 8]
movsxd rdx, dword [rcx + 4]
lea rcx, [rax + rdx]
add rcx, 8
mov rax, qword [rax + rdx + 8]
mov rax, qword [rax]
mov edx, 1
call qword [0x140704440]
mov qword [0x140791248], 0
xor esi, esi
jmp 0x1402e104f
cmp eax, 4
jne 0x1402e07a0
nop
movzx eax, byte [0x14073ec93]
cmp al, 0xb7
je 0x1402e1048
jmp 0x1402e1000
cmp eax, 3
jne 0x1402e07af
call fcn.1402bc2a0
xor esi, esi
jmp 0x1402e104f
cmp eax, 0xe
jb 0x1402e074b
cmp eax, 0x10
je 0x1402e0c1b
cmp eax, 0xe
jne 0x1402e0af5
mov ebx, 0xff4269a0
jmp 0x1402e05ea
mov rcx, rdi
call fcn.14059b878
xor esi, esi
jmp 0x1402e104f
mov rcx, rdi
call fcn.14059d520
xor esi, esi
jmp 0x1402e104f
test ecx, ecx
je 0x1402e0ac8
test bl, 0x40
jne 0x1402e0b01
jmp 0x1402e10a8
mov esi, 1
cmp eax, 0xd
je 0x1402e104f
lea rax, [0x1405e8c48]
mov qword [rdi], rax
mov r15, qword [rdi + 0x60]
test r15, r15
je 0x1402e0ee8
nop
mov rdx, qword [r15 + 8]
test rdx, rdx
je 0x1402e0e76
nop
mov rax, qword [rdx]
mov rax, qword [rax + 0x10]
mov rcx, rdx
call qword [0x140704440]
mov rcx, rax
test rax, rax
jne 0x1402e0ad2
jmp 0x1402e0ee0
mov rcx, r14
call fcn.1402cf130
xor esi, esi
jmp 0x1402e104f
nop
mov r8, qword [r14 + 8]
movzx eax, byte [0x14073eb62]
cmp al, 0x95
je 0x1402e0cce
mov cl, 0x1e
nop word cs:[rax + rax]
mov al, 0x21
lock cmpxchg byte [0x14073eb62], cl
je 0x1402e0c4d
cmp al, 0x95
jne 0x1402e07d0
jmp 0x1402e0cce
cmp eax, 0x1a
jae 0x1402e0829
cmp eax, 0x14
jae 0x1402e086c
nop
movzx eax, byte [0x14073eba6]
lea rsi, [0x14073eb90]
cmp al, 0xe3
je 0x1402e104f
mov cl, 0xbc
nop dword [rax]
mov al, 0x25
lock cmpxchg byte [0x14073eba6], cl
je 0x1402e0b74
cmp al, 0xe3
jne 0x1402e0810
jmp 0x1402e104f
mov rsi, r14
cmp eax, 0x1d
jbe 0x1402e0899
cmp eax, 0x20
jae 0x1402e08d9
cmp eax, 0x1e
jne 0x1402e092a
nop
mov rdx, qword [rcx + 0x38]
mov rax, qword [rdx]
test rax, rax
je 0x1402e0b13
nop
mov r8, qword [rcx + 0x50]
cmp dword [r8], 0
jle 0x1402e0e6d
nop
movzx ecx, byte [rax]
jmp 0x1402e0f86
mov rsi, rcx
xor ecx, ecx
add eax, 0xffffffec
lea rdx, [0x1405f747c]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
nop
mov dword [0x14073fef0], 0xaf36384d
mov esi, 1
jmp 0x1402e104f
cmp eax, 0x1c
jae 0x1402e0919
cmp eax, 0x1a
jne 0x1402e096d
nop
movzx eax, byte [0x14073ebc5]
lea rsi, [0x14073ebb0]
cmp al, 0xea
je 0x1402e104f
mov cl, 0x91
mov al, 0xc5
lock cmpxchg byte [0x14073ebc5], cl
je 0x1402e0ce1
cmp al, 0xea
jne 0x1402e08c0
jmp 0x1402e104f
jne 0x1402e0974
nop
movzx eax, byte [0x14073eb85]
lea rsi, [0x14073eb70]
cmp al, 0x31
je 0x1402e104f
mov cl, 0xbd
nop dword [rax + rax]
mov al, 0x1e
lock cmpxchg byte [0x14073eb85], cl
je 0x1402e0d77
cmp al, 0x31
jne 0x1402e0900
jmp 0x1402e104f
cmp eax, 0x1d
jne 0x1402e0986
lea rsi, [0x1407901c8]
jmp 0x1402e104f
nop
mov rax, qword [rdi]
mov rax, qword [rax + 0x18]
lea rdx, [rsp + 0x30]
mov rsi, rcx
mov rcx, rdi
mov r8d, r14d
call qword [0x140704440]
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsi + 8]
mov rax, qword [rax + 8]
cmp rax, qword [rcx + 8]
sete al
mov ecx, dword [rsp + 0x30]
cmp ecx, dword [rsi]
sete cl
and cl, al
movzx esi, cl
jmp 0x1402e104f
xor esi, esi
jmp 0x1402e104f
cmp eax, 0x21
ja 0x1402e0a8a
movzx esi, r14b
jmp 0x1402e104f
nop
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rsi
cmp rsi, rcx
jae 0x1402e0a94
test bl, bl
js 0x1402e0e3a
lea r15, [rsp + 0x28]
jmp 0x1402e0ee0
mov rsi, r14
jmp 0x1402e104f
nop
mov dword [rsp + 0x20], edi
shr rdi, 0x20
mov qword [rsp + 0x30], r14
xor byte [rcx + rcx*4 + 0x74], cl
and al, 0x28
xor eax, eax
mov rcx, rsi
jmp 0x1402e105e
lea rax, [0x1405e9c88]
mov qword [rdi], rax
mov rdx, rdi
mov r9d, 0x1059edd
call fcn.1402dd930
lea rax, [0x1405e8c48]
mov qword [rdi], rax
mov rbx, qword [rdi + 0x60]
test rbx, rbx
je 0x1402e0a39
nop
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x1402e0a31
nop
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [0x140704440]
test rax, rax
je 0x1402e0a31
nop
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [0x140704440]
mov rcx, rbx
call fcn.1400954d0
test esi, esi
je 0x1402e1043
mov rcx, rdi
call fcn.1400954d0
jmp 0x1402e1043
test esi, esi
mov rsi, r14
jne 0x1402e0e5d
jmp 0x1402e104f
test r14d, r14d
je 0x1402e104f
mov rcx, rsi
call fcn.1400954d0
jmp 0x1402e104f
mov rax, rsi
jmp 0x1402e10a0
xor esi, esi
test bl, 0x40
cmove rsi, r14
jmp 0x1402e104f
nop
movzx esi, byte [rdi + 0x19]
jmp 0x1402e104f
test rdi, rdi
je 0x1402e0ff9
cmp rdi, 4
jb 0x1402e0f91
mov rax, rcx
sub rax, rsi
cmp rax, 0x10
jb 0x1402e0f91
cmp rdi, 0x10
jae 0x1402e0ef6
xor eax, eax
jmp 0x1402e0f3b
lea r15, [rsp + 0x30]
lea rcx, [rsp + 0x28]
test ebx, 0x100
je 0x1402e1043
nop
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [0x140704440]
jmp 0x1402e0ee0
nop
lock inc dword [rcx + 8]
xor esi, esi
jmp 0x1402e104f
mov rcx, rdi
call fcn.1400954d0
jmp 0x1402e1043
jmp 0x1402e1086
mov ecx, 0xffffffff
test bl, 0x40
jne 0x1402e0f86
lea rsi, [0x14073ebd0]
movq xmm0, qword [0x14073ebd0]
movdqa xmm1, xmmword [0x1405f7350]
paddb xmm1, xmm0
pxor xmm0, xmmword [0x1405f7360]
movdqa xmm2, xmmword [0x1405f7370]
pand xmm1, xmm2
pandn xmm2, xmm0
por xmm2, xmm1
movq qword [0x14073ebd0], xmm2
add byte [0x14073ebd8], 0x60
mov al, 0xc7
xchg byte [0x14073ebd9], al
jmp 0x1402e104f
lea r10, [0x1405f71c0]
mov ecx, 0xb10ca740
lea r11, [r10 + rcx]
mov r8d, 0xb10ca73e
xor edi, edi
movabs rbx, 0xe38e38e38e38e38f
lea rsi, [0x14073eb90]
mov r14d, 0xb10ca73f
nop word cs:[rax + rax]
mov rax, rcx
mul rbx
mov r9, rdx
shr r9, 3
and r9, 0xfffffffffffffffe
mov rax, r8
mul rbx
shr rdx, 3
and rdx, 0xfffffffffffffffe
lea rax, [rdx + rdx*8]
mov rdx, r10
sub rdx, rax
add rdx, rdi
movzx eax, byte [r14 + rdx]
not al
add byte [rdi + rsi], al
lea rax, [r9 + r9*8]
neg rax
movzx eax, byte [r11 + rax]
not al
add byte [rdi + rsi + 1], al
add rdi, 2
add r11, 2
add rcx, 2
add r8, 2
cmp rdi, 0x16
jne 0x1402e0bb0
mov al, 0xe3
xchg byte [0x14073eba6], al
jmp 0x1402e104f
nop
movzx eax, byte [0x14073ebd9]
lea rsi, [0x14073ebd0]
cmp al, 0xc7
je 0x1402e104f
mov cl, 0x9f
mov al, 0x66
lock cmpxchg byte [0x14073ebd9], cl
je 0x1402e0b21
cmp al, 0xc7
jne 0x1402e0c34
jmp 0x1402e104f
lea r9, [0x1405f7180]
mov r10d, 0x9f6fde93
add r10, r9
mov r11d, 0x9f6fde92
xor esi, esi
movabs rdi, 0xe38e38e38e38e38f
lea rbx, [0x14073eb50]
mov ecx, 0x9f6fde92
nop dword [rax + rax]
mov rax, rcx
mul rdi
shr rdx, 3
and rdx, 0xfffffffffffffffe
lea rax, [rdx + rdx*8]
mov rdx, r10
sub rdx, rax
mov r14, r9
sub r14, rax
add r14, rsi
movzx eax, byte [r11 + r14]
xor al, 0x65
add byte [rsi + rbx], al
movzx eax, byte [rdx]
xor al, 0x65
add byte [rsi + rbx + 1], al
add rsi, 2
add r10, 2
add rcx, 2
cmp rsi, 0x12
jne 0x1402e0c80
mov al, 0x95
xchg byte [0x14073eb62], al
test r8, r8
lea rsi, [0x14073eb50]
cmovne rsi, r8
jmp 0x1402e104f
mov ecx, 0xb002b000
mov r8d, 0xb002affe
xor r10d, r10d
movabs r11, 0xcccccccccccccccd
lea rax, [0x1405f71e0]
mov edi, 0xb002affc
add rdi, rax
lea rsi, [0x14073ebb0]
nop
mov rax, rcx
mul r11
mov r9, rdx
mov rax, r8
mul r11
shr rdx, 2
and rdx, 0xfffffffffffffffc
lea rax, [rdx + rdx*4]
mov rdx, rdi
sub rdx, rax
movzx eax, byte [rdx + r10 + 3]
xor al, 0x5b
add byte [r10 + rsi], al
cmp r10, 0x14
je 0x1402e0e20
shr r9, 2
and r9, 0xfffffffffffffffc
lea rax, [r9 + r9*4]
mov rdx, rdi
sub rdx, rax
add rdx, 4
movzx eax, byte [rdx + r10]
xor al, 0x5b
add byte [r10 + rsi + 1], al
add r10, 2
add rcx, 2
add r8, 2
jmp 0x1402e0d10
mov eax, 1
mov ecx, 0x961fc540
mov edx, 0x69e03ad2
mov r8d, 0x961fc541
mov r9d, 0x69e03ad1
mov r10d, 0xaf286bcb
lea rsi, [0x14073eb70]
lea r11, [0x1405f71a0]
nop word cs:[rax + rax]
mov edi, r9d
imul rdi, r10
shr rdi, 0x20
mov ebx, r9d
sub ebx, edi
shr ebx, 1
add ebx, edi
shr ebx, 4
lea edi, [rbx + rbx*8]
lea edi, [rbx + rdi*2]
add edi, r8d
movzx ebx, byte [rdi + r11]
xor bl, 0x9e
add byte [rax + rsi - 1], bl
cmp rax, 0x15
je 0x1402e0e2d
mov edi, edx
imul rdi, r10
shr rdi, 0x20
mov ebx, edx
sub ebx, edi
shr ebx, 1
add ebx, edi
shr ebx, 4
lea edi, [rbx + rbx*8]
lea edi, [rbx + rdi*2]
add edi, ecx
mov edi, edi
movzx ebx, byte [rdi + r11]
xor bl, 0x9e
add byte [rax + rsi], bl
add rax, 2
add ecx, 0xfffffffe
add edx, 2
add r8d, 0xfffffffe
add r9d, 2
jmp 0x1402e0db0
mov al, 0xea
xchg byte [0x14073ebc5], al
jmp 0x1402e104f
mov al, 0x31
xchg byte [0x14073eb85], al
jmp 0x1402e104f
xor eax, eax
cmp rdi, rax
je 0x1402e0ff9
lea rdx, [rax + 1]
test bl, 0x40
movzx r8d, byte [rcx + rax]
mov byte [rsi + rax], r8b
mov rax, rdx
je 0x1402e0e3c
mov r14, rsi
mov rcx, r14
call fcn.1400954d0
mov rsi, r14
jmp 0x1402e104f
lea r9, [rcx + 0x38]
xor r15d, r15d
jmp 0x1402e0e89
lea rax, [r15 + 8]
lea r9, [rsp + 0x30]
lea rdx, [rsp + 0x28]
lea r8, [rsp + 0x20]
mov rsi, rcx
test ebx, 0x200
jne 0x1402e0ee0
nop
mov rcx, qword [rsi + 0x40]
mov r10, qword [rcx]
mov ecx, 0xffffffff
test r10, r10
je 0x1402e0f86
nop
test byte [rsi + 0x70], 4
jne 0x1402e0f86
nop
mov r11, qword [rsi + 0x68]
cmp r11, r10
cmovb r11, r10
cmp r11, rax
jbe 0x1402e0f7e
nop
mov qword [rsi + 0x68], r11
sub r11d, dword [rdx]
mov dword [r8], r11d
mov rax, qword [r9]
mov rax, qword [rax]
jmp 0x1402e0863
mov rcx, r15
call fcn.1400954d0
test r14d, r14d
jne 0x1402e0ffb
jmp 0x1402e1043
mov rax, rdi
and rax, 0xfffffffffffffff0
lea rdx, [rsi + rdi]
add rdx, 0xfffffffffffffff0
lea r8, [rcx + rdi]
add r8, 0xfffffffffffffff0
mov r9, rax
neg r9
xor r10d, r10d
nop
movdqu xmm0, xmmword [r8 + r10]
movdqu xmmword [rdx + r10], xmm0
add r10, 0xfffffffffffffff0
cmp r9, r10
jne 0x1402e0f16
cmp rax, rdi
je 0x1402e0ff9
test dil, 0xc
je 0x1402e0f8e
mov rdx, rdi
and rdx, 0xfffffffffffffffc
mov r8d, edi
and r8d, 3
lea r9, [rsi + rdi]
add r9, 0xfffffffffffffffc
neg rax
lea r10, [rcx + rdi]
add r10, 0xfffffffffffffffc
mov r11, rdx
neg r11
nop
mov ebx, dword [r10 + rax]
mov dword [r9 + rax], ebx
add rax, 0xfffffffffffffffc
cmp r11, rax
jne 0x1402e0f62
cmp rdx, rdi
mov rdi, r8
jne 0x1402e0f91
jmp 0x1402e0ff9
test bl, bl
js 0x1402e0a67
mov rsi, rcx
jmp 0x1402e104f
and edi, 0xf
lea rdx, [rdi - 1]
mov r8, rdi
and r8, 3
je 0x1402e0fb7
lea rax, [rdi - 1]
movzx r9d, byte [rcx + rdi - 1]
mov byte [rsi + rdi - 1], r9b
dec r8
mov rdi, rax
jne 0x1402e0f9e
jmp 0x1402e0fba
mov rax, rdi
cmp rdx, 3
jb 0x1402e0ff9
mov rdx, rax
nop
movzx r8d, byte [rcx + rax - 1]
mov byte [rsi + rax - 1], r8b
movzx r8d, byte [rcx + rax - 2]
mov byte [rsi + rax - 2], r8b
movzx r8d, byte [rcx + rax - 3]
mov byte [rsi + rax - 3], r8b
add rdx, 0xfffffffffffffffc
movzx r8d, byte [rcx + rax - 4]
mov byte [rsi + rax - 4], r8b
mov rax, rdx
jne 0x1402e0fc3
jmp 0x1402e104f
test bl, 0x40
jne 0x1402e103b
mov cl, 0x1c
mov al, 0x18
lock cmpxchg byte [0x14073ec93], cl
je 0x1402e1014
cmp al, 0xb7
jne 0x1402e0ffb
jmp 0x1402e1048
nop
xor byte [0x14073ec90], 0xfe
xor byte [0x14073ec91], 0x89
lea rsi, [0x14073ec90]
xor byte [0x14073ec92], 0xf0
mov al, 0xb7
xchg byte [0x14073ec93], al
jmp 0x1402e104f
mov rcx, rdi
call fcn.1400954d0
mov rsi, rdi
jmp 0x1402e104f
lea rsi, [0x14073ec90]
mov rax, rsi
add rsp, 0x40
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
nop
mov edx, dword [rsp + 0x20]
mov r8, rdi
shl r8, 0x20
or r8, rdx
cmp rax, r8
jae 0x1402e1090
nop
movzx edx, byte [rcx + rax]
mov rsi, qword [rsp + 0x28]
movzx r8d, byte [rsi + rax]
cmp dl, r8b
jne 0x1402e1098
test bl, 0x40
je 0x1402e104f
inc rax
jmp 0x1402e105e
test bl, bl
jns 0x1402e1048
xor esi, esi
jmp 0x1402e109e
sub edx, r8d
mov rsi, rdx
jmp 0x1402e104f
mov rsi, rdi
cmp rcx, r14
jae 0x1402e104f
nop
movzx edx, byte [rax + rcx]
mov byte [rdi + rcx], dl
inc rcx
jmp 0x1402e10a0