Function at 0x18001a520
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xa0
mov r12d, edx
mov rbx, rcx
test rcx, rcx
je 0x18001a7b9
mov rax, qword gs:[0x58]
mov r8d, dword [0x18025043c]
mov ecx, 4
mov r15, qword [rax + r8*8]
mov eax, dword [r15 + rcx]
cmp dword [0x180277160], eax
jg 0x18001a7dc
jmp 0x18001a583
mov ecx, 4
mov rax, qword [0x180276e80]
cmp qword [rax + rbx], 0
je 0x18001a7b9
mov eax, dword [r15 + rcx]
cmp dword [0x180277d9c], eax
jg 0x18001a817
mov rax, qword [0x180277858]
cmp qword [rax + rbx], 0
je 0x18001a7b9
mov rcx, rbx
call fcn.18001a4a0
mov rcx, rbx
mov rdi, qword [rax]
call fcn.18001a420
mov r14, rdi
xor r11d, r11d
mov rsi, qword [rax]
sub r14, rsi
lea r10, [rsi + 0x20]
test rdi, rdi
je 0x18001a7b9
lea r13, [0x18014e440]
cmp r11d, dword [rdi + 0x18]
jae 0x18001a7b9
mov r8, qword [r14 + r10]
test rsi, rsi
jne 0x18001a601
xor ebx, ebx
jmp 0x18001a604
mov rbx, qword [r10]
test r8, r8
je 0x18001a665
test rbx, rbx
je 0x18001a665
add r8, 0x14
mov edx, 0xffffffff
mov rax, 0xffffffffffffffff
nop
inc rax
cmp word [r8 + rax*2], 0
jne 0x18001a620
test eax, eax
je 0x18001a65e
mov r9d, eax
nop dword [rax]
nop word [rax + rax]
movzx ecx, word [r8]
lea r8, [r8 + 2]
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
xor edx, dword [r13 + rax*4]
sub r9, 1
jne 0x18001a640
not edx
cmp edx, r12d
je 0x18001a671
inc r11d
add r10, 8
jmp 0x18001a5ea
movaps xmmword [rsp + 0x90], xmm6
mov ecx, 0x18
movaps xmmword [rsp + 0x80], xmm7
call fcn.1800c38c0
mov rdi, rax
call fcn.180019c90
mov rcx, rax
call fcn.180018e60
xorps xmm6, xmm6
mov r12d, 4
mov rsi, qword [rax]
test rsi, rsi
jne 0x18001a6b5
mov qword [rbp - 0x39], rsi
mov dword [rbp - 0x31], esi
jmp 0x18001a6d2
mov eax, dword [r15 + r12]
cmp dword [0x1802778bc], eax
jg 0x18001a852
mov rdx, rsi
lea rcx, [rbp - 0x39]
call qword [0x180276e58]
mov eax, dword [r15 + r12]
cmp dword [0x180277170], eax
movsd xmm7, qword [rbp - 0x39]
mov esi, dword [rbp - 0x31]
jg 0x18001a890
mov rdx, qword [0x180277038]
lea r8, [rbp - 0x29]
xorps xmm0, xmm0
movss dword [rbp - 0x21], xmm6
unpcklps xmm0, xmm6
lea rcx, [rbp - 0x19]
mov r9, rbx
movsd qword [rbp - 0x29], xmm0
call fcn.180083980
mov r9, qword [0x180250b20]
lea rdx, [rbp - 0x29]
movsd xmm0, qword [rbp - 0x19]
lea rcx, [rbp - 9]
mov eax, dword [rbp - 0x11]
xor r14d, r14d
add r9, 0x734a20
movsd qword [rbp - 0x29], xmm7
xorps xmm3, xmm3
mov dword [rbp - 0x21], esi
mov r8d, 0x19a1a101
movsd qword [rbp - 9], xmm0
mov dword [rbp - 1], eax
mov qword [rsp + 0x20], r14
call r9
mov edx, dword [r15 + r12]
movzx esi, al
cmp dword [0x180277170], edx
movaps xmm7, xmmword [rsp + 0x80]
jg 0x18001a8ce
mov rdx, qword [0x180277038]
lea r8, [rbp - 9]
xorps xmm0, xmm0
movss dword [rbp - 1], xmm6
unpcklps xmm0, xmm6
lea rcx, [rbp + 7]
mov r9, rbx
movsd qword [rbp - 9], xmm0
call fcn.180083980
mov eax, dword [rbp + 0xf]
movsd xmm0, qword [rbp + 7]
movaps xmm6, xmmword [rsp + 0x90]
movsd qword [rdi], xmm0
mov dword [rdi + 8], eax
mov rax, rdi
mov byte [rdi + 0xc], sil
mov qword [rdi + 0x10], r14
jmp 0x18001a7bb
xor eax, eax
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
lea rcx, [0x180277160]
call fcn.1800c3d1c
cmp dword [0x180277160], 0xffffffff
jne 0x18001a57e
mov ecx, 0xb78ad364
call fcn.18000ebc0
lea rcx, [0x180277160]
mov qword [0x180276e80], rax
call fcn.1800c3cb0
jmp 0x18001a57e
lea rcx, [0x180277d9c]
call fcn.1800c3d1c
cmp dword [0x180277d9c], 0xffffffff
jne 0x18001a5a5
mov ecx, 0x12235404
call fcn.18000ebc0
lea rcx, [0x180277d9c]
mov qword [0x180277858], rax
call fcn.1800c3cb0
jmp 0x18001a5a5
lea rcx, [0x1802778bc]
call fcn.1800c3d1c
cmp dword [0x1802778bc], 0xffffffff
jne 0x18001a6c5
mov ecx, 0xf3daab4b
call fcn.18000be10
lea rcx, [0x1802778bc]
mov r8, qword [rax]
mov qword [0x180276e58], r8
call fcn.1800c3cb0
jmp 0x18001a6c5
lea rcx, [0x180277170]
call fcn.1800c3d1c
cmp dword [0x180277170], 0xffffffff
jne 0x18001a6ea
mov ecx, 0x56e64b7d
call fcn.18000be10
mov rcx, qword [rax]
mov qword [0x180277038], rcx
lea rcx, [0x180277170]
call fcn.1800c3cb0
jmp 0x18001a6ea
lea rcx, [0x180277170]
call fcn.1800c3d1c
cmp dword [0x180277170], 0xffffffff
jne 0x18001a76e
mov ecx, 0x56e64b7d
call fcn.18000be10
lea rcx, [0x180277170]
mov rdx, qword [rax]
mov qword [0x180277038], rdx
call fcn.1800c3cb0
jmp 0x18001a76e