Function at 0x180001000
Capabilities:
Encode data using xor
Encrypt data using xtea
Hash data with crc32

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov byte [rax + 8], cl
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
xor r12d, r12d
mov byte [rax + 8], 0xc9
mov ebp, r8d
mov rbx, r12
mov r14, rdx
mov r13, r12
mov qword [rax + 0x20], rbx
mov eax, r8d
and eax, 7
je 0x18000108b
mov r12d, ebp
lea r9d, [r13 + 4]
xor ecx, ecx
sub r12d, eax
mov r8d, 0x3000
add r12d, 8
mov edx, r12d
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r13, rax
test rax, rax
jne 0x18000106e
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor ebp, ebp
mov edi, eax
jmp 0x1800012c8
mov rcx, rbp
mov rsi, r14
mov rdi, rax
mov r8d, ebp
mov dword [rsp + 0x20], ebp
mov ebp, r12d
rep movsb byte [rdi], byte [rsi]
mov r14, rax
xor r12d, r12d
jmp 0x180001092
mov r8d, ebp
mov dword [rsp + 0x20], ebp
mov rdx, r14
xor ecx, ecx
lea r15d, [rbp + 0x4b]
call sub.ntdll.dll_RtlComputeCrc32
mov ecx, dword [0x180005208]
mov r10d, ebp
mov dword [rsp + 0x24], eax
mov eax, ecx
shl eax, 0xd
xor ecx, eax
mov eax, ecx
shr eax, 0x11
xor ecx, eax
mov eax, ecx
shl eax, 5
xor ecx, eax
mov edx, ecx
mov dword [rsp + 0x28], ecx
shl edx, 0xd
xor edx, ecx
mov eax, edx
shr eax, 0x11
xor edx, eax
mov eax, edx
shl eax, 5
xor edx, eax
mov ecx, edx
mov dword [rsp + 0x2c], edx
shl ecx, 0xd
xor ecx, edx
mov eax, ecx
shr eax, 0x11
xor ecx, eax
mov eax, ecx
shl eax, 5
xor ecx, eax
mov edx, ecx
mov dword [rsp + 0x30], ecx
shl edx, 0xd
xor edx, ecx
mov eax, edx
shr eax, 0x11
xor edx, eax
mov eax, edx
shl eax, 5
xor edx, eax
mov edi, edx
mov dword [rsp + 0x34], edx
shl edi, 0xd
xor edi, edx
mov rdx, r14
mov eax, edi
shr eax, 0x11
xor edi, eax
mov eax, edi
shl eax, 5
xor edi, eax
mov esi, edi
mov dword [rsp + 0x38], edi
shl esi, 0xd
xor esi, edi
mov eax, esi
shr eax, 0x11
xor esi, eax
mov eax, esi
shl eax, 5
xor esi, eax
mov dword [0x180005208], esi
mov dword [rsp + 0x3c], esi
cmp ebp, r12d
je 0x1800011d0
xor dword [rdx], edi
xor dword [rdx + 4], esi
mov esi, dword [rdx + 4]
mov edi, dword [rdx]
mov r8d, r12d
mov r9, r12
mov r11d, 0x20
mov eax, esi
and r9d, 3
mov ecx, esi
shl eax, 4
shr ecx, 5
xor ecx, eax
mov eax, dword [rsp + r9*4 + 0x28]
add eax, r8d
add ecx, esi
add r8d, 0x9e3779b9
xor ecx, eax
mov r9d, r8d
add edi, ecx
mov eax, edi
mov ecx, edi
shl eax, 4
shr ecx, 5
xor ecx, eax
mov eax, r8d
shr rax, 0xb
add ecx, edi
and eax, 3
mov eax, dword [rsp + rax*4 + 0x28]
add eax, r8d
xor ecx, eax
add esi, ecx
sub r11, 1
jne 0x180001167
add r10d, 0xfffffff8
mov dword [rdx], edi
mov dword [rdx + 4], esi
add rdx, 8
cmp r10d, 8
jb 0x1800011d0
cmp r10d, r12d
jne 0x180001151
xor ecx, ecx
mov edx, r15d
mov r8d, 0x3000
lea r9d, [rcx + 4]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r12, rax
test rax, rax
jne 0x1800011fc
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor ebp, ebp
mov edi, eax
jmp 0x18000129b
mov rdi, rax
lea rsi, [0x180005280]
mov ecx, 0x28
rep movsb byte [rdi], byte [rsi]
lea rdi, [rax + 0x28]
lea rsi, [rsp + 0x80]
mov ecx, 1
lea r9, [rsp + 0x90]
lea r8, [rsp + 0x98]
rep movsb byte [rdi], byte [rsi]
lea rdi, [rax + 0x29]
lea rsi, [0x180005220]
mov ecx, 2
mov edx, r15d
rep movsb byte [rdi], byte [rsi]
lea rdi, [rax + 0x2b]
lea rsi, [rsp + 0x20]
mov ecx, 0x20
rep movsb byte [rdi], byte [rsi]
lea rdi, [rax + 0x4b]
mov ecx, ebp
mov rsi, r14
rep movsb byte [rdi], byte [rsi]
mov rcx, rax
call fcn.1800012f8
xor ebp, ebp
mov edi, eax
cmp eax, ebp
jne 0x180001293
cmp dword [rsp + 0x90], 9
lea edi, [rbp + 0xd]
jne 0x180001293
mov rbx, qword [rsp + 0x98]
mov eax, dword [0x180005280]
cmp dword [rbx + 4], eax
cmove edi, ebp
jmp 0x18000129b
mov rbx, qword [rsp + 0x98]
cmp r12, rbp
je 0x1800012b1
xor edx, edx
mov r8d, 0x8000
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_VirtualFree]
cmp rbx, rbp
je 0x1800012c8
mov rcx, qword [0x180005200]
mov r8, rbx
xor edx, edx
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
cmp r13, rbp
je 0x1800012de
xor edx, edx
mov r8d, 0x8000
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov eax, edi
mov rbx, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret