Function at 0x100f18a0
Capabilities:
Hash data using murmur3

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
mov esi, ecx
push edi
mov ebx, dword [esi + 0x10]
cmp dword [esi + 0x38], ebx
jl 0x100f19a2
mov eax, 0x10
lea ecx, [esi + 0x24]
add ebx, ebx
cmp ebx, eax
cmovl ebx, eax
push ebx
call fcn.100ef990
mov eax, dword [esi + 0x10]
mov dword [ebp - 4], eax
cmp ebx, eax
jle 0x100f19a2
cmp eax, 0x10
mov edi, eax
mov ecx, 0x10
cmovl edi, ecx
cmp edi, ebx
jae 0x100f18f6
jmp 0x100f18f0
add edi, edi
cmp edi, ebx
jl 0x100f18f0
mov ebx, edi
sub ebx, eax
je 0x100f1952
mov ecx, esi
call fcn.10030860
mov edx, dword [esi + 0x10]
lea ecx, [edx + ebx]
cmp ecx, eax
jle 0x100f1926
mov ecx, esi
call fcn.10030860
mov ecx, dword [esi + 0x10]
sub ecx, eax
add ecx, ebx
push ecx
mov ecx, esi
call fcn.100efa40
mov edx, dword [esi + 0x10]
lea eax, [edx + ebx]
mov edx, dword [ebp - 4]
mov dword [esi + 0x10], eax
sub eax, edx
sub eax, ebx
test eax, eax
jle 0x100f1952
test ebx, ebx
jle 0x100f1952
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.101ad380
add esp, 0xc
lea eax, [ebx*4]
mov ebx, dword [ebp - 4]
push eax
mov eax, dword [esi + 4]
push 0xffffffffffffffff
lea eax, [eax + ebx*4]
push eax
call fcn.101aca80
add esp, 0xc
lea ecx, [esi + 0x14]
cmp dword [esi + 0x38], 0
push 0
jle 0x100f1990
mov dword [esi + 0x40], 0
mov dword [esi + 0x44], ebx
call fcn.100fc090
push dword [esi + 0x10]
lea ecx, [esi + 0x14]
jmp 0x100f199d
mov eax, dword [esi + 0x10]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], eax
dec eax
mov dword [esi + 0x48], eax
call fcn.100fc090
lea ecx, [esi + 0x24]
call fcn.10030860
cmp dword [esi + 0x38], eax
jl 0x100f19c2
lea ecx, [esi + 0x24]
call fcn.10030860
add eax, eax
lea ecx, [esi + 0x24]
push eax
call fcn.100efa40
mov edi, dword [esi + 0x40]
mov ebx, dword [sym.imp.tier0_s.dll_public:_static_bool___cdecl_AssertMsgHelper_1_::AssertFailed_char_const___unsigned_int__char_const__]
cmp edi, dword [esi + 0x44]
jge 0x100f1a65
mov dword [ebp - 0xc], 4
jmp 0x100f19e0
lea eax, [edi + 1]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 4]
cmp dword [eax + edi*4], 0xffffffff
je 0x100f1a40
test edi, edi
js 0x100f19f8
cmp edi, dword [esi + 0x14]
jl 0x100f1a11
push str.bitNum___0__bitNum___this__Size__
push 0x14a
push str.c:_buildslave_steam_rel_client_win32_build_srcpublic_tier1_bitstring.h
call ebx
add esp, 0xc
test al, al
jne 0x100f1a11
int3
cmp dword [esi + 0x18], 1
lea edx, [esi + 0x1c]
je 0x100f1a1d
mov edx, dword [esi + 0x20]
mov ebx, edi
mov ecx, edi
and ecx, 0x1f
sar ebx, 5
mov eax, 1
mov dword [ebp - 4], ecx
shl eax, cl
test dword [edx + ebx*4], eax
je 0x100f1bbb
mov ebx, dword [sym.imp.tier0_s.dll_public:_static_bool___cdecl_AssertMsgHelper_1_::AssertFailed_char_const___unsigned_int__char_const__]
mov edi, dword [esi + 0x40]
cmp edi, dword [esi + 0x44]
jl 0x100f19e0
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.100fc090
mov ebx, dword [sym.imp.tier0_s.dll_public:_static_bool___cdecl_AssertMsgHelper_1_::AssertFailed_char_const___unsigned_int__char_const__]
mov edx, dword [ebp + 8]
mov ecx, dword [edx]
shr ecx, 0x10
xor ecx, dword [edx]
imul ecx, ecx, 0x85ebca6b
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul eax, eax, 0xc2b2ae35
mov ecx, eax
shr ecx, 0x10
xor ecx, eax
mov eax, dword [esi + 0x10]
sar eax, 1
dec eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 8], eax
cmp eax, dword [esi + 0x48]
jl 0x100f1cd3
mov edi, edi
mov edx, eax
and edx, ecx
mov dword [ebp - 4], edx
cmp edx, dword [esi + 0x40]
jl 0x100f1cd0
test edx, edx
js 0x100f1ab9
cmp edx, dword [esi + 0x14]
jl 0x100f1ad5
push str.bitNum___0__bitNum___this__Size__
push 0x14a
push str.c:_buildslave_steam_rel_client_win32_build_srcpublic_tier1_bitstring.h
call ebx
add esp, 0xc
test al, al
jne 0x100f1ad2
int3
mov edx, dword [ebp - 4]
cmp dword [esi + 0x18], 1
lea eax, [esi + 0x1c]
je 0x100f1ae1
mov eax, dword [esi + 0x20]
mov ebx, edx
mov dword [ebp - 0xc], eax
and ebx, 0x1f
mov eax, 1
mov ecx, ebx
mov edi, edx
shl eax, cl
mov ecx, dword [ebp - 0xc]
sar edi, 5
test dword [ecx + edi*4], eax
jne 0x100f1ccd
test edx, edx
js 0x100f1b0c
cmp edx, dword [esi + 0x14]
jl 0x100f1b2d
mov eax, dword [sym.imp.tier0_s.dll_public:_static_bool___cdecl_AssertMsgHelper_1_::AssertFailed_char_const___unsigned_int__char_const__]
push str.bitNum___0__bitNum___this__Size__
push 0x154
push str.c:_buildslave_steam_rel_client_win32_build_srcpublic_tier1_bitstring.h
call eax
add esp, 0xc
test al, al
jne 0x100f1b2a
int3
mov edx, dword [ebp - 4]
cmp dword [esi + 0x18], 1
lea ecx, [esi + 0x1c]
je 0x100f1b39
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 edi, dword [eax + edx*4]
lea ebx, [eax + edx*4]
cmp edi, 0xffffffff
je 0x100f1cb1
mov edx, dword [esi + 0x28]
lea eax, [edi + edi*2]
shl eax, 2
add edx, eax
mov dword [ebp - 0x14], eax
mov ecx, dword [edx]
shr ecx, 0x10
xor ecx, dword [edx]
imul ecx, ecx, 0x85ebca6b
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul eax, eax, 0xc2b2ae35
mov ecx, eax
shr ecx, 0x10
xor ecx, eax
mov eax, dword [esi + 0x10]
dec eax
and eax, ecx
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 4]
je 0x100f1ca3
mov eax, dword [edx + 8]
mov edx, dword [ebp - 0xc]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov eax, dword [esi + 0x28]
mov edx, dword [ebp - 0x14]
mov dword [edx + eax + 8], ecx
mov eax, dword [esi + 4]
mov edx, dword [ebp - 0xc]
mov dword [eax + edx*4], edi
jmp 0x100f1ca6
test edi, edi
js 0x100f1bc4
cmp edi, dword [esi + 0x14]
jl 0x100f1be5
mov eax, dword [sym.imp.tier0_s.dll_public:_static_bool___cdecl_AssertMsgHelper_1_::AssertFailed_char_const___unsigned_int__char_const__]
push str.bitNum___0__bitNum___this__Size__
push 0x154
push str.c:_buildslave_steam_rel_client_win32_build_srcpublic_tier1_bitstring.h
call eax
add esp, 0xc
test al, al
jne 0x100f1be2
int3
mov ecx, dword [ebp - 4]
cmp dword [esi + 0x18], 1
lea edx, [esi + 0x1c]
je 0x100f1bf1
mov edx, dword [esi + 0x20]
mov eax, dword [edx + ebx*4]
bts eax, ecx
mov dword [edx + ebx*4], eax
mov eax, dword [esi + 4]
mov ebx, dword [eax + edi*4]
lea eax, [eax + edi*4]
mov dword [ebp - 4], eax
cmp ebx, 0xffffffff
je 0x100f1c82
jmp 0x100f1c10
mov edx, dword [esi + 0x28]
lea eax, [ebx + ebx*2]
shl eax, 2
add edx, eax
mov dword [ebp - 0x10], eax
mov ecx, dword [edx]
shr ecx, 0x10
xor ecx, dword [edx]
imul ecx, ecx, 0x85ebca6b
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul eax, eax, 0xc2b2ae35
mov ecx, eax
shr ecx, 0x10
xor ecx, eax
mov eax, dword [esi + 0x10]
dec eax
and eax, ecx
mov dword [ebp - 8], eax
cmp eax, edi
je 0x100f1c75
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov dword [ecx], eax
mov eax, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov eax, dword [esi + 0x28]
mov edx, dword [ebp - 0x10]
mov dword [eax + edx + 8], ecx
mov eax, dword [esi + 4]
mov edx, dword [ebp - 8]
mov dword [eax + edx*4], ebx
mov eax, dword [ebp - 4]
jmp 0x100f1c7b
lea eax, [edx + 8]
mov dword [ebp - 4], eax
mov ebx, dword [eax]
cmp ebx, 0xffffffff
jne 0x100f1c10
mov edi, dword [esi + 0x40]
cmp edi, dword [esi + 0x44]
jge 0x100f1a48
sub dword [ebp - 0xc], 1
mov ebx, dword [sym.imp.tier0_s.dll_public:_static_bool___cdecl_AssertMsgHelper_1_::AssertFailed_char_const___unsigned_int__char_const__]
js 0x100f1a65
jmp 0x100f19e0
lea ebx, [edx + 8]
mov edi, dword [ebx]
cmp edi, 0xffffffff
jne 0x100f1b54
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
mov ebx, dword [sym.imp.tier0_s.dll_public:_static_bool___cdecl_AssertMsgHelper_1_::AssertFailed_char_const___unsigned_int__char_const__]
sar eax, 1
mov dword [ebp - 8], eax
cmp eax, dword [esi + 0x48]
jge 0x100f1aa0
jmp 0x100f1cd0
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp + 8]
mov ebx, dword [esi + 0x10]
dec ebx
and ebx, ecx
cmp byte [ebp + 0x10], 0
jne 0x100f1d01
mov eax, dword [esi + 4]
mov ecx, dword [eax + ebx*4]
cmp ecx, 0xffffffff
je 0x100f1d01
mov edx, dword [edx]
mov edi, dword [esi + 0x28]
nop
lea eax, [ecx + ecx*2]
cmp edx, dword [edi + eax*4]
je 0x100f1d19
mov ecx, dword [edi + eax*4 + 8]
cmp ecx, 0xffffffff
jne 0x100f1cf0
mov eax, dword [esi + 0x38]
mov edi, dword [esi + 0x3c]
lea ecx, [eax + 1]
mov dword [ebp + 0x10], ecx
cmp eax, edi
jne 0x100f1d2e
lea eax, [edi + 1]
mov dword [esi + 0x3c], eax
jmp 0x100f1d46
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x100f1d22
mov dword [eax], ecx
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edi, dword [esi + 0x34]
mov ecx, 0xfffffffd
mov eax, dword [esi + 0x28]
lea edx, [edi + edi*2]
sub ecx, dword [eax + edx*4 + 8]
mov dword [esi + 0x34], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esi + 0x38], ecx
lea edx, [edi + edi*2]
mov eax, dword [esi + 0x28]
mov dword [eax + edx*4 + 8], 0xffffffff
mov ecx, dword [esi + 0x28]
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ecx + edx*4], eax
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x28]
mov eax, dword [eax + ebx*4]
mov dword [ecx + edx*4 + 8], eax
mov ecx, dword [esi + 4]
mov eax, dword [ebp + 0xc]
mov dword [ecx + ebx*4], edi
test eax, eax
je 0x100f1d82
mov dword [eax], 0xffffffff
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc