Function at 0x140385000
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rbx
mov eax, dword [0x140520194]
mov r8d, eax
xor r8d, 0x2268da77
and eax, 0x2268da77
lea eax, [r8 + rax*2]
cmp ecx, eax
jne 0x1403850ae
test edx, edx
je 0x140385189
movzx eax, byte [0x14052000c]
cmp al, 0xb6
je 0x140385257
mov cl, 0xb4
xor edx, edx
jmp 0x140385055
movzx r8d, byte [0x140520190]
add r8b, 0x8b
cmp al, r8b
je 0x140385257
mov al, 0x59
lock cmpxchg byte [0x14052000c], cl
je 0x1403851d4
nop word cs:[rax + rax]
test dl, dl
jne 0x140385097
xor r8d, r8d
sub r8d, dword [0x140520194]
mov r9d, r8d
xor r9d, 0xdd972589
and r8d, 0x5d972589
add r8d, r8d
add r8d, r9d
je 0x140385040
mov r8d, dword [0x140534d70]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
jne 0x140385070
jmp 0x140385074
mov eax, dword [0x140520194]
mov ecx, eax
xor ecx, 0x2268da77
and eax, 0x2268da77
lea eax, [rcx + rax*2]
cmp edx, eax
jne 0x140385122
lea rax, [fcn.140385000]
lea ecx, [rax + rax]
add ecx, 0xc40
mov eax, ecx
not eax
and eax, ecx
mov ecx, 0x2268da77
xor edx, edx
nop word cs:[rax + rax]
mov r8d, dword [0x140520194]
add r8d, ecx
cmp eax, r8d
jne 0x14038510b
movzx r8d, byte [0x140520045]
test dl, dl
je 0x14038515d
movzx r8d, byte [0x140520045]
mov r8d, dword [0x140534d74]
cmp r8d, 0x29
jge 0x1403850f0
jmp 0x1403850ff
movzx eax, byte [0x140520062]
cmp al, 0x2b
je 0x14038547e
mov cl, 0xd1
nop word cs:[rax + rax]
mov al, 0x1f
lock cmpxchg byte [0x140520062], cl
je 0x140385263
cmp al, byte [0x140520190]
jne 0x140385140
jmp 0x14038547e
cmp r8b, 0x13
je 0x140385475
mov cl, 0xb7
nop dword [rax]
mov al, 0x95
lock cmpxchg byte [0x140520045], cl
je 0x140385277
cmp al, 0x13
jne 0x140385170
jmp 0x140385475
movzx eax, byte [0x1405200e3]
movzx ecx, byte [0x140520190]
add cl, 0xc1
cmp al, cl
je 0x14038542a
nop word cs:[rax + rax]
movzx ecx, byte [0x140520190]
lea eax, [rcx + 0x78]
add cl, 0x5b
lock cmpxchg byte [0x1405200e3], cl
je 0x1403852e3
cmp al, 0xec
jne 0x1403851b0
jmp 0x14038542a
xor r8d, r8d
lea rax, [0x140520000]
lea rcx, [0x140427540]
mov edx, 0x2268da78
nop word [rax + rax]
movsxd r8, r8d
movzx r9d, byte [r8 + rax]
movzx r10d, byte [r8 + rcx]
mov r11d, r9d
xor r11b, r10b
and r9b, r10b
add r9b, r9b
mov r10d, r11d
xor r10b, r9b
and r9b, r11b
add r9b, r9b
add r9b, r10b
mov byte [r8 + rax], r9b
mov r9d, dword [0x140520194]
add r9d, edx
mov r10d, r8d
not r10d
mov r11d, r9d
xor r11d, r10d
xor r10d, r8d
and r10d, r9d
xor r10d, r8d
and r11d, r9d
lea r8d, [r10 + r11*2]
cmp r8d, 0xc
jl 0x1403851f0
movzx eax, byte [0x140520190]
add al, 0x8b
xchg byte [0x14052000c], al
lea rax, [0x140520000]
jmp 0x140385431
mov eax, dword [0x140534d74]
cmp eax, 0x2f
jg 0x1403854e0
jmp 0x1403854c9
xor edx, edx
lea rax, [0x140520030]
lea rcx, [0x140427560]
nop word [rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 1
not edx
and edx, 0x7ffffffe
or edx, r8d
not edx
lea edx, [r8 + rdx*2]
cmp edx, 0x15
jl 0x140385290
mov eax, dword [0x140534d74]
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x1403852d0
xor eax, eax
test al, al
jne 0x140385460
jmp 0x140385434
xor r9d, r9d
lea r10, [0x1405200c0]
lea r11, [0x1404275f0]
nop word cs:[rax + rax]
mov eax, dword [0x140534d70]
mov ecx, eax
not ecx
imul ecx, eax
movsxd rsi, r9d
jmp 0x1403853c8
movzx eax, byte [rsi + r10]
movzx r8d, byte [rsi + r11]
mov ecx, eax
xor cl, 0x31
and al, 0x31
add al, al
add al, cl
sub al, r8b
add al, 0xcf
mul r8b
mov ecx, eax
neg cl
xor cl, r8b
dec al
mov ebx, r8d
not bl
and al, bl
or al, cl
not al
add al, al
add al, cl
mov ecx, eax
neg cl
dec al
mov edx, r8d
xor dl, al
and al, r8b
and cl, bl
or al, cl
and dl, r8b
add dl, dl
add dl, al
movzx ecx, byte [0x140520190]
sub cl, dl
add cl, 0xd5
mov eax, ecx
xor al, r8b
and cl, r8b
add cl, cl
add cl, al
mov r8d, edx
shl r8b, cl
sub dl, r8b
mov eax, edx
mul r8b
sub al, r8b
mul r8b
mov edx, eax
mov ecx, r8d
shl dl, cl
mov ecx, edx
xor cl, dl
not cl
and cl, al
xor cl, dl
mov byte [rsi + r10], cl
mov eax, dword [0x140534d70]
mov ecx, dword [0x140520194]
neg ecx
add ecx, eax
add ecx, 0xdd972588
imul ecx, eax
test cl, 1
jne 0x140385320
movzx eax, byte [rsi + r11]
mov ecx, eax
xor cl, al
not cl
and cl, byte [rsi + r10]
xor cl, al
mov byte [rsi + r10], cl
mov eax, dword [0x140520194]
mov ecx, dword [0x140534d74]
lea edx, [rax + 0x2268dac9]
cmp ecx, edx
jge 0x140385320
mov ecx, eax
xor ecx, 0x2268da78
mov edx, eax
xor edx, 0x5d972587
and edx, eax
lea eax, [rcx + rdx*2]
add r9d, eax
cmp r9d, 0x23
jl 0x140385300
mov al, 0xec
xchg byte [0x1405200e3], al
lea rax, [0x1405200c0]
pop rbx
pop rsi
ret
mov al, 0x13
xchg byte [0x140520045], al
mov eax, dword [0x140534d70]
mov ecx, eax
not ecx
add ecx, 2
imul ecx, eax
test cl, 1
je 0x140385475
nop word cs:[rax + rax]
mov al, 0x13
xchg byte [0x140520045], al
mov eax, dword [0x140534d74]
cmp eax, 0x3c
jge 0x140385460
jmp 0x140385434
lea rax, [0x140520030]
jmp 0x140385431
mov eax, dword [0x140534d74]
lea rax, [fcn.140385000]
add eax, eax
add eax, 0x3c40
nop word cs:[rax + rax]
mov ecx, dword [0x140520194]
mov edx, ecx
xor edx, 0x5d972587
and edx, ecx
xor ecx, 0x2268da78
lea ecx, [rcx + rdx*2]
test ecx, eax
jne 0x1403854a0
lea rax, [0x140520050]
jmp 0x140385431
mov eax, dword [0x140534d70]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x1403854f3
nop word [rax + rax]
mov eax, dword [0x140534d70]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1403854e0
jmp 0x1403854c9
xor eax, eax
lea rcx, [0x140520050]
lea rdx, [0x140427580]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0x11
jg 0x140385528
inc rax
jmp 0x140385510
mov al, 0x2b
xchg byte [0x140520062], al
jmp 0x14038547e