Function at 0x140145580
Capabilities:
Encode data using xor

Disassembly:
push rsi
xor eax, eax
test al, al
jne 0x140145592
mov eax, dword [0x14055be94]
cmp eax, 0x41
jl 0x1401455a6
mov al, 1
nop word cs:[rax + rax]
test al, al
je 0x1401455a0
jmp 0x140145587
test ecx, ecx
je 0x140145731
mov eax, 0x6c45f968
add eax, dword [0x140500800]
cmp edx, eax
jne 0x140145600
movzx eax, byte [0x1404ffd3d]
cmp al, 0xb8
je 0x140145983
mov ecx, 0x6c45f969
lea rax, [fcn.140145580]
lea r8d, [rax + rax]
add r8d, 0x2fa0
mov r9b, 0x61
mov r10d, 0x6c45f96a
jmp 0x140145704
mov ecx, dword [0x14055be90]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x140500800]
lea r8d, [rcx + 0x6c45f96a]
xor edx, edx
div r8d
add ecx, 0x6c45f968
cmp edx, ecx
je 0x140145640
movzx eax, byte [0x1404ffb80]
mov eax, dword [0x14055be90]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140145600
movzx eax, byte [0x1404ffb80]
mov ecx, dword [0x14055be90]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x140145628
cmp al, 0xaa
je 0x140145840
movzx ecx, byte [0x140500804]
mov edx, ecx
xor dl, 0x82
mov eax, ecx
not al
and al, 0x7d
or al, dl
not al
add al, al
add al, dl
mov edx, ecx
xor dl, 0xd5
and cl, 0x55
add cl, cl
add cl, dl
lock cmpxchg byte [0x1404ffb80], cl
je 0x1401457c9
movzx ecx, byte [0x140500804]
add cl, 0xe
cmp al, cl
jne 0x140145660
jmp 0x140145840
mov al, 0xfa
lock cmpxchg byte [0x1404ffd3d], r9b
sete dl
mov r11d, dword [0x14055be90]
mov esi, dword [0x140500800]
not esi
add esi, r11d
imul esi, r11d
test sil, 1
je 0x140145720
mov al, 0xfa
lock cmpxchg byte [0x1404ffd3d], r9b
mov edx, dword [0x14055be90]
lea eax, [rdx - 1]
imul eax, edx
mov r11d, dword [0x140500800]
add r11d, r10d
xor edx, edx
div r11d
test edx, edx
je 0x1401456b0
mov eax, dword [0x140500800]
add eax, ecx
xor eax, r8d
not eax
test eax, r8d
jne 0x1401456da
jmp 0x1401456b0
test dl, dl
jne 0x1401457f8
cmp al, 0xb8
jne 0x140145704
jmp 0x140145983
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x140145752
mov ecx, dword [0x140500800]
cmp ecx, 0x93ba0698
je 0x14014575f
mov ecx, dword [0x14055be94]
cmp ecx, 0x26
jge 0x140145740
jmp 0x140145744
add ecx, 0x6c45f968
cmp edx, ecx
jne 0x14014579d
mov eax, 0x6c45f969
add eax, dword [0x140500800]
lea rcx, [fcn.140145580]
add ecx, ecx
add ecx, 0x2600
mov edx, ecx
not edx
xor ecx, eax
not eax
and eax, edx
or eax, ecx
cmp eax, 0xffffffff
jne 0x1401458d9
jmp 0x1401458c7
movzx eax, byte [0x1404ffcfd]
cmp al, 0x63
je 0x1401458be
mov cl, 0x9f
nop
mov al, 0xa5
lock cmpxchg byte [0x1404ffcfd], cl
je 0x14014586d
cmp al, 0x63
jne 0x1401457b0
jmp 0x1401458be
xor eax, eax
lea rcx, [0x1404ffb70]
lea rdx, [0x14042bac0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xf
jg 0x140145838
inc rax
jmp 0x1401457e0
xor eax, eax
lea rcx, [0x1404ffd30]
lea rdx, [0x14042bc50]
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
mov r9d, r8d
xor r9b, r8b
not r9b
and r9b, byte [rax + rcx]
xor r9b, r8b
mov byte [rax + rcx], r9b
lea r8d, [rax + 1]
cmp r8d, 0xc
jg 0x14014584f
inc rax
jmp 0x140145810
mov al, 0xaa
xchg byte [0x1404ffb80], al
xor eax, eax
test al, al
jne 0x140145a10
jmp 0x140145a01
mov eax, dword [0x14055be90]
mov ecx, 0x4d9415a7
sub ecx, eax
imul ecx, eax
test cl, 1
jne 0x140145979
jmp 0x140145966
xor edx, edx
lea rax, [0x1404ffcf0]
lea rcx, [0x14042bc10]
nop dword [rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
mov r9d, r8d
xor r9b, r8b
not r9b
and r9b, byte [rdx + rax]
xor r9b, r8b
mov byte [rdx + rax], r9b
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
cmp edx, 0xd
jl 0x140145880
movzx eax, byte [0x140500804]
add al, 0xc7
xchg byte [0x1404ffcfd], al
lea rax, [0x1404ffcf0]
pop rsi
ret
movzx eax, byte [0x1404ffc51]
mov ecx, dword [0x14055be94]
cmp ecx, 0x3e
jle 0x1401458e2
movzx eax, byte [0x1404ffc51]
jmp 0x1401458c7
cmp al, 0x61
je 0x14014595d
mov cl, 0xa6
nop dword [rax + rax]
mov al, 0x42
lock cmpxchg byte [0x1404ffc51], cl
je 0x140145902
cmp al, 0x61
jne 0x1401458f0
jmp 0x14014595d
xor eax, eax
lea rcx, [0x1404ffc40]
lea rdx, [0x14042bb60]
nop word cs:[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, 0x10
jg 0x140145955
inc rax
jmp 0x140145920
mov al, 0x61
xchg byte [0x1404ffc51], al
lea rax, [0x1404ffc40]
pop rsi
ret
mov al, 0xb8
xchg byte [0x1404ffd3d], al
mov eax, dword [0x14055be94]
cmp eax, 0x2e
jle 0x140145983
mov al, 0xb8
xchg byte [0x1404ffd3d], al
jmp 0x140145966
lea rax, [fcn.140145580]
add eax, eax
add eax, 0x36e0
mov ecx, eax
not ecx
nop word cs:[rax + rax]
cmp byte [0x14055be99], 0
jne 0x1401459bd
mov edx, dword [0x14055be90]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x1401459f8
mov edx, dword [0x140500800]
mov r8d, edx
xor r8d, 0x6c45f969
and edx, 0x6c45f969
lea edx, [r8 + rdx*2]
mov r8d, ecx
and r8d, edx
not edx
mov r9d, eax
and r9d, edx
or r9d, r8d
xor edx, ecx
not edx
and edx, ecx
or edx, r9d
cmp edx, 0xffffffff
jne 0x1401459a0
jmp 0x1401459a9
lea rax, [0x1404ffd30]
pop rsi
ret
mov al, 1
test al, al
jne 0x140145a1d
nop word [rax + rax]
mov eax, dword [0x14055be94]
cmp eax, 0xd
jge 0x140145a10
jmp 0x140145a01
lea rax, [0x1404ffb70]
pop rsi
ret