Function at 0x1403027a0
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 rbx, r8
mov r14, rdx
mov ebp, ecx
mov rdi, qword [rsp + 0xb8]
mov r10, qword [rsp + 0xb0]
mov edx, r14d
xor eax, eax
mov qword [rsp + 0x38], rax
mov rcx, rbx
jmp case.default.0x1403028f4
mov ebp, 0x74cf73f9
mov rcx, r15
mov r9, rdx
mov r10, rdi
cmp r8d, 0x13
jne 0x1403028e2
mov rbx, r10
mov r15, r9
mov r8d, ebp
and r8d, 0x1f
cmp r8d, 0xc
jbe 0x140302820
mov r13d, ebp
mov rax, rcx
mov r12, r15
cmp r8d, 0x14
jbe 0x1403027e0
jmp 0x14030288e
cmp r8d, 5
jbe 0x140302860
cmp r8d, 7
jbe 0x140302b2e
cmp r8d, 8
je 0x140302b7a
cmp r8d, 0xa
ja 0x14030297a
mov ebp, 0x4072632c
mov rcx, r15
mov r9, r14
mov r10, rdi
je case.default.0x1403028f4
jmp 0x140302b8f
cmp r8d, 1
ja 0x1403028b2
test r8d, r8d
jne 0x1403032c1
mov r8d, 0xe
mov r13d, 0xbe67596e
mov rax, rbx
mov r12, rcx
mov rbx, rdi
cmp r8d, 0x14
jbe 0x1403027e0
cmp r8d, 0x18
ja 0x1403029ac
mov ebp, 0xf78a2ad5
mov rcx, r15
mov r9, rdx
mov r10, rdi
cmp r8d, 0x17
je case.default.0x1403028f4
jmp 0x140302923
cmp r8d, 4
jne 0x14030301e
mov r9, rdi
sub r9, rbx
test byte [rsp + 0x38], 1
cmove rsi, rdi
mov al, 1
mov qword [rsp + 0x38], rax
mov ebp, 0xbe67596e
mov r10, rdi
mov rdi, r15
jmp 0x1403027d2
add r8d, 0xfffffff3
lea rcx, [0x1405f82f4]
movsxd rdx, dword [rcx + r8*4]
add rdx, rcx
jmp rdx
lea rax, [0x1405e8c48]
mov qword [r14], rax
mov r15, qword [r14 + 0x60]
test r15, r15
je 0x140302c78
nop
mov rcx, qword [r15 + 8]
test rcx, rcx
je 0x140302d44
mov ebp, r13d
jmp 0x14030316e
cmp r8d, 0x15
je 0x1403029cb
cmp r8d, 0x16
jne case.0x1403028f4.4
nop
movzx eax, byte [0x140742f56]
lea rcx, [0x140742f40]
cmp al, 0xd0
je 0x140302d70
mov dl, 0xa2
nop dword [rax]
mov al, 4
lock cmpxchg byte [0x140742f56], dl
je 0x1403029f9
cmp al, 0xd0
je 0x140302d70
test r13b, 0x40
jne 0x140302950
jmp 0x140303363
xor edi, edi
jmp 0x1403032c1
mov edi, 0xffffffff
cmp r8d, 0xc
jne 0x1403032c1
nop
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r15
cmp rbx, r15
jae 0x140302c88
xor eax, eax
mov r13d, ebp
jmp case.0x1403028f4.6
cmp r8d, 0x19
jne 0x140302ba1
nop
movzx eax, byte [0x140742f35]
cmp al, 0x11
jne 0x140302d4e
jmp 0x140302f35
nop
movzx eax, byte [0x140743033]
cmp al, 0x8e
jne 0x140302be5
test r13b, r13b
js 0x140302cee
jmp 0x140303141
test ebx, ebx
je 0x1403032c1
mov rcx, rdi
call fcn.1400954d0
test r13b, r13b
jns 0x1403032c1
mov eax, 0x2679395a
mov ecx, 0xd986c6ba
mov edx, 1
mov r8d, 0x2679395b
mov r9d, 0xba2e8ba3
lea r10, [0x140742f40]
lea r11, [0x1405f81e0]
nop dword [rax + rax]
mov edi, ecx
imul rdi, r9
shr rdi, 0x24
lea ebx, [rdi + rdi*4]
lea ebx, [rdi + rbx*4]
add ebx, edi
lea edi, [rax + rbx]
add ebx, r8d
movzx ebp, byte [rdx + r10 - 1]
xor bpl, byte [rbx + r11]
movzx ebx, byte [rdx + r10]
xor bpl, 0xae
xor bl, byte [rdi + r11]
mov byte [rdx + r10 - 1], bpl
xor bl, 0xae
mov byte [rdx + r10], bl
add eax, 0xfffffffe
add ecx, 2
add rdx, 2
add r8d, 0xfffffffe
cmp rdx, 0x17
jne 0x140302a30
test r13d, 0x200
jne 0x140302f35
mov al, 0xd0
xchg byte [0x140742f56], al
lea rdi, [0x140742f40]
jmp 0x1403032c1
nop
mov rcx, qword [rdi + 8]
test rcx, rcx
sete dl
movzx eax, byte [0x140742ef2]
cmp al, 6
je 0x1403032a2
mov r9b, 0xab
lea r8, [rsp + 0x30]
lea r11, [rsp + 0x20]
lea r10, [rsp + 0x40]
nop dword [rax]
mov al, 0x8f
lock cmpxchg byte [0x140742ef2], r9b
je 0x140302d29
cmp al, 6
jne 0x140302ad0
jmp 0x1403032a2
nop
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x40], 0
test r13b, 0x40
je 0x1403032c1
jmp 0x1403032de
test r14d, r14d
je 0x1403032c1
xor ecx, ecx
mov ebp, r13d
test r13d, 0x200
je 0x140302b6d
jmp 0x140302fa4
cmp r8d, 6
jne 0x140302c69
nop
mov r9, qword [rbx + 0x38]
mov rcx, qword [r9]
mov eax, 0xffffffff
test rcx, rcx
je 0x140303129
nop
mov r8, qword [rbx + 0x50]
cmp dword [r8], 0
jle 0x140302f41
mov r13d, ebp
test r13d, 0x200
jne 0x140302fa4
mov rcx, rdi
call fcn.1400954d0
jmp 0x1403032c1
nop
movzx eax, byte [0x140742f89]
cmp al, 0xc1
je 0x140303190
jmp 0x140303174
mov rcx, r15
mov edx, ebx
call fcn.14059d4a8
mov rdi, r15
jmp 0x1403032c1
cmp r8d, 0x1b
jbe 0x140302ccc
cmp r8d, 0x1c
jne 0x140302dcc
xor eax, eax
sub eax, dword [r14 - 4]
cdqe
lea rbx, [r14 + rax]
add rbx, 0xffffffffffffff78
mov edx, 0x500f6e2
mov r8, rbx
call fcn.140301410
test edi, edi
mov rdi, rbx
jne 0x140303389
jmp 0x1403032c1
test r13b, 0x40
jne 0x140302cfa
mov ecx, 0x7732acea
xor r8d, r8d
movabs r9, 0x2e8ba2e8ba2e8ba3
lea r10, [0x1405f8200]
lea rdi, [0x140742f60]
nop
mov rax, rcx
mul r9
shr rdx, 2
imul rax, rdx, 0xffffffffffffffea
add rax, r10
movzx edx, byte [r8 + rdi]
xor dl, byte [r8 + rax + 0x7732acea]
xor dl, 0xc8
mov byte [r8 + rdi], dl
cmp r8, 0x14
je 0x140302c5c
nop
movzx edx, byte [r8 + rdi + 1]
xor dl, byte [rax + r8 + 0x7732aceb]
xor dl, 0xc8
mov byte [r8 + rdi + 1], dl
add r8, 2
add rcx, 2
jmp 0x140302c10
mov al, 0xeb
xchg byte [0x140742f75], al
jmp 0x1403032c1
test ebx, ebx
je 0x140303226
xor eax, eax
jmp 0x140302fa8
xor eax, eax
test r13b, r13b
js 0x140303212
jmp 0x140303129
test rcx, rcx
je 0x140303163
cmp rcx, 4
jae 0x140302e2a
lea rdx, [rcx - 1]
mov r8, rcx
and r8, 3
je 0x140302fd7
nop dword [rax]
lea rax, [rcx - 1]
movzx r9d, byte [r15 + rcx - 1]
mov byte [rbx + rcx - 1], r9b
dec r8
mov rcx, rax
jne 0x140302cb0
jmp 0x140302fda
jne 0x140302de4
nop
movzx eax, byte [0x140742f75]
cmp al, 0xeb
jne 0x140303325
lea rdi, [0x140742f60]
jmp 0x1403032c1
lea rdi, [0x140743030]
jmp 0x1403032c1
mov cl, 0x34
lea rdi, [0x140743030]
nop word cs:[rax + rax]
mov al, 4
lock cmpxchg byte [0x140743033], cl
je 0x140302dfd
cmp al, 0x8e
jne 0x140302d10
jmp 0x1403032c1
mov ebp, r13d
mov r9, r8
mov rax, r8
test bpl, 0x20
jne 0x140302f94
xor r8d, r8d
jmp 0x14030323f
test r13b, 0x20
je 0x14030320a
mov dl, 1
lea rcx, [0x140742f20]
nop word [rax + rax]
mov al, 0x8a
lock cmpxchg byte [0x140742f35], dl
je 0x140302d78
cmp al, 0x11
jne 0x140302d60
mov rdi, rcx
jmp 0x1403032c1
test r13b, 0x40
jne 0x140302e6b
lea r15, [rsp + 0x20]
mov ebp, r13d
nop
mov rcx, qword [r15 + 8]
test rcx, rcx
je 0x140302fc1
nop
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [0x140704440]
test rax, rax
je 0x140302fca
nop
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [0x140704440]
jmp 0x140302fca
test edi, edi
je 0x14030303e
mov rcx, r12
call fcn.1400954d0
mov rdi, r12
jmp 0x1403032c1
nop
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], 0
jmp 0x14030335b
nop
add byte [0x140743030], 0xcd
add byte [0x140743031], 0xbd
add byte [0x140743032], 0xc0
test r13b, 0x20
jne 0x14030331d
mov al, 0x8e
xchg byte [0x140743033], al
jmp 0x1403032c1
lea rax, [rbx + rcx]
dec rax
cmp rbx, rax
ja 0x140302c9b
lea rax, [r15 + rcx]
dec rax
cmp r15, rax
ja 0x140302c9b
mov rax, r15
sub rax, rbx
cmp rax, 0x10
jb 0x140302c9b
cmp rcx, 0x10
jae 0x140303046
xor eax, eax
jmp 0x14030308c
mov ecx, 0x91ced34
mov r8d, 0x91ced33
xor r10d, r10d
movabs r11, 0x8618618618618619
lea rdi, [0x1405f81c0]
lea rbx, [0x140742f20]
nop word cs:[rax + rax]
mov rax, rcx
mul r11
mov r9, rdx
mov rax, r8
mul r11
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rax, rax, 0xffffffffffffffeb
add rax, rdi
add rax, 0x91ced2c
movzx edx, byte [r10 + rbx]
xor dl, byte [r10 + rax + 7]
xor dl, 0xa2
mov byte [r10 + rbx], dl
cmp r10, 0x14
je 0x140302f20
mov rax, rcx
sub rax, r9
shr rax, 1
add rax, r9
shr rax, 4
imul rax, rax, 0xffffffffffffffeb
add rax, rdi
add rax, 0x91ced34
movzx edx, byte [r10 + rbx + 1]
xor dl, byte [rax + r10]
xor dl, 0xa2
mov byte [r10 + rbx + 1], dl
add r10, 2
add rcx, 2
add r8, 2
jmp 0x140302ea0
mov al, 0x11
xchg byte [0x140742f35], al
test r13d, 0x200
je 0x140302a8c
lea rdi, [0x140742f20]
jmp 0x1403032c1
nop
mov rdx, qword [rbx + 0x40]
mov rdx, qword [rdx]
test rdx, rdx
je 0x140303129
nop
test byte [rbx + 0x70], 4
jne 0x140303129
test bpl, 0x40
jne 0x140303115
nop
mov r10, qword [rbx + 0x68]
cmp r10, rdx
cmovb r10, rdx
cmp r10, rcx
jbe 0x14030311d
lea rax, [rbx + 0x38]
lea rcx, [rbx + 0x70]
lea r11, [rbx + 0x68]
mov dl, 1
test bpl, 0x20
je 0x140302d3c
nop
mov qword [r11], r10
sub r10d, dword [r9]
mov dword [r8], r10d
mov rax, qword [rax]
mov rcx, qword [rax]
nop
movzx eax, byte [rcx]
test ebp, 0x100
jne 0x140303129
mov rcx, r14
call fcn.1400954d0
lea r15, [rsp + 0x28]
test bpl, bpl
jns 0x140303226
mov rcx, r15
call fcn.1400954d0
jmp 0x1403032b2
mov rax, rcx
cmp rdx, 3
jb 0x140303163
mov rcx, rax
nop
movzx edx, byte [r15 + rax - 1]
mov byte [rbx + rax - 1], dl
movzx edx, byte [r15 + rax - 2]
mov byte [rbx + rax - 2], dl
movzx edx, byte [r15 + rax - 3]
mov byte [rbx + rax - 3], dl
add rcx, 0xfffffffffffffffc
movzx edx, byte [r15 + rax - 4]
mov byte [rbx + rax - 4], dl
mov rax, rcx
jne 0x140302fe7
jmp 0x140303163
cmp r8d, 2
je 0x1403030d6
cmp r8d, 3
jne 0x140303109
call fcn.14059d520
xor edi, edi
jmp 0x1403032c1
mov rdi, r12
jmp 0x1403032c1
mov rax, rcx
and rax, 0xfffffffffffffff0
lea rdx, [rbx + rcx]
add rdx, 0xfffffffffffffff0
lea r8, [r15 + rcx]
add r8, 0xfffffffffffffff0
mov r9, rax
neg r9
xor r10d, r10d
nop
movups xmm0, xmmword [r8 + r10]
movups xmmword [rdx + r10], xmm0
add r10, 0xfffffffffffffff0
cmp r9, r10
jne 0x140303066
cmp rax, rcx
je 0x140303163
test cl, 0xc
je 0x140303131
mov rdx, rcx
and rdx, 0xfffffffffffffffc
mov r8d, ecx
and r8d, 3
lea r9, [rbx + rcx]
add r9, 0xfffffffffffffffc
neg rax
lea r10, [r15 + rcx]
add r10, 0xfffffffffffffffc
mov r11, rdx
neg r11
nop
mov edi, dword [r10 + rax]
mov dword [r9 + rax], edi
add rax, 0xfffffffffffffffc
cmp r11, rax
jne 0x1403030b3
cmp rdx, rcx
mov rcx, r8
jne 0x140302c9b
jmp 0x140303163
lea rax, [0x1405e9c88]
mov qword [rbx], rax
mov rcx, rbx
mov edx, 0xfdb5e55f
call fcn.140301410
lea rax, [0x1405e8c48]
mov qword [rbx], rax
mov r15, qword [rbx + 0x60]
test r15, r15
jne 0x140302d8a
jmp 0x1403032b2
call fcn.1401133c0
xor edi, edi
jmp 0x1403032c1
mov rdi, r8
jmp 0x1403032c1
mov r13d, ebp
test r13b, r13b
js 0x140303212
mov rdi, rax
jmp 0x1403032c1
and ecx, 0xf
jmp 0x140302c9b
nop
cmp rax, qword [rsp + 0x30]
jae 0x140303163
nop
mov rcx, qword [rsp + 0x20]
movzx ecx, byte [rcx + rax]
mov byte [rbx + rax], cl
inc rax
test r13b, 0x20
jne case.0x1403028f4.6
lea rdi, [0x140742f40]
jmp 0x1403032c1
nop
mov rdi, qword [rsp + 0x28]
jmp 0x1403032c1
test bpl, 0x40
jne 0x1403031df
mov cl, 0xb6
mov al, 0x80
lock cmpxchg byte [0x140742f89], cl
je 0x14030319c
lea r15, [rsp + 0x28]
lea rcx, [rsp + 0x20]
cmp al, 0xc1
jne 0x14030316e
lea rdi, [0x140742f80]
jmp 0x1403032c1
test ebp, 0x100
jne 0x14030322e
movabs rax, 0xb2809f268da7ab90
xor qword [0x140742f80], rax
xor byte [0x140742f88], 0x12
mov al, 0xc1
xchg byte [0x140742f89], al
lea rax, [0x140742f80]
test bpl, 0x20
cmove r14, rax
mov rdi, r14
jmp 0x1403032c1
nop
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [0x140704440]
test rax, rax
je 0x14030320a
nop
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [0x140704440]
mov rcx, r15
call fcn.1400954d0
test ebx, ebx
je 0x140303226
mov rcx, r14
call fcn.1400954d0
mov rdi, r14
jmp 0x1403032c1
mov rdi, r14
jmp 0x1403032c1
mov r13d, ebp
test r13b, r13b
jns 0x1403032c1
jmp 0x140302a02
lea r9d, [r8 - 0x7eaeb367]
mov r10d, 0xf0f0f0f1
imul r10, r9
shr r10, 0x24
mov r9d, r10d
shl r9d, 4
add r9d, r10d
neg r9d
add r9d, r8d
add r9d, 0x81514c99
movsxd r8, r8d
lea r10, [0x140742ee0]
lea r11, [0x1405f8180]
sub r11, r9
movzx r9d, byte [r11 + 0x10]
xor r9b, 0x47
add byte [r8 + r10], r9b
inc r8d
cmp r8d, 0x12
jge 0x14030329a
mov r13d, ebp
jmp 0x140303312
mov al, 6
xchg byte [0x140742ef2], al
lea rdi, [0x140742ee0]
test dl, 1
cmove rdi, rcx
jmp 0x1403032c1
test edi, edi
je 0x1403032be
mov rcx, rbx
call fcn.1400954d0
mov rdi, rbx
test byte [rsp + 0x38], 1
cmove rsi, rdi
mov rax, rsi
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
nop
mov rcx, qword [rsp + 0x40]
cmp rcx, r12
jae 0x14030331d
test r13d, 0x100
je 0x140303325
nop
movzx edx, byte [rax + rcx]
mov r8, qword [rsp + 0x20]
mov byte [r8 + rcx], dl
inc qword [rsp + 0x40]
mov dl, 1
lea rcx, [rsp + 0x28]
xor r8d, r8d
mov ebp, r13d
test r13b, r13b
js 0x14030323f
jmp 0x1403032de
nop
mov rdi, qword [rsp + 0x28]
jmp 0x1403032c1
mov cl, 0x7c
lea rdi, [0x140742f60]
nop
mov al, 0xc2
lock cmpxchg byte [0x140742f75], cl
je 0x140302bef
cmp al, 0xeb
jne 0x140303330
jmp 0x1403032c1
inc rdx
mov qword [rsp + 0x20], rdx
test r13b, 0x20
je 0x1403032b2
nop
cmp qword [rsp + 0x20], rdi
jae 0x140303384
nop
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x20]
movzx ecx, byte [rcx + rdx]
movzx r8d, byte [rax + rdx]
cmp cl, r8b
je 0x140303349
sub ecx, r8d
mov rdi, rcx
jmp 0x14030339d
lea rdi, [rsp + 0x28]
test r13b, r13b
js 0x14030339b
mov rcx, rdi
call fcn.1400954d0
jmp 0x1403032c1
xor edi, edi
jmp 0x1403032c1