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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov r13, rdx
mov rax, qword [0x1402cb038]
xor rax, rsp
mov qword [rsp + 0x90], rax
test r8, r8
je 0x14014e9b6
mov rdi, r8
mov rbx, rcx
mov eax, dword [r8]
cmp eax, 4
je 0x14014e8da
mov dword [rsp + 0x40], eax
mov eax, dword [rdi + 4]
mov dword [rsp + 0x44], eax
mov esi, dword [rdi + 0x10]
mov eax, dword [rdi + 0x14]
mov r15d, dword [rdi + 0x18]
mov rcx, qword [rbx + 8]
lea r8d, [rax + 0x14]
xor edx, edx
cmp r8d, 0x54
jb 0x14014e2f2
mov r9d, eax
and r9d, 7
jne 0x14014e2f2
mov r9d, dword [rcx + 0x14]
cmp r9d, r8d
jb 0x14014e993
mov r8, qword [rcx + 8]
mov edx, dword [r8 + rax + 4]
cmp edx, 0xc8799269
jne 0x14014e993
add r8, rax
mov edx, dword [r8]
cmp edx, 0x14
jb 0x14014e993
xor edx, edx
mov r10d, dword [r8]
add r10d, eax
jb 0x14014e2f2
cmp r10d, r9d
ja 0x14014e2f2
mov r9d, dword [r8 + 8]
xor edx, edx
cmp r9d, 0xbcea225b
cmove rdx, r8
mov qword [rsp + 0x38], r13
lea r13, [rdx + 0x10]
test rdx, rdx
cmove r13, rdx
lea r9d, [rax + 0x10]
xor edx, edx
cmp r9d, 0x50
jb 0x14014e385
mov r8d, eax
and r8d, 7
jne 0x14014e385
mov r8d, dword [rcx + 0x14]
cmp r8d, r9d
jb 0x14014e98c
mov r9, qword [rcx + 8]
mov edx, dword [r9 + rax + 4]
cmp edx, 0xc8799269
jne 0x14014e98c
add r9, rax
mov edx, dword [r9]
cmp edx, 0x10
jb 0x14014e98c
mov r10d, dword [r9]
add r10d, eax
setb r11b
xor edx, edx
test r9, r9
je 0x14014e385
test r11b, r11b
jne 0x14014e385
cmp r10d, r8d
ja 0x14014e385
mov edx, dword [r9]
cmp rdx, 0x11
jb 0x14014e985
add eax, edx
jb 0x14014e985
cmp eax, r8d
ja 0x14014e985
add rdx, 0xfffffffffffffff0
test r13, r13
je 0x14014e9b1
cmp esi, 2
jb 0x14014e9b1
cmp esi, 0x3ffffffe
ja 0x14014e9b1
lea ebp, [rsi + 1]
lea r14, [rbp*4]
cmp rdx, r14
jb 0x14014e9b1
mov ecx, 0x20
call fcn.1401cbbc4
mov r12, rax
mov rcx, r14
call fcn.1401cbbc4
mov qword [r12], rax
mov qword [r12 + 8], rax
lea rcx, [rax + rbp*4]
mov qword [r12 + 0x10], rcx
xor edx, edx
mov r8, rax
add r8, rdx
je 0x14014e9ef
mov dword [r8], 0
add rdx, 4
cmp r14, rdx
jne 0x14014e3e0
mov qword [r12 + 8], rcx
mov qword [r12 + 0x18], 0
test rbp, rbp
je 0x14014e9c3
mov ecx, dword [r13]
mov dword [rax], ecx
mov eax, 1
nop
mov ecx, dword [r13 + rax*4]
cmp ecx, dword [r13 + rax*4 - 4]
jle 0x14014e9ac
mov rdx, qword [r12]
mov r8, qword [r12 + 8]
sub r8, rdx
sar r8, 2
cmp r8, rax
jbe 0x14014e9c3
mov dword [rdx + rax*4], ecx
inc rax
cmp rbp, rax
jne 0x14014e420
mov rcx, qword [r12]
mov r8, qword [r12 + 8]
mov rdx, r8
sub rdx, rcx
je 0x14014ea1b
mov rax, rdx
shr rax, 2
neg r8
xor r8, rcx
cmp r8, 0xffffffffffffffff
je 0x14014e83c
mov r9, rdx
and r9, 0xfffffffffffffffe
xor r8d, r8d
lea r10, [0x1402aa880]
nop word cs:[rax + rax]
movzx r11d, al
movzx r14d, byte [rcx + r8]
xor r14d, r11d
shr eax, 8
xor eax, dword [r10 + r14*4]
movzx r11d, al
movzx r14d, byte [rcx + r8 + 1]
xor r14d, r11d
shr eax, 8
xor eax, dword [r10 + r14*4]
add r8, 2
cmp r9, r8
jne 0x14014e4a0
test dl, 1
je 0x14014e4ec
movzx edx, al
movzx ecx, byte [rcx + r8]
xor ecx, edx
lea rdx, [0x1402aa880]
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov dword [r12 + 0x18], eax
cmp eax, r15d
jne 0x14014e9ac
test r12, r12
je 0x14014e9b1
mov rcx, qword [rbx + 0x10]
test rcx, rcx
jne 0x14014e755
mov rcx, r12
call fcn.14018c2a0
mov r11, rax
xor r14d, r14d
lea rbp, [rsi*8]
mov ecx, dword [rdi + 0x1c]
mov r12, qword [rbx + 8]
test ecx, ecx
jne 0x14014e844
mov r15, r14
movabs r14, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x80], r14
mov rax, qword [0x1402cbde0]
and rax, r12
cmp rax, qword [0x1402cbdc8]
jne 0x14014e56b
mov rcx, r12
mov r13, r11
call fcn.1401508a0
mov r11, r13
lea r13, [rdi + 0x1c]
mov qword [rsp + 0x70], r12
mov dword [rsp + 0x78], 0x53215531
cmp esi, 0x1fffffff
ja 0x14014ea36
mov eax, ebp
mov dword [rsp + 0x7c], eax
mov dword [rsp + 0x80], 0
mov rax, qword [0x1402cbde0]
and rax, r13
cmp rax, qword [0x1402cbdc8]
je 0x14014ea7f
mov qword [rsp + 0x88], r13
mov qword [rsp + 0x60], r14
mov rbx, qword [rbx + 8]
mov rax, qword [0x1402cbde0]
and rax, rbx
cmp rax, qword [0x1402cbdc8]
jne 0x14014e5e2
mov rcx, rbx
mov r14, r11
call fcn.1401508a0
mov r11, r14
lea eax, [rsi*4]
mov qword [rsp + 0x50], rbx
mov dword [rsp + 0x58], 0x53215531
cmp esi, 0x1fffffff
mov r14, r15
ja 0x14014ea3e
mov esi, dword [rsp + 0x40]
mov dword [rsp + 0x5c], ebp
mov dword [rsp + 0x60], eax
mov rax, qword [0x1402cbde0]
and rax, r13
cmp rax, qword [0x1402cbdc8]
je 0x14014ea92
mov qword [rsp + 0x68], r13
cmp esi, 3
ja case.default.0x14014e64f
lea rbx, [rdi + 0x60]
mov eax, esi
lea rcx, [0x1402b10ec]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
mov r13, qword [rsp + 0x38]
jmp rax
lea rax, [rdi + 0x40]
add rdi, 0x20
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rdi
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
lea rdi, [rsp + 0x48]
lea r9, [rsp + 0x70]
mov rcx, rdi
mov rdx, rbx
mov r8, r11
call fcn.1400013e0
mov r12, qword [rdi]
test r12, r12
je 0x14014e966
mov eax, dword [rsp + 0x44]
lock or dword [r12 + 0x10], eax
mov qword [r13], r12
mov rcx, qword [rsp + 0x68]
mov rax, qword [0x1402cbde0]
and rax, rcx
cmp rax, qword [0x1402cbdc8]
je 0x14014ea22
mov qword [rsp + 0x68], 0
mov rcx, qword [rsp + 0x50]
mov rax, qword [0x1402cbde0]
and rax, rcx
cmp rax, qword [0x1402cbdc8]
jne 0x14014e6e1
call fcn.1401509f0
mov rcx, qword [rsp + 0x88]
mov rax, qword [0x1402cbde0]
and rax, rcx
cmp rax, qword [0x1402cbdc8]
je 0x14014ea2c
mov qword [rsp + 0x88], 0
mov rcx, qword [rsp + 0x70]
mov rax, qword [0x1402cbde0]
and rax, rcx
cmp rax, qword [0x1402cbdc8]
jne 0x14014e729
call fcn.1401509f0
test r14, r14
jne 0x14014e7a8
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.1401ce5b0
mov rax, r13
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, r12
call fcn.14018d780
mov r11, rax
xor r14d, r14d
cmp rax, r12
cmovne r14, r12
jmp 0x14014e51e
lea rax, [rdi + 0x40]
add rdi, 0x20
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rdi
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
lea rdi, [rsp + 0x48]
lea r9, [rsp + 0x70]
mov rcx, rdi
mov rdx, rbx
mov r8, r11
call fcn.14018dc10
jmp 0x14014e685
mov rcx, qword [r14]
test rcx, rcx
je 0x14014e7cd
mov rax, qword [r14 + 8]
cmp rax, rcx
je 0x14014e7c4
add rax, 0xfffffffffffffffc
jne 0x14014e7b4
jmp 0x14014ea53
mov qword [r14 + 8], rcx
call fcn.1401cbbbc
mov rcx, r14
call fcn.1401cbbbc
jmp 0x14014e72e
lea rsi, [rdi + 0x40]
add rdi, 0x20
mov ecx, 0x40
mov r15, r11
call fcn.1401cbbc4
mov r12, rax
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rdi
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x70]
mov rcx, r12
mov rdx, rbx
mov r8, r15
call fcn.140018470
lea rax, [r12 + 0x30]
xorps xmm0, xmm0
movups xmmword [r12 + 0x30], xmm0
mov qword [r12 + 0x28], rax
lea rax, [0x1402a04e8]
mov qword [r12], rax
jmp 0x14014e688
xor r8d, r8d
jmp 0x14014e4d0
lea r8d, [rcx + 0x10]
xor eax, eax
cmp r8d, 0x50
jb 0x14014e8c5
mov edx, ecx
and edx, 7
jne 0x14014e8c5
mov edx, dword [r12 + 0x14]
cmp edx, r8d
jb 0x14014e97e
mov r8, qword [r12 + 8]
mov eax, dword [r8 + rcx + 4]
cmp eax, 0xc8799269
jne 0x14014e97e
add r8, rcx
mov eax, dword [r8]
cmp eax, 0x10
jb 0x14014e97e
mov r9d, dword [r8]
add r9d, ecx
setb r10b
xor eax, eax
test r8, r8
je 0x14014e8c5
test r10b, r10b
jne 0x14014e8c5
cmp r9d, edx
ja 0x14014e8c5
mov eax, dword [r8]
cmp rax, 0x11
jb 0x14014e96e
add ecx, eax
jb 0x14014e96e
cmp ecx, edx
ja 0x14014e96e
add rax, 0xfffffffffffffff0
cmp rax, rbp
jb 0x14014eaa5
mov r15, r14
mov r12, qword [rbx + 8]
jmp 0x14014e538
lea rsi, [rdi + 0x40]
lea r14, [rdi + 0x20]
lea r15, [rdi + 0x60]
mov ecx, 0x38
call fcn.1401cbbc4
mov r12, rax
mov qword [rsp + 0x20], rsi
mov rcx, rax
mov rdx, rbx
mov r8, r15
mov r9, r14
call fcn.140022840
mov qword [r13], r12
mov eax, dword [rdi + 4]
lock or dword [r12 + 0x10], eax
jmp 0x14014e72e
lea rsi, [rdi + 0x40]
add rdi, 0x20
mov ecx, 0x28
mov r15, r11
call fcn.1401cbbc4
mov r12, rax
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rdi
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x70]
mov rcx, r12
mov rdx, rbx
mov r8, r15
call fcn.140018470
lea rax, [0x1402a05a8]
jmp 0x14014e833
xor r12d, r12d
jmp 0x14014e69b
mov rcx, r12
mov dl, 1
mov r15, r11
call fcn.1402070f0
mov r11, r15
xor eax, eax
jmp 0x14014e8c5
mov dl, 1
call fcn.1402070f0
xor edx, edx
jmp 0x14014e385
xor edx, edx
jmp 0x14014e2f2
mov rcx, r12
call fcn.1401c4080
mov rcx, r12
call fcn.1401cbbbc
jmp 0x14014e9b1
test r12, r12
jne 0x14014e99a
mov r13, qword [rsp + 0x38]
mov qword [r13], 0
jmp 0x14014e72e
lea rax, str.vector___index_out_of_bounds
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude_vector
lea r9, [0x1402a1c81]
mov r8d, 0x601
call fcn.140207060
lea rax, str.null_pointer_given_to_construct_at
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude__memoryconstruct_at.h
lea r9, str.__location___nullptr
mov r8d, 0x28
call fcn.140207060
xor eax, eax
jmp 0x14014e4ec
call fcn.1401509f0
jmp 0x14014e6bb
call fcn.1401509f0
jmp 0x14014e700
int3
int3
xor r12d, r12d
mov r13, qword [rsp + 0x38]
jmp 0x14014e69b
lea rax, str.null_pointer_given_to_destroy_at
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude__memoryconstruct_at.h
lea r9, str.__loc___nullptr
mov r8d, 0x44
call fcn.140207060
mov rcx, r13
mov r12, r11
call fcn.1401508a0
mov r11, r12
jmp 0x14014e5b0
mov rcx, r13
mov rbx, r11
call fcn.1401508a0
mov r11, rbx
jmp 0x14014e628
mov r13, qword [rsp + 0x38]
mov qword [r13], 0
jmp 0x14014e729