Function at 0x1008d8b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x80
mov ebx, ecx
mov esi, dword [ebp + 8]
mov eax, dword [0x10146014]
xor eax, ebp
mov dword [esp + 0x78], eax
lea edi, [ecx + 0x18]
push edi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1008e1b1
mov dword [esp + 0x38], edi
movdqu xmm0, xmmword [esi]
sub esp, 0x10
movdqu xmmword [esp], xmm0
call fcn.1007bf40
add esp, 0x10
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], ebx
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x1008d9de
mov edx, ecx
shr edx, 1
and edx, 0x55555555
mov eax, ecx
sub eax, edx
mov edx, 0x33333333
mov esi, eax
and esi, edx
shr eax, 2
and eax, edx
add eax, esi
mov edx, eax
shr edx, 4
add edx, eax
and edx, 0xf0f0f0f
imul esi, edx, 0x1010101
shr esi, 0x18
cmp esi, 1
jbe 0x1008e254
mov eax, dword [esp + 0xc]
mov ebx, eax
cmp eax, ecx
jb 0x1008d959
xor edx, edx
div ecx
mov ebx, edx
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ebx*4]
test eax, eax
je 0x1008d9de
mov edi, dword [eax]
test edi, edi
je 0x1008d9de
lea eax, [ecx - 1]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax]
mov dword [esp + 0x20], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x18], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x10], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 4]
cmp eax, dword [esp + 0xc]
jne 0x1008d9c1
mov eax, dword [edi + 8]
xor eax, dword [esp + 0x20]
mov edx, dword [edi + 0xc]
xor edx, dword [esp + 0x18]
or edx, eax
jne 0x1008d9d8
mov eax, dword [edi + 0x10]
xor eax, dword [esp + 0x14]
mov edx, dword [edi + 0x14]
xor edx, dword [esp + 0x10]
or edx, eax
je 0x1008d9ed
jmp 0x1008d9d8
cmp esi, 1
jbe 0x1008e2f2
cmp eax, ecx
jb 0x1008d9d4
xor edx, edx
div ecx
mov eax, edx
cmp eax, ebx
jne 0x1008d9de
mov edi, dword [edi]
test edi, edi
jne 0x1008d992
push dword [esp + 0x38]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1008e0e5
mov eax, dword [edi]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x18]
mov dword [esp + 0x20], eax
mov dword [edi + 0x18], 0
mov ebx, dword [esp + 0x24]
mov esi, dword [ebx + 0x20]
mov ecx, esi
shr ecx, 1
and ecx, 0x55555555
mov eax, esi
sub eax, ecx
mov ecx, 0x33333333
mov edx, eax
and edx, ecx
shr eax, 2
and eax, ecx
add eax, edx
mov ecx, eax
shr ecx, 4
add ecx, eax
and ecx, 0xf0f0f0f
imul eax, ecx, 0x1010101
shr eax, 0x18
mov dword [esp + 0x10], eax
cmp eax, 1
jbe 0x1008e260
mov edx, dword [esp + 0xc]
cmp edx, esi
jb 0x1008da57
mov eax, edx
xor edx, edx
div esi
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x14], eax
mov eax, dword [eax + edx*4]
mov ecx, eax
mov eax, dword [eax]
cmp eax, edi
jne 0x1008da61
lea eax, [ebx + 0x24]
cmp ecx, eax
mov dword [esp + 0xc], edx
je 0x1008da98
mov eax, dword [ecx + 4]
cmp dword [esp + 0x10], 1
jbe 0x1008e294
cmp eax, esi
jb 0x1008da8c
xor edx, edx
div esi
mov eax, edx
mov edx, dword [esp + 0xc]
cmp eax, edx
je 0x1008e117
mov eax, dword [esp + 0x18]
test eax, eax
je 0x1008dac8
mov ebx, dword [eax + 4]
cmp dword [esp + 0x10], 1
jbe 0x1008e29e
mov edx, ebx
cmp ebx, esi
jb 0x1008daba
mov eax, ebx
xor edx, edx
div esi
mov eax, dword [esp + 0xc]
cmp edx, eax
mov edx, eax
mov eax, dword [esp + 0x18]
je 0x1008dae0
mov eax, dword [esp + 0x14]
mov dword [eax + edx*4], 0
mov eax, dword [edi]
test eax, eax
je 0x1008e236
mov ebx, dword [eax + 4]
cmp dword [esp + 0x10], 1
mov dword [esp + 0x18], eax
jbe 0x1008e26e
cmp ebx, esi
jb 0x1008dafb
mov eax, ebx
xor edx, edx
div esi
mov ebx, edx
cmp ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
je 0x1008db11
mov eax, dword [edx + 0x1c]
mov dword [eax + ebx*4], ecx
mov eax, dword [edi]
mov dword [ecx], eax
mov dword [edi], 0
dec dword [edx + 0x28]
mov esi, dword [edi + 0x18]
test esi, esi
jne 0x1008e276
push edi
call fcn.100c1c31
add esp, 4
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x1c]
xor eax, dword [0x1013ad34]
mov ecx, dword [ecx + 0x18]
xor ecx, dword [0x1013ad30]
or ecx, eax
jne 0x1008db67
mov eax, dword [0x1013ad38]
mov edx, dword [esp + 0x20]
xor eax, dword [edx + 0x20]
mov ecx, dword [0x1013ad3c]
xor ecx, dword [edx + 0x24]
or ecx, eax
je 0x1008e06e
mov eax, dword [esp + 0x20]
movdqu xmm0, xmmword [eax + 8]
sub esp, 0x10
movdqu xmmword [esp], xmm0
call fcn.1007bf40
add esp, 0x10
mov ecx, eax
mov eax, dword [esp + 0x24]
mov esi, dword [eax + 0x34]
test esi, esi
je 0x1008e06e
mov ebx, dword [esp + 0x24]
add ebx, 0x30
mov edx, esi
shr edx, 1
and edx, 0x55555555
mov eax, esi
sub eax, edx
mov edx, 0x33333333
mov edi, eax
and edi, edx
shr eax, 2
and eax, edx
add eax, edi
mov edx, eax
shr edx, 4
add edx, eax
and edx, 0xf0f0f0f
imul edi, edx, 0x1010101
shr edi, 0x18
cmp edi, 1
jbe 0x1008e1cc
cmp ecx, esi
jb 0x1008e2d5
mov eax, ecx
xor edx, edx
div esi
mov dword [esp + 0x24], ebx
mov eax, dword [ebx]
mov dword [esp + 0x1c], edx
mov eax, dword [eax + edx*4]
test eax, eax
je 0x1008e06e
mov eax, dword [eax]
mov dword [esp + 0xc], eax
test eax, eax
je 0x1008e06e
lea eax, [esi - 1]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 8]
mov dword [esp + 0x18], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x10], edx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x14], edx
mov ebx, dword [eax + 0x10]
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 4]
cmp eax, ecx
jne 0x1008dc5c
mov eax, dword [edx + 8]
xor eax, dword [esp + 0x18]
mov edx, dword [edx + 0xc]
xor edx, dword [esp + 0x10]
or edx, eax
jne 0x1008dc79
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x10]
xor eax, ebx
mov edx, dword [edx + 0x14]
xor edx, dword [esp + 0x14]
or edx, eax
je 0x1008dc8c
jmp 0x1008dc79
cmp edi, 1
jbe 0x1008e21b
cmp eax, esi
jb 0x1008dc6f
xor edx, edx
div esi
mov eax, edx
cmp eax, dword [esp + 0x1c]
jne 0x1008e06e
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
test eax, eax
jne 0x1008dc29
jmp 0x1008e06e
mov eax, dword [esp + 0x20]
movdqu xmm0, xmmword [eax + 0x18]
sub esp, 0x10
movdqu xmmword [esp], xmm0
call fcn.1007bf40
add esp, 0x10
mov ecx, eax
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 0x1c]
test esi, esi
je 0x1008e06e
mov edx, esi
shr edx, 1
and edx, 0x55555555
mov eax, esi
sub eax, edx
mov edx, 0x33333333
mov edi, eax
and edi, edx
shr eax, 2
and eax, edx
add eax, edi
mov edx, eax
shr edx, 4
add edx, eax
and edx, 0xf0f0f0f
imul edi, edx, 0x1010101
shr edi, 0x18
cmp edi, 1
jbe 0x1008e1d6
cmp ecx, esi
jb 0x1008e2dc
mov eax, ecx
xor edx, edx
div esi
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x30], edx
mov eax, dword [eax + edx*4]
test eax, eax
je 0x1008e06e
mov ebx, dword [eax]
test ebx, ebx
je 0x1008e06e
lea eax, [esi - 1]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x18]
mov dword [esp + 0x10], edx
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x14], edx
mov edx, dword [eax + 0x24]
mov dword [esp + 0x1c], edx
mov eax, dword [eax + 0x20]
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 4]
cmp eax, ecx
mov dword [esp + 0x18], ebx
jne 0x1008e178
mov eax, dword [ebx + 8]
xor eax, dword [esp + 0x10]
mov edx, dword [ebx + 0xc]
xor edx, dword [esp + 0x14]
or edx, eax
jne 0x1008e199
mov eax, dword [ebx + 0x10]
xor eax, dword [esp + 0x28]
mov edx, dword [ebx + 0x14]
xor edx, dword [esp + 0x1c]
or edx, eax
jne 0x1008e199
mov edx, dword [ebx + 0x1c]
mov edi, dword [ebx + 0x20]
mov ecx, edi
mov eax, edi
mov esi, edi
mov dword [esp + 0x10], edi
sub ecx, edx
mov dword [esp + 0x14], edx
je 0x1008deae
sar ecx, 3
imul edi, ecx, 0xcccccccd
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [esp + 0x28], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x2c], ecx
mov eax, dword [eax + 8]
mov dword [esp + 0x34], eax
mov esi, edx
mov ecx, edi
mov dword [esp + 0x3c], edi
shr ecx, 1
mov dword [esp + 0x1c], ecx
lea eax, [ecx + ecx*4]
mov dword [esp + 0x40], esi
lea ebx, [esi + eax*8]
mov edx, dword [ebx]
mov edi, dword [ebx + 4]
mov esi, dword [esp + 0x28]
cmp edx, esi
mov eax, edi
mov ecx, dword [esp + 0x30]
sbb eax, ecx
mov eax, 0
sbb eax, eax
xor edi, ecx
xor edx, esi
or edx, edi
jne 0x1008de54
mov eax, dword [ebx + 8]
mov edi, dword [ebx + 0xc]
mov ecx, dword [esp + 0x34]
cmp eax, ecx
mov edx, edi
mov esi, dword [esp + 0x2c]
sbb edx, esi
mov edx, 0
sbb edx, edx
or dl, 1
xor edi, esi
xor eax, ecx
or eax, edi
movzx eax, dl
mov ecx, 0
cmove eax, ecx
test al, al
mov ecx, dword [esp + 0x1c]
js 0x1008de3d
mov esi, dword [esp + 0x40]
jmp 0x1008de48
add ebx, 0x28
not ecx
add ecx, dword [esp + 0x3c]
mov esi, ebx
mov edi, ecx
test ecx, ecx
jne 0x1008ddca
jmp 0x1008de58
or al, 1
jmp 0x1008de2f
cmp esi, dword [esp + 0x10]
je 0x1008e2e3
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov edi, dword [esp + 0x28]
cmp edi, ecx
mov ebx, dword [esp + 0x30]
mov eax, ebx
sbb eax, edx
setb al
xor ebx, edx
xor edi, ecx
or edi, ebx
jne 0x1008de9f
mov ebx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0x34]
cmp ecx, ebx
mov edi, dword [esp + 0x2c]
mov eax, edi
sbb eax, edx
setb al
xor edi, edx
xor ecx, ebx
or ecx, edi
je 0x1008dea7
test al, al
jne 0x1008e2fb
lea edi, [esi + 0x28]
mov eax, dword [esp + 0x14]
sub esi, eax
mov ecx, esi
sar ecx, 3
imul edx, ecx, 0xcccccccd
sub edi, eax
mov eax, edi
sar eax, 3
imul eax, eax, 0xcccccccd
cmp eax, edx
jl 0x1008e2a8
mov ecx, dword [esp + 0x10]
je 0x1008e2c6
mov ebx, dword [esp + 0x14]
add esi, ebx
add edi, ebx
cmp edi, ecx
jne 0x1008e120
cmp ecx, esi
je 0x1008deff
lea edi, [ecx - 0x28]
add ecx, 0xffffffe8
call fcn.10094ce0
mov ecx, edi
cmp edi, esi
jne 0x1008deee
mov ebx, dword [esp + 0x18]
mov dword [ebx + 0x20], esi
mov eax, dword [ebx + 0x1c]
cmp eax, esi
mov edi, dword [esp + 0xc]
jne 0x1008e064
mov esi, dword [edi + 0x1c]
mov ecx, esi
shr ecx, 1
and ecx, 0x55555555
mov eax, esi
sub eax, ecx
mov ecx, 0x33333333
mov edx, eax
and edx, ecx
shr eax, 2
and eax, ecx
mov ecx, dword [ebx]
mov dword [esp + 0x14], ecx
add eax, edx
mov edx, eax
shr edx, 4
add edx, eax
mov ecx, dword [ebx + 4]
and edx, 0xf0f0f0f
imul eax, edx, 0x1010101
shr eax, 0x18
mov dword [esp + 0x10], eax
cmp eax, 1
jbe 0x1008e1e0
cmp ecx, esi
jb 0x1008df6e
mov eax, ecx
xor edx, edx
div esi
mov ecx, edx
mov eax, dword [edi + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [eax + ecx*4]
mov edi, eax
mov eax, dword [eax]
cmp eax, ebx
jne 0x1008df78
mov eax, dword [esp + 0xc]
add eax, 0x20
cmp edi, eax
je 0x1008dfab
mov eax, dword [edi + 4]
cmp dword [esp + 0x10], 1
jbe 0x1008e241
cmp eax, esi
jb 0x1008dfa3
xor edx, edx
div esi
mov eax, edx
cmp eax, ecx
je 0x1008e1a8
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1008dfd5
mov ebx, dword [eax + 4]
cmp dword [esp + 0x10], 1
jbe 0x1008e22c
mov edx, ebx
cmp ebx, esi
jb 0x1008dfd1
mov eax, ebx
xor edx, edx
div esi
mov eax, dword [esp + 0x14]
cmp edx, ecx
je 0x1008dff1
mov eax, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x1008e1bd
mov ebx, dword [eax + 4]
cmp dword [esp + 0x10], 1
jbe 0x1008e224
mov dword [esp + 0x10], edi
mov edi, ecx
mov ecx, eax
cmp ebx, esi
jb 0x1008e010
mov eax, ebx
xor edx, edx
div esi
mov ebx, edx
mov eax, ecx
mov ecx, edi
mov edi, dword [esp + 0x10]
cmp ebx, ecx
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x18]
je 0x1008e02c
mov eax, dword [ecx + 0x18]
mov dword [eax + ebx*4], edi
mov eax, dword [edx]
mov dword [edi], eax
mov dword [edx], 0
dec dword [ecx + 0x24]
mov esi, dword [edx + 0x1c]
test esi, esi
mov edi, ecx
mov ebx, edx
je 0x1008e05b
mov ecx, dword [ebx + 0x20]
mov eax, esi
cmp ecx, esi
jne 0x1008e0fa
mov dword [ebx + 0x20], esi
push eax
call fcn.100c1c31
add esp, 4
push ebx
call fcn.100c1c31
add esp, 4
cmp dword [edi + 0x24], 0
je 0x1008e1ea
push dword [esp + 0x38]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
xor eax, eax
lea ecx, [esp + 0x6c]
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
xor ebx, ebx
dec ebx
lea esi, [esp + 0x50]
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], ebx
pcmpeqd xmm0, xmm0
movdqa xmmword [esi], xmm0
mov ecx, esi
push dword [esp + 0x20]
push dword [ebp + 8]
call fcn.10094d30
lea edi, [esp + 0x44]
mov dword [edi], ebx
mov dword [edi + 4], ebx
mov dword [edi + 8], ebx
mov ecx, edi
push esi
call fcn.10094680
mov eax, dword [edi]
mov ecx, 0x88
add ecx, dword [eax + 0x10]
lea ebx, [esp + 0x6c]
push ebx
call fcn.100a9400
mov ecx, edi
call fcn.100946f0
mov ecx, esi
call fcn.10094ce0
mov esi, dword [ebx]
test esi, esi
jne 0x1008e158
mov ecx, dword [esp + 0x78]
xor ecx, ebp
call fcn.100c2603
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
lea edi, [ecx - 0x28]
add ecx, 0xffffffe8
call fcn.10094ce0
mov ecx, edi
cmp edi, esi
jne 0x1008e0fa
mov eax, dword [ebx + 0x1c]
mov edi, dword [esp + 0xc]
jmp 0x1008e04f
mov eax, dword [esp + 0x18]
jmp 0x1008dad5
lea eax, [edx + edx*4]
lea ebx, [ebx + eax*8]
add ebx, 0x10
movdqu xmm0, xmmword [edi]
movdqu xmmword [ebx - 0x10], xmm0
lea eax, [edi + 0x10]
mov ecx, ebx
push eax
call fcn.10094d90
add edi, 0x28
add esi, 0x28
add ebx, 0x28
cmp edi, dword [esp + 0x10]
jne 0x1008e129
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x20]
jmp 0x1008deea
mov edi, dword [esp + 0x70]
mov eax, esi
cmp edi, esi
jne 0x1008e306
mov dword [esp + 0x70], esi
push eax
call fcn.100c1c31
add esp, 4
jmp 0x1008e0e5
cmp edi, 1
jbe 0x1008e24b
cmp eax, esi
jb 0x1008e18b
xor edx, edx
div esi
mov eax, edx
cmp eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x18]
jne 0x1008e06e
mov ebx, dword [ebx]
test ebx, ebx
jne 0x1008dd48
jmp 0x1008e06e
mov eax, dword [esp + 0x14]
jmp 0x1008dfe6
mov ecx, edi
call fcn.10084100
jmp 0x1008d8e1
xor eax, eax
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x18]
jmp 0x1008e02c
lea edx, [esi - 1]
and edx, ecx
jmp 0x1008dbe3
lea edx, [esi - 1]
and edx, ecx
jmp 0x1008dd01
lea eax, [esi - 1]
and ecx, eax
jmp 0x1008df6e
lea esi, [esp + 0x50]
mov ecx, dword [esp + 0x24]
push dword [esp + 0xc]
push esi
call fcn.10041770
mov eax, dword [esi]
mov dword [esi], 0
test eax, eax
je 0x1008e06e
lea ecx, [esp + 0x54]
push eax
call fcn.10040bb0
jmp 0x1008e06e
and eax, dword [esp + 0x28]
jmp 0x1008dc6f
dec esi
and ebx, esi
jmp 0x1008e018
lea edx, [esi - 1]
and edx, ebx
jmp 0x1008dfd1
xor eax, eax
mov edx, dword [esp + 0x24]
jmp 0x1008db11
lea edx, [esi - 1]
and eax, edx
jmp 0x1008dfa3
and eax, dword [esp + 0x2c]
jmp 0x1008e18b
lea ebx, [ecx - 1]
and ebx, dword [esp + 0xc]
jmp 0x1008d959
lea eax, [esi - 1]
mov edx, dword [esp + 0xc]
and edx, eax
jmp 0x1008da57
dec esi
and ebx, esi
jmp 0x1008dafb
lock dec dword [esi]
jne 0x1008db27
mov ecx, esi
call fcn.100a84e0
push esi
call fcn.100c1c31
add esp, 4
jmp 0x1008db27
lea edx, [esi - 1]
and eax, edx
jmp 0x1008da8c
lea edx, [esi - 1]
and edx, ebx
jmp 0x1008daba
push str.vector::erase_first__last__called_with_invalid_range
push str.__first_____last
push 0x644
push str....._buildtools_third_partylibc_trunkinclude_vector
push str._s:_d:_assertion__s_failed:__s
call fcn.100f2480
mov esi, ecx
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
jmp 0x1008df09
mov edx, ecx
jmp 0x1008dbe3
mov edx, ecx
jmp 0x1008dd01
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov esi, edi
jmp 0x1008deae
and eax, dword [esp + 0x1c]
jmp 0x1008d9d4
mov eax, dword [esp + 0x14]
mov edi, esi
jmp 0x1008deae
add edi, 0xfffffffc
push edi
call fcn.100942d0
add esp, 4
cmp edi, esi
jne 0x1008e306
mov eax, dword [esp + 0x6c]
jmp 0x1008e166