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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r8d, edx
mov rax, qword [0x140564028]
mov r15, rax
shr r15, 0x20
or r15d, eax
test ecx, ecx
je 0x1401ed64e
mov eax, dword [0x140518114]
sub eax, r15d
add eax, 0x3fd3
cdqe
add rax, qword [0x1405181c8]
mov edx, 0x70dfe20a
add edx, dword [0x140518a28]
mov ecx, r8d
call qword [0x1404ee420]
test al, 1
je 0x1401ed6c7
nop
mov ecx, dword [0x140564950]
lea eax, [rcx - 1]
imul eax, ecx
mov r8d, dword [0x140518a28]
lea ecx, [r8 - 0x183ec1a6]
xor edx, edx
div ecx
mov ecx, edx
mov eax, r15d
xor eax, r15d
not eax
and eax, dword [0x140518140]
xor eax, r15d
mov edx, r8d
xor edx, 0xe7c0fe85
and r8d, 0x67c0fe85
lea edx, [rdx + r8*2]
sub eax, edx
cdqe
add rax, qword [0x140518200]
mov edx, 0x208a21b5
call qword [0x1404ee420]
test al, 1
je 0x1401ed5ee
movzx ebx, byte [0x140517bd0]
mov eax, dword [0x140518168]
mov edx, dword [0x140518a28]
lea ecx, [r15 + rdx]
neg ecx
add eax, ecx
add eax, 0x183f017b
cdqe
add rax, qword [0x140518208]
add edx, 0xfa5c90be
xor ecx, ecx
call qword [0x1404ee420]
test al, 1
jne 0x1401ed6db
mov eax, dword [0x140518130]
sub eax, r15d
mov ecx, dword [0x140518a28]
sub eax, ecx
add eax, 0x183f017b
cdqe
add rax, qword [0x1405181e0]
add ecx, 0x2c446179
call qword [0x1404ee420]
mov ecx, dword [0x140564950]
mov eax, dword [0x14051816c]
sub eax, r15d
add eax, 0x3fd3
cdqe
add rax, qword [0x1405181b8]
mov edx, 0x602df374
call qword [0x1404ee420]
test al, 1
je 0x1401ed550
jmp 0x1401ed5af
mov eax, dword [0x140518118]
sub eax, r15d
add eax, 0x3fd3
cdqe
add rax, qword [0x140518188]
mov ecx, r8d
mov edx, 0x7a459f91
call qword [0x1404ee420]
test al, 1
je 0x1401ed74d
movzx eax, byte [0x140517cbd]
cmp al, 0x45
je 0x1401eda4b
nop word [rax + rax]
movzx ecx, byte [0x140518a38]
lea eax, [rcx - 0x3c]
add cl, 0xe7
lock cmpxchg byte [0x140517cbd], cl
je 0x1401ed845
movzx ecx, byte [0x140518a38]
mov edx, ecx
xor dl, 0x85
and cl, 5
add cl, cl
add cl, dl
cmp al, cl
jne 0x1401ed690
jmp 0x1401eda4b
mov eax, dword [0x140564954]
cmp eax, 0x1e
jle 0x1401edc06
jmp 0x1401edc8e
cmp bl, 0xee
je 0x1401edbfa
mov edi, 0xb7a1fe64
lea rsi, [rsp + 0x38]
nop
movzx ecx, byte [0x140518a38]
lea eax, [rcx - 0x1c]
add cl, 0x4e
lock cmpxchg byte [0x140517bd0], cl
sete dl
mov ecx, dword [0x140518110]
xor ecx, r15d
add ecx, 0x3fd3
movsxd r10, ecx
add r10, qword [0x1405181f0]
mov r9d, dword [0x140518a28]
add r9d, edi
mov ecx, eax
mov r8, rsi
mov rax, r10
call qword [0x1404ee420]
test al, 1
jne 0x1401ed7f3
cmp byte [rsp + 0x38], 0xee
jne 0x1401ed6f0
jmp 0x1401edbfa
movzx eax, byte [0x1405176c3]
cmp al, 0xec
je 0x1401edb09
xor ebp, ebp
mov r14d, 0xdb4fb751
lea rsi, [rsp + 0x38]
mov r12d, 0x22b6692a
nop
mov al, 0xb0
lock cmpxchg byte [0x1405176c3], bpl
mov ebx, eax
sete dil
mov eax, dword [0x140518148]
sub eax, r15d
add eax, 0x3fd3
cdqe
add rax, qword [0x140518238]
mov r9d, dword [0x140518a28]
add r9d, r14d
mov ecx, ebx
mov edx, edi
mov r8, rsi
call qword [0x1404ee420]
movzx r13d, byte [rsp + 0x38]
mov eax, dword [0x140518170]
add eax, r15d
add eax, 0x3fd3
cdqe
add rax, qword [0x1405181d8]
mov r8d, dword [0x140518a28]
add r8d, r12d
mov ecx, ebx
mov edx, edi
call qword [0x1404ee420]
test al, 1
jne 0x1401ed9da
cmp r13b, 0xec
jne 0x1401ed770
jmp 0x1401edb09
xor eax, eax
lea rcx, [0x140517bc0]
lea rdx, [0x14042faf0]
mov r8d, 0xe7c13e68
nop dword [rax]
movzx r9d, byte [rax + rdx]
xor byte [rax + rcx], r9b
lea r9d, [rax + 1]
mov r10d, dword [0x140518a28]
add r10d, r8d
cmp r9d, r10d
jge 0x1401ed831
inc rax
jmp 0x1401ed810
mov eax, dword [0x140564954]
cmp eax, 0x37
jl 0x1401edbd0
jmp 0x1401edbf0
mov eax, dword [0x140518154]
sub eax, r15d
add eax, 0x3fd3
cdqe
add rax, qword [0x1405181d0]
lea rsi, [rsp + 0x38]
mov rcx, rsi
mov edx, 0xffb1d927
call qword [0x1404ee420]
nop
mov eax, dword [0x140564950]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401ed870
xor ebp, ebp
lea r13, [0x14042fbd0]
lea r12, [0x140517cb0]
lea rdi, [rsp + 0x43]
lea rbx, [rsp + 0x44]
jmp 0x1401ed8bb
mov ecx, eax
xor ecx, 0xe7c13e59
and eax, 0x67c13e59
lea eax, [rcx + rax*2]
add ebp, eax
cmp ebp, 0xd
jge 0x1401eda1e
mov ecx, dword [0x140564950]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x140518a28]
mov edx, 0xe7c13e5a
add ecx, edx
xor edx, edx
div ecx
movsxd r14, ebp
test edx, edx
jne 0x1401ed956
nop
mov eax, dword [0x140518120]
or eax, r15d
add eax, 0x3fd3
cdqe
add rax, qword [0x1405181a0]
mov rcx, r14
mov rdx, rsi
mov r8d, 0x744c87be
call qword [0x1404ee420]
mov rax, qword [rsp + 0x38]
movzx edx, byte [rax]
add dl, byte [r14 + r13]
mov eax, dword [0x14051813c]
xor eax, r15d
sub eax, dword [0x140518a28]
add eax, 0x183f017b
cdqe
add rax, qword [0x140518210]
mov ecx, r14d
mov r8d, 0x6552c099
call qword [0x1404ee420]
mov eax, dword [0x140518a28]
mov ecx, dword [0x140564954]
cmp ecx, 0x1a
jle 0x1401ed8a0
movzx edx, byte [r14 + r12]
movzx ecx, byte [r14 + r13]
mov eax, edx
sub al, cl
mul cl
mov r8d, eax
mov ecx, eax
shl dl, cl
shl dl, cl
sub dl, al
mov eax, edx
mul r8b
neg al
mov ecx, dword [0x140518158]
sub ecx, r15d
sub ecx, dword [0x140518a28]
add ecx, 0x183f017b
movsxd r10, ecx
add r10, qword [0x1405181b0]
mov qword [rsp + 0x20], rsi
mov dword [rsp + 0x28], 0x62e3148d
mov ecx, eax
mov edx, r8d
mov r8, rdi
mov r9, rbx
mov rax, r10
call qword [0x1404ee420]
movzx edx, byte [rsp + 0x43]
movzx eax, byte [rsp + 0x38]
mul byte [rsp + 0x44]
mov r8d, edx
mov ecx, eax
shl r8b, cl
add r8b, dl
mov byte [r14 + r12], r8b
jmp 0x1401ed8e0
xor edx, edx
lea rax, [0x1405176c0]
lea rcx, [0x14042f600]
nop word [rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
cmp edx, 3
jl 0x1401ed9f0
xor eax, eax
test al, al
jne 0x1401edb80
jmp 0x1401edb5f
mov al, 1
test al, al
je 0x1401eda41
mov al, 0x45
xchg byte [0x140517cbd], al
mov eax, dword [0x140564954]
mov ecx, 0xe7c13e9b
add ecx, dword [0x140518a28]
cmp eax, ecx
jl 0x1401eda4b
mov al, 0x45
xchg byte [0x140517cbd], al
jmp 0x1401eda24
lea rax, [0x140517cb0]
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [0x140564954]
cmp eax, 0x18
jle 0x1401edad7
nop dword [rax + rax]
mov eax, dword [0x14051814c]
xor eax, r15d
add eax, 0x3fd3
cdqe
add rax, qword [0x1405181a8]
mov rcx, rsi
mov edx, 0xd6c8ca03
call qword [0x1404ee420]
mov ecx, dword [rsp + 0x38]
mov eax, dword [0x140518128]
mov edx, eax
xor edx, r15d
and eax, r15d
lea eax, [rdx + rax*2]
add eax, 0x3fd3
cdqe
add rax, qword [0x1405181c0]
mov edx, 0x43f2635e
call qword [0x1404ee420]
test al, 1
je 0x1401eda70
mov eax, dword [0x14051811c]
xor eax, r15d
add eax, 0x3fd3
cdqe
add rax, qword [0x140518228]
mov ecx, 0xd6274809
call qword [0x1404ee420]
cmp dword [0x140518a28], 0x183ec1a8
jne 0x1401eda80
mov eax, dword [0x140564954]
cmp eax, 0x2b
jg 0x1401edb40
mov eax, 0xe7c13e59
add eax, dword [0x140518a28]
lea rcx, [fcn.1401ed4f0]
add ecx, ecx
add ecx, 0x2080
xor eax, ecx
not eax
test eax, ecx
je 0x1401edb53
nop word cs:[rax + rax]
mov eax, dword [0x140564950]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401edb40
jmp 0x1401edb14
lea rax, [0x1405176c0]
jmp 0x1401eda52
mov ecx, dword [0x140564950]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, 0xe7c13e5a
add ecx, dword [0x140518a28]
xor edx, edx
div ecx
test edx, edx
je 0x1401edbc6
nop
mov eax, dword [0x140518144]
add eax, r15d
mov ecx, dword [0x140518a28]
add eax, ecx
add eax, 0xe7c17e2b
cdqe
add rax, qword [0x140518240]
mov ecx, 0xdea94416
call qword [0x1404ee420]
mov eax, dword [0x140564950]
mov ecx, dword [0x140518a28]
neg ecx
add ecx, eax
inc ecx
imul ecx, eax
test cl, 1
jne 0x1401edb80
jmp 0x1401edb5f
lea rsi, [rsp + 0x38]
jmp 0x1401eda70
movzx eax, byte [0x140518a38]
add al, 0x2e
xchg byte [0x140517bd0], al
mov eax, dword [0x140564950]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x1401edbfa
mov al, 0xee
xchg byte [0x140517bd0], al
jmp 0x1401edbd0
lea rax, [0x140517bc0]
jmp 0x1401eda52
mov eax, dword [0x140518138]
add eax, r15d
add eax, 0x3fd3
cdqe
add rax, qword [0x140518218]
lea rcx, [rsp + 0x44]
lea rdx, [rsp + 0x38]
mov r8d, 0x3c1af7cc
call qword [0x1404ee420]
movzx esi, byte [rsp + 0x44]
mov ecx, dword [rsp + 0x38]
mov ebx, r15d
xor ebx, r15d
not ebx
mov eax, dword [0x140518150]
and eax, ebx
xor eax, r15d
add eax, 0x3fd3
cdqe
add rax, qword [0x140518190]
lea edx, [rcx - 1]
mov r9d, 0x6cc2126e
add r9d, dword [0x140518a28]
lea r8, [rsp + 0x38]
call qword [0x1404ee420]
mov eax, dword [rsp + 0x38]
and eax, 1
mov ecx, 0xe7c13e58
add ecx, dword [0x140518a28]
cmp eax, ecx
je 0x1401edcb5
mov eax, dword [0x140518134]
xor eax, r15d
add eax, 0x3fd3
cdqe
add rax, qword [0x1405181e8]
mov ecx, 0x354006b
call qword [0x1404ee420]
jmp 0x1401edc06
test sil, 1
jne 0x1401ede5e
lea rsi, [rsp + 0x38]
mov edi, 0x37bac208
nop dword [rax]
mov eax, dword [0x14051815c]
add eax, r15d
add eax, 0x3fd3
cdqe
add rax, qword [0x140518198]
mov rcx, rsi
mov edx, 0x616918cb
call qword [0x1404ee420]
test al, 1
jne 0x1401edd2c
movzx ecx, byte [rsp + 0x38]
mov eax, dword [0x140518164]
or eax, r15d
add eax, 0x3fd3
cdqe
add rax, qword [0x1405181f8]
mov edx, dword [0x140518a28]
add edx, edi
call qword [0x1404ee420]
test al, 1
je 0x1401edcd0
jmp 0x1401ede5e
xor edi, edi
lea r14, [0x140517fd0]
lea r12, [0x14042fef0]
mov ebp, 0x755dd835
lea rsi, [rsp + 0x38]
nop word cs:[rax + rax]
movzx r13d, byte [rdi + r14]
lea rcx, [r12 + rdi]
mov eax, dword [0x14051812c]
add eax, r15d
add eax, 0x3fd3
cdqe
add rax, qword [0x140518220]
mov r8d, dword [0x140518a28]
add r8d, ebp
mov rdx, rsi
call qword [0x1404ee420]
movzx eax, byte [rsp + 0x38]
mov ecx, eax
xor cl, al
not cl
and cl, r13b
xor cl, al
mov byte [rdi + r14], cl
lea eax, [rdi + 1]
cmp eax, 0xc
jg 0x1401edda4
inc rdi
jmp 0x1401edd50
lea rsi, [rsp + 0x44]
lea rdi, [rsp + 0x38]
mov ebp, 0xe7c13e5a
nop word cs:[rax + rax]
mov eax, dword [0x140564950]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401ede31
mov eax, dword [0x140518124]
and eax, ebx
xor eax, r15d
add eax, 0x3fd3
cdqe
add rax, qword [0x140518230]
mov rcx, rsi
mov rdx, rdi
mov r8d, 0xe6a159c9
call qword [0x1404ee420]
mov ecx, dword [rsp + 0x44]
mov edx, dword [rsp + 0x38]
mov eax, dword [0x140518160]
sub eax, r15d
add eax, 0x3fd3
cdqe
add rax, qword [0x140518180]
mov r8, rdi
mov r9d, 0x2262848a
call qword [0x1404ee420]
test byte [rsp + 0x38], 1
je 0x1401ede56
mov ecx, dword [0x140564950]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x140518a28]
add ecx, ebp
xor edx, edx
div ecx
test edx, edx
jne 0x1401eddc0
jmp 0x1401eddd1
mov al, 0xb5
xchg byte [0x140517fdd], al
lea rax, [0x140517fd0]
jmp 0x1401eda52