Function at 0x180027900
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xc8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x30], xmm6
mov qword [rbp + 0x28], 0xfffffffffffffffe
mov r12b, 1
lea r14, [0x180280020]
lea rbx, [rbp + 0x27]
mov edi, 9
xorps xmm6, xmm6
nop dword [rax]
mov rax, qword [0x18026a180]
movzx eax, byte [rax]
test al, al
je 0x180027a50
mov eax, 1
mov ecx, 0x101
lock cmpxchg dword [0x180280020], ecx
mov rsi, r14
je 0x180027c4e
test eax, 0x1fffff00
sete cl
cmp eax, 0x20000000
setae dl
mov r8d, eax
not r8d
test r8d, 0xfffff00
je 0x180027a27
and dl, cl
jne 0x180027a27
xor ecx, ecx
nop word [rax + rax]
lea edx, [rax + 0x100]
lock cmpxchg dword [0x180280020], edx
je 0x180027b30
cmp ecx, 9
cmovae ecx, edi
mov eax, 2
shl eax, cl
lea edx, [rax - 1]
cmp edx, 7
jb 0x1800279e5
mov edx, eax
and edx, 0xfffffff8
nop
pause
pause
pause
pause
pause
pause
pause
pause
add edx, 0xfffffff8
jne 0x1800279d0
and eax, 6
je 0x1800279f6
nop word [rax + rax]
pause
dec eax
jne 0x1800279f0
mov eax, dword [0x180280020]
test eax, 0x1fffff00
setne dl
cmp eax, 0x20000000
setb r8b
mov r9d, eax
not r9d
test r9d, 0xfffff00
je 0x180027a27
inc ecx
or r8b, dl
jne 0x1800279a0
lea rcx, [rbp - 0x10]
mov rdx, r14
mov r8, rbx
mov r9, rbx
call fcn.180185bf0
mov rsi, qword [rbp - 8]
jmp 0x180027c4e
mov eax, 1
mov ecx, 0x101
lock cmpxchg dword [0x180280020], ecx
mov edx, eax
mov eax, 1
mov rsi, r14
je 0x180027c48
test dl, 1
jne 0x180027b38
cmp edx, 0x100
jae 0x180027c0e
mov ecx, edx
or ecx, 0x20000000
mov eax, edx
lock cmpxchg dword [0x180280020], ecx
jne 0x180027c0e
movzx r13d, dl
mov r15, r14
mov byte [0x18028002c], 0
mov qword [rbp - 0x38], r15
mov dword [rbp - 0x30], r13d
mov dword [rbp - 0x2c], 1
mov ecx, r13d
and ecx, 0xdffffeff
xor ecx, 0x20000101
mov eax, dword [r15]
nop
mov edx, eax
xor edx, ecx
lock cmpxchg dword [r15], edx
jne 0x180027ad0
mov rsi, qword [rbp - 0x38]
test eax, 0x40000000
je 0x180027c4e
mov eax, dword [rsi]
nop dword [rax]
mov ecx, eax
xor ecx, 0x50000000
lock cmpxchg dword [rsi], ecx
jne 0x180027af0
and eax, 0x20000000
mov dword [rbp - 0x58], eax
jne 0x180027e78
mov rcx, rsi
call fcn.1801114b0
shl eax, 8
mov ecx, 0x10000000
sub ecx, eax
lock sub dword [rsi], ecx
jmp 0x180027c4e
mov rsi, r14
jmp 0x180027c4e
test edx, 0x1fffff00
sete al
cmp edx, 0x20000000
setae cl
mov r8d, edx
not r8d
test r8d, 0xfffff00
je 0x180027c0e
and cl, al
jne 0x180027c0e
xor ecx, ecx
nop word [rax + rax]
lea r8d, [rdx + 0x100]
mov eax, edx
lock cmpxchg dword [0x180280020], r8d
je 0x180027c42
cmp ecx, 9
cmovae ecx, edi
mov eax, 2
shl eax, cl
lea edx, [rax - 1]
cmp edx, 7
jb 0x180027bc5
mov edx, eax
and edx, 0xfffffff8
nop word cs:[rax + rax]
pause
pause
pause
pause
pause
pause
pause
pause
add edx, 0xfffffff8
jne 0x180027bb0
and eax, 6
je 0x180027bd6
nop word [rax + rax]
pause
dec eax
jne 0x180027bd0
mov edx, dword [0x180280020]
test dl, 1
je 0x180027c0e
test edx, 0x1fffff00
setne al
cmp edx, 0x20000000
setb r8b
mov r9d, edx
not r9d
test r9d, 0xfffff00
je 0x180027c0e
inc ecx
or r8b, al
jne 0x180027b70
lea rcx, [rbp - 0x10]
mov rdx, r14
mov r8, rbx
mov r9, r14
call fcn.1801855b0
mov eax, dword [rbp - 0x10]
cmp eax, 2
je 0x180027aa6
cmp eax, 1
jne 0x180027e3d
mov r15, qword [rbp - 8]
mov r13d, dword [rbp]
jmp 0x180027aa6
movzx eax, dl
mov rsi, r14
mov r15, rsi
mov r13d, eax
movzx ecx, byte [0x18028002c]
mov edx, 0xffffff00
lock xadd dword [rsi], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne r8b
cmp edx, 0x40000000
setb al
or al, r8b
test cl, cl
jne 0x180027e5c
test al, al
je 0x180027e49
lea rcx, [rbp - 0x58]
mov rdx, rbx
call fcn.180120bd0
mov rdx, qword [rbp - 0x50]
mov rax, qword [rbp - 0x48]
xor ecx, ecx
mov qword [rbp - 0x40], rdx
nop word cs:[rax + rax]
cmp rax, rcx
je 0x180027e10
cmp byte [rdx + rcx], 0x25
lea rcx, [rcx + 1]
jne 0x180027cb0
xor ecx, ecx
nop word cs:[rax + rax]
cmp rax, rcx
je 0x180027e10
cmp byte [rdx + rcx], 0x3a
lea rcx, [rcx + 1]
jne 0x180027cd0
mov rax, qword [0x18026a1a0]
mov rax, qword [rax]
test r12b, 1
je 0x180027d7f
cmp rax, 3
jb 0x180027d60
lea rax, [0x180194490]
mov qword [rbp - 0x10], rax
mov qword [rbp - 8], 1
mov qword [rbp], 8
movups xmmword [rbp + 8], xmm6
lea rcx, str.srcwatchdog.rs
call fcn.180073c30
lea rcx, str.dfint_hook::watchdoghooks_disabled
mov qword [rbp - 0x38], rcx
mov qword [rbp - 0x30], 0x14
mov qword [rbp - 0x28], rcx
mov qword [rbp - 0x20], 0x14
mov qword [rbp - 0x18], rax
mov edx, 3
lea rcx, [rbp - 0x10]
lea r8, [rbp - 0x38]
xor r9d, r9d
call fcn.180112a90
call fcn.18003ef50
mov qword [rbp - 0x10], rax
test rax, rax
je 0x180027d77
lea rcx, [rbp - 0x10]
call fcn.18011f620
xor r12d, r12d
jmp 0x180027e10
cmp rax, 3
jb 0x180027de8
lea rax, str.hooks_enabled
mov qword [rbp - 0x10], rax
mov qword [rbp - 8], 1
mov qword [rbp], 8
movups xmmword [rbp + 8], xmm6
lea rcx, str.srcwatchdog.rs
call fcn.180073c30
lea rcx, str.dfint_hook::watchdoghooks_disabled
mov qword [rbp - 0x38], rcx
mov qword [rbp - 0x30], 0x14
mov qword [rbp - 0x28], rcx
mov qword [rbp - 0x20], 0x14
mov qword [rbp - 0x18], rax
mov edx, 3
lea rcx, [rbp - 0x10]
lea r8, [rbp - 0x38]
xor r9d, r9d
call fcn.180112a90
call fcn.18003eca0
mov qword [rbp - 0x10], rax
test rax, rax
je 0x180027dff
lea rcx, [rbp - 0x10]
call fcn.18011f620
mov r12b, 1
nop word cs:[rax + rax]
xor ecx, ecx
mov edx, 0x8f0d180
call fcn.1801622c0
mov rdx, qword [rbp - 0x58]
test rdx, rdx
je 0x180027940
mov r8d, 1
mov rcx, qword [rbp - 0x40]
call fcn.180047b40
jmp 0x180027940
mov rsi, qword [rbp - 8]
mov eax, dword [rbp]
jmp 0x180027c48
add edx, 0xffffff00
mov rcx, rsi
call fcn.1801868e0
jmp 0x180027c8a
test al, al
je 0x180027ea4
movaps xmm6, xmmword [rbp + 0x30]
add rsp, 0xc8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov qword [rbp - 0x10], 0
lea rax, [0x180193fb0]
mov qword [rsp + 0x20], rax
lea r8, [0x180193fa8]
lea rdx, [rbp - 0x58]
lea r9, [rbp - 0x10]
xor ecx, ecx
call fcn.18018e6d0
ud2
add edx, 0xffffff00
mov rcx, rsi
call fcn.1801868e0
jmp 0x180027e60