Function at 0x18028c740
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x18
lea rbp, [rsp + 0x10]
mov rsi, rcx
mov eax, 0x10
call fcn.18045a590
sub rsp, rax
mov rdi, rsp
sub rsp, 0x20
mov rcx, rsi
call fcn.180405dd0
add rsp, 0x20
test al, 1
jne 0x18028c91b
sub rsp, 0x20
mov rcx, rsi
call fcn.180405e70
add rsp, 0x20
test al, 1
jne 0x18028c795
jmp 0x18028c9cd
mov rcx, rsi
add rcx, 0x20
mov rax, qword [rcx]
lock dec qword [rax]
sete al
test al, 1
jne 0x18028c7af
jmp 0x18028c862
mov eax, dword [0x180523dd0]
xor edx, edx
div dword [0x180523dd4]
mov r8d, 0xd53ba168
xor edx, edx
div r8d
imul eax, eax, 0x4c1807e9
mov r8d, 0x3a09ea08
xor edx, edx
div r8d
cmp eax, 0x56ee6d75
je 0x18028c9da
jmp 0x18028c7e6
mov eax, dword [0x180523dd8]
mov edx, dword [0x180523ddc]
or eax, edx
add eax, 0xa186b076
or eax, 0xad063110
cmp eax, 0xf282eac2
jae 0x18028c7e6
jmp 0x18028c807
sub rsp, 0x20
call fcn.180275eb0
add rsp, 0x20
mov eax, dword [0x180523de0]
and eax, dword [0x180523de4]
and eax, 0x2f9351cc
and eax, 0xe9d1f396
imul eax, eax, 0xb867d7ec
cmp eax, 0xea757d65
ja 0x18028c9eb
jmp 0x18028c83d
mov eax, dword [0x180523de8]
or eax, dword [0x180523dec]
imul eax, eax, 0xfde56c75
xor eax, 0x305b3263
or eax, 0x72d29a38
cmp eax, 0xe90a74e1
je 0x18028c83d
jmp 0x18028c862
mov eax, dword [0x180523df0]
imul eax, dword [0x180523df4]
add eax, 0xb2bdd261
imul eax, eax, 0xc1a166f4
imul eax, eax, 0x7d650d79
cmp eax, 0x4ab38384
jae 0x18028c9fc
mov eax, dword [0x180523df8]
and eax, dword [0x180523dfc]
mov ecx, 0x1c609cac
xor edx, edx
div ecx
mov ecx, 0x3cc812e3
xor edx, edx
div ecx
imul edi, eax, 0x8ceb3501
mov rcx, rsi
add rcx, 0x30
sub rsp, 0x20
call fcn.18027e720
add rsp, 0x20
mov rax, rsi
add rax, 0xf0
cmp edi, 0xe725e2bd
ja 0x18028c9fc
jmp 0x18028c8da
mov rax, qword [rax]
cmp rax, 0
je 0x18028c8fb
mov rcx, qword [rsi + 0xf8]
add rax, 0x18
mov rax, qword [rax]
sub rsp, 0x20
call rax
add rsp, 0x20
sub rsp, 0x20
mov rcx, rsi
mov edx, 0x100
mov r8d, 0x80
call fcn.1802cbf20
add rsp, 0x20
jmp 0x18028c9cd
mov r14, rsi
add r14, 0x28
mov rcx, qword [rsi + 0x28]
sub rsp, 0x20
call fcn.1804080c0
add rsp, 0x20
mov qword [rdi], rax
mov qword [rdi + 8], rdx
mov rbx, rsi
add rbx, 0x30
sub rsp, 0x20
mov rcx, rbx
call fcn.180200d80
add rsp, 0x20
mov r15, rsi
add r15, 0xd8
mov byte [rsi + 0xd8], 5
sub rsp, 0x20
mov rcx, rdi
call fcn.180408160
add rsp, 0x20
mov rdi, qword [r14]
sub rsp, 0x20
mov rcx, rdi
call fcn.1804080c0
add rsp, 0x20
mov qword [rbp - 8], rax
mov qword [rbp], rdx
sub rsp, 0x20
mov rcx, rbx
call fcn.180200d80
add rsp, 0x20
mov qword [rbx], 1
mov qword [rsi + 0x38], 0
mov qword [rsi + 0x48], rdi
mov byte [r15], 4
lea rcx, [rbp - 8]
sub rsp, 0x20
call fcn.180408160
mov rcx, rsi
call fcn.18028aaa0
add rsp, 0x20
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret
xchg ebp, eax
jle 0x18028ca3c
invalid
or byte [rsi], dl
add eax, 0xee2ea821
xchg ecx, eax
insd dword [rdi], dx
xor eax, 0x3fe9535b
invalid
sbb al, 0x17
mov ch, byte [rax - 0x58]
sahf
jge 0x18028ca48
mov rcx, rsi
add rcx, 0x30
sub rsp, 0x20
call fcn.18027e720
add rsp, 0x20
jmp 0x18028c88b
push rax
fistp dword [rax + rax]
sub rsp, rax
mov rdi, rsp
sub rsp, 0x20
mov rcx, rsi
in al, dx
and byte [rax - 0x77], cl
int1
call fcn.180405dd0
add rsp, 0x20
test al, 1
jne 0x18028caf8
sub rsp, 0x20
mov rcx, rsi
call fcn.180405e70
add rsp, 0x20
test al, 1
jne 0x18028ca77
jmp 0x18028cc07
mov rcx, rsi
add rcx, 0x20
mov rax, qword [rcx]
lock dec qword [rax]
sete al
test al, 1
je 0x18028ca9b
sub rsp, 0x20
call fcn.180279770
add rsp, 0x20
jmp 0x18028ca9b
mov rcx, rsi
add rcx, 0x30
sub rsp, 0x20
call fcn.180282620
add rsp, 0x20
mov rax, qword [rsi + 0xc10]
cmp rax, 0
sete cl
test cl, 1
jne 0x18028cad8
jmp 0x18028cac4
mov rcx, qword [rsi + 0xc18]
sub rsp, 0x20
call qword [rax + 0x18]
add rsp, 0x20
jmp 0x18028cad8
sub rsp, 0x20
mov rcx, rsi
mov edx, 0xc80
mov r8d, 0x80
call fcn.1802cbf20
add rsp, 0x20
jmp 0x18028cc07
mov r12, rsi
add r12, 0x28
mov rcx, qword [rsi + 0x28]
sub rsp, 0x20
call fcn.1804080c0
add rsp, 0x20
mov qword [rdi], rax
mov qword [rdi + 8], rdx
mov eax, dword [0x180523e00]
xor edx, edx
div dword [0x180523e04]
or eax, 0x62915398
imul eax, eax, 0xf813b25e
and eax, 0x2e06c5ca
cmp eax, 0xf0e87f3f
jae 0x18028cc15
mov eax, dword [0x180523e08]
and eax, dword [0x180523e0c]
add eax, 0x37d4c1e8
xor eax, 0xf96731fc
mov ecx, 0xfd67bb16
xor edx, edx
div ecx
mov ebx, eax
mov r15, rsi
add r15, 0x30
sub rsp, 0x20
mov rcx, r15
call fcn.180201570
add rsp, 0x20
movabs rax, 0x8000000000000001
mov qword [rsi + 0x30], rax
sub rsp, 0x20
mov rcx, rdi
call fcn.180408160
add rsp, 0x20
mov r14, qword [r12]
sub rsp, 0x20
mov rcx, r14
call fcn.1804080c0
add rsp, 0x20
mov qword [rbp - 0x10], rax
mov qword [rbp - 8], rdx
sub rsp, 0x20
mov rcx, r15
call fcn.180201570
add rsp, 0x20
movabs rax, 0x8000000000000000
mov qword [rsi + 0x30], rax
mov qword [rsi + 0x38], 1
mov qword [rsi + 0x40], 0
cmp ebx, 0xbd485973
jae 0x18028cc15
jmp 0x18028cbea
mov qword [rsi + 0x50], r14
lea rcx, [rbp - 0x10]
sub rsp, 0x20
call fcn.180408160
mov rcx, rsi
call fcn.180289fe0
add rsp, 0x20
fst st(3)
invalid
mov rsp, rbp
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
ret
jp 0x18028cbff
iretd