Function at 0x1800e48a0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x920
mov rax, qword [0x18025e100]
xor rax, rsp
mov qword [rsp + 0x910], rax
mov rdi, rcx
mov rcx, qword [rcx + 0x19550]
mov rax, qword [rcx + 0x18]
mov rsi, qword [rax]
mov rax, qword [rcx + 0x28]
mov rcx, qword [rax]
mov rax, qword [rcx + 0xa8]
movabs rcx, 0x18044210008
test qword [rax + 0x10], rcx
je 0x1800e48f8
mov eax, 1
jmp 0x1800e4c53
lea rcx, [rsp + 0x420]
xor edx, edx
mov r8d, 0x4e8
mov qword [rsp + 0x938], rbx
call fcn.18024adb8
lea rcx, [rsp + 0x120]
xor edx, edx
mov r8d, 0x300
call fcn.18024adb8
lea rcx, [rsp + 0x60]
xor edx, edx
mov r8d, 0xc0
call fcn.18024adb8
mov r9, qword [rdi + 0x19550]
mov r10, qword [rdi]
lea rax, [rsp + 0x420]
lea rdx, [rsp + 0x60]
mov r8b, 1
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x50]
mov rcx, rdi
mov qword [rsp + 0x28], rax
mov eax, dword [r9 + 0x20]
mov r9, qword [r9 + 0x28]
mov dword [rsp + 0x20], eax
call qword [r10 + 0x1b0]
mov ebx, eax
test eax, eax
js 0x1800e4be1
mov r9, qword [rdi + 0x19550]
mov r10, qword [rdi]
lea rcx, [rsp + 0x50]
mov eax, dword [r9 + 0x78]
mov r9, qword [r9 + 0x18]
mov qword [rsp + 0x940], rbp
and eax, 0xfffff
xor ebp, ebp
lea rdx, [rsp + 0x120]
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x28], rcx
xor r8d, r8d
mov rcx, rdi
mov dword [rsp + 0x20], eax
call qword [r10 + 0x1b0]
mov ebx, eax
test eax, eax
js 0x1800e4bd9
mov eax, dword [rsp + 0x120]
cmp eax, 4
jne 0x1800e4a1b
movss xmm1, dword [0x180068820]
lea rax, [rsp + 0x1c0]
lea ecx, [rbp + 4]
nop word [rax + rax]
movss xmm0, dword [rax]
add rax, 4
sub rcx, 1
xorps xmm0, xmm1
movss dword [rax - 4], xmm0
jne 0x1800e4a00
jmp 0x1800e4acf
cmp eax, 5
jne 0x1800e4a59
movsd xmm1, qword [0x1800686f0]
lea rax, [rsp + 0x1c0]
mov ecx, 2
nop word [rax + rax]
movsd xmm0, qword [rax]
add rax, 8
sub rcx, 1
xorpd xmm0, xmm1
movsd qword [rax - 8], xmm0
jne 0x1800e4a40
jmp 0x1800e4acf
mov eax, dword [rsi + 0xf8]
btc eax, 0xa
and eax, 0x1f80
je 0x1800e4aa2
cmp eax, 0x400
je 0x1800e4a9b
cmp eax, 0x800
je 0x1800e4a9b
cmp eax, 0x1000
je 0x1800e4a94
cmp eax, 0x1400
je 0x1800e4a8d
mov ebx, 0x80004005
jmp 0x1800e4ac7
mov eax, 3
jmp 0x1800e4aa4
mov eax, 2
jmp 0x1800e4aa4
mov eax, 1
jmp 0x1800e4aa4
mov eax, ebp
mov dword [rsp + 0x1ac], eax
test eax, eax
je 0x1800e4ac5
mov dword [rsp + 0x1a8], 1
mov dword [rsp + 0x1b0], 1
mov ebx, ebp
test ebx, ebx
js 0x1800e4bd9
lea rcx, [rsp + 0x4e8]
lea rdx, [rsp + 0x120]
mov r8d, 0xc0
call sub.msvcrt.dll_memcpy
lea rcx, [rsp + 0x428]
lea rdx, [rsp + 0x60]
mov r8d, 0xc0
call sub.msvcrt.dll_memcpy
mov rax, qword [rdi + 0x19550]
mov dword [rsp + 0x8ac], ebp
mov dword [rsp + 0x8a8], 2
mov ecx, dword [rax + 0x78]
and ecx, 0xfff00000
cmp ecx, 0x20600000
ja 0x1800e4bfe
cmp ecx, 0x20600000
je 0x1800e4b64
cmp ecx, 0x10100000
je 0x1800e4b64
cmp ecx, 0x10500000
je 0x1800e4b64
cmp ecx, 0x11000000
je 0x1800e4b64
cmp ecx, 0x11400000
je 0x1800e4b64
cmp ecx, 0x20200000
jne 0x1800e4c2e
mov cl, 1
test cl, cl
mov rcx, qword [rdi + 0x19718]
mov eax, 0x36
mov edx, 0xc7
cmovne eax, edx
lea rdx, [rsp + 0x420]
mov dword [rsp + 0x420], eax
call fcn.18024758c
mov r9, qword [rdi + 0x19550]
mov eax, dword [r9 + 0x10]
mov edx, dword [rsp + 0x420]
mov r8d, 1
mov dword [rsp + 0x40], eax
mov rax, qword [r9 + 0x18]
mov rcx, rdi
mov qword [rsp + 0x38], rax
mov eax, dword [r9 + 0x20]
mov r9, qword [r9 + 0x28]
mov dword [rsp + 0x30], ebp
mov qword [rsp + 0x28], rbp
mov dword [rsp + 0x20], eax
call fcn.1800ed740
mov ebx, eax
test eax, eax
cmovns ebx, ebp
mov rbp, qword [rsp + 0x940]
mov eax, dword [rsp + 0x420]
cmp eax, 0x35
je 0x1800e4bf4
cmp eax, 0x91
jne 0x1800e4c35
mov rcx, qword [rsp + 0x8f0]
jmp 0x1800e4c44
cmp ecx, 0x21200000
je 0x1800e4b64
cmp ecx, 0x21600000
je 0x1800e4b64
cmp ecx, 0x30200000
je 0x1800e4b64
cmp ecx, 0x30800000
je 0x1800e4b64
xor cl, cl
jmp 0x1800e4b66
cmp eax, 0x92
jne 0x1800e4c49
mov rcx, qword [rsp + 0x8f8]
call sub.msvcrt.dll_free
mov eax, ebx
mov rbx, qword [rsp + 0x938]
mov rcx, qword [rsp + 0x910]
xor rcx, rsp
call fcn.18024a670
mov rsi, qword [rsp + 0x948]
add rsp, 0x920
pop rdi
ret