Function at 0x180285210
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rsi, r8
mov rbx, rdx
mov r15, rcx
mov rax, qword [r15 + 0x28]
mov qword [rbx + 0x18], rax
mov r12, rbx
add r12, 0x10
mov rax, qword [rbx + 0x10]
mov rax, qword [rax + 0x48]
mov r13, qword [rbx + rax]
mov rcx, qword [r15]
mov rdx, qword [r15 + 8]
mov rax, r13
and rax, qword [r15 + 0x20]
cmp rax, rdx
setb dl
lea rdx, [rax + rax*2]
lea rdi, [rcx + rdx*8]
mov r8b, 1
xor eax, eax
lock cmpxchg byte [rcx + rdx*8], r8b
sete al
test al, 1
jne 0x1802852d5
mov eax, dword [0x1805235e8]
or eax, dword [0x1805235ec]
imul eax, eax, 0x9d537ed7
sub eax, 0xd3c4a8cf
and eax, 0x91c8d74f
cmp eax, 0x5f91ac54
je 0x1802855ac
mov ebp, dword [0x1805235f0]
and ebp, dword [0x1805235f4]
add ebp, 0x2f94b3a9
xor ebp, 0x2b92eb78
or ebp, 0x71b08b41
mov rcx, rdi
mov r8d, 0x3b9aca00
call fcn.1804719a0
cmp ebp, 0x654ce3b4
je 0x1802855ac
jmp 0x1802852d3
jmp 0x1802852d5
mov rcx, r15
add rcx, 0x10
mov r14, r15
add r14, 0x18
add r15, 0x30
cmp byte [r15], 0
jne 0x180285507
mov r8, qword [r12]
mov rax, qword [r8 + 0x48]
mov rax, qword [rbx + rax]
cmp rax, r13
je 0x180285306
ud2
mov rax, rdi
add rax, 8
mov rdx, qword [rdi + 8]
cmp rdx, 0
setne r9b
cmp rdx, rbx
sete r10b
and r9b, r10b
test r9b, 1
jne 0x180285354
mov r9, rbx
add r9, qword [r8 + 0x38]
mov qword [r9 + 8], rdx
mov r8, qword [r12]
mov r8, qword [r8 + 0x38]
mov qword [rbx + r8], 0
cmp rdx, 0
sete r8b
test r8b, 1
jne 0x180285366
jmp 0x180285358
ud2
mov r8, qword [rdx + 0x10]
mov r8, qword [r8 + 0x38]
add rdx, r8
mov qword [rdx], rbx
mov edx, dword [0x1805235f8]
or edx, dword [0x1805235fc]
or edx, 0x32d5719a
sub edx, 0x4cd85735
add edx, 0x540a60c0
cmp edx, 0xc179c6bd
je 0x1802855cb
jmp 0x180285392
mov r8d, dword [0x180523600]
xor r8d, dword [0x180523604]
xor r8d, 0x90d2c8e2
sub r8d, 0xab91268b
or r8d, 0x604b1beb
mov qword [rax], rbx
mov rdx, rdi
add rdx, 0x10
cmp r8d, 0x5f29cbcf
jb 0x180285392
jmp 0x1802853ca
mov rax, qword [rdx]
cmp rax, 0
jne 0x180285425
mov qword [rdx], rbx
mov eax, dword [0x180523608]
sub eax, dword [0x18052360c]
sub eax, 0xbc02ae3e
imul eax, eax, 0x8f357f78
and eax, 0xd3ba45e1
cmp eax, 0x8095fab2
jb 0x1802855df
mov eax, dword [0x180523610]
and eax, dword [0x180523614]
add eax, 0xb8ff24e0
xor eax, 0xe933381e
or eax, 0x9c510211
cmp eax, 0x3f63f46d
jb 0x1802855df
jmp 0x180285425
mov edx, 1
xor r8d, r8d
call fcn.180407ae0
mov rcx, r14
call fcn.180407640
mov eax, dword [0x180523618]
add eax, dword [0x18052361c]
xor eax, 0x6450f20f
and eax, 0x1896443f
xor eax, 0xe67d8b34
cmp eax, 0xcf096ccf
jb 0x1802855ec
jmp 0x180285462
mov ecx, dword [0x180523620]
mov eax, dword [0x180523624]
or ecx, eax
or ecx, 0x8244018
and ecx, 0x8bb460fd
xor ecx, 0x931a8964
xor edx, edx
mov al, 1
lock cmpxchg byte [rdi], dl
sete al
cmp ecx, 0x64561ef
je 0x180285462
test al, 1
je 0x1802854a1
mov rax, rsi
jmp 0x18028559b
mov eax, dword [0x180523628]
or eax, dword [0x18052362c]
sub eax, 0x80985e78
xor eax, 0x9d9a3cb8
and eax, 0x10a9e09e
cmp eax, 0xc75b6ab2
je 0x180285601
mov eax, dword [0x180523630]
or eax, dword [0x180523634]
mov ecx, 0xc3dcf379
xor edx, edx
div ecx
or eax, 0x881bc449
imul ebx, eax, 0x3ab14a3f
mov rcx, rdi
xor edx, edx
call fcn.180471ff0
cmp ebx, 0x229715a6
je 0x180285601
jmp 0x1802854ff
mov rax, rsi
jmp 0x18028559b
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rdi], cl
sete al
test al, 1
jne 0x180285524
jmp 0x180285518
mov rcx, rdi
xor edx, edx
call fcn.180471ff0
jmp 0x180285524
mov rcx, rbx
call fcn.180407060
mov rcx, rsi
call fcn.180405e70
mov cl, al
xor eax, eax
test cl, 1
jne 0x18028553f
jmp 0x18028559b
mov eax, dword [0x180523638]
xor eax, dword [0x18052363c]
imul eax, eax, 0xce56ac9c
sub eax, 0xb3ea418b
or eax, 0xd8814470
cmp eax, 0xa3006bbe
jbe 0x180285618
jmp 0x180285568
mov eax, dword [0x180523640]
and eax, dword [0x180523644]
and eax, 0x511e1d2c
imul edi, eax, 0x53be39c7
and edi, 0xca2386c0
mov rcx, rsi
call fcn.180407030
cmp edi, 0xa7bf558c
jbe 0x180285568
jmp 0x180285597
xor eax, eax
jmp 0x18028559b
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
push rbp
call 0x13529dc6e
pop rsi
add al, 0x13
mov edx, 0xf9894848
mov r8d, 0x3b9aca00
call fcn.1804719a0
jmp 0x180285299
retf
push rsi
or dh, byte [rsi - 0x16]
stosd dword [rdi], eax
mov dword [rdx], ecx
jmp 0x1802853fd
outsb dx, byte [rsi]
imul esi, eax, 0x3bdb313c
invalid
movabs dword [0x48230e400d8a6706], eax
mov ecx, edi
xor edx, edx
call fcn.180471ff0
jmp 0x1802854c7
invalid