Function at 0x451d90
Capabilities:
Hash data using murmur3

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x168
test rcx, rcx
mov r13, rcx
je 0x4524b4
mov eax, dword [r13]
mov ebx, dword [r13 + 0x18]
lea r12, [r13 + 0x20]
mov esi, dword [r13 + 0x1c]
lea r15, [r13 + 0x68]
xor ebp, ebp
mov edx, 0x428a2f98
lea rdi, [0x004ccc20]
mov dword [rsp + 0x34], eax
mov eax, dword [r13 + 4]
mov dword [rsp + 0x2c], eax
mov eax, dword [r13 + 8]
mov dword [rsp + 0x28], eax
mov eax, dword [r13 + 0xc]
mov dword [rsp + 0x44], eax
mov eax, dword [r13 + 0x10]
mov dword [rsp + 0x40], eax
mov eax, dword [r13 + 0x14]
mov dword [rsp + 0x30], eax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x48], rax
mov r14, rax
jmp 0x451e13
mov edx, dword [rdi + rbp]
mov eax, dword [r12 + rbp]
mov rcx, r15
bswap eax
mov dword [r14 + rbp], eax
xor eax, dword [r13 + 0x68]
add rbp, 4
xor eax, edx
mov dword [r13 + 0x68], eax
call dbg.Mangle
cmp rbp, 0x40
jne 0x451e10
mov edi, 0x428a2f98
mov ebp, dword [rsp + 0x34]
mov dword [rsp + 0x50], ebx
mov qword [rsp + 0x38], 0
mov r14d, 1
mov ebx, esi
mov r12d, dword [rsp + 0x40]
mov dword [rsp + 0x34], edi
jmp 0x451edd
cmp eax, 3
je 0x452110
not edx
and edx, ebx
cmp eax, 1
cmove ebx, edx
mov eax, dword [rsp + 0x44]
add qword [rsp + 0x38], 4
add esi, edi
add eax, ebx
mov rbx, qword [rsp + 0x38]
cmp rbx, 0x40
je 0x452120
mov rdi, qword [rsp + 0x38]
lea rbx, [0x004ccc20]
mov ebx, dword [rbx + rdi]
mov edi, dword [rsp + 0x30]
mov dword [rsp + 0x30], r12d
mov r12d, eax
mov eax, dword [rsp + 0x2c]
mov dword [rsp + 0x2c], ebp
mov ebp, esi
mov dword [rsp + 0x34], ebx
mov ebx, dword [rsp + 0x28]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x44], ebx
mov ebx, dword [rsp + 0x50]
mov dword [rsp + 0x50], edi
mov eax, dword [rsp + 0x44]
mov rcx, r15
xor eax, ebx
xor dword [r13 + 0x68], eax
call dbg.Mangle
mov esi, dword [r13 + 0x68]
mov rcx, r15
call dbg.Mangle
mov edx, r14d
mov eax, esi
mov esi, dword [rsp + 0x50]
movzx ecx, ah
and eax, 3
shl edx, cl
mov edi, esi
or edi, edx
cmp eax, 2
je 0x451f2a
mov edi, esi
xor edi, edx
cmp eax, 3
je 0x451f2a
not edx
and edx, esi
cmp eax, 1
cmovne edx, esi
mov edi, edx
mov esi, dword [r13 + 0x68]
mov rcx, r15
call dbg.Mangle
mov eax, esi
movzx ecx, ah
mov eax, r14d
shl eax, cl
mov ecx, eax
mov eax, esi
mov esi, dword [rsp + 0x30]
and eax, 3
mov edx, esi
or edx, ecx
cmp eax, 2
je 0x451f69
mov edx, esi
xor edx, ecx
cmp eax, 3
je 0x451f69
not ecx
and ecx, esi
cmp eax, 1
cmovne ecx, esi
mov edx, ecx
mov esi, r12d
mov rax, qword [rsp + 0x48]
and edx, r12d
not esi
mov rcx, r15
and esi, edi
mov rdi, qword [rsp + 0x38]
xor esi, edx
add ebx, dword [rax + rdi]
add esi, ebx
mov ebx, dword [r13 + 0x68]
call dbg.Mangle
mov eax, r14d
movzx ecx, bh
and ebx, 3
shl eax, cl
mov ecx, eax
mov eax, r12d
or eax, ecx
cmp ebx, 2
je 0x451fbf
mov eax, r12d
xor eax, ecx
cmp ebx, 3
je 0x451fbf
not ecx
and ecx, r12d
cmp ebx, 1
mov eax, ecx
cmovne eax, r12d
mov ebx, eax
mov edx, eax
rol eax, 7
ror edx, 0xb
ror ebx, 6
mov rcx, r15
xor ebx, edx
xor ebx, eax
add ebx, esi
mov esi, dword [r13 + 0x68]
add ebx, dword [rsp + 0x34]
call dbg.Mangle
mov edx, r14d
mov eax, esi
mov esi, dword [rsp + 0x28]
movzx ecx, ah
and eax, 3
shl edx, cl
mov edi, esi
or edi, edx
cmp eax, 2
je 0x452011
mov edi, esi
xor edi, edx
cmp eax, 3
je 0x452011
not edx
and edx, esi
cmp eax, 1
cmovne edx, esi
mov edi, edx
mov esi, dword [r13 + 0x68]
mov rcx, r15
call dbg.Mangle
mov edx, r14d
mov eax, esi
movzx ecx, ah
and eax, 3
shl edx, cl
mov ecx, dword [rsp + 0x2c]
mov esi, ecx
or esi, edx
cmp eax, 2
je 0x45204c
mov esi, ecx
xor esi, edx
cmp eax, 3
je 0x45204c
not edx
and edx, ecx
cmp eax, 1
cmovne edx, ecx
mov esi, edx
mov eax, dword [r13 + 0x68]
mov rcx, r15
mov dword [rsp + 0x34], eax
call dbg.Mangle
mov eax, dword [rsp + 0x34]
mov edx, r14d
movzx ecx, ah
and eax, 3
shl edx, cl
mov ecx, ebp
or ecx, edx
cmp eax, 2
je 0x452089
mov ecx, ebp
xor ecx, edx
cmp eax, 3
je 0x452089
not edx
and edx, ebp
cmp eax, 1
mov ecx, edx
cmovne ecx, ebp
mov edx, esi
and esi, edi
xor edx, edi
mov edi, dword [r13 + 0x68]
and edx, ecx
mov rcx, r15
xor esi, edx
call dbg.Mangle
mov eax, edi
and edi, 3
movzx ecx, ah
mov eax, r14d
shl eax, cl
mov ecx, eax
mov eax, ebp
or eax, ecx
cmp edi, 2
je 0x4520cc
mov eax, ebp
xor eax, ecx
cmp edi, 3
je 0x4520cc
not ecx
and ecx, ebp
cmp edi, 1
mov eax, ecx
cmovne eax, ebp
mov edi, eax
mov edx, eax
rol eax, 0xa
ror edx, 0xd
ror edi, 2
mov rcx, r15
xor edi, edx
add esi, ebx
xor edi, eax
mov eax, dword [r13 + 0x68]
mov dword [rsp + 0x34], eax
call dbg.Mangle
mov eax, dword [rsp + 0x34]
mov edx, r14d
movzx ecx, ah
and eax, 3
shl edx, cl
cmp eax, 2
jne 0x451e70
or ebx, edx
jmp 0x451e83
xor ebx, edx
jmp 0x451e83
mov dword [rsp + 0x40], r12d
mov r12d, eax
mov rax, qword [rsp + 0x48]
mov ebx, dword [rsp + 0x50]
mov dword [rsp + 0x34], ebp
mov ebp, esi
mov edi, 0xe49b69c1
xor r14d, r14d
lea rsi, [rax + 0x38]
add rax, 4
mov dword [rsp + 0x38], edi
mov qword [rsp + 0x58], rax
mov edi, ebx
mov qword [rsp + 0x50], rsi
jmp 0x4521c5
cmp eax, 3
je 0x452460
not edx
and edx, ebx
cmp eax, 1
cmove ebx, edx
mov eax, dword [rsp + 0x28]
add r14, 4
add esi, edi
add eax, ebx
cmp r14, 0xc0
je 0x452470
lea rdx, [0x004ccc60]
mov edi, dword [rsp + 0x30]
mov ebx, dword [rdx + r14]
mov dword [rsp + 0x38], ebx
mov ebx, dword [rsp + 0x2c]
mov dword [rsp + 0x28], ebx
mov ebx, dword [rsp + 0x40]
mov dword [rsp + 0x40], r12d
mov r12d, eax
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x34], ebp
mov ebp, esi
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x2c], eax
mov eax, dword [rsp + 0x28]
mov rcx, r15
add eax, edi
xor dword [r13 + 0x68], eax
call dbg.Mangle
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x48]
mov esi, dword [rax + r14]
mov rax, qword [rsp + 0x58]
mov ecx, esi
mov edx, dword [rax + r14]
mov eax, esi
rol ecx, 0xd
rol eax, 0xf
shr esi, 0xa
xor eax, ecx
xor eax, esi
mov esi, dword [rbx + r14]
add esi, dword [rbx + r14 + 0x24]
mov ecx, edx
rol ecx, 0xe
add eax, esi
mov esi, edx
shr edx, 3
ror esi, 7
xor esi, ecx
mov rcx, r15
xor esi, edx
add esi, eax
mov dword [rbx + r14 + 0x40], esi
mov ebx, dword [r13 + 0x68]
call dbg.Mangle
mov edx, 1
movzx ecx, bh
mov eax, ebx
shl edx, cl
mov ecx, dword [rsp + 0x30]
and eax, 3
mov ebx, ecx
or ebx, edx
cmp eax, 2
je 0x45225f
mov ebx, ecx
xor ebx, edx
cmp eax, 3
je 0x45225f
not edx
and edx, ecx
cmp eax, 1
cmovne edx, ecx
mov ebx, edx
mov eax, dword [r13 + 0x68]
mov rcx, r15
mov dword [rsp + 0x44], eax
call dbg.Mangle
mov eax, dword [rsp + 0x44]
mov r9d, dword [rsp + 0x40]
mov edx, 1
movzx ecx, ah
and eax, 3
shl edx, cl
mov ecx, edx
mov edx, r9d
or edx, ecx
cmp eax, 2
je 0x4522a9
mov edx, r9d
xor edx, ecx
cmp eax, 3
je 0x4522a9
not ecx
and ecx, r9d
cmp eax, 1
cmovne ecx, r9d
mov edx, ecx
mov eax, r12d
add esi, edi
mov edi, dword [r13 + 0x68]
not eax
and edx, r12d
mov rcx, r15
and eax, ebx
xor eax, edx
add esi, eax
call dbg.Mangle
mov eax, edi
and edi, 3
movzx ecx, ah
mov eax, 1
shl eax, cl
mov ecx, eax
mov eax, r12d
or eax, ecx
cmp edi, 2
je 0x4522f8
mov eax, r12d
xor eax, ecx
cmp edi, 3
je 0x4522f8
not ecx
and ecx, r12d
cmp edi, 1
mov eax, ecx
cmovne eax, r12d
mov edi, eax
mov edx, eax
mov ebx, dword [rsp + 0x38]
ror edx, 0xb
ror edi, 6
rol eax, 7
xor edi, edx
mov rcx, r15
xor edi, eax
add esi, edi
add ebx, esi
mov esi, dword [r13 + 0x68]
call dbg.Mangle
mov edx, 1
mov eax, esi
mov esi, dword [rsp + 0x2c]
movzx ecx, ah
and eax, 3
shl edx, cl
mov edi, esi
or edi, edx
cmp eax, 2
je 0x45234e
mov edi, esi
xor edi, edx
cmp eax, 3
je 0x45234e
not edx
and edx, esi
cmp eax, 1
cmovne edx, esi
mov edi, edx
mov esi, dword [r13 + 0x68]
mov rcx, r15
call dbg.Mangle
mov edx, 1
mov eax, esi
movzx ecx, ah
and eax, 3
shl edx, cl
mov ecx, dword [rsp + 0x34]
mov esi, ecx
or esi, edx
cmp eax, 2
je 0x45238b
mov esi, ecx
xor esi, edx
cmp eax, 3
je 0x45238b
not edx
and edx, ecx
cmp eax, 1
cmovne edx, ecx
mov esi, edx
mov eax, dword [r13 + 0x68]
mov rcx, r15
mov dword [rsp + 0x38], eax
call dbg.Mangle
mov eax, dword [rsp + 0x38]
mov edx, 1
movzx ecx, ah
and eax, 3
shl edx, cl
mov ecx, edx
or ecx, ebp
cmp eax, 2
je 0x4523ca
mov ecx, edx
xor ecx, ebp
cmp eax, 3
je 0x4523ca
not edx
and edx, ebp
cmp eax, 1
mov ecx, edx
cmovne ecx, ebp
mov edx, esi
and esi, edi
xor edx, edi
mov edi, dword [r13 + 0x68]
and edx, ecx
mov rcx, r15
xor esi, edx
call dbg.Mangle
mov eax, edi
and edi, 3
movzx ecx, ah
mov eax, 1
shl eax, cl
mov ecx, eax
or eax, ebp
cmp edi, 2
je 0x45240d
mov eax, ecx
xor eax, ebp
cmp edi, 3
je 0x45240d
not ecx
and ecx, ebp
cmp edi, 1
mov eax, ecx
cmovne eax, ebp
mov edi, eax
mov edx, eax
rol eax, 0xa
ror edx, 0xd
ror edi, 2
mov rcx, r15
xor edi, edx
add esi, ebx
xor edi, eax
mov eax, dword [r13 + 0x68]
mov dword [rsp + 0x38], eax
call dbg.Mangle
mov eax, dword [rsp + 0x38]
mov edx, 1
movzx ecx, ah
and eax, 3
shl edx, cl
cmp eax, 2
jne 0x452160
or ebx, edx
jmp 0x452173
xor ebx, edx
jmp 0x452173
mov ebx, dword [rsp + 0x34]
add dword [r13 + 0x10], eax
add dword [r13 + 8], ebx
mov eax, dword [rsp + 0x40]
mov ebx, dword [rsp + 0x2c]
add dword [r13 + 0x18], eax
add dword [r13], esi
mov eax, dword [rsp + 0x30]
add dword [r13 + 4], ebp
add dword [r13 + 0xc], ebx
add dword [r13 + 0x14], r12d
add dword [r13 + 0x1c], eax
add rsp, 0x168
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rdx, str.sha3_sph_hefty1.c
lea rcx, [0x004ccc12]
mov r8d, 0xfe
call dbg._assert
jmp 0x451daf