Function at 0x180033780
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, [0x18028e6f0]
lea rbx, [rbp + 0x27]
mov edi, 9
xorps xmm6, xmm6
nop dword [rax]
mov rax, qword [0x180277178]
movzx eax, byte [rax]
test al, al
je 0x1800338d0
mov eax, 1
mov ecx, 0x101
lock cmpxchg dword [0x18028e6f0], ecx
mov rsi, r14
je 0x180033ace
test eax, 0x1fffff00
sete cl
cmp eax, 0x20000000
setae dl
mov r8d, eax
not r8d
test r8d, 0xfffff00
je 0x1800338a7
and dl, cl
jne 0x1800338a7
xor ecx, ecx
nop word [rax + rax]
lea edx, [rax + 0x100]
lock cmpxchg dword [0x18028e6f0], edx
je 0x1800339b0
cmp ecx, 9
cmovae ecx, edi
mov eax, 2
shl eax, cl
lea edx, [rax - 1]
cmp edx, 7
jb 0x180033865
mov edx, eax
and edx, 0xfffffff8
nop
pause
pause
pause
pause
pause
pause
pause
pause
add edx, 0xfffffff8
jne 0x180033850
and eax, 6
je 0x180033876
nop word [rax + rax]
pause
dec eax
jne 0x180033870
mov eax, dword [0x18028e6f0]
test eax, 0x1fffff00
setne dl
cmp eax, 0x20000000
setb r8b
mov r9d, eax
not r9d
test r9d, 0xfffff00
je 0x1800338a7
inc ecx
or r8b, dl
jne 0x180033820
lea rcx, [rbp - 0x10]
mov rdx, r14
mov r8, rbx
mov r9, rbx
call fcn.180184d80
mov rsi, qword [rbp - 8]
jmp 0x180033ace
mov eax, 1
mov ecx, 0x101
lock cmpxchg dword [0x18028e6f0], ecx
mov edx, eax
mov eax, 1
mov rsi, r14
je 0x180033ac8
test dl, 1
jne 0x1800339b8
cmp edx, 0x100
jae 0x180033a8e
mov ecx, edx
or ecx, 0x20000000
mov eax, edx
lock cmpxchg dword [0x18028e6f0], ecx
jne 0x180033a8e
movzx r13d, dl
mov r15, r14
mov byte [0x18028e6fc], 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 0x180033950
mov rsi, qword [rbp - 0x38]
test eax, 0x40000000
je 0x180033ace
mov eax, dword [rsi]
nop dword [rax]
mov ecx, eax
xor ecx, 0x50000000
lock cmpxchg dword [rsi], ecx
jne 0x180033970
and eax, 0x20000000
mov dword [rbp - 0x58], eax
jne 0x180033d08
mov rcx, rsi
call fcn.18007c530
shl eax, 8
mov ecx, 0x10000000
sub ecx, eax
lock sub dword [rsi], ecx
jmp 0x180033ace
mov rsi, r14
jmp 0x180033ace
test edx, 0x1fffff00
sete al
cmp edx, 0x20000000
setae cl
mov r8d, edx
not r8d
test r8d, 0xfffff00
je 0x180033a8e
and cl, al
jne 0x180033a8e
xor ecx, ecx
nop word [rax + rax]
lea r8d, [rdx + 0x100]
mov eax, edx
lock cmpxchg dword [0x18028e6f0], r8d
je 0x180033ac2
cmp ecx, 9
cmovae ecx, edi
mov eax, 2
shl eax, cl
lea edx, [rax - 1]
cmp edx, 7
jb 0x180033a45
mov edx, eax
and edx, 0xfffffff8
nop word cs:[rax + rax]
pause
pause
pause
pause
pause
pause
pause
pause
add edx, 0xfffffff8
jne 0x180033a30
and eax, 6
je 0x180033a56
nop word [rax + rax]
pause
dec eax
jne 0x180033a50
mov edx, dword [0x18028e6f0]
test dl, 1
je 0x180033a8e
test edx, 0x1fffff00
setne al
cmp edx, 0x20000000
setb r8b
mov r9d, edx
not r9d
test r9d, 0xfffff00
je 0x180033a8e
inc ecx
or r8b, al
jne 0x1800339f0
lea rcx, [rbp - 0x10]
mov rdx, r14
mov r8, rbx
mov r9, r14
call fcn.1801849a0
mov eax, dword [rbp - 0x10]
cmp eax, 2
je 0x180033926
cmp eax, 1
jne 0x180033cd0
mov r15, qword [rbp - 8]
mov r13d, dword [rbp]
jmp 0x180033926
movzx eax, dl
mov rsi, r14
mov r15, rsi
mov r13d, eax
movzx ecx, byte [0x18028e6fc]
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 0x180033cdc
test al, al
je 0x180033cbd
lea rcx, [rbp - 0x58]
mov rdx, rbx
call fcn.18015f9f0
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 0x180033c90
cmp byte [rdx + rcx], 0x25
lea rcx, [rcx + 1]
jne 0x180033b30
xor ecx, ecx
nop word cs:[rax + rax]
cmp rax, rcx
je 0x180033c90
cmp byte [rdx + rcx], 0x3a
lea rcx, [rcx + 1]
jne 0x180033b50
mov rax, qword [0x180277148]
mov rax, qword [rax]
test r12b, 1
je 0x180033bff
cmp rax, 3
jb 0x180033be0
lea rax, [0x1801a3478]
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.18007b990
lea rcx, str.dfint_hook::watchdog
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.18007b8a0
call fcn.18001b970
mov qword [rbp - 0x10], rax
test rax, rax
je 0x180033bf7
lea rcx, [rbp - 0x10]
call fcn.18015eb20
xor r12d, r12d
jmp 0x180033c90
cmp rax, 3
jb 0x180033c68
lea rax, [0x1801a3418]
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.18007b990
lea rcx, str.dfint_hook::watchdog
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.18007b8a0
call fcn.18001b800
mov qword [rbp - 0x10], rax
test rax, rax
je 0x180033c7f
lea rcx, [rbp - 0x10]
call fcn.18015eb20
mov r12b, 1
nop word cs:[rax + rax]
xor ecx, ecx
mov edx, 0x8f0d180
call fcn.180162a50
mov rdx, qword [rbp - 0x58]
test rdx, rdx
je 0x1800337c0
mov r8d, 1
mov rcx, qword [rbp - 0x40]
call fcn.18006a580
jmp 0x1800337c0
add edx, 0xffffff00
mov rcx, rsi
call fcn.18018eaa0
jmp 0x180033b0a
mov rsi, qword [rbp - 8]
mov eax, dword [rbp]
jmp 0x180033ac8
test al, al
je 0x180033cf8
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
add edx, 0xffffff00
mov rcx, rsi
call fcn.18018eaa0
jmp 0x180033ce0
mov qword [rbp - 0x10], 0
lea rax, [0x1801a2e50]
mov qword [rsp + 0x20], rax
lea r8, [0x1801a2e48]
lea rdx, [rbp - 0x58]
lea r9, [rbp - 0x10]
xor ecx, ecx
call fcn.180197745
ud2