Function at 0x1403a7c30
Capabilities:
Encrypt data using speck

Disassembly:
push rsi
push rdi
push rbx
test ecx, ecx
je 0x1403a7c73
test edx, edx
je 0x1403a7cdf
movzx eax, byte [0x140549d7a]
cmp al, 3
je 0x1403a8078
mov cl, 0xeb
mov al, 0x6a
lock cmpxchg byte [0x140549d7a], cl
je 0x1403a7d18
movzx edx, byte [0x140549dc8]
add dl, 0xb9
cmp al, dl
jne 0x1403a7c50
jmp 0x1403a8078
test edx, edx
je 0x1403a7d09
movzx eax, byte [0x140549cf0]
cmp al, 0xff
je 0x1403a8006
mov cl, 0x67
mov dl, 1
jmp 0x1403a7c98
cmp al, 0xff
je 0x1403a8006
mov al, 0x53
lock cmpxchg byte [0x140549cf0], cl
je 0x1403a7d57
mov r8d, dword [0x14055f55c]
cmp r8d, 0x5f
jg 0x1403a7cd0
nop word cs:[rax + rax]
test dl, dl
jne 0x1403a7c90
nop word cs:[rax + rax]
mov r8d, dword [0x14055f55c]
cmp r8d, 0x1b
jge 0x1403a7cd0
jmp 0x1403a7cc0
movzx eax, byte [0x140549d15]
cmp al, 0x52
je 0x1403a7e54
mov cl, 0xc7
mov al, 0xb7
lock cmpxchg byte [0x140549d15], cl
je 0x1403a7dc2
cmp al, 0x52
jne 0x1403a7cf0
jmp 0x1403a7e54
xor eax, eax
test al, al
jne 0x1403a7e70
jmp 0x1403a7e60
xor eax, eax
lea rcx, [0x140549d60]
lea rdx, [0x1404504e0]
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0x19
jg 0x1403a7d48
inc rax
jmp 0x1403a7d30
xor eax, eax
test al, al
jne 0x1403a8092
jmp 0x1403a8081
xor edx, edx
lea rax, [0x140549ce0]
lea rcx, [0x140450470]
nop word [rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
mov r8d, dword [0x140549dcc]
add edx, r8d
add edx, 0x545821a0
cmp edx, 0x10
jl 0x1403a7d70
mov ecx, dword [0x14055f558]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x140549dcc]
lea r8d, [rcx + 0x545821a1]
xor edx, edx
div r8d
add ecx, 0x5458219f
cmp edx, ecx
je 0x1403a800f
jmp 0x1403a8020
mov eax, 0xffffffff
mov edx, 2
xor r8d, r8d
lea r9, [0x140549d00]
lea r10, [0x140450480]
xor r11d, r11d
test r8b, r8b
jne 0x1403a7e34
nop word cs:[rax + rax]
movzx ecx, byte [r11 + r10]
add byte [r11 + r9], cl
mov ecx, dword [0x14055f55c]
mov esi, dword [0x140549dcc]
mov edi, esi
xor edi, 0x7a794fce
and esi, 0x7a794fce
lea esi, [rdi + rsi*2]
add esi, 0xd9ded1fc
cmp ecx, esi
jge 0x1403a7e34
lea ecx, [rax + 2]
cmp ecx, 0x14
jg 0x1403a7e4c
inc eax
dec edx
inc r11
test r8b, r8b
je 0x1403a7df0
movzx ebx, byte [r11 + r9]
movzx ecx, byte [r11 + r10]
mov esi, ebx
shl sil, cl
add sil, bl
mov byte [r11 + r9], sil
jmp 0x1403a7df0
mov al, 0x52
xchg byte [0x140549d15], al
lea rax, [0x140549d00]
jmp 0x1403a8002
movzx eax, byte [0x140549cdc]
mov cl, 1
test cl, cl
jne 0x1403a7e8a
nop dword [rax]
movzx eax, byte [0x140549cdc]
mov eax, dword [0x14055f558]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1403a7e70
jmp 0x1403a7e60
cmp al, 0x3b
je 0x1403a7ffb
xor r8d, r8d
mov r9b, 0xa8
mov r10d, 0x545821a1
nop
test r8b, r8b
jne 0x1403a7ed4
nop word cs:[rax + rax]
mov al, 0x4f
lock cmpxchg byte [0x140549cdc], r9b
mov ecx, eax
sete al
mov edx, dword [0x14055f558]
lea r11d, [rdx - 1]
imul r11d, edx
test r11b, 1
je 0x1403a7ef0
mov al, 0x4f
lock cmpxchg byte [0x140549cdc], r9b
mov dword [0x14055f558], 1
jmp 0x1403a7eb0
test al, al
jne 0x1403a7f2a
mov eax, dword [0x14055f55c]
cmp eax, 0x20
mov edx, dword [0x14055f558]
lea eax, [rdx - 1]
imul eax, edx
mov r11d, dword [0x140549dcc]
add r11d, r10d
xor edx, edx
div r11d
test edx, edx
jne 0x1403a7efd
cmp cl, 0x3b
jne 0x1403a7ea0
jmp 0x1403a7ffb
mov eax, 0x545821b6
xor ecx, ecx
nop word cs:[rax + rax]
mov edx, dword [0x14055f55c]
mov r8d, dword [0x140549dcc]
add r8d, eax
cmp edx, r8d
jge 0x1403a7f59
test cl, cl
je 0x1403a7f6f
mov edx, dword [0x14055f558]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x1403a7f40
jmp 0x1403a7f55
xor eax, eax
lea rcx, [0x140549cd0]
lea rdx, [0x140450460]
nop
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
mov r10d, r8d
xor r10b, r9b
and r8b, r9b
add r8b, r8b
add r8b, r10b
mov byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xb
jg 0x1403a7fac
inc rax
jmp 0x1403a7f80
mov ecx, dword [0x14055f558]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x140549dcc]
lea r8d, [rcx + 0x545821a1]
xor edx, edx
div r8d
add ecx, 0x5458219f
cmp edx, ecx
jne 0x1403a7fe0
mov eax, dword [0x14055f55c]
cmp eax, 0x57
jl 0x1403a7ff3
nop
mov eax, dword [0x14055f558]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1403a7fe0
jmp 0x1403a7fd4
mov al, 0x3b
xchg byte [0x140549cdc], al
lea rax, [0x140549cd0]
pop rbx
pop rdi
pop rsi
ret
lea rax, [0x140549ce0]
jmp 0x1403a8002
mov eax, dword [0x14055f558]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x1403a8036
mov al, 1
nop word cs:[rax + rax]
test al, al
je 0x1403a8030
jmp 0x1403a800f
mov al, 0xff
xchg byte [0x140549cf0], al
jmp 0x1403a8006
mov al, 3
xchg byte [0x140549d7a], al
mov ecx, dword [0x14055f558]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, 0x545821a1
add ecx, dword [0x140549dcc]
xor edx, edx
div ecx
test edx, edx
je 0x1403a8078
movzx eax, byte [0x140549dc8]
add al, 0xb9
xchg byte [0x140549d7a], al
jmp 0x1403a8040
lea rax, [0x140549d60]
jmp 0x1403a8002
mov eax, dword [0x14055f558]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x1403a80b4
mov eax, 0x545821d5
nop word [rax + rax]
mov ecx, dword [0x14055f55c]
mov edx, dword [0x140549dcc]
add edx, eax
cmp ecx, edx
jge 0x1403a80a0
jmp 0x1403a8081
mov eax, dword [0x14055f558]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1403a8067
jmp 0x1403a8040