Function at 0x14031eb70
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rbx
test ecx, ecx
je 0x14031ebc4
movzx eax, byte [0x140514470]
cmp al, 0xa6
je 0x14031ecac
mov cl, 0x91
xor edx, edx
nop dword [rax]
mov al, 0x6f
lock cmpxchg byte [0x140514470], cl
je 0x14031ec39
test dl, dl
movzx r8d, byte [0x140514920]
mov r9d, dword [0x14053424c]
cmp r9d, 0x41
jg 0x14031eba2
inc r8b
cmp al, r8b
jne 0x14031eb90
jmp 0x14031ecac
mov eax, 0xa095ee36
add eax, dword [0x140514910]
cmp edx, eax
jne 0x14031ec09
movzx eax, byte [0x1405143da]
cmp al, 0x76
je 0x14031ee2d
mov cl, 0xa6
nop word cs:[rax + rax]
mov al, 0xef
lock cmpxchg byte [0x1405143da], cl
je 0x14031ecde
cmp al, 0x76
jne 0x14031ebf0
jmp 0x14031ee2d
movzx eax, byte [0x140514569]
cmp al, 0x49
je 0x14031ee41
mov cl, 0x3e
nop word [rax + rax]
mov al, 0xda
lock cmpxchg byte [0x140514569], cl
je 0x14031eddb
cmp al, 0x49
jne 0x14031ec20
jmp 0x14031ee41
xor r8d, r8d
lea rax, [0x140514460]
lea rcx, [0x140422b30]
mov edx, 0xa095ee46
nop
movsxd r8, r8d
movzx r9d, byte [r8 + rcx]
add byte [r8 + rax], r9b
mov r9d, r8d
xor r9d, 1
and r8d, 1
lea r8d, [r9 + r8*2]
mov r9d, dword [0x140514910]
add r9d, edx
cmp r8d, r9d
jl 0x14031ec50
mov eax, dword [0x14053424c]
mov eax, dword [0x14053424c]
cmp eax, 0x27
jg 0x14031ec80
mov eax, dword [0x140534248]
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x14031eca0
mov al, 0xa6
xchg byte [0x140514470], al
xor eax, eax
nop
test al, al
jne 0x14031ecc5
mov ecx, dword [0x140534248]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x14031ecd2
mov ecx, dword [0x14053424c]
cmp ecx, 0x54
jge 0x14031ecb0
jmp 0x14031ecb4
lea rax, [0x140514460]
jmp 0x14031ee3e
xor r8d, r8d
lea r9, [0x1405143c0]
lea r10, [0x140422aa0]
lea rax, [fcn.14031eb70]
add eax, eax
add eax, 0x4d20
mov r11d, eax
not r11d
and r11d, eax
jmp 0x14031ed1d
inc r8d
cmp r8d, 0x1a
jge 0x14031ee25
mov eax, dword [0x140534248]
lea ecx, [rax - 1]
imul ecx, eax
movsxd rsi, r8d
test cl, 1
jne 0x14031ed70
nop word cs:[rax + rax]
movzx eax, byte [rsi + r9]
movzx ecx, byte [rsi + r10]
mov edx, ecx
not dl
mov ebx, eax
xor bl, dl
not bl
and bl, cl
and dl, al
or dl, bl
mov byte [rsi + r9], dl
mov eax, dword [0x140534248]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x14031ed10
nop
movzx eax, byte [rsi + r9]
movzx ecx, byte [rsi + r10]
mov edx, eax
shl dl, cl
sub al, dl
mul dl
sub dl, al
mov cl, 0x3d
sub cl, al
mov ebx, ecx
xor bl, dl
and cl, dl
add cl, cl
add cl, bl
add cl, 0xc3
shl al, cl
sub al, cl
mul cl
shl al, cl
mov edx, eax
shl dl, cl
mov ecx, edx
shl al, cl
mov dword [0x140534248], 1
xor al, dl
mov byte [rsi + r9], al
mov eax, dword [0x140514910]
mov ecx, eax
xor ecx, 0xa095ee36
not eax
and eax, 0x5f6a11c9
or eax, ecx
not eax
lea eax, [rcx + rax*2]
cmp r11d, eax
jne 0x14031ed70
jmp 0x14031ed40
xor eax, eax
lea rcx, [0x140514560]
lea rdx, [0x140422c20]
nop dword [rax + rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
mov r10d, r8d
not r10b
not r9b
mov r11d, r10d
xor r11b, r9b
and r11b, r10b
and r9b, r8b
or r9b, r11b
mov byte [rax + rcx], r9b
lea r8d, [rax + 1]
cmp r8d, 8
jg 0x14031ee36
inc rax
jmp 0x14031edf0
mov al, 0x76
xchg byte [0x1405143da], al
lea rax, [0x1405143c0]
jmp 0x14031ee3e
xor eax, eax
test al, al
jne 0x14031ee80
jmp 0x14031ee73
pop rbx
pop rsi
ret
xor eax, eax
nop word cs:[rax + rax]
mov ecx, dword [0x14053424c]
cmp ecx, 0x3b
jg 0x14031ee5f
test al, al
je 0x14031ee6a
cmp byte [0x140531a00], 0
jne 0x14031ee50
jmp 0x14031ee5b
lea rax, [0x140514560]
jmp 0x14031ee3e
mov eax, dword [0x14053424c]
cmp eax, 0x13
jl 0x14031ee93
nop
mov eax, dword [0x140534248]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14031ee80
jmp 0x14031ee73
movzx eax, byte [0x140514920]
add al, 0xa4
xchg byte [0x140514569], al
jmp 0x14031ee41