Function at 0x2018ed00
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x68
lea rbp, [rsp + 0x60]
mov qword [rbp], 0xfffffffffffffffe
mov eax, dword [0x204a23a8]
mov ecx, dword [0x204a57a8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 0x26838]
jg 0x2018ed86
call fcn.2007b5f0
mov rsi, rax
movzx eax, byte [0x204a23c8]
mov ecx, eax
not cl
xor al, 1
and cl, 0xfe
or cl, al
cmp cl, 0xff
je 0x2018ed6d
call fcn.2007b5f0
mov rcx, rax
mov rax, qword [0x204a23b0]
sub rax, rcx
jmp 0x2018ed6f
xor eax, eax
add rax, rsi
sub rax, qword [0x204a23c0]
add rsp, 0x68
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret
lea rdx, [0x204a23a8]
xor ecx, ecx
mov r8d, 0x6d73e134
call fcn.2018f470
cmp byte [0x204a19d0], 0
jne 0x2018edac
cmp dword [0x204a23a8], 0xffffffff
jne 0x2018ed3a
lea rcx, [0x204a2378]
call fcn.201f4880
xorps xmm0, xmm0
movups xmmword [0x204a2390], xmm0
mov qword [0x204a23a0], 0
call fcn.2007b5f0
mov qword [0x204a23b0], rax
mov qword [rbp - 8], 0xf
mov qword [rbp - 0x10], 0xc
xor ecx, ecx
mov edx, 1
mov r8d, 1
mov r9d, 0x25a9339e
call fcn.2018f4a0
mov rcx, qword [rax]
mov qword [rbp - 0x20], rcx
mov eax, dword [rax + 8]
mov dword [rbp - 0x18], eax
mov byte [rbp - 0x14], 0
lea rcx, [rbp - 0x38]
lea rdx, [rbp - 0x20]
call fcn.201f5ab0
lea rcx, [0x204a2378]
lea rsi, [rbp - 0x38]
mov rdx, rsi
mov r8d, 0x24614861
call fcn.2018f490
mov rcx, rsi
call fcn.200807e0
mov rax, qword [rbp - 8]
cmp rax, 0x10
jb 0x2018ee8d
mov rcx, qword [rbp - 0x20]
mov rdx, rax
xor rdx, 1
mov r8d, eax
and r8d, 1
lea rdx, [rdx + r8*2]
cmp rdx, 0x1000
jb 0x2018ee88
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x2018f129
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.200807c0
lea rcx, [0x204a2378]
call fcn.201f4a30
mov rbx, qword [0x2045c0f8]
movsxd rsi, dword [rbx]
mov edi, dword [0x203766e8]
test al, al
je 0x2018f065
lea rcx, [0x204a2378]
call fcn.201f4a20
mov qword [rbp - 0x10], 0
mov qword [rbp - 8], 0xf
mov byte [rbp - 0x20], 0
mov dword [rsp + 0x20], 0xbf2e81c3
xor ecx, ecx
xor edx, edx
xor r8d, r8d
mov r9d, 1
call fcn.2018f760
lea rcx, [rbp - 0x20]
mov edx, 0x26
mov r9, rax
call fcn.200712e0
lea rcx, [0x204a2378]
lea rdx, [rbp - 0x20]
call fcn.201f5960
mov qword [0x204a2390], rax
mov rax, qword [rbp - 8]
cmp rax, 0x10
jb 0x2018ef52
mov rcx, qword [rbp - 0x20]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x2018ef4d
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x2018f12e
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.200807c0
add rsi, rbx
mov ebx, dword [0x204a23b8]
lea r14d, [rbx + 1]
mov dword [0x204a23b8], r14d
test ebx, r14d
je 0x2018ef70
xor r15d, r15d
jmp 0x2018ef86
xor eax, eax
xor r15d, r15d
test edi, edi
jle 0x2018ef86
cdqe
xor r15, qword [rsi + rax]
add eax, 8
cmp eax, edi
jl 0x2018ef79
mov qword [rbp - 0x10], 0
mov qword [rbp - 8], 0xf
mov byte [rbp - 0x20], 0
mov dword [rsp + 0x20], 0xbf2e81c3
xor ecx, ecx
xor edx, edx
mov r8d, 1
xor r9d, r9d
call fcn.2018f760
lea rcx, [rbp - 0x20]
mov edx, 0x28
mov r9, rax
call fcn.200712e0
lea rcx, [0x204a2378]
lea rdx, [rbp - 0x20]
call fcn.201f5960
mov qword [0x204a2398], rax
and ebx, r14d
mov rax, qword [0x203766e0]
xor ecx, ecx
neg ebx
sbb rcx, rcx
sub rax, r15
not rax
mov rdx, rax
xor rdx, rcx
and rax, rcx
or rdx, rax
not rdx
test rdx, rdx
setne al
or al, byte [0x204a19d0]
and al, 1
mov byte [0x204a19d0], al
mov rax, qword [rbp - 8]
cmp rax, 0xf
jbe 0x2018f055
mov rcx, qword [rbp - 0x20]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x2018f050
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x2018f133
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.200807c0
lea rax, [0x20352f50]
cmp qword [0x204a2390], rax
je 0x2018f0e0
mov rax, qword [0x204a2390]
test rax, rax
je 0x2018f0b3
cmp qword [0x204a2398], 0
je 0x2018f0b3
lea rcx, [0x2018f400]
mov qword [rbp - 0x20], rcx
mov qword [rbp - 0x18], 0
lea r8, [0x204a23a0]
lea rdx, [rbp - 0x20]
mov ecx, 2
call qword [case.0x200fc05d.0]
test eax, eax
je 0x2018f0b3
mov qword [0x204a2398], 0
lea rcx, [0x2018f390]
mov edx, 0x50bf7c38
call fcn.200ec9f0
lea rdx, [0x204a23a8]
mov ecx, 1
mov r8d, 0x6d73e134
call fcn.2018f470
jmp 0x2018ed3a
lea rax, [0x2036e668]
mov qword [rbp - 0x20], rax
lea rdx, [rbp - 0x18]
xorps xmm0, xmm0
movups xmmword [rbp - 0x18], xmm0
lea rax, [0x2036ed38]
mov qword [rbp - 0x38], rax
mov byte [rbp - 0x30], 1
lea rcx, [rbp - 0x38]
call fcn.2035485c
lea rax, [0x2036ed08]
mov qword [rbp - 0x20], rax
lea rdx, [0x203cf8f0]
lea rcx, [rbp - 0x20]
call fcn.203547bc
call fcn.2030c4cc
call fcn.2030c4cc
call fcn.2030c4cc
int3