Function at 0x6702e880
Capabilities:
Encrypt data using chaskey
Hash data using murmur3

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x48
mov ebx, dword [rcx + 8]
mov r11d, dword [rcx + 0xc]
mov r10d, dword [rcx + 0x10]
mov r9d, dword [rcx + 0x14]
mov rdi, rdx
mov qword [rsp + 0x30], rdx
mov rbp, rcx
jmp 0x6702e8c8
mov rbp, qword [rsp + 0x90]
movzx eax, byte [rdi + 2]
movzx edx, byte [rdi + 3]
mov ecx, r9d
shl edx, 8
xor ecx, r10d
mov dword [rsp + 0x24], r9d
or edx, eax
movzx eax, byte [rdi + 1]
and ecx, r11d
xor ecx, r9d
shl edx, 8
mov dword [rsp + 0x20], r10d
or edx, eax
movzx eax, byte [rdi]
mov dword [rsp + 0x28], r11d
shl edx, 8
mov dword [rsp + 0x1c], ebx
or edx, eax
mov dword [rbp + 0x58], edx
movzx eax, byte [rdi + 6]
movzx r8d, byte [rdi + 7]
shl r8d, 8
add ecx, edx
mov dword [rsp + 0x98], edx
or r8d, eax
movzx eax, byte [rdi + 5]
mov edx, r10d
shl r8d, 8
xor edx, r11d
add ecx, ebx
or r8d, eax
movzx eax, byte [rdi + 4]
rol ecx, 3
shl r8d, 8
and edx, ecx
or r8d, eax
xor edx, r10d
mov dword [rbp + 0x5c], r8d
movzx eax, byte [rdi + 0xa]
add edx, r8d
add edx, r9d
movzx r9d, byte [rdi + 0xb]
mov dword [rsp + 0x18], r8d
shl r9d, 8
rol edx, 7
mov r8d, r11d
or r9d, eax
movzx eax, byte [rdi + 9]
xor r8d, ecx
shl r9d, 8
and r8d, edx
or r9d, eax
movzx eax, byte [rdi + 8]
xor r8d, r11d
shl r9d, 8
or r9d, eax
mov dword [rbp + 0x60], r9d
movzx eax, byte [rdi + 0xe]
add r8d, r9d
add r8d, r10d
movzx r10d, byte [rdi + 0xf]
mov dword [rsp + 0x10], r9d
shl r10d, 8
rol r8d, 0xb
mov r9d, edx
or r10d, eax
movzx eax, byte [rdi + 0xd]
xor r9d, ecx
shl r10d, 8
and r9d, r8d
or r10d, eax
movzx eax, byte [rdi + 0xc]
xor r9d, ecx
shl r10d, 8
or r10d, eax
add r9d, r10d
mov dword [rbp + 0x64], r10d
mov dword [rsp], r10d
add r9d, r11d
movzx r11d, byte [rdi + 0x13]
ror r9d, 0xd
movzx eax, byte [rdi + 0x12]
shl r11d, 8
mov r10d, edx
or r11d, eax
movzx eax, byte [rdi + 0x11]
xor r10d, r8d
shl r11d, 8
and r10d, r9d
or r11d, eax
movzx eax, byte [rdi + 0x10]
xor r10d, edx
shl r11d, 8
or r11d, eax
mov dword [rbp + 0x68], r11d
movzx eax, byte [rdi + 0x16]
add r10d, r11d
mov dword [rsp + 0xa8], r11d
movzx r11d, byte [rdi + 0x17]
add r10d, ecx
shl r11d, 8
mov ecx, r8d
rol r10d, 3
or r11d, eax
movzx eax, byte [rdi + 0x15]
xor ecx, r9d
shl r11d, 8
and ecx, r10d
or r11d, eax
movzx eax, byte [rdi + 0x14]
xor ecx, r8d
shl r11d, 8
or r11d, eax
mov dword [rbp + 0x6c], r11d
movzx eax, byte [rdi + 0x1a]
add ecx, r11d
mov dword [rsp + 0xc], r11d
movzx r11d, byte [rdi + 0x1b]
add ecx, edx
shl r11d, 8
rol ecx, 7
mov edx, r9d
or r11d, eax
movzx eax, byte [rdi + 0x19]
xor edx, r10d
shl r11d, 8
and edx, ecx
or r11d, eax
movzx eax, byte [rdi + 0x18]
xor edx, r9d
shl r11d, 8
or r11d, eax
mov dword [rbp + 0x70], r11d
movzx eax, byte [rdi + 0x1e]
add edx, r11d
add edx, r8d
mov dword [rsp + 8], r11d
movzx r11d, byte [rdi + 0x1f]
shl r11d, 8
rol edx, 0xb
mov r8d, ecx
or r11d, eax
movzx eax, byte [rdi + 0x1d]
xor r8d, r10d
shl r11d, 8
and r8d, edx
or r11d, eax
movzx eax, byte [rdi + 0x1c]
xor r8d, r10d
shl r11d, 8
or r11d, eax
mov dword [rbp + 0x74], r11d
movzx eax, byte [rdi + 0x22]
movzx r14d, byte [rdi + 0x23]
add r8d, r11d
shl r14d, 8
mov dword [rsp + 4], r11d
add r8d, r9d
or r14d, eax
movzx eax, byte [rdi + 0x21]
ror r8d, 0xd
shl r14d, 8
or r14d, eax
movzx eax, byte [rdi + 0x20]
mov r9d, ecx
xor r9d, edx
shl r14d, 8
or r14d, eax
and r9d, r8d
mov dword [rbp + 0x78], r14d
movzx eax, byte [rdi + 0x26]
movzx r11d, byte [rdi + 0x27]
xor r9d, ecx
shl r11d, 8
or r11d, eax
movzx eax, byte [rdi + 0x25]
add r9d, r14d
add r9d, r10d
shl r11d, 8
mov r10d, edx
or r11d, eax
movzx eax, byte [rdi + 0x24]
rol r9d, 3
xor r10d, r8d
shl r11d, 8
or r11d, eax
and r10d, r9d
mov dword [rbp + 0x7c], r11d
movzx eax, byte [rdi + 0x2a]
movzx r13d, byte [rdi + 0x2b]
shl r13d, 8
xor r10d, edx
mov dword [rsp + 0x14], r11d
or r13d, eax
movzx eax, byte [rdi + 0x29]
add r10d, r11d
add r10d, ecx
shl r13d, 8
mov ecx, r8d
or r13d, eax
movzx eax, byte [rdi + 0x28]
xor ecx, r9d
rol r10d, 7
shl r13d, 8
or r13d, eax
and ecx, r10d
mov ebx, r10d
mov dword [rbp + 0x80], r13d
movzx eax, byte [rdi + 0x2e]
movzx r15d, byte [rdi + 0x2f]
shl r15d, 8
xor ebx, r9d
xor ecx, r8d
or r15d, eax
movzx eax, byte [rdi + 0x2d]
add ecx, r13d
shl r15d, 8
add ecx, edx
mov edx, r10d
or r15d, eax
movzx eax, byte [rdi + 0x2c]
rol ecx, 0xb
and ebx, ecx
shl r15d, 8
xor edx, ecx
or r15d, eax
xor ebx, r9d
mov dword [rbp + 0x84], r15d
movzx eax, byte [rdi + 0x32]
movzx esi, byte [rdi + 0x33]
shl esi, 8
add ebx, r15d
or esi, eax
movzx eax, byte [rdi + 0x31]
add ebx, r8d
shl esi, 8
ror ebx, 0xd
or esi, eax
movzx eax, byte [rdi + 0x30]
shl esi, 8
or esi, eax
and edx, ebx
mov dword [rbp + 0x88], esi
movzx eax, byte [rdi + 0x36]
movzx r12d, byte [rdi + 0x37]
mov r8, qword [rsp + 0x30]
xor edx, r10d
shl r12d, 8
or r12d, eax
movzx eax, byte [rdi + 0x35]
add edx, esi
add edx, r9d
shl r12d, 8
mov r9d, ecx
or r12d, eax
movzx eax, byte [rdi + 0x34]
rol edx, 3
xor r9d, ebx
shl r12d, 8
or r12d, eax
and r9d, edx
xor r9d, ecx
mov dword [rbp + 0x8c], r12d
movzx edi, byte [rdi + 0x3b]
movzx eax, byte [r8 + 0x3a]
shl edi, 8
add r9d, r12d
or edi, eax
movzx eax, byte [r8 + 0x39]
add r9d, r10d
rol r9d, 7
shl edi, 8
mov r10d, ebx
or edi, eax
movzx eax, byte [r8 + 0x38]
xor r10d, edx
and r10d, r9d
shl edi, 8
mov r11d, r9d
or edi, eax
xor r11d, edx
xor r10d, ebx
mov dword [rbp + 0x90], edi
movzx eax, byte [r8 + 0x3e]
movzx ebp, byte [r8 + 0x3f]
shl ebp, 8
add r10d, edi
or ebp, eax
movzx eax, byte [r8 + 0x3d]
add r10d, ecx
rol r10d, 0xb
shl ebp, 8
or ebp, eax
movzx eax, byte [r8 + 0x3c]
and r11d, r10d
xor r11d, edx
shl ebp, 8
mov ecx, r10d
or ebp, eax
mov rax, qword [rsp + 0x90]
mov dword [rax + 0x94], ebp
add r11d, ebp
mov eax, r10d
add r11d, ebx
ror r11d, 0xd
or ecx, r11d
and eax, r11d
and ecx, r9d
or ecx, eax
add ecx, dword [rsp + 0x98]
lea r8d, [rcx + rdx + 0x5a827999]
mov edx, r11d
mov ecx, r11d
rol r8d, 3
or edx, r8d
and ecx, r8d
mov eax, edx
and eax, r10d
or eax, ecx
add eax, dword [rsp + 0xa8]
lea r9d, [rax + r9 + 0x5a827999]
rol r9d, 5
and edx, r9d
or edx, ecx
add edx, r14d
lea r10d, [rdx + r10 + 0x5a827999]
rol r10d, 9
mov ecx, r10d
mov eax, r10d
or ecx, r8d
and eax, r8d
and ecx, r9d
or ecx, eax
mov eax, r10d
add ecx, esi
lea r11d, [rcx + r11 + 0x5a827999]
mov ecx, r10d
rol r11d, 0xd
or ecx, r11d
and eax, r11d
mov edx, r11d
and ecx, r9d
or ecx, eax
add ecx, dword [rsp + 0x18]
lea r8d, [rcx + r8 + 0x5a827999]
mov ecx, r11d
rol r8d, 3
and ecx, r8d
or edx, r8d
mov eax, edx
and eax, r10d
or eax, ecx
add eax, dword [rsp + 0xc]
lea r9d, [rax + r9 + 0x5a827999]
rol r9d, 5
and edx, r9d
or edx, ecx
add edx, dword [rsp + 0x14]
lea r10d, [rdx + r10 + 0x5a827999]
rol r10d, 9
mov ecx, r10d
mov eax, r10d
or ecx, r8d
and eax, r8d
and ecx, r9d
or ecx, eax
mov eax, r10d
add ecx, r12d
lea r11d, [rcx + r11 + 0x5a827999]
mov ecx, r10d
rol r11d, 0xd
or ecx, r11d
and eax, r11d
mov edx, r11d
and ecx, r9d
or ecx, eax
add ecx, dword [rsp + 0x10]
lea r8d, [rcx + r8 + 0x5a827999]
mov ecx, r11d
rol r8d, 3
and ecx, r8d
or edx, r8d
mov eax, edx
and eax, r10d
or eax, ecx
add eax, dword [rsp + 8]
lea r9d, [rax + r9 + 0x5a827999]
rol r9d, 5
and edx, r9d
or edx, ecx
add edx, r13d
lea r10d, [rdx + r10 + 0x5a827999]
rol r10d, 9
mov ecx, r10d
mov eax, r10d
or ecx, r8d
and eax, r8d
and ecx, r9d
or ecx, eax
add ecx, edi
lea ebx, [rcx + r11 + 0x5a827999]
mov ecx, r10d
rol ebx, 0xd
or ecx, ebx
and ecx, r9d
mov eax, r10d
mov edx, ebx
and eax, ebx
or ecx, eax
add ecx, dword [rsp]
lea r11d, [rcx + r8 + 0x5a827999]
mov ecx, ebx
rol r11d, 3
and ecx, r11d
or edx, r11d
mov eax, edx
and eax, r10d
or eax, ecx
add eax, dword [rsp + 4]
lea r8d, [rax + r9 + 0x5a827999]
rol r8d, 5
and edx, r8d
or edx, ecx
add edx, r15d
lea r9d, [rdx + r10 + 0x5a827999]
rol r9d, 9
mov ecx, r9d
mov eax, r9d
and eax, r11d
or ecx, r11d
and ecx, r8d
or ecx, eax
mov eax, r8d
xor eax, r9d
add ecx, ebp
lea r10d, [rcx + rbx + 0x5a827999]
rol r10d, 0xd
xor eax, r10d
add eax, dword [rsp + 0x98]
lea edx, [rax + r11 + 0x6ed9eba1]
mov eax, r9d
xor eax, r10d
rol edx, 3
xor eax, edx
add eax, r14d
lea r8d, [rax + r8 + 0x6ed9eba1]
rol r8d, 9
mov eax, r8d
mov ecx, r8d
xor eax, r10d
xor eax, edx
add eax, dword [rsp + 0xa8]
lea r9d, [rax + r9 + 0x6ed9eba1]
rol r9d, 0xb
xor ecx, r9d
mov eax, ecx
xor eax, edx
add eax, esi
lea r10d, [rax + r10 + 0x6ed9eba1]
mov eax, r9d
rol r10d, 0xf
xor eax, r10d
xor ecx, r10d
add ecx, dword [rsp + 0x10]
lea r11d, [rcx + rdx + 0x6ed9eba1]
rol r11d, 3
xor eax, r11d
add eax, r13d
lea edx, [rax + r8 + 0x6ed9eba1]
rol edx, 9
mov eax, edx
mov ecx, edx
xor eax, r10d
xor eax, r11d
add eax, dword [rsp + 8]
lea r8d, [rax + r9 + 0x6ed9eba1]
rol r8d, 0xb
xor ecx, r8d
mov eax, ecx
xor eax, r11d
add eax, edi
lea r9d, [rax + r10 + 0x6ed9eba1]
rol r9d, 0xf
xor ecx, r9d
add ecx, dword [rsp + 0x18]
lea r10d, [rcx + r11 + 0x6ed9eba1]
mov rdi, qword [rsp + 0x30]
rol r10d, 3
mov eax, r8d
xor eax, r9d
add rdi, 0x40
xor eax, r10d
mov qword [rsp + 0x30], rdi
add eax, dword [rsp + 0x14]
lea r11d, [rax + rdx + 0x6ed9eba1]
rol r11d, 9
mov eax, r11d
mov ecx, r11d
xor eax, r9d
xor eax, r10d
add eax, dword [rsp + 0xc]
lea r8d, [rax + r8 + 0x6ed9eba1]
rol r8d, 0xb
xor ecx, r8d
mov eax, ecx
xor eax, r10d
add eax, r12d
lea edx, [rax + r9 + 0x6ed9eba1]
mov eax, r8d
rol edx, 0xf
xor eax, edx
xor ecx, edx
add ecx, dword [rsp]
lea ebx, [rcx + r10 + 0x6ed9eba1]
rol ebx, 3
xor eax, ebx
add eax, r15d
lea r9d, [rax + r11 + 0x6ed9eba1]
rol r9d, 9
mov eax, r9d
xor eax, edx
xor eax, ebx
add eax, dword [rsp + 4]
lea r10d, [rax + r8 + 0x6ed9eba1]
mov eax, r9d
add r9d, dword [rsp + 0x24]
rol r10d, 0xb
xor eax, r10d
add r10d, dword [rsp + 0x20]
xor eax, ebx
add ebx, dword [rsp + 0x1c]
add eax, ebp
lea r11d, [rax + rdx + 0x6ed9eba1]
rol r11d, 0xf
add r11d, dword [rsp + 0x28]
sub qword [rsp + 0xa0], 0x40
jne 0x6702e8c0
mov rax, qword [rsp + 0x90]
mov dword [rax + 8], ebx
mov dword [rax + 0xc], r11d
mov dword [rax + 0x10], r10d
mov dword [rax + 0x14], r9d
mov rax, rdi
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret