Function at 0x14002f3e0
Capabilities:
Encode data using xor
Hash data using murmur3

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0x100
mov rsi, rcx
movzx eax, byte [rdx + 1]
movzx r8d, byte [rdx]
movzx ecx, byte [rdx + 4]
shl ecx, 8
shl r8d, 8
or r8d, eax
movzx eax, byte [rdx + 2]
shl r8d, 8
or r8d, eax
movzx eax, byte [rdx + 3]
shl r8d, 8
or r8d, eax
movzx eax, byte [rdx + 5]
or ecx, eax
mov dword [rsp], r8d
shl ecx, 8
movzx eax, byte [rdx + 6]
or ecx, eax
movzx eax, byte [rdx + 7]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 9]
mov dword [rsp + 4], ecx
movzx ecx, byte [rdx + 8]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xa]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xb]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xd]
mov dword [rsp + 8], ecx
movzx ecx, byte [rdx + 0xc]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xe]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xf]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x11]
mov dword [rsp + 0xc], ecx
movzx ecx, byte [rdx + 0x10]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x12]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x13]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x15]
mov dword [rsp + 0x10], ecx
movzx ecx, byte [rdx + 0x14]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x16]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x17]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x19]
mov dword [rsp + 0x14], ecx
movzx ecx, byte [rdx + 0x18]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x1a]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x1b]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x1d]
mov dword [rsp + 0x18], ecx
movzx ecx, byte [rdx + 0x1c]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x1e]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x1f]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x21]
mov dword [rsp + 0x1c], ecx
movzx ecx, byte [rdx + 0x20]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x22]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x23]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x25]
mov dword [rsp + 0x20], ecx
movzx ecx, byte [rdx + 0x24]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x26]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x27]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x29]
mov dword [rsp + 0x24], ecx
movzx ecx, byte [rdx + 0x28]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x2a]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x2b]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x2d]
mov dword [rsp + 0x28], ecx
movzx ecx, byte [rdx + 0x2c]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x2e]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x2f]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x31]
mov dword [rsp + 0x2c], ecx
movzx ecx, byte [rdx + 0x30]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x32]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x33]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x35]
mov dword [rsp + 0x30], ecx
movzx ecx, byte [rdx + 0x34]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x36]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x37]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x39]
mov dword [rsp + 0x34], ecx
movzx ecx, byte [rdx + 0x38]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x3a]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x3b]
mov r14d, SafeArrayDestroy
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x3d]
mov dword [rsp + 0x38], ecx
movzx ecx, byte [rdx + 0x3c]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x3e]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x3f]
shl ecx, 8
or ecx, eax
mov dword [rsp + 0x3c], ecx
lea eax, [r14 - 0xd]
mov r10d, dword [rsp + rax*4]
lea rbx, [rsp]
mov eax, r14d
mov r11d, r10d
rol r11d, 0xe
mov edi, dword [rsp + rax*4]
mov eax, r10d
ror eax, 7
mov ecx, edi
xor r11d, eax
rol ecx, 0xf
mov eax, r10d
shr eax, 3
xor r11d, eax
mov eax, edi
rol eax, 0xd
xor ecx, eax
mov eax, edi
shr eax, 0xa
xor ecx, eax
lea eax, [r14 - 0xe]
add r11d, ecx
add r11d, dword [rsp + rax*4]
lea eax, [r14 - 5]
add r11d, dword [rsp + rax*4]
lea eax, [r14 + 2]
mov dword [rsp + rax*4], r11d
lea eax, [r14 - 0xc]
mov r8d, dword [rbx + rax*4]
lea rbx, [rbx + rax*4]
lea eax, [r14 + 1]
mov ecx, r8d
mov edx, dword [rsp + rax*4]
mov r9d, edx
mov eax, edx
rol r9d, 0xf
rol eax, 0xd
xor r9d, eax
rol ecx, 0xe
mov eax, r8d
shr edx, 0xa
ror eax, 7
xor r9d, edx
xor ecx, eax
shr r8d, 3
xor ecx, r8d
lea eax, [r14 - 4]
add r9d, ecx
mov r8d, r11d
add r9d, dword [rsp + rax*4]
lea eax, [r14 + 3]
add r10d, r9d
rol r8d, 0xf
mov dword [rsp + rax*4], r10d
lea r9, [rsp]
lea eax, [r14 - 0xb]
mov edx, dword [r9 + rax*4]
lea r9, [r9 + rax*4]
mov eax, r11d
mov ecx, edx
rol eax, 0xd
xor r8d, eax
shr r11d, 0xa
mov eax, edx
rol ecx, 0xe
ror eax, 7
xor r11d, r8d
xor ecx, eax
shr edx, 3
lea eax, [r14 - 3]
xor ecx, edx
add r11d, ecx
add r11d, dword [rsp + rax*4]
lea eax, [r14 + 4]
add r11d, dword [rbx]
lea rbx, [rsp]
mov dword [rsp + rax*4], r11d
lea eax, [r14 - 0xa]
mov edx, dword [rbx + rax*4]
lea rbx, [rbx + rax*4]
mov ecx, edx
mov eax, r10d
rol eax, 0xd
mov r8d, r10d
rol ecx, 0xe
shr r10d, 0xa
rol r8d, 0xf
xor r8d, eax
mov eax, edx
ror eax, 7
xor r10d, r8d
xor ecx, eax
shr edx, 3
xor ecx, edx
lea eax, [r14 - 2]
add r10d, ecx
lea r8, [rsp]
add r10d, dword [rsp + rax*4]
lea eax, [r14 + 5]
add r10d, dword [r9]
lea r9d, [r14 + 6]
mov dword [rsp + rax*4], r10d
lea eax, [r14 - 9]
mov ecx, dword [r8 + rax*4]
lea r8, [r8 + rax*4]
mov eax, ecx
mov edx, ecx
ror eax, 7
rol edx, 0xe
xor edx, eax
shr ecx, 3
xor edx, ecx
mov eax, r11d
rol eax, 0xd
mov ecx, r11d
rol ecx, 0xf
xor ecx, eax
shr r11d, 0xa
xor ecx, r11d
lea eax, [r14 - 1]
add edx, ecx
add edx, dword [rsp + rax*4]
lea eax, [r14 - 8]
add edx, dword [rbx]
mov dword [rsp + r9*4], edx
mov edx, dword [rsp + rax*4]
mov eax, edx
mov ecx, edx
ror eax, 7
shr edx, 3
rol ecx, 0xe
xor ecx, eax
mov eax, r10d
xor ecx, edx
rol eax, 0xd
mov edx, r10d
shr r10d, 0xa
rol edx, 0xf
xor edx, eax
xor edx, r10d
lea eax, [rdi + rcx]
add edx, eax
lea eax, [r14 + 7]
add edx, dword [r8]
mov r14d, r9d
mov dword [rsp + rax*4], edx
lea eax, [r9 + 2]
cmp eax, 0x40
jb 0x14002f640
mov eax, dword [rsi + 0x50]
lea r8, [0x140085d50]
mov r11d, dword [rsi + 0x54]
xor ebx, ebx
mov edi, dword [rsi + 0x58]
mov r10d, eax
mov r12d, dword [rsi + 0x5c]
mov r14d, dword [rsi + 0x64]
mov r15d, dword [rsi + 0x68]
mov r13d, dword [rsi + 0x6c]
mov dword [rbp + 0x77], eax
mov eax, dword [rsi + 0x60]
lea esi, [rbx + 0x40]
nop dword [rax + rax]
mov r9d, eax
lea rbx, [rbx + 4]
ror r9d, 0xb
mov ecx, eax
rol ecx, 7
mov edx, eax
xor r9d, ecx
not edx
and edx, r15d
mov ecx, eax
ror ecx, 6
xor r9d, ecx
mov ecx, r14d
and ecx, eax
xor edx, ecx
mov ecx, r10d
add r9d, edx
rol ecx, 0xa
add r9d, dword [rbx + r8 - 4]
mov edx, r11d
add r9d, dword [rsp + rbx - 4]
xor edx, r10d
add r9d, r13d
mov r8d, r10d
ror r8d, 0xd
and edx, edi
xor r8d, ecx
mov r13d, r15d
mov ecx, r10d
mov r15d, r14d
ror ecx, 2
mov r14d, eax
xor r8d, ecx
lea eax, [r9 + r12]
mov ecx, r11d
mov r12d, edi
and ecx, r10d
mov edi, r11d
xor edx, ecx
mov r11d, r10d
add r8d, edx
lea r10d, [r8 + r9]
lea r8, [0x140085d50]
sub rsi, 1
jne 0x14002f850
mov rsi, qword [rbp + 0x67]
mov ecx, dword [rbp + 0x77]
mov rbx, qword [rsp + 0x148]
add ecx, r10d
add dword [rsi + 0x54], r11d
add dword [rsi + 0x58], edi
add dword [rsi + 0x5c], r12d
add dword [rsi + 0x60], eax
add dword [rsi + 0x64], r14d
add dword [rsi + 0x68], r15d
add dword [rsi + 0x6c], r13d
mov dword [rsi + 0x50], ecx
add rsp, 0x100
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret