Function at 0x1802c54a0
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, rcx
mov r14, rdx
and r14, 0xffffffffffffffe0
mov rdi, qword [rsi]
mov rax, rdi
add rax, 0x500
mov r8, qword [rax]
cmp r8, r14
jne 0x1802c54d3
mov rcx, rdi
jmp 0x1802c550f
mov rcx, r14
sub rcx, r8
shr rcx, 5
and rdx, 0x1f
cmp rcx, rdx
seta bpl
mov r13, rsi
add r13, 8
jmp 0x1802c54f1
mov r12, rdi
add r12, 0x508
mov rcx, qword [rdi + 0x508]
cmp rcx, 0
je 0x1802c5523
jmp 0x1802c564f
jmp 0x1802c550f
mov rax, rcx
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r15, qword [rax]
mov al, byte [0x1805297c8]
mov ecx, 0x520
mov edx, 8
call fcn.1802cbf10
mov rbx, rax
mov eax, dword [0x180527de8]
and eax, dword [0x180527dec]
and eax, 0x9c2164b1
imul eax, eax, 0x499d4d7
or eax, 0xe70bffec
cmp eax, 0x456fa0c0
jb 0x1802c57e2
jmp 0x1802c5567
mov eax, dword [0x180527df0]
xor edx, edx
div dword [0x180527df4]
xor eax, 0xef313d47
or eax, 0x7702c747
imul ecx, eax, 0x551a514b
cmp rbx, 0
sete al
cmp ecx, 0x2bb10c2d
jb 0x1802c5567
test al, 1
jne 0x1802c559a
jmp 0x1802c55ab
mov ecx, 8
mov edx, 0x520
call fcn.180407090
ud2
mov qword [rsp + 0x20], r13
add r15, 0x20
mov r13, rbx
add r13, 0x500
mov qword [rbx + 0x500], r15
mov rcx, rbx
add rcx, 0x508
xor edx, edx
mov r8d, 0x18
call fcn.1804691b0
xor eax, eax
lock cmpxchg qword [r12], rbx
mov rcx, rax
sete al
test al, 1
je 0x1802c55f8
mov rcx, rbx
mov r13, qword [rsp + 0x20]
jmp 0x1802c564f
mov rax, qword [rcx + 0x500]
add rax, 0x20
mov qword [r13], rax
xor eax, eax
lock cmpxchg qword [rcx + 0x508], rbx
mov rdx, rax
sete al
test al, 1
je 0x1802c5623
mov r13, qword [rsp + 0x20]
jmp 0x1802c564f
jmp 0x1802c5625
pause
mov rax, qword [rdx + 0x500]
add rax, 0x20
mov qword [r13], rax
xor eax, eax
lock cmpxchg qword [rdx + 0x508], rbx
mov rdx, rax
jne 0x1802c5625
jmp 0x1802c5648
mov r13, qword [rsp + 0x20]
jmp 0x1802c564f
mov r8, rdi
add r8, 0x510
movabs rax, 0xffffffff
and rax, qword [rdi + 0x510]
mov edx, 0xffffffff
cmp rax, rdx
sete al
and bpl, al
test bpl, 1
mov ebp, 0
jne 0x1802c5700
mov eax, dword [0x180527df8]
sub eax, dword [0x180527dfc]
mov r8d, 0x7f5b865e
xor edx, edx
div r8d
and eax, 0xa2a7b881
imul eax, eax, 0xe22509f8
cmp eax, 0x4d2a60ed
je 0x1802c57ef
mov eax, dword [0x180527e00]
and eax, dword [0x180527e04]
or eax, 0xcacbcbe1
xor eax, 0x1bf726e5
imul r8d, eax, 0x36d78f36
pause
mov rax, rcx
add rax, 0x500
cmp qword [rcx + 0x500], r14
sete dl
cmp r8d, 0x728bd554
jbe 0x1802c57ef
test dl, 1
mov rdi, rcx
jne 0x1802c550d
jmp 0x1802c54f1
mov eax, dword [0x180527e08]
sub eax, dword [0x180527e0c]
and eax, 0xd1c56e87
mov r9d, 0xd039cd85
xor edx, edx
div r9d
imul eax, eax, 0x27d83729
cmp eax, 0xf1334ea
jbe 0x1802c57fe
jmp 0x1802c572f
mov eax, dword [0x180527e10]
mov edx, dword [0x180527e14]
and eax, edx
imul rdx, rax, 0x103773fb
shr rdx, 0x39
or edx, 0x20d81481
and edx, 0x20d8148d
mov rax, rdi
lock cmpxchg qword [rsi], rcx
sete al
cmp edx, 0xc95bac44
je 0x1802c572f
jmp 0x1802c5769
xor ebp, ebp
test al, 1
jne 0x1802c5774
jmp 0x1802c5683
mov eax, dword [0x180527e18]
add eax, dword [0x180527e1c]
or eax, 0xcd4804d9
add eax, 0x930c1caa
mov r9d, 0x7ea3b490
xor edx, edx
div r9d
cmp eax, 0xa01cd091
ja 0x1802c5817
mov eax, dword [0x180527e20]
mov edx, dword [0x180527e24]
and eax, edx
imul eax, eax, 0x55b6ac12
add eax, 0xda39989d
mfence
mov rdx, qword [r13]
mov qword [rdi + 0x518], rdx
cmp eax, 0x2d9d227a
je 0x1802c5817
jmp 0x1802c57cc
movabs rax, 0x100000000
lock or qword [r8], rax
mov bpl, 1
jmp 0x1802c5683
mulps xmm7, xmm2
invalid
push rdx
mul byte [0x1eb907863]
pause
jmp 0x1802c56b0
out 0xa3, al
mov ecx, 0x6d8da44d
cqo
fsubr qword [rax + rbp*4 + 0x48]
mov eax, edi
lock cmpxchg qword [rsi], rcx
jmp 0x1802c572d
test ecx, edi
add eax, ecx
jp 0x1802c5862
invalid
and bpl, 1
call fcn.180408a50
mov rbx, rax
mov rsi, rbx
add rsi, 0x50
movzx eax, byte [rsi]
test rax, rax
je 0x1802c588c
jmp 0x1802c587f
sub rax, 1
je 0x1802c58a0
jmp 0x1802c5887
jmp 0x1802c59d0
lea rdx, [0x18029e120]
mov rcx, rbx
call fcn.180428e50
mov byte [rsi], 1
jmp 0x1802c58a0
mov rax, rbx
add rax, 0x4e
cmp byte [rax], 2
je 0x1802c58b1
jmp 0x1802c5d1a
mov byte [rax], bpl
cmp qword [rdi], 0
sete al
mov rcx, rdi
add rcx, 8
mov rcx, qword [rcx]
mov edx, 0x1b0
mov r8d, 0x150
test al, 1
cmovne rdx, r8
add rcx, rdx
call fcn.1804090b0
mov ebp, eax
mov r13, rbx
add r13, 0x40
mov eax, dword [rbx + 0x40]
mov rsi, rbx
add rsi, 0x44
mov r14, rbx
add r14, 0x48
cmp eax, 0
mov qword [rsp + 0x60], r15
jne 0x1802c5963
mov dword [rsp + 0x24], edx
call fcn.18040b5e0
mov r12d, eax
mov r15d, edx
mov eax, dword [0x180527e28]
sub eax, dword [0x180527e2c]
sub eax, 0xa59b0384
or eax, 0x5eca116e
and eax, 0x5909603d
cmp eax, 0x3884fb48
je 0x1802c5d1e
mov edx, dword [rsp + 0x24]
jmp 0x1802c593d
mov eax, dword [0x180527e30]
and eax, dword [0x180527e34]
and eax, 0xb535dc12
add eax, 0x75427f07
xor eax, 0xc5775ec8
cmp eax, 0xbe87d3c0
ja 0x1802c593d
jmp 0x1802c5961
jmp 0x1802c596b
mov r15d, dword [r14]
mov r12d, dword [rsi]
jmp 0x1802c596b
mov dword [r13], 1
mov dword [rsi], ebp
mov dword [r14], edx
lea rcx, [rsp + 0x80]
mov rdx, rbx
mov r8, rdi
call fcn.18040b610
mov dword [rsp + 0x98], r12d
mov dword [rsp + 0x9c], r15d
mov rcx, qword [rsp + 0x80]
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x78], rax
cmp rcx, 4
jne 0x1802c59d4
ud2
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x58], rax
mov eax, dword [0x180527e38]
imul eax, dword [0x180527e3c]
xor eax, 0x798ad672
add eax, 0xc15a96fd
and eax, 0x3d2d3af8
cmp eax, 0x97debd4d
mov rbx, qword [rsp + 0x60]
ja 0x1802c5d2f
jmp 0x1802c5a20
mov eax, dword [0x180527e40]
xor eax, dword [0x180527e44]
mov r8d, 0x8dca2376
xor edx, edx
div r8d
imul edx, eax, 0xbb166f0a
or edx, 0xdafb80c3
cmp rcx, 3
sete al
cmp edx, 0x93903765
je 0x1802c5a20
jmp 0x1802c5a54
test al, 1
jne 0x1802c5d1a
jmp 0x1802c5a5e
mov qword [rsp + 0x28], rcx
mov eax, dword [0x180527e48]
xor eax, dword [0x180527e4c]
mov ecx, 0xe1572029
xor edx, edx
div ecx
imul eax, eax, 0x28424285
and eax, 0xae87463e
cmp eax, 0x702ba6ff
je 0x1802c5d40
mov eax, dword [0x180527e50]
xor edx, edx
div dword [0x180527e54]
xor eax, 0x89e21682
sub eax, 0xcec46aaa
imul esi, eax, 0x124e39c
lea rdi, [rsp + 0x28]
add rdi, 8
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0xa0]
mov rdx, rbx
mov r8d, 0x1098
call fcn.180468b10
cmp esi, 0xf4e9ad06
jae 0x1802c5d40
jmp 0x1802c5af7
lea rcx, [rsp + 0x23]
lea rdx, [rsp + 0xa0]
call fcn.1802254a0
test al, 1
jne 0x1802c5b0f
jmp 0x1802c5b5f
ud2
jmp 0x1802c5b39
mov eax, dword [0x180527e60]
xor edx, edx
div dword [0x180527e64]
add eax, 0x4518cb0e
add eax, 0xfb731741
and eax, 0xaf8dd3bd
cmp eax, 0x27ca6531
je 0x1802c5b39
ud2
mov eax, dword [0x180527e68]
add eax, dword [0x180527e6c]
mov ecx, 0x455313c4
xor edx, edx
div ecx
add eax, 0xf7b9e02
imul eax, eax, 0xd16e75a5
cmp eax, 0xb0f3af9d
jbe 0x1802c5d92
mov esi, dword [str.uwWW]
or esi, dword [0x180527e74]
sub esi, 0x6329ea77
xor esi, 0xd476fb58
add esi, 0x39c4e83d
lea rcx, [rsp + 0x28]
call fcn.180414be0
lea rcx, [rsp + 0x28]
call fcn.1804057a0
cmp esi, 0x7ee0a930
ja 0x1802c5d92
jmp 0x1802c5bca
mov rcx, qword [rsp + 0x28]
cmp rcx, 2
je 0x1802c5c69
mov eax, dword [0x180527e78]
xor edx, edx
div dword [0x180527e7c]
xor eax, 0x1c83e147
or eax, 0x21440ce3
or eax, 0xa206afbe
cmp eax, 0xabc325e5
jbe 0x1802c5db7
jmp 0x1802c5c03
mov eax, dword [0x180527e80]
imul eax, dword [0x180527e84]
sub eax, 0x2749aa3
and eax, 0x41dd0840
and eax, 0x53159eb1
cmp eax, 0xca2f5ec8
ja 0x1802c5c03
jmp 0x1802c5c28
cmp rcx, 0
sete al
test al, 1
jne 0x1802c5c35
jmp 0x1802c5c4f
mov rax, qword [rdi]
lock dec qword [rax]
sete al
test al, 1
jne 0x1802c5c45
jmp 0x1802c5c69
mov rcx, rdi
call fcn.180275eb0
jmp 0x1802c5c69
mov rax, qword [rdi]
lock dec qword [rax]
sete al
test al, 1
jne 0x1802c5c5f
jmp 0x1802c5c69
mov rcx, rdi
call fcn.180279770
jmp 0x1802c5c69
mov eax, dword [0x180527e88]
or eax, dword [0x180527e8c]
or eax, 0x371c5f36
or eax, 0xe8f4331e
add eax, 0xd4668474
cmp eax, 0x8847d6b8
je 0x1802c5dc8
jmp 0x1802c5c91
mov eax, dword [0x180527e90]
xor edx, edx
div dword [0x180527e94]
or eax, 0x196be2a
add eax, 0x50468ed9
or eax, 0xd15c295d
cmp eax, 0xd78a4809
ja 0x1802c5c91
jmp 0x1802c5cb7
mov eax, dword [0x180527e98]
or eax, dword [0x180527e9c]
or eax, 0xe13c2fb0
xor eax, 0x2490d00d
xor eax, 0x723216ed
cmp eax, 0x8d3e27
jb 0x1802c5dd9
mov eax, dword [0x180527ea0]
and eax, dword [0x180527ea4]
sub eax, 0xe1573a0d
imul eax, eax, 0xd936131c
add eax, 0x5c62f04d
cmp eax, 0x99a9bbb4
je 0x1802c5dd9
jmp 0x1802c5d06
add rsp, 0x1138
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
sub ch, dl
ja 0x1802c5d84
mov esp, 0x3dfdc20c
imul ebp, dword [rbx - 0x3f71626], 0xffffffff
invalid
cld
invalid
jl 0x1802c5d5f
insb byte [rdi], dx
xchg ebp, eax
lea ecx, [rcx + rcx*8 - 0xb]
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x38], rax
and al, 0x38
mov rax, qword [rsp + 0x58]
and al, 0x58
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0xa0]
mov rdx, rbx
mov r8d, 0x1098
call fcn.180468b10
jmp 0x1802c5a8e
lodsd eax, dword [rsi]
cmp dword [rbx], ebp
and eax, 0xb2844a2b
jmp 0x1802c5b37
retfq
and eax, 0xd3647a1b
invalid
enter 0xffffffffffffc43a, 0xffffffffffffffa5
jbe 0x1802c5d59
add dword [rbx + 0x1619b33f], ecx
jmp 0x1802c5c8f
cmp esi, edx
hlt