Function at 0x57c700
Capabilities:
Hash data using murmur3

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x40]
test edx, edx
je 0x57c784
mov eax, dword [esp + 0x48]
xor edx, edx
shl eax, 3
add eax, dword [ebx + 0x10]
jb 0x57cd4f
cmp edx, 1
mov ecx, dword [ebx + 0x14]
mov edx, dword [esp + 0x48]
mov dword [ebx + 0x10], eax
sbb ecx, 0xffffffff
mov eax, dword [ebx + 0x58]
shr edx, 0x1d
add edx, ecx
test eax, eax
mov dword [ebx + 0x14], edx
je 0x57c791
lea edi, [ebx + 0x18]
mov dword [esp + 0x18], edi
lea edx, [edi + eax]
cmp dword [esp + 0x48], 0x3f
ja 0x57c7d0
mov ecx, dword [esp + 0x48]
add ecx, eax
cmp ecx, 0x3f
ja 0x57c7d0
mov eax, dword [esp + 0x48]
mov dword [esp], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov esi, dword [ebx + 0x58]
mov eax, dword [esp + 0x48]
add esi, eax
mov dword [ebx + 0x58], esi
add esp, 0x2c
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x48]
shr eax, 6
jne 0x57ccf0
mov eax, dword [esp + 0x48]
add ebx, 0x18
mov dword [ebx + 0x40], eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0x44]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
add esp, 0x2c
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, 0x40
mov dword [esp], edx
sub ecx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp + 0x1c], ecx
call sub.msvcrt.dll_memcpy
mov ebp, dword [ebx + 0xc]
mov esi, dword [ebx + 8]
xor esi, ebp
mov edx, dword [ebx + 4]
mov edi, dword [ebx + 0x18]
and esi, edx
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx]
add eax, edi
xor esi, ecx
add esi, eax
mov edi, dword [ebx + 0x1c]
mov eax, dword [ebx + 0xc]
mov ebp, dword [ebx + 8]
add eax, edi
mov edi, dword [ebx + 4]
xor edi, ebp
mov edx, dword [ebx + 8]
mov ecx, edi
mov ebp, dword [ebx + 4]
rol esi, 3
and ecx, esi
xor ebp, esi
xor ecx, edx
mov edx, dword [ebx + 4]
add ecx, eax
mov edi, dword [ebx + 0x20]
rol ecx, 7
and ebp, ecx
mov eax, dword [ebx + 8]
xor ebp, edx
mov edx, esi
add eax, edi
xor edx, ecx
add ebp, eax
mov edi, dword [ebx + 0x24]
rol ebp, 0xb
mov eax, dword [ebx + 4]
and edx, ebp
add eax, edi
xor edx, esi
add edx, eax
mov eax, ecx
xor eax, ebp
mov edi, dword [ebx + 0x28]
rol edx, 0x13
and eax, edx
add esi, edi
xor eax, ecx
mov edi, ebp
add eax, esi
mov esi, dword [ebx + 0x2c]
rol eax, 3
xor edi, edx
add ecx, esi
and edi, eax
mov esi, edx
xor edi, ebp
xor esi, eax
add edi, ecx
mov ecx, dword [ebx + 0x30]
rol edi, 7
and esi, edi
add ebp, ecx
xor esi, edx
add esi, ebp
mov ebp, eax
xor ebp, edi
mov ecx, ebp
mov ebp, dword [ebx + 0x34]
rol esi, 0xb
and ecx, esi
add edx, ebp
xor ecx, eax
mov ebp, dword [ebx + 0x38]
add ecx, edx
mov edx, edi
xor edx, esi
add eax, ebp
rol ecx, 0x13
and edx, ecx
mov ebp, dword [ebx + 0x3c]
xor edx, edi
add edi, ebp
add edx, eax
mov eax, esi
xor eax, ecx
mov ebp, ecx
rol edx, 3
and eax, edx
xor ebp, edx
xor eax, esi
add eax, edi
mov edi, dword [ebx + 0x40]
rol eax, 7
and ebp, eax
xor ebp, ecx
add esi, edi
mov edi, edx
add ebp, esi
xor edi, eax
mov esi, dword [ebx + 0x44]
rol ebp, 0xb
add ecx, esi
and edi, ebp
mov esi, eax
xor edi, edx
xor esi, ebp
add edi, ecx
mov ecx, dword [ebx + 0x48]
rol edi, 0x13
and esi, edi
add edx, ecx
xor esi, eax
add esi, edx
mov edx, ebp
xor edx, edi
mov ecx, edx
mov edx, dword [ebx + 0x4c]
rol esi, 3
and ecx, esi
add eax, edx
xor ecx, ebp
mov edx, edi
add ecx, eax
xor edx, esi
mov eax, dword [ebx + 0x50]
rol ecx, 7
add ebp, eax
and edx, ecx
mov eax, esi
xor edx, edi
xor eax, ecx
add edx, ebp
mov ebp, dword [ebx + 0x54]
rol edx, 0xb
and eax, edx
add edi, ebp
xor eax, esi
mov ebp, ecx
add eax, edi
or ebp, edx
mov edi, ecx
rol eax, 0x13
and edi, edx
and ebp, eax
or edi, ebp
mov ebp, dword [ebx + 0x18]
lea ebp, [ebp + esi + 0x5a827999]
mov esi, edx
add edi, ebp
or esi, eax
mov ebp, edx
rol edi, 3
and ebp, eax
and esi, edi
or ebp, esi
mov esi, dword [ebx + 0x28]
lea esi, [esi + ecx + 0x5a827999]
add ebp, esi
mov esi, eax
or esi, edi
mov ecx, esi
mov esi, eax
rol ebp, 5
and esi, edi
and ecx, ebp
or esi, ecx
mov ecx, dword [ebx + 0x38]
lea ecx, [ecx + edx + 0x5a827999]
mov edx, edi
add esi, ecx
or edx, ebp
mov ecx, edi
rol esi, 9
and ecx, ebp
and edx, esi
or ecx, edx
mov edx, dword [ebx + 0x48]
lea edx, [edx + eax + 0x5a827999]
mov eax, ebp
add ecx, edx
mov edx, ebp
or edx, esi
and eax, esi
rol ecx, 0xd
and edx, ecx
or eax, edx
mov edx, dword [ebx + 0x1c]
lea edi, [edx + edi + 0x5a827999]
mov edx, esi
add edi, eax
mov eax, esi
rol edi, 3
or eax, ecx
and edx, ecx
and eax, edi
or edx, eax
mov eax, dword [ebx + 0x2c]
lea eax, [eax + ebp + 0x5a827999]
mov ebp, ecx
add edx, eax
or ebp, edi
mov eax, ecx
rol edx, 5
and eax, edi
and ebp, edx
or eax, ebp
mov ebp, dword [ebx + 0x3c]
lea ebp, [ebp + esi + 0x5a827999]
mov esi, edi
add eax, ebp
or esi, edx
mov ebp, edi
rol eax, 9
and ebp, edx
and esi, eax
or ebp, esi
mov esi, dword [ebx + 0x4c]
lea esi, [esi + ecx + 0x5a827999]
add ebp, esi
mov esi, edx
or esi, eax
mov ecx, esi
mov esi, edx
rol ebp, 0xd
and esi, eax
and ecx, ebp
or esi, ecx
mov ecx, dword [ebx + 0x20]
lea ecx, [ecx + edi + 0x5a827999]
mov edi, eax
add esi, ecx
or edi, ebp
mov ecx, eax
rol esi, 3
and ecx, ebp
and edi, esi
or ecx, edi
mov edi, dword [ebx + 0x30]
lea edi, [edi + edx + 0x5a827999]
mov edx, ebp
add ecx, edi
or edx, esi
mov edi, ebp
rol ecx, 5
and edx, ecx
and edi, esi
or edi, edx
mov edx, dword [ebx + 0x40]
lea edx, [edx + eax + 0x5a827999]
mov eax, esi
add edi, edx
or eax, ecx
mov edx, esi
rol edi, 9
and edx, ecx
and eax, edi
or edx, eax
mov eax, dword [ebx + 0x50]
lea eax, [eax + ebp + 0x5a827999]
mov ebp, ecx
add edx, eax
or ebp, edi
mov eax, ecx
rol edx, 0xd
and eax, edi
and ebp, edx
or eax, ebp
mov ebp, dword [ebx + 0x24]
lea ebp, [ebp + esi + 0x5a827999]
mov esi, edi
add eax, ebp
mov ebp, edi
or ebp, edx
and esi, edx
rol eax, 3
and ebp, eax
or esi, ebp
mov ebp, dword [ebx + 0x34]
lea ecx, [ebp + ecx + 0x5a827999]
mov ebp, edx
add ecx, esi
or ebp, eax
mov esi, edx
rol ecx, 5
and esi, eax
and ebp, ecx
or esi, ebp
mov ebp, dword [ebx + 0x44]
lea edi, [ebp + edi + 0x5a827999]
mov ebp, eax
add edi, esi
or ebp, ecx
mov esi, eax
rol edi, 9
and esi, ecx
and ebp, edi
or esi, ebp
mov ebp, dword [ebx + 0x54]
lea ebp, [ebp + edx + 0x5a827999]
mov edx, ecx
add esi, ebp
mov ebp, dword [ebx + 0x18]
xor edx, edi
rol esi, 0xd
lea eax, [ebp + eax + 0x6ed9eba1]
xor edx, esi
add eax, edx
mov ebp, dword [ebx + 0x38]
mov edx, edi
xor edx, esi
lea ecx, [ebp + ecx + 0x6ed9eba1]
rol eax, 3
xor edx, eax
mov ebp, dword [ebx + 0x28]
add ecx, edx
mov edx, esi
xor edx, eax
lea edi, [ebp + edi + 0x6ed9eba1]
rol ecx, 9
xor edx, ecx
mov ebp, dword [ebx + 0x48]
add edx, edi
mov edi, eax
xor edi, ecx
lea esi, [ebp + esi + 0x6ed9eba1]
rol edx, 0xb
xor edi, edx
mov ebp, dword [ebx + 0x20]
add esi, edi
mov edi, ecx
xor edi, edx
lea eax, [ebp + eax + 0x6ed9eba1]
rol esi, 0xf
mov ebp, dword [ebx + 0x40]
xor edi, esi
add edi, eax
mov eax, edx
xor eax, esi
lea ecx, [ebp + ecx + 0x6ed9eba1]
mov ebp, esi
rol edi, 3
xor ebp, edi
xor eax, edi
add eax, ecx
mov ecx, ebp
mov ebp, dword [ebx + 0x30]
rol eax, 9
lea edx, [ebp + edx + 0x6ed9eba1]
xor ecx, eax
add ecx, edx
mov ebp, dword [ebx + 0x50]
mov edx, edi
xor edx, eax
lea esi, [ebp + esi + 0x6ed9eba1]
rol ecx, 0xb
xor edx, ecx
mov ebp, dword [ebx + 0x1c]
add esi, edx
mov edx, eax
xor edx, ecx
lea edi, [ebp + edi + 0x6ed9eba1]
rol esi, 0xf
xor edx, esi
mov ebp, dword [ebx + 0x3c]
add edx, edi
mov edi, ecx
xor edi, esi
lea eax, [ebp + eax + 0x6ed9eba1]
rol edx, 3
xor edi, edx
mov ebp, esi
add edi, eax
mov eax, dword [ebx + 0x2c]
xor ebp, edx
lea eax, [eax + ecx + 0x6ed9eba1]
mov ecx, ebp
rol edi, 9
xor ecx, edi
mov ebp, dword [ebx + 0x4c]
add ecx, eax
mov eax, edx
xor eax, edi
lea esi, [ebp + esi + 0x6ed9eba1]
rol ecx, 0xb
xor eax, ecx
mov ebp, dword [ebx + 0x44]
add eax, esi
mov esi, dword [ebx + 0x24]
rol eax, 0xf
lea edx, [esi + edx + 0x6ed9eba1]
mov esi, edi
xor esi, ecx
lea edi, [ebp + edi + 0x6ed9eba1]
xor esi, eax
mov ebp, dword [ebx + 0x34]
add esi, edx
mov edx, ecx
xor edx, eax
lea ecx, [ebp + ecx + 0x6ed9eba1]
rol esi, 3
xor edx, esi
mov ebp, dword [ebx + 0x54]
add edx, edi
mov edi, eax
xor edi, esi
lea eax, [ebp + eax + 0x6ed9eba1]
rol edx, 9
xor edi, edx
add ecx, edi
mov edi, esi
xor edi, edx
rol ecx, 0xb
xor edi, ecx
add edi, eax
mov eax, dword [ebx]
add esi, eax
mov eax, dword [ebx + 4]
rol edi, 0xf
add edi, eax
mov dword [ebx], esi
mov dword [ebx + 4], edi
mov eax, dword [ebx + 8]
add ecx, eax
mov eax, dword [ebx + 0xc]
add edx, eax
mov dword [ebx + 8], ecx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x1c]
add eax, ecx
mov edi, dword [esp + 0x18]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x48]
sub eax, ecx
mov dword [ebx + 0xc], edx
mov dword [esp + 0x48], eax
mov dword [ebx + 0x58], 0
mov edx, 0x40
test edi, 1
jne 0x57cd40
test edi, 2
jne 0x57cd30
mov ecx, edx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
test dl, 2
jne 0x57cce0
and edx, 1
jne 0x57ccd0
mov eax, dword [esp + 0x48]
shr eax, 6
jne 0x57ccf0
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x57c79e
add esp, 0x2c
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
mov byte [edi], 0
mov eax, dword [esp + 0x48]
shr eax, 6
je 0x57ccb7
jmp 0x57ccf0
mov word [edi], 0
add edi, 2
and edx, 1
je 0x57ccae
jmp 0x57ccd0
mov dword [esp + 8], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.0057c190
mov eax, dword [esp + 0x48]
and eax, 0xffffffc0
mov ecx, dword [esp + 0x48]
sub ecx, eax
mov edx, dword [esp + 0x44]
mov dword [esp + 0x48], ecx
add edx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x44], edx
test eax, eax
je 0x57ccc3
jmp 0x57c79e
mov word [edi], 0
sub edx, 2
add edi, 2
jmp 0x57cc9b
mov byte [ebx + 0x18], 0
inc edi
mov edx, 0x3f
jmp 0x57cc8f
mov edx, 1
jmp 0x57c725