Function at 0x18027a910
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
mov rbx, r8
mov rsi, rdx
mov r14, rcx
mov rax, qword [r14]
cmp rax, 0
sete al
add r14, 8
test al, 1
jne 0x18027a93e
jmp 0x18027ab67
mov r12, qword [r14]
mov ecx, 1
lock xadd qword [r12], rcx
mov eax, dword [0x180522728]
add eax, dword [0x18052272c]
mov r8d, 0x62ac944b
xor edx, edx
div r8d
mov r8d, 0xc67b4ad
xor edx, edx
div r8d
xor eax, 0xcf4f49b0
cmp eax, 0x7105980f
jb 0x18027ac9b
jmp 0x18027a980
mov edx, dword [0x180522730]
and edx, dword [0x180522734]
xor edx, 0x77ddcfc9
sub edx, 0x59ac5d51
xor edx, 0x41eca10e
cmp rcx, 0
setl al
cmp edx, 0x64397c1c
ja 0x18027a980
test al, 1
jne 0x18027aab3
jmp 0x18027a9b7
mov al, byte [0x1805297c8]
mov ecx, 0x100
mov edx, 0x80
call fcn.1802cbf10
mov rdi, rax
cmp rdi, 0
jne 0x18027a9e6
mov ecx, 0x80
mov edx, 0x100
call fcn.180407090
ud2
mov eax, dword [0x180522738]
or eax, dword [0x18052273c]
imul eax, eax, 0x6945bb0d
and eax, 0xdca39c61
xor eax, 0xba9cbb43
cmp eax, 0xf4233664
ja 0x18027acac
mov eax, dword [0x180522740]
or eax, dword [0x180522744]
add eax, 0xca6f5135
mov ecx, 0x1343a52d
xor edx, edx
div ecx
add eax, 0xb2575f68
mov r15, r12
add r15, 0x58
cmp eax, 0x964e3059
jb 0x18027acac
jmp 0x18027aa40
mov qword [rdi], 0xcc
mov qword [rdi + 8], 0
lea rax, [0x1804850d0]
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], 0
mov qword [rdi + 0x20], r12
mov qword [rdi + 0x28], rbx
mov rcx, rdi
add rcx, 0x30
mov rdx, rsi
mov r8d, 0xb0
call fcn.180468b10
mov rcx, rdi
add rcx, 0xe0
xor edx, edx
mov r8d, 0x18
call fcn.1804691b0
mov rcx, r15
mov rdx, rdi
mov r8, rdi
call fcn.180285210
cmp rax, 0
jne 0x18027ab57
jmp 0x18027ac89
mov eax, dword [str.3y_OQ]
or eax, dword [0x18052274c]
add eax, 0xd8b8a1bc
xor eax, 0xf9e5a2e9
and eax, 0xc6e6f24f
cmp eax, 0xe19b90b8
ja 0x18027acb9
mov eax, dword [0x180522750]
and eax, dword [0x180522754]
sub eax, 0xe660838d
or eax, 0xf5344615
and eax, 0x1862c830
ud2
mov rcx, r14
mov rdx, rax
call fcn.180409cf0
jmp 0x18027ac89
mov r12, qword [r14]
mov eax, 1
lock xadd qword [r12], rax
cmp rax, 0
setl al
test al, 1
jne 0x18027abb1
jmp 0x18027ab82
mov al, byte [0x1805297c8]
mov ecx, 0x100
mov edx, 0x80
call fcn.1802cbf10
mov rdi, rax
cmp rdi, 0
jne 0x18027abb5
mov ecx, 0x80
mov edx, 0x100
call fcn.180407090
ud2
ud2
mov r14, r12
add r14, 0x68
mov r15, r12
add r15, 0x10
mov qword [rdi], 0xcc
mov qword [rdi + 8], 0
lea rax, [0x180484fe0]
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], 0
mov qword [rdi + 0x20], r12
mov qword [rdi + 0x28], rbx
mov rbx, rdi
add rbx, 0x30
mov eax, dword [0x180522768]
xor edx, edx
div dword [0x18052276c]
xor eax, 0x666c65cb
sub eax, 0xcae2507f
add eax, 0x3df21497
cmp eax, 0x7b3ed194
jbe 0x18027acd9
mov eax, dword [0x180522770]
sub eax, dword [0x180522774]
add eax, 0x34db2d32
mov ecx, 0x8d2ce3e
xor edx, edx
div ecx
mov ebp, eax
and ebp, 0xbf24608b
mov rcx, rbx
mov rdx, rsi
mov r8d, 0xb0
call fcn.180468b10
mov rcx, rdi
add al, ch
rcr esi, 0x1e
add byte [rax - 0x77], cl
stc
add rcx, 0xe0
xor edx, edx
mov r8d, 0x18
call fcn.1804691b0
mov rcx, r14
mov rdx, rdi
mov r8, rdi
call fcn.180285210
mov rcx, r15
mov rdx, rax
call fcn.180412280
cmp ebp, 0x5d6e6cac
ja 0x18027acd9
jmp 0x18027ac89
mov rax, rdi
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
dec dword [rbx - 0x36]
jg 0x18027ac49
retf 0xa97f
sal byte [rsi + 3], 1
invalid
cwde
cmp dword [rax], edx
movsb byte [rdi], byte [rsi]
invalid
invalid
adc byte [rsi - 0x6d57fe85], dh
mov dh, 0x6b
mov dh, 0xbb
jbe 0x18027ac9d
mov rcx, rbx
mov rdx, rsi
mov r8d, 0xb0
call fcn.180468b10
mov rcx, rdi
add rcx, 0xe0
xor edx, edx
mov r8d, 0x18
call fcn.1804691b0
mov rcx, r14
mov rdx, rdi
mov r8, rdi
call fcn.180285210
mov rcx, r15
mov rdx, rax
call fcn.180412280
jmp 0x18027ac1c