Function at 0x4b57e0
Capabilities:
Hash data using murmur3

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
mov esi, ecx
push edi
mov ebx, dword [esi + 0x10]
cmp dword [esi + 0x38], ebx
jl 0x4b58e2
mov eax, 0x10
lea ecx, [esi + 0x24]
add ebx, ebx
cmp ebx, eax
cmovl ebx, eax
push ebx
call fcn.004999a0
mov eax, dword [esi + 0x10]
mov dword [ebp - 8], eax
cmp ebx, eax
jle 0x4b58e2
cmp eax, 0x10
mov edi, eax
mov ecx, 0x10
cmovl edi, ecx
cmp edi, ebx
jae 0x4b5836
jmp 0x4b5830
add edi, edi
cmp edi, ebx
jl 0x4b5830
mov ebx, edi
sub ebx, eax
je 0x4b5892
mov ecx, esi
call fcn.0046ffe0
mov edx, dword [esi + 0x10]
lea ecx, [edx + ebx]
cmp ecx, eax
jle 0x4b5866
mov ecx, esi
call fcn.0046ffe0
mov ecx, dword [esi + 0x10]
sub ecx, eax
add ecx, ebx
push ecx
mov ecx, esi
call fcn.00499a60
mov edx, dword [esi + 0x10]
lea eax, [edx + ebx]
mov edx, dword [ebp - 8]
mov dword [esi + 0x10], eax
sub eax, edx
sub eax, ebx
test eax, eax
jle 0x4b5892
test ebx, ebx
jle 0x4b5892
mov ecx, dword [esi + 4]
shl eax, 2
push eax
lea eax, [ecx + edx*4]
push eax
lea eax, [ecx + edi*4]
push eax
call fcn.0054ca20
add esp, 0xc
lea eax, [ebx*4]
mov ebx, dword [ebp - 8]
push eax
mov eax, dword [esi + 4]
push 0xffffffffffffffff
lea eax, [eax + ebx*4]
push eax
call fcn.0054cfa0
add esp, 0xc
lea ecx, [esi + 0x14]
cmp dword [esi + 0x38], 0
push 0
jle 0x4b58d0
mov dword [esi + 0x40], 0
mov dword [esi + 0x44], ebx
call fcn.004c2150
push dword [esi + 0x10]
lea ecx, [esi + 0x14]
jmp 0x4b58dd
mov eax, dword [esi + 0x10]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], eax
dec eax
mov dword [esi + 0x48], eax
call fcn.004c2150
lea ecx, [esi + 0x24]
call fcn.0046ffe0
cmp dword [esi + 0x38], eax
jl 0x4b5902
lea ecx, [esi + 0x24]
call fcn.0046ffe0
add eax, eax
lea ecx, [esi + 0x24]
push eax
call fcn.00499a60
mov ebx, dword [esi + 0x40]
cmp ebx, dword [esi + 0x44]
jge 0x4b5991
mov dword [ebp - 0x10], 4
lea eax, [ebx + 1]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 4]
cmp dword [eax + ebx*4], 0xffffffff
je 0x4b5972
test ebx, ebx
js 0x4b592d
cmp ebx, dword [esi + 0x14]
jl 0x4b5949
push str.bitNum___0__bitNum___this__Size__
push 0x14a
push str.c:_buildslave_steam_rel_client_hotfix_win32_build_srcpublic_tier1_bitstring.h
call fcn.00534490
add esp, 0xc
test al, al
jne 0x4b5949
int3
cmp dword [esi + 0x18], 1
lea edx, [esi + 0x1c]
je 0x4b5955
mov edx, dword [esi + 0x20]
mov edi, ebx
mov ecx, ebx
and ecx, 0x1f
sar edi, 5
mov eax, 1
mov dword [ebp - 8], ecx
shl eax, cl
test dword [edx + edi*4], eax
je 0x4b5b2d
mov ebx, dword [esi + 0x40]
cmp ebx, dword [esi + 0x44]
jl 0x4b5915
mov eax, dword [esi + 0x10]
lea ecx, [esi + 0x14]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], eax
dec eax
push 0
mov dword [esi + 0x48], eax
call fcn.004c2150
mov ebx, dword [ebp + 8]
lea ecx, [esi + 0x4d]
push ebx
call fcn.004b7ef0
mov ecx, eax
mov eax, dword [esi + 0x10]
sar eax, 1
dec eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0xc], eax
cmp eax, dword [esi + 0x48]
jl 0x4b5c96
mov edx, eax
and edx, ecx
mov dword [ebp - 4], edx
cmp edx, dword [esi + 0x40]
jl 0x4b5c93
test edx, edx
js 0x4b59cd
cmp edx, dword [esi + 0x14]
jl 0x4b59ec
push str.bitNum___0__bitNum___this__Size__
push 0x14a
push str.c:_buildslave_steam_rel_client_hotfix_win32_build_srcpublic_tier1_bitstring.h
call fcn.00534490
add esp, 0xc
test al, al
jne 0x4b59e9
int3
mov edx, dword [ebp - 4]
cmp dword [esi + 0x18], 1
lea eax, [esi + 0x1c]
je 0x4b59f8
mov eax, dword [esi + 0x20]
mov ebx, edx
mov dword [ebp - 0x10], eax
and ebx, 0x1f
mov eax, 1
mov ecx, ebx
mov edi, edx
shl eax, cl
mov ecx, dword [ebp - 0x10]
sar edi, 5
test dword [ecx + edi*4], eax
jne 0x4b5c90
test edx, edx
js 0x4b5a23
cmp edx, dword [esi + 0x14]
jl 0x4b5a42
push str.bitNum___0__bitNum___this__Size__
push 0x154
push str.c:_buildslave_steam_rel_client_hotfix_win32_build_srcpublic_tier1_bitstring.h
call fcn.00534490
add esp, 0xc
test al, al
jne 0x4b5a3f
int3
mov edx, dword [ebp - 4]
cmp dword [esi + 0x18], 1
lea ecx, [esi + 0x1c]
je 0x4b5a4e
mov ecx, dword [esi + 0x20]
mov eax, dword [ecx + edi*4]
bts eax, ebx
mov dword [ecx + edi*4], eax
mov eax, dword [esi + 4]
mov ebx, dword [eax + edx*4]
lea eax, [eax + edx*4]
mov dword [ebp - 8], eax
cmp ebx, 0xffffffff
je 0x4b5c7a
lea esp, [esp]
mov edi, dword [esi + 0x28]
imul eax, ebx, 0x58
add edi, eax
mov dword [ebp - 0x20], eax
push edi
mov dword [ebp - 0x10], edi
call fcn.004c0dd0
lea ecx, [edi + 0x18]
mov dword [ebp - 0x18], eax
push ecx
call fcn.004c0dd0
mov ecx, dword [edi + 0x30]
add esp, 8
test ecx, ecx
mov dword [ebp - 0x1c], eax
mov edx, 0x6e0a80
cmovne edx, ecx
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4b5aa8
push 0
sub ecx, edi
push 0x417
push ecx
push edx
call fcn.004c03f0
mov ecx, dword [ebp - 0x10]
mov edi, eax
add esp, 0x10
mov ecx, dword [ecx + 0x34]
mov edx, ecx
shr edx, 0x10
xor edx, ecx
imul edx, edx, 0x85ebca6b
mov ecx, edx
shr ecx, 0xd
xor ecx, edx
mov edx, dword [esi + 0x10]
imul eax, ecx, 0xc2b2ae35
dec edx
mov ecx, eax
shr ecx, 0x10
xor ecx, eax
mov eax, dword [ebp - 0x10]
xor ecx, edi
add eax, 0x54
xor ecx, dword [ebp - 0x1c]
xor ecx, dword [ebp - 0x18]
and edx, ecx
cmp edx, dword [ebp - 4]
je 0x4b5c6c
mov eax, dword [eax]
mov ecx, dword [ebp - 8]
mov edi, dword [ebp - 0x20]
mov dword [ecx], eax
mov eax, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov eax, dword [esi + 0x28]
mov dword [eax + edi + 0x54], ecx
mov eax, dword [esi + 4]
mov dword [eax + edx*4], ebx
mov eax, dword [ebp - 8]
jmp 0x4b5c6f
test ebx, ebx
js 0x4b5b36
cmp ebx, dword [esi + 0x14]
jl 0x4b5b55
push str.bitNum___0__bitNum___this__Size__
push 0x154
push str.c:_buildslave_steam_rel_client_hotfix_win32_build_srcpublic_tier1_bitstring.h
call fcn.00534490
add esp, 0xc
test al, al
jne 0x4b5b52
int3
mov ecx, dword [ebp - 8]
cmp dword [esi + 0x18], 1
lea edx, [esi + 0x1c]
je 0x4b5b61
mov edx, dword [esi + 0x20]
mov eax, dword [edx + edi*4]
bts eax, ecx
mov dword [edx + edi*4], eax
mov eax, dword [esi + 4]
lea eax, [eax + ebx*4]
mov dword [ebp - 4], eax
mov eax, dword [eax]
mov dword [ebp - 0xc], eax
cmp eax, 0xffffffff
je 0x4b5c51
mov edi, dword [esi + 0x28]
imul eax, eax, 0x58
add edi, eax
mov dword [ebp - 0x1c], eax
push edi
mov dword [ebp - 8], edi
call fcn.004c0dd0
lea ecx, [edi + 0x18]
mov dword [ebp - 0x18], eax
push ecx
call fcn.004c0dd0
mov ecx, dword [edi + 0x30]
add esp, 8
test ecx, ecx
mov dword [ebp - 0x14], eax
mov edx, 0x6e0a80
cmovne edx, ecx
mov ecx, edx
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4b5bc0
push 0
sub ecx, edi
push 0x417
push ecx
push edx
call fcn.004c03f0
mov ecx, dword [ebp - 8]
mov edi, eax
add esp, 0x10
mov ecx, dword [ecx + 0x34]
mov edx, ecx
shr edx, 0x10
xor edx, ecx
imul edx, edx, 0x85ebca6b
mov ecx, edx
shr ecx, 0xd
xor ecx, edx
mov edx, dword [esi + 0x10]
imul eax, ecx, 0xc2b2ae35
dec edx
mov ecx, eax
shr ecx, 0x10
xor ecx, eax
mov eax, dword [ebp - 8]
xor ecx, edi
add eax, 0x54
xor ecx, dword [ebp - 0x14]
xor ecx, dword [ebp - 0x18]
and edx, ecx
cmp edx, ebx
je 0x4b5c40
mov eax, dword [eax]
mov ecx, dword [ebp - 4]
mov edi, dword [ebp - 0x1c]
mov dword [ecx], eax
mov eax, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov eax, dword [esi + 0x28]
mov dword [eax + edi + 0x54], ecx
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0xc]
mov dword [eax + edx*4], ecx
mov eax, dword [ebp - 4]
jmp 0x4b5c43
mov dword [ebp - 4], eax
mov eax, dword [eax]
mov dword [ebp - 0xc], eax
cmp eax, 0xffffffff
jne 0x4b5b81
mov ebx, dword [esi + 0x40]
cmp ebx, dword [esi + 0x44]
jge 0x4b597a
sub dword [ebp - 0x10], 1
jns 0x4b5915
jmp 0x4b5991
mov dword [ebp - 8], eax
mov ebx, dword [eax]
cmp ebx, 0xffffffff
jne 0x4b5a70
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
sar eax, 1
mov dword [ebp - 0xc], eax
cmp eax, dword [esi + 0x48]
jge 0x4b59b4
jmp 0x4b5c93
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp + 8]
mov eax, dword [esi + 0x10]
dec eax
and eax, ecx
cmp byte [ebp + 0x10], 0
mov dword [ebp - 0x20], eax
jne 0x4b5cc8
push ebx
push eax
mov ecx, esi
call fcn.004baec0
cmp eax, 0xffffffff
je 0x4b5cc8
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x4b5cbc
mov dword [ecx], eax
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esi + 0x38]
mov ebx, dword [esi + 0x3c]
mov dword [ebp + 0x10], ebx
lea edi, [eax + 1]
cmp eax, ebx
jne 0x4b5ce0
lea eax, [ebx + 1]
mov dword [esi + 0x3c], eax
jmp 0x4b5cf8
mov ebx, dword [esi + 0x34]
mov ecx, 0xfffffffd
mov eax, dword [esi + 0x28]
imul edx, ebx, 0x58
mov dword [ebp + 0x10], ebx
sub ecx, dword [eax + edx + 0x54]
mov dword [esi + 0x34], ecx
mov edx, dword [ebp + 8]
mov dword [esi + 0x38], edi
mov eax, dword [esi + 0x28]
imul ebx, ebx, 0x58
mov dword [eax + ebx + 0x54], 0xffffffff
mov edi, dword [esi + 0x28]
mov eax, dword [edx]
add edi, ebx
lea ecx, [edi + 0x30]
mov dword [edi], eax
mov eax, dword [edx + 4]
mov dword [edi + 4], eax
mov eax, dword [edx + 8]
mov dword [edi + 8], eax
mov eax, dword [edx + 0xc]
mov dword [edi + 0xc], eax
mov eax, dword [edx + 0x10]
mov dword [edi + 0x10], eax
mov eax, dword [edx + 0x14]
mov dword [edi + 0x14], eax
mov eax, dword [edx + 0x18]
mov dword [edi + 0x18], eax
mov eax, dword [edx + 0x1c]
mov dword [edi + 0x1c], eax
mov eax, dword [edx + 0x20]
mov dword [edi + 0x20], eax
mov eax, dword [edx + 0x24]
mov dword [edi + 0x24], eax
mov eax, dword [edx + 0x28]
mov dword [edi + 0x28], eax
mov eax, dword [edx + 0x2c]
mov dword [edi + 0x2c], eax
mov dword [ecx], 0
mov eax, dword [edx + 0x30]
test eax, eax
mov edx, 0x6e0a80
cmovne edx, eax
push edx
call fcn.0049f6a0
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x20]
mov eax, dword [ecx + 0x34]
mov dword [edi + 0x34], eax
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x28]
mov eax, dword [eax + edx*4]
mov dword [ecx + ebx + 0x54], eax
mov ecx, dword [esi + 4]
mov eax, dword [ebp + 0x10]
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x4b5da2
mov dword [ecx], 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc