Function at 0x14014e640
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rbx
test ecx, ecx
je 0x14014e6c9
mov eax, dword [0x1406125f8]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x1405a043c]
mov r8d, eax
xor r8d, 0x1c88de61
and eax, 0x1c88de61
lea eax, [r8 + rax*2]
add eax, 0xb1c92e66
cmp ecx, eax
nop dword [rax]
mov eax, dword [0x1406125f8]
mov ecx, eax
not ecx
imul ecx, eax
test cl, 1
jne 0x14014e680
test edx, edx
je 0x14014e756
movzx eax, byte [0x140612598]
cmp al, 2
je 0x14014e92f
mov cl, 0x30
nop dword [rax + rax]
xor eax, eax
lock cmpxchg byte [0x140612598], cl
je 0x14014e86e
cmp al, 2
jne 0x14014e6b0
jmp 0x14014e92f
mov eax, 0xce520cc7
add eax, dword [0x1405a043c]
cmp edx, eax
jne 0x14014e786
movzx eax, byte [0x140594616]
movzx ecx, byte [0x1405a0438]
mov edx, ecx
xor dl, 0xa
and cl, 0xa
add cl, cl
add cl, dl
add cl, 0x1f
cmp al, cl
je 0x14014eb21
mov cl, 0x87
mov dl, 1
jmp 0x14014e718
cmp al, 0xa2
je 0x14014eb21
mov al, 0x4c
lock cmpxchg byte [0x140594616], cl
je 0x14014e962
mov r8d, dword [0x1406125fc]
cmp r8d, 0x2d
jg 0x14014e750
nop word cs:[rax + rax]
mov r8d, dword [0x1406125fc]
cmp r8d, 0xb
jl 0x14014e710
nop dword [rax]
test dl, dl
je 0x14014e750
jmp 0x14014e740
movzx eax, byte [0x1405945d1]
movzx ecx, byte [0x1405a0438]
mov edx, ecx
xor dl, 0x4c
not cl
and cl, 0x33
or cl, dl
not cl
add cl, cl
add cl, dl
cmp al, cl
jne 0x14014e7c3
lea rax, [0x1405945c0]
jmp 0x14014eb28
movzx eax, byte [0x1405946c6]
cmp al, 0x5f
je 0x14014eae8
mov cl, 0xd8
nop word [rax + rax]
mov al, 0x2d
lock cmpxchg byte [0x1405946c6], cl
je 0x14014e9ee
movzx edx, byte [0x1405a0438]
add dl, 0xe6
cmp al, dl
jne 0x14014e7a0
jmp 0x14014eae8
mov cl, 0x46
mov edx, 0xce520ceb
xor r8d, r8d
jmp 0x14014e7d4
cmp al, 0xc5
je 0x14014e77a
mov eax, dword [0x1406125fc]
cmp eax, 0x5d
jg 0x14014e820
nop
mov al, 0xd2
lock cmpxchg byte [0x1405945d1], cl
sete r9b
mov r10d, dword [0x1406125fc]
mov r11d, dword [0x1405a043c]
add r11d, edx
cmp r10d, r11d
jge 0x14014e820
test r9b, r9b
jne 0x14014e93b
test r8b, r8b
jne 0x14014e860
jmp 0x14014e840
movzx r9d, byte [0x1405a0438]
lea eax, [r9 + 0x59]
add r9b, 0xcd
lock cmpxchg byte [0x1405945d1], r9b
jmp 0x14014e7e0
mov r9d, dword [0x1406125f8]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
je 0x14014e7d0
nop dword [rax]
cmp dword [0x1405a043c], 0x31adf339
jne 0x14014e860
jmp 0x14014e840
xor edx, edx
lea rax, [0x1405946f0]
lea rcx, [0x1404cc5d0]
nop
movsxd rdx, edx
movzx r8d, byte [rdx + rax]
movzx r9d, byte [rdx + rcx]
add r8b, 0x88
mov r10d, r8d
not r10b
mov r11d, r9d
xor r11b, r10b
xor r10b, r8b
and r10b, r9b
xor r10b, r8b
and r11b, r9b
add r11b, r11b
add r11b, r10b
add r11b, 0x78
mov byte [rdx + rax], r11b
mov r8d, edx
not r8d
mov r9d, edx
xor r9d, 1
mov r10d, r9d
and r10d, r8d
and edx, 0xfffffffe
or edx, r10d
and r8d, 0x7ffffffe
or r8d, r9d
not r8d
lea edx, [rdx + r8*2]
add edx, 0x4c234b02
mov r8d, edx
xor r8d, 0xb3dcb4fe
and edx, 0x33dcb4fe
lea edx, [r8 + rdx*2]
mov r8d, dword [0x1405a043c]
mov r9d, r8d
xor r9d, 0xce520cea
and r8d, 0x4e520cea
lea r8d, [r9 + r8*2]
cmp edx, r8d
jl 0x14014e880
movzx eax, byte [0x1405a0438]
add al, 0x89
xchg byte [0x140612598], al
lea rax, [0x1405946f0]
jmp 0x14014eb28
mov eax, dword [0x1406125f8]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, 0xce520cc7
add eax, dword [0x1405a043c]
cmp ecx, eax
jne 0x14014eb70
jmp 0x14014eb5a
xor edx, edx
lea rax, [0x140594600]
lea rcx, [0x1404cc4f0]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rax]
movzx r9d, byte [rdx + rcx]
mov r10d, r8d
not r10b
mov r11d, r10d
xor r11b, r8b
and r11b, r9b
xor r11b, r8b
mov ebx, r11d
not bl
xor r11b, r10b
and bl, r8b
or bl, r11b
not bl
mov r8d, r9d
xor r8b, r10b
and r8b, r9b
or r8b, r10b
not r8b
or r8b, bl
mov byte [rdx + rax], r8b
mov r8d, dword [0x1405a043c]
add edx, r8d
add edx, 0xce520cc8
cmp edx, 0x16
jl 0x14014e980
mov eax, dword [0x1406125fc]
cmp eax, 0x22
jg 0x14014eb40
jmp 0x14014eb2b
xor r8d, r8d
lea r9, [0x1405946c0]
lea r10, [0x1404cc5a0]
mov r11d, 0xce520d1d
jmp 0x14014ea34
add r8d, 0x2c8d52e0
mov eax, r8d
xor eax, 0xd372ad21
and r8d, 0x5372ad21
lea r8d, [rax + r8*2]
cmp r8d, 6
jge 0x14014eae0
mov eax, dword [0x1406125fc]
movsxd rsi, r8d
cmp eax, 0x59
jg 0x14014ea70
nop word cs:[rax + rax]
movzx eax, byte [rsi + r10]
xor byte [rsi + r9], al
mov eax, dword [0x1406125fc]
mov ecx, dword [0x1405a043c]
add ecx, r11d
cmp eax, ecx
jl 0x14014ea10
nop dword [rax]
movzx edx, byte [rsi + r9]
movzx ecx, byte [rsi + r10]
shl dl, cl
mov eax, edx
sub al, cl
mul cl
mov ecx, eax
mov eax, edx
sub al, cl
mul cl
mov ecx, eax
mov ebx, edx
xor bl, 0x6b
mov eax, edx
and al, 0x6b
add al, al
add al, bl
sub al, cl
add al, 0x95
mul cl
mov ecx, eax
mov eax, edx
sub al, cl
mul cl
mov ecx, eax
sub dl, al
mov eax, edx
mul cl
mov edx, eax
xor dl, 0x85
not al
and al, 0x7a
or al, dl
not al
add al, al
add al, dl
sub al, cl
add al, 0x7b
mul cl
shl al, cl
shl al, cl
xor al, cl
mov byte [rsi + r9], al
mov eax, dword [0x1406125fc]
cmp eax, 0x36
jge 0x14014ea70
jmp 0x14014ea50
mov al, 0x5f
xchg byte [0x1405946c6], al
lea rax, [0x1405946c0]
jmp 0x14014eb28
mov al, 0xa2
xchg byte [0x140594616], al
mov eax, dword [0x1406125f8]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, 0xce520cc7
add eax, dword [0x1405a043c]
cmp ecx, eax
je 0x14014eb21
mov al, 0xa2
xchg byte [0x140594616], al
jmp 0x14014eaf1
lea rax, [0x140594600]
pop rbx
pop rsi
ret
mov al, 1
test al, al
jne 0x14014eb4d
nop word cs:[rax + rax]
mov eax, dword [0x1406125fc]
cmp eax, 0x10
jge 0x14014eb40
jmp 0x14014eb2b
mov eax, dword [0x1406125fc]
cmp eax, 0x1a
jl 0x14014eaf1
jmp 0x14014eb17
mov eax, dword [0x1406125fc]
cmp eax, 0x55
jl 0x14014eb7d
nop word cs:[rax + rax]
mov eax, dword [0x1406125fc]
cmp eax, 0x20
jge 0x14014eb70
jmp 0x14014eb5a
xor eax, eax
lea rcx, [0x1405945c0]
lea rdx, [0x1404cc4b0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0x10
jg 0x14014eba8
inc rax
jmp 0x14014eb90
mov ecx, 0xce520cc9
nop dword [rax]
mov eax, dword [0x1406125f8]
mov edx, dword [0x1405a043c]
lea r8d, [rax + rdx]
imul r8d, eax
and r8d, 1
add edx, 0xce520cc7
cmp r8d, edx
jne 0x14014ec39
mov al, 0xc5
xchg byte [0x1405945d1], al
mov edx, dword [0x1406125f8]
mov eax, edx
not eax
imul eax, edx
and eax, 1
mov edx, dword [0x1405a043c]
mov r8d, edx
neg r8d
dec edx
mov r9d, r8d
and r9d, 0xce520cc6
mov r10d, edx
and r10d, 0x31adf339
or r10d, r9d
xor r8d, 0x31adf339
and edx, 0x4e520cc6
or edx, r8d
not edx
add edx, edx
mov r8d, r10d
xor r8d, edx
and edx, r10d
lea edx, [r8 + rdx*2]
add edx, eax
je 0x14014e77a
mov al, 0xc5
xchg byte [0x1405945d1], al
mov edx, dword [0x1406125f8]
lea eax, [rdx - 1]
imul eax, edx
mov r8d, dword [0x1405a043c]
add r8d, ecx
xor edx, edx
div r8d
test edx, edx
jne 0x14014ebb0
jmp 0x14014ebd3