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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
mov dword [rsp + 8], ecx
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x40]
sub rsp, 0x140
mov rax, qword [0x1800f2210]
xor rax, rsp
mov qword [rbp + 0x30], rax
mov ebx, ecx
xor r14d, r14d
mov dword [rsp + 0x54], r14d
lea rcx, [rsp + 0x78]
call fcn.18003fc70
mov rdx, qword [rax]
mov rcx, qword [rdx + 8]
cmp byte [rcx + 0x19], r14b
jne 0x18001829e
cmp dword [rcx + 0x20], ebx
jae 0x180018292
mov rcx, qword [rcx + 0x10]
jmp 0x180018298
mov rdx, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], r14b
je 0x180018287
cmp byte [rdx + 0x19], r14b
jne 0x1800182c5
cmp ebx, dword [rdx + 0x20]
jb 0x1800182c5
mov rdx, rax
mov rcx, rax
call fcn.180047d60
lea rdx, [rbp + 0x70]
call fcn.18003fb70
mov rax, qword [rax]
jmp 0x18001899d
mov rdx, rax
mov rcx, rax
call fcn.180047d60
call fcn.1800181a0
mov rsi, rax
mov qword [rsp + 0x78], rax
mov rcx, rax
call fcn.180018040
mov rbx, rax
mov qword [rbp - 0x78], rax
xor edi, edi
mov dword [rsp + 0x54], edi
mov rcx, rsi
call fcn.180017ee0
test rax, rax
je 0x18001899b
mov rax, qword [rbx]
mov r12, qword [rax]
xor r15d, r15d
mov rcx, r12
call fcn.180017cc0
test rax, rax
je 0x180018979
xor ebx, ebx
nop
mov rdx, qword [r12]
xorps xmm0, xmm0
movups xmmword [rbp + 0x10], xmm0
mov qword [rbp + 0x20], rbx
mov qword [rbp + 0x28], rbx
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x180018340
lea rcx, [rbp + 0x10]
call fcn.18004a340
nop
mov byte [rsp + 0x4c], 0x21
mov al, 0xf
mov cl, 0x45
mov dl, 0x4d
movzx r8d, dl
xor r9d, r9d
xor al, 0x21
mov byte [rsp + 0x4d], al
xor cl, 0x21
mov byte [rsp + 0x4e], cl
xor dl, 0x21
mov byte [rsp + 0x4f], dl
xor r8b, 0x21
mov byte [rsp + 0x50], r8b
mov byte [rsp + 0x51], r9b
lea rax, [rsp + 0x4d]
mov rdx, 0xffffffffffffffff
inc rdx
cmp byte [rax + rdx], r9b
jne 0x180018394
lea rcx, [rbp + 0x10]
cmp qword [rbp + 0x28], 0x10
setae sil
mov rdi, qword [rbp + 0x10]
cmovae rcx, rdi
mov qword [rsp + 0x20], rdx
lea r9, [rsp + 0x4d]
mov rbx, qword [rbp + 0x20]
mov rdx, rbx
call fcn.180049e80
cmp rbx, rax
jb 0x180018a29
mov rcx, rbx
sub rcx, rax
mov edx, 4
cmp rcx, rdx
cmovb rdx, rcx
lea rcx, [rbp + 0x10]
test sil, sil
cmovne rcx, rdi
add rcx, rax
sub rbx, rdx
mov r8, rbx
sub r8, rax
inc r8
add rdx, rcx
call fcn.18009a850
mov qword [rbp + 0x20], rbx
movsxd rdx, r15d
mov rcx, r12
call fcn.180017df0
mov r13, rax
mov rdi, qword [rax + 0x10]
mov rbx, qword [rax + 0x18]
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
xor eax, eax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rbx + r8], al
jne 0x180018440
mov rdx, rbx
lea rcx, [rsp + 0x58]
call fcn.18004a340
cmp qword [rsp + 0x68], 0
sete sil
mov rdx, qword [rsp + 0x70]
cmp rdx, 0x10
jb 0x18001849d
inc rdx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180018498
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180018a2f
call fcn.180098550
xor edx, edx
test sil, sil
je 0x1800185f7
mov byte [rsp + 0x40], 8
mov al, 0x32
movzx ecx, al
xor al, 8
mov byte [rsp + 0x41], al
xor cl, 8
mov byte [rsp + 0x42], cl
mov byte [rsp + 0x43], dl
lea rax, [rsp + 0x41]
mov rcx, 0xffffffffffffffff
nop
inc rcx
cmp byte [rax + rcx], dl
jne 0x1800184d0
movabs rax, 0x7fffffffffffffff
mov rdx, qword [rbp + 0x20]
sub rax, rdx
cmp rax, rcx
jb 0x180018a3b
lea r9, [rbp + 0x10]
cmp qword [rbp + 0x28], 0x10
cmovae r9, qword [rbp + 0x10]
mov qword [rsp + 0x30], rcx
lea rax, [rsp + 0x41]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdx
lea rcx, [rbp - 0x30]
call fcn.18004c030
or r14d, 1
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp byte [rdi + r8], 0
jne 0x180018530
mov rdx, rdi
lea rcx, [rbp - 0x30]
call fcn.180041380
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x40], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x50], xmm1
xor ebx, ebx
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], bl
or r14d, 2
mov rdx, qword [rbp + 0x28]
cmp rdx, 0x10
jb 0x1800185ac
inc rdx
mov rcx, qword [rbp + 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001859f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180018a35
call fcn.180098550
movups xmm0, xmmword [rbp - 0x40]
movups xmm1, xmmword [rbp - 0x50]
movups xmmword [rbp + 0x10], xmm0
movups xmmword [rbp + 0x20], xmm1
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x18001889b
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180018896
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180018a23
jmp 0x180018896
mov byte [rsp + 0x48], 0x3c
mov al, 6
movzx ecx, al
xor al, 0x3c
mov byte [rsp + 0x49], al
xor cl, 0x3c
mov byte [rsp + 0x4a], cl
mov byte [rsp + 0x4b], dl
mov byte [rsp + 0x44], 0x64
mov al, 0x5e
movzx ecx, al
xor al, 0x64
mov byte [rsp + 0x45], al
xor cl, 0x64
mov byte [rsp + 0x46], cl
mov byte [rsp + 0x47], dl
lea rax, [rsp + 0x45]
mov rcx, 0xffffffffffffffff
nop dword [rax]
inc rcx
cmp byte [rax + rcx], dl
jne 0x180018640
movabs rax, 0x7fffffffffffffff
mov rdx, qword [rbp + 0x20]
sub rax, rdx
cmp rax, rcx
jb 0x180018a1d
lea r9, [rbp + 0x10]
cmp qword [rbp + 0x28], 0x10
cmovae r9, qword [rbp + 0x10]
mov qword [rsp + 0x30], rcx
lea rax, [rsp + 0x45]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdx
lea rcx, [rbp - 0x10]
call fcn.18004c030
or r14d, 4
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp byte [rbx + r8], 0
jne 0x1800186a0
mov rdx, rbx
lea rcx, [rbp - 0x10]
call fcn.180041380
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
xor ebx, ebx
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x70], rbx
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x58], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x68], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], bl
lea rax, [rsp + 0x49]
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x1800186f5
lea rdx, [rsp + 0x49]
lea rcx, [rsp + 0x58]
call fcn.180041380
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], rbx
mov qword [rbp - 0x58], rbx
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x70], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x60], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rdi + r8], 0
jne 0x180018742
mov rdx, rdi
lea rcx, [rbp - 0x70]
call fcn.180041380
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x50], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x40], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
or r14d, 0x38
mov rdx, qword [rbp + 0x28]
cmp rdx, 0x10
jb 0x1800187bd
inc rdx
mov rcx, qword [rbp + 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800187b0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180018a41
call fcn.180098550
movups xmm0, xmmword [rbp - 0x50]
movups xmm1, xmmword [rbp - 0x40]
movups xmmword [rbp + 0x10], xmm0
movups xmmword [rbp + 0x20], xmm1
mov rdx, qword [rbp - 0x58]
cmp rdx, 0x10
jb 0x180018800
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800187fb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180018a47
call fcn.180098550
mov qword [rbp - 0x60], rbx
mov qword [rbp - 0x58], 0xf
mov byte [rbp - 0x70], 0
mov rdx, qword [rsp + 0x70]
cmp rdx, 0x10
jb 0x18001884d
inc rdx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180018848
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180018a4d
call fcn.180098550
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x70], 0xf
mov byte [rsp + 0x58], 0
mov rdx, qword [rbp + 8]
cmp rdx, 0x10
jb 0x18001889b
inc rdx
mov rcx, qword [rbp - 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180018896
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180018a53
call fcn.180098550
lea rax, [rbp + 0x10]
mov r11, qword [rbp + 0x28]
cmp r11, 0x10
setae dl
mov r10, qword [rbp + 0x10]
cmovae rax, r10
mov rcx, 0xffffffffffffffff
nop dword [rax]
inc rcx
cmp byte [rax + rcx], 0
jne 0x1800188c0
lea r8, [rbp + 0x10]
test dl, dl
cmovne r8, r10
mov eax, 0xffffffff
test ecx, ecx
je 0x180018911
mov r9d, ecx
lea r11, [0x1800da4b0]
nop word [rax + rax]
movsx edx, byte [r8]
mov ecx, eax
xor rdx, rcx
movzx ecx, dl
shr eax, 8
xor eax, dword [r11 + rcx*4]
lea r8, [r8 + 1]
sub r9, 1
jne 0x1800188f0
mov r11, qword [rbp + 0x28]
not eax
mov ecx, dword [rbp + 0x70]
cmp ecx, eax
je 0x1800189ca
cmp r11, 0x10
jb 0x180018955
lea rdx, [r11 + 1]
mov rax, r10
cmp rdx, 0x1000
jb 0x18001894d
add rdx, 0x27
mov r10, qword [r10 - 8]
sub rax, r10
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180018a59
mov rcx, r10
call fcn.180098550
inc r15d
mov rcx, r12
call fcn.180017cc0
movsxd rcx, r15d
cmp rcx, rax
jb 0x180018320
mov rbx, qword [rbp - 0x78]
mov edi, dword [rsp + 0x54]
mov rsi, qword [rsp + 0x78]
inc edi
mov dword [rsp + 0x54], edi
add rbx, 8
mov qword [rbp - 0x78], rbx
mov rcx, rsi
call fcn.180017ee0
movsxd rcx, edi
cmp rcx, rax
jb 0x180018303
xor eax, eax
mov rcx, qword [rbp + 0x30]
xor rcx, rsp
call fcn.180098530
lea r11, [rsp + 0x140]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov dword [rsp + 0x78], ecx
mov qword [rbp - 0x80], r13
lea r8, [rsp + 0x78]
lea rdx, [rbp - 0x50]
call fcn.180045d60
nop
mov rdx, qword [rbp + 0x28]
cmp rdx, 0x10
jb 0x180018a18
inc rdx
mov rcx, qword [rbp + 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180018a13
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180018a59
call fcn.180098550
mov rax, r13
jmp 0x18001899d
call fcn.180002150
int3
call fcn.1800a41bc
int3
call fcn.180044a30
int3
call fcn.1800a41bc
nop
call fcn.1800a41bc
nop
call fcn.180002150
nop
call fcn.1800a41bc
nop
call fcn.1800a41bc
nop
call fcn.1800a41bc
nop
call fcn.1800a41bc
nop
call fcn.1800a41bc
int3