Function at 0x1401ec960
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
test ecx, ecx
je 0x1401ec9a9
mov eax, 0x136d98de
add eax, dword [0x140480a84]
cmp edx, eax
jne 0x1401ec9bd
movzx eax, byte [0x14047ee7b]
cmp al, 0xd5
je 0x1401ecadb
mov cl, 0xc0
nop word [rax + rax]
mov al, 0xb9
lock cmpxchg byte [0x14047ee7b], cl
je 0x1401eca79
cmp al, 0xd5
jne 0x1401ec990
jmp 0x1401ecadb
mov eax, dword [0x1404bfc1c]
cmp eax, 0x1e
jg 0x1401ecc40
jmp 0x1401ecc2e
mov eax, 0x136d98ef
lea rcx, [fcn.1401ec960]
add ecx, ecx
add ecx, 0x4b60
mov edx, ecx
not edx
nop word cs:[rax + rax]
mov r8d, dword [0x1404bfc1c]
mov r9d, dword [0x140480a84]
add r9d, eax
cmp r8d, r9d
jge 0x1401eca13
movzx r8d, byte [0x14047f0fc]
mov r9d, dword [0x1404bfc18]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
je 0x1401eca4e
movzx r8d, byte [0x14047f0fc]
mov r8d, dword [0x140480a84]
mov r9d, r8d
xor r9d, 0x136d98df
and r8d, 0x136d98df
lea r8d, [r9 + r8*2]
mov r9d, ecx
xor r9d, r8d
not r8d
and r8d, edx
or r8d, r9d
cmp r8d, 0xffffffff
jne 0x1401ec9e0
jmp 0x1401ec9f6
cmp r8b, 0xf6
je 0x1401ecc22
mov cl, 0xd3
nop word [rax + rax]
mov al, 2
lock cmpxchg byte [0x14047f0fc], cl
je 0x1401ecb0c
cmp al, 0xf6
jne 0x1401eca60
jmp 0x1401ecc22
xor eax, eax
lea rcx, [0x14047ee60]
lea rdx, [0x140398420]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0x1a
jg 0x1401ecab0
inc rax
jmp 0x1401eca90
mov eax, dword [0x1404bfc1c]
cmp eax, 0x60
jg 0x1401ecab0
mov al, 0xd5
xchg byte [0x14047ee7b], al
jmp 0x1401ecadb
mov eax, dword [0x1404bfc1c]
cmp eax, 0x24
jl 0x1401ecae6
mov eax, dword [0x1404bfc1c]
cmp eax, 0x27
jg 0x1401ecad0
mov eax, dword [0x1404bfc18]
mov ecx, dword [0x140480a84]
neg ecx
add ecx, eax
inc ecx
imul ecx, eax
test cl, 1
jne 0x1401ecad0
lea rax, [0x14047ee60]
jmp 0x1401ece17
mov ecx, 0x136d993b
mov r8d, 0x136d98e0
nop word [rax + rax]
mov eax, dword [0x1404bfc1c]
cmp eax, 0x49
jg 0x1401ecb3d
mov eax, dword [0x1404bfc1c]
mov edx, dword [0x140480a84]
add edx, ecx
cmp eax, edx
jl 0x1401ecb5e
mov edx, dword [0x1404bfc18]
lea eax, [rdx - 1]
imul eax, edx
mov r9d, dword [0x140480a84]
add r9d, r8d
xor edx, edx
div r9d
test edx, edx
jne 0x1401ecb20
jmp 0x1401ecb2b
mov r8d, 0x136d98de
xor r9d, r9d
lea r10, [0x14047f0f0]
lea r11, [0x1403986b0]
xor esi, esi
xor edi, edi
mov ebx, 0x136d98de
test r9b, r9b
jne 0x1401ecbbe
nop word cs:[rax + rax]
movzx eax, byte [rsi + r11]
add byte [rsi + r10], al
mov eax, dword [0x1404bfc1c]
cmp eax, 0x3e
jg 0x1401ecbbe
lea eax, [rsi + 1]
cmp eax, 0xb
jg 0x1401ecc1a
add ebx, 0xfffffffc
add r8d, 0xfffffffe
add edi, 2
inc rsi
test r9b, r9b
je 0x1401ecb90
movzx edx, byte [rsi + r10]
movzx ecx, byte [0x140480a80]
sub cl, dl
add cl, byte [rsi + r11]
add cl, 0xab
mov eax, ecx
sub al, dl
shl al, cl
sub al, cl
mul cl
mov edx, eax
sub cl, al
sub al, cl
mul cl
mov ecx, eax
mov eax, edx
sub al, cl
mul cl
mov ecx, eax
mov eax, edx
sub al, cl
mul cl
mov ecx, eax
mov eax, edx
sub al, cl
mul cl
mov ecx, eax
mov dword [0x1404bfc1c], 0x18
sub dl, al
mov eax, edx
mul cl
add al, cl
mov byte [rsi + r10], al
jmp 0x1401ecb90
mov al, 0xf6
xchg byte [0x14047f0fc], al
lea rax, [0x14047f0f0]
jmp 0x1401ece17
mov al, 1
test al, al
jne 0x1401ecc4d
nop word cs:[rax + rax]
mov eax, dword [0x1404bfc1c]
cmp eax, 0x41
jge 0x1401ecc40
jmp 0x1401ecc2e
test edx, edx
je 0x1401eccc3
movzx eax, byte [0x14047e8f0]
cmp al, 0xfe
je 0x1401ecdab
xor ecx, ecx
mov dl, 0x77
jmp 0x1401ecc8e
mov al, 0x9a
lock cmpxchg byte [0x14047e8f0], dl
mov eax, dword [0x1404bfc18]
lea r8d, [rax + 1]
imul r8d, eax
test r8b, 1
je 0x1401ecc92
test cl, cl
jne 0x1401ecc70
mov al, 0x9a
lock cmpxchg byte [0x14047e8f0], dl
sete r8b
mov r9d, dword [0x1404bfc18]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
jne 0x1401ecc70
test r8b, r8b
jne 0x1401ecd03
cmp al, 0xfe
jne 0x1401ecc8e
jmp 0x1401ecdab
movzx eax, byte [0x14047f0ed]
cmp al, 0x8e
je 0x1401ece10
mov cl, 0xc
nop word cs:[rax + rax]
mov al, 0xa6
lock cmpxchg byte [0x14047f0ed], cl
je 0x1401ecddc
movzx edx, byte [0x140480a80]
add dl, 0x39
cmp al, dl
jne 0x1401ecce0
jmp 0x1401ece10
xor r8d, r8d
lea r9, [0x14047e8d0]
lea r10, [0x140397ed0]
mov r11d, 0x136d98df
jmp 0x1401ecd32
mov ecx, r8d
xor ecx, eax
and r8d, eax
lea r8d, [rcx + r8*2]
cmp r8d, 0x20
jge 0x1401ecda3
mov eax, dword [0x1404bfc1c]
movsxd rsi, r8d
cmp eax, 0x28
jg 0x1401ecd60
movzx eax, byte [rsi + r10]
xor byte [rsi + r9], al
mov eax, dword [0x140480a84]
add eax, r11d
mov ecx, dword [0x1404bfc1c]
cmp ecx, 0x1a
jl 0x1401ecd20
nop dword [rax]
movzx edx, byte [rsi + r10]
movzx ecx, byte [rsi + r9]
xor eax, eax
sub al, cl
mul dl
mov ecx, eax
sub dl, al
sub al, dl
mul dl
mov edx, eax
sub cl, al
mov eax, ecx
mul dl
mov ecx, eax
sub al, dl
mul dl
sub al, cl
mov edx, eax
xor dl, al
not dl
and dl, cl
xor dl, al
mov byte [rsi + r9], dl
mov eax, dword [0x1404bfc1c]
cmp eax, 0x27
jge 0x1401ecd60
jmp 0x1401ecd40
mov al, 0xfe
xchg byte [0x14047e8f0], al
xor eax, eax
nop dword [rax]
mov ecx, dword [0x1404bfc18]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x1401ecdc5
test al, al
je 0x1401ecdd3
cmp dword [0x140480a84], 0xec926722
jne 0x1401ecdb0
jmp 0x1401ecdc1
lea rax, [0x14047e8d0]
jmp 0x1401ece17
xor eax, eax
lea rcx, [0x14047f0e0]
lea rdx, [0x1403986a0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xc
jg 0x1401ece08
inc rax
jmp 0x1401ecdf0
mov al, 0x8e
xchg byte [0x14047f0ed], al
lea rax, [0x14047f0e0]
pop rbx
pop rdi
pop rsi
ret