Function at 0x1400a85e0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
test ecx, ecx
je 0x1400a86aa
test edx, edx
je 0x1400a8759
movzx eax, byte [0x1405312e0]
nop
cmp al, 0xe0
je 0x1400a8690
movzx ecx, byte [0x140532d98]
mov edx, ecx
xor dl, 0xb7
mov eax, ecx
and al, 0x37
add al, al
add al, dl
add al, 0x77
add cl, 0xca
lock cmpxchg byte [0x1405312e0], cl
jne 0x1400a8600
xor edx, edx
lea rax, [0x1405312d0]
lea rcx, [0x14046ae90]
nop dword [rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rax]
movzx r9d, byte [rdx + rcx]
mov r10d, r8d
not r10b
not r9b
mov r11d, r10d
xor r11b, r9b
and r11b, r10b
and r9b, r8b
or r9b, r11b
mov byte [rdx + rax], r9b
add edx, 0xa2a1192c
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
add edx, 0x5d5ee6d4
cmp edx, 0x10
jl 0x1400a8640
mov al, pe_nt_image_headers64
xchg byte [0x1405312e0], al
mov eax, dword [0x1405b3218]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1400a8b33
jmp 0x1400a8b27
mov eax, dword [0x1405b321c]
cmp eax, 0x58
nop word cs:[rax + rax]
xor eax, eax
test al, al
jne 0x1400a86c0
test edx, edx
je 0x1400a87b9
movzx eax, byte [0x1405311a6]
cmp al, 0x1a
je 0x1400a8abb
mov cl, 2
lea rax, [fcn.1400a85e0]
lea edx, [rax + rax]
add edx, 0x4000
mov r8d, edx
xor r8d, 0xfffffffe
jmp 0x1400a8708
cmp al, 0x1a
je 0x1400a8abb
mov al, 0x54
lock cmpxchg byte [0x1405311a6], cl
je 0x1400a8888
nop dword [rax + rax]
mov r9d, dword [0x1405b3218]
mov r10d, dword [0x140532d9c]
neg r10d
add r10d, r9d
add r10d, 0x2c01fd0
imul r10d, r9d
test r10b, 1
jne 0x1400a8752
mov r9d, dword [0x1405b321c]
cmp r9d, 0x18
jle 0x1400a8700
test edx, r8d
jne 0x1400a8720
jmp 0x1400a8745
mov al, 1
nop dword [rax + rax]
mov ecx, dword [0x1405b3218]
mov edx, ecx
not edx
imul edx, ecx
test dl, 1
jne 0x1400a8784
movzx ecx, byte [0x14053131e]
mov edx, dword [0x1405b321c]
cmp edx, 0x54
jle 0x1400a8791
movzx ecx, byte [0x14053131e]
test al, al
je 0x1400a8760
jmp 0x1400a8772
cmp cl, 0xc8
je 0x1400a89da
mov cl, 0xb9
nop dword [rax]
mov al, 0x95
lock cmpxchg byte [0x14053131e], cl
je 0x1400a8943
cmp al, 0xc8
jne 0x1400a87a0
jmp 0x1400a89da
movzx eax, byte [0x1405313ed]
cmp al, 0x7e
je 0x1400a8a9b
mov edi, 0xfd3fe031
lea rsi, [0x1400a8bc0]
mov bl, 0x9d
nop word cs:[rax + rax]
mov ecx, dword [0x1405b3218]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x140532d9c]
add ecx, edi
xor edx, edx
div ecx
test edx, edx
jne 0x1400a8860
nop dword [rax]
movzx ecx, byte [0x140532d98]
mov edx, ecx
xor dl, 0xa4
mov eax, ecx
and al, 0x24
add al, al
add al, dl
add cl, 0xab
lock cmpxchg byte [0x1405313ed], cl
sete cl
mov edx, dword [0x1405b321c]
cmp edx, 0xf
jg 0x1400a8860
test cl, cl
jne 0x1400a89e6
movzx ecx, byte [0x140532d98]
xor edx, edx
sub dl, cl
mov ecx, edx
xor cl, 0x74
and dl, 0x74
add dl, dl
add dl, cl
add al, dl
jne 0x1400a87e0
jmp 0x1400a8a9b
mov ecx, 0x32
call fcn.1404068e4
mov qword [0x1405b31f0], rax
mov rcx, rsi
call fcn.140426cd0
mov al, 0x96
lock cmpxchg byte [0x1405313ed], bl
jmp 0x1400a8800
xor r9d, r9d
lea r10, [0x1405311a0]
lea r11, [0x14046ad70]
xor esi, esi
jmp 0x1400a88c0
add esi, 0xad4049f3
mov eax, esi
xor eax, 1
and esi, 1
lea esi, [rax + rsi*2]
add esi, 0x52bfb60d
cmp esi, 6
jge 0x1400a8988
movsxd rdi, esi
test r9b, r9b
jne 0x1400a88ea
nop dword [rax + rax]
movzx eax, byte [rdi + r11]
xor byte [rdi + r10], al
mov eax, dword [0x1405b3218]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x1400a88a0
movzx edx, byte [rdi + r10]
movzx ecx, byte [rdi + r11]
shl dl, cl
shl dl, cl
mov eax, edx
sub al, cl
mul cl
mov r8d, eax
sub dl, al
mov eax, edx
mul r8b
mov ecx, r8d
shl al, cl
movzx ecx, byte [0x140532d98]
sub cl, al
add cl, 0x44
mov edx, ecx
xor dl, r8b
and cl, r8b
add cl, cl
add cl, dl
add cl, 0xca
mov edx, eax
shl dl, cl
mov r8d, eax
mov ecx, edx
shl r8b, cl
sub al, r8b
mul r8b
xor al, r8b
mov byte [rdi + r10], al
jmp 0x1400a88d0
xor eax, eax
lea rcx, [0x140531310]
lea rdx, [0x14046aec0]
nop word cs:[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, 0xd
jg 0x1400a899c
inc rax
jmp 0x1400a8960
mov eax, dword [0x1405b321c]
cmp eax, 0x18
jg 0x1400a8b10
jmp 0x1400a8af6
mov eax, dword [0x1405b3218]
nop word cs:[rax + rax]
xor eax, eax
sub eax, dword [0x140532d9c]
mov ecx, eax
xor ecx, 0x2c01fd1
and eax, 0x2c01fd1
add eax, eax
add eax, ecx
jne 0x1400a89b0
movzx eax, byte [0x140532d98]
add al, 0xd6
xchg byte [0x14053131e], al
lea rax, [0x140531310]
jmp 0x1400a8aa2
xor eax, eax
lea rcx, [0x1405313e0]
lea rdx, [0x14046af90]
nop word cs:[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 0x1400a8a30
inc rax
jmp 0x1400a8a00
mov eax, dword [0x1405b321c]
cmp eax, 0x5a
jle 0x1400a8a4b
nop dword [rax + rax]
mov eax, dword [0x1405b321c]
cmp eax, 0x3a
jge 0x1400a8a30
mov eax, dword [0x1405b321c]
cmp eax, 0x1b
jg 0x1400a8a40
mov eax, dword [0x1405b321c]
cmp eax, 0x1a
jg 0x1400a8a80
mov al, 0x7e
xchg byte [0x1405313ed], al
lea rax, [fcn.1400a85e0]
add eax, eax
add eax, 0x1a20
mov ecx, eax
not ecx
test ecx, eax
je 0x1400a8a9b
nop
mov al, 0x7e
xchg byte [0x1405313ed], al
mov eax, dword [0x1405b3218]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1400a8a80
jmp 0x1400a8a61
lea rax, [0x1405313e0]
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
mov eax, dword [0x1405b321c]
cmp eax, 0x3b
jl 0x1400a8ac7
cmp dword [0x140532d9c], 0x2c01fd1
jne 0x1400a8ab0
mov eax, dword [0x1405b3218]
mov ecx, dword [0x140532d9c]
mov edx, eax
sub edx, ecx
add edx, 0xfd3fe030
imul edx, eax
and edx, 1
add ecx, 0xfd3fe02f
cmp edx, ecx
jne 0x1400a8ab0
lea rax, [0x1405311a0]
jmp 0x1400a8aa2
mov eax, dword [0x1405b3218]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x1400a8b1d
nop word [rax + rax]
mov eax, dword [0x1405b321c]
cmp eax, 0x32
jge 0x1400a8b10
jmp 0x1400a8af6
mov al, 0x1a
xchg byte [0x1405311a6], al
jmp 0x1400a8abb
cmp dword [0x140532d9c], 0x2c01fd1
je 0x1400a8b54
mov eax, 0xfd3fe050
nop dword [rax + rax]
mov ecx, dword [0x1405b321c]
mov edx, dword [0x140532d9c]
add edx, eax
cmp ecx, edx
jge 0x1400a8b40
jmp 0x1400a8b27
lea rax, [0x1405312d0]
jmp 0x1400a8aa2