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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x44
mov dword [esp + 0x30], ecx
mov cl, 1
xor eax, eax
mov ebx, edx
lea ebp, [edx + 0x28]
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
lock cmpxchg byte [edx + 0x28], cl
jne 0x607dc0
cmp byte [ebx + 0x78], 0
je 0x607ce8
lock sub dword [esi], 0x40
jb 0x6081e7
mov eax, dword [esi + 8]
push esi
call dword [eax + 0x18]
add esp, 4
mov eax, dword [esp + 0x30]
mov byte [eax], 4
jmp 0x60813d
mov ecx, dword [ebx + 0x34]
mov eax, dword [ebx + 0x3c]
mov dword [esp + 4], ebp
cmp eax, ecx
jne 0x607d04
lea ecx, [ebx + 0x30]
call fcn.0060727b
mov ecx, dword [ebx + 0x34]
mov eax, dword [ebx + 0x3c]
mov edx, dword [ebx + 0x38]
xor ebp, ebp
add edx, eax
cmp edx, ecx
cmovae ebp, ecx
inc eax
sub edx, ebp
mov ebp, dword [ebx + 0x30]
mov dword [ebp + edx*8], esi
mov byte [ebp + edx*8 + 4], 1
mov dword [ebx + 0x3c], eax
lock inc dword [ebx + 0xa0]
mov eax, dword [ebx + 0x9c]
test eax, eax
je 0x607d61
lock dec dword [ebx + 0x9c]
inc dword [ebx + 0x60]
mov edx, dword [ebx + 0x90]
mov ebp, dword [esp + 4]
test edx, edx
je 0x608136
add ebx, 0x90
mov ecx, ebx
call fcn.0065401d
jmp 0x608136
mov eax, dword [ebx + 0x98]
mov ebp, dword [esp + 4]
cmp eax, dword [ebx + 0x94]
je 0x608136
mov ebp, dword [ebx + 0x64]
test ebp, ebp
je 0x608204
lock inc dword [ebp]
jle 0x608200
mov ecx, dword [ebx + 0x24]
mov eax, dword [ebx + 0x20]
mov esi, dword [ebx + 0x74]
mov edx, dword [ecx + 8]
dec edx
and edx, 0xfffffff8
lea eax, [edx + eax + 8]
lea edx, [esp + 0x18]
push eax
push edx
call dword [ecx + 0x14]
add esp, 8
mov ecx, dword [ebx + 8]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x14], ebp
test ecx, ecx
je 0x607dcc
mov eax, dword [ebx + 0xc]
jmp 0x607dcc
mov ecx, ebp
call fcn.0065481c
jmp 0x607cc2
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
cmp dword [edi], 0
mov dword [esp], edx
je 0x607df5
mov edi, dword [edi + 4]
lock inc dword [edi]
jle 0x608200
xor edx, edx
inc edx
mov dword [esp + 8], edx
jmp 0x607e09
mov edi, dword [edi + 4]
mov dword [esp + 8], 0
lock inc dword [edi]
jle 0x608200
test ecx, ecx
jne 0x607e12
call fcn.005ba5a0
test ebp, ebp
mov dword [esp + 0x10], eax
je 0x607e3a
cmp esi, 8
jae 0x607e3e
xor edx, edx
test esi, esi
je 0x607e4d
xor eax, eax
inc eax
cmp byte [ebp + edx], 0
je 0x607e4f
inc edx
cmp esi, edx
jne 0x607e28
xor eax, eax
mov edx, esi
jmp 0x607e4f
xor ecx, ecx
jmp 0x607e6d
mov edx, ebp
xor ecx, ecx
push esi
call fcn.004aaa80
add esp, 4
jmp 0x607e4f
xor eax, eax
test eax, eax
jne 0x608232
mov eax, dword [esp]
lea ecx, [esp + 0x18]
mov dword [ecx], ebp
mov dword [ecx + 4], eax
mov dword [ecx + 8], esi
call fcn.00498ab0
mov ecx, eax
call fcn.005a31f0
lock inc dword [eax]
jle 0x608200
mov esi, eax
mov al, byte [0x803894]
mov ecx, 0x18
mov edx, 4
call fcn.004889b0
test eax, eax
je 0x608215
mov ebp, eax
xor eax, eax
mov dword [esp + 0x28], edi
inc eax
mov dword [ebp], eax
mov dword [ebp + 4], eax
xor eax, eax
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], eax
mov dword [esp + 0x34], ebp
lock inc dword [ebp]
jle 0x608200
xor ecx, ecx
call fcn.005b0f00
mov edi, eax
test eax, eax
je 0x607ed8
lock inc dword [edi]
jle 0x608200
mov ecx, edi
jmp 0x607eda
xor ecx, ecx
call fcn.005b0f00
test eax, eax
mov dword [esp], esi
je 0x607ef2
lock dec dword [eax]
jne 0x607ef2
mov ecx, eax
call fcn.005b10f0
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 8]
mov dword [esp + 0xc], eax
test ecx, ecx
je 0x607f09
add ecx, 8
call fcn.005a6010
mov al, byte [0x803894]
mov ecx, 0x1c
mov edx, 4
call fcn.004889b0
test eax, eax
je 0x608221
mov esi, dword [esp]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
mov dword [eax], esi
mov dword [eax + 4], ebp
mov dword [eax + 8], edi
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
lea edi, [esp + 0x18]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], ebp
mov ecx, edi
push 0x7c8b24
push eax
call fcn.005ba920
add esp, 8
movzx edi, byte [edi]
cmp edi, 4
jne 0x608082
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x38], esi
mov eax, ebp
lock inc dword [ebx + 0x98]
inc dword [ebx + 0x74]
mov ebp, dword [ebx + 0x50]
mov edx, dword [ebx + 0x54]
mov esi, dword [ebx + 0x58]
mov edi, dword [ebx + 0x5c]
mov ecx, ebp
mov dword [esp], edx
push eax
push edi
push esi
call fcn.00603aec
add esp, 0xc
cmp dword [ebx + 0x48], 0
je 0x60816d
mov esi, dword [ebx + 0x44]
mov edi, dword [ebx + 0x40]
pcmpeqd xmm1, xmm1
mov dword [esp], esi
and esi, eax
shr eax, 0x19
lea ecx, [edi - 0x10]
movd xmm0, eax
mov dword [esp + 0x28], eax
mov dword [esp + 8], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edi
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqu xmm2, xmmword [edi + esi]
movdqa xmm3, xmm2
pcmpeqb xmm3, xmm0
pmovmskb edx, xmm3
test dx, dx
je 0x608030
bsf ebp, edx
lea eax, [edx - 1]
mov edi, ecx
add ebp, esi
and eax, edx
and ebp, dword [esp]
mov edx, ebp
shl edx, 4
sub edi, edx
mov edx, dword [esp + 0x2c]
cmp dword [edi], edx
mov edx, eax
jne 0x608006
jmp 0x6080f1
cmp dword [esp + 0x10], 1
mov edx, 1
je 0x608053
pmovmskb eax, xmm2
xor edx, edx
test eax, eax
setne dl
bsf eax, eax
add eax, esi
and eax, dword [esp]
mov dword [esp + 0xc], eax
mov edi, dword [esp + 0x14]
pcmpeqb xmm2, xmm1
pmovmskb eax, xmm2
test eax, eax
jne 0x608189
mov dword [esp + 0x10], edx
mov eax, dword [esp + 8]
lea esi, [esi + eax + 0x10]
add eax, 0x10
mov dword [esp + 8], eax
and esi, dword [esp]
jmp 0x607ff5
movzx ebp, byte [esp + 0x1b]
movzx eax, word [esp + 0x19]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x1c]
shl eax, 8
shl ebp, 0x18
or ebp, eax
lock dec dword [ecx]
jne 0x6080aa
lea ecx, [esp + 0x34]
call fcn.00602b3f
mov ecx, dword [esp]
or ebp, edi
lock dec dword [ecx]
jne 0x6080b9
call fcn.004e3475
lea edi, [esp + 0x3c]
mov ecx, edi
mov dword [edi], ebp
mov dword [edi + 4], esi
mov dword [edi - 4], 0
call fcn.004ba6c0
cmp al, 0xd
jne 0x60815e
mov eax, dword [ebx + 0x98]
test eax, eax
je 0x60815e
push edi
call fcn.005fa901
add esp, 4
mov ebp, dword [esp + 4]
jmp 0x608136
mov ecx, dword [esp + 0x14]
neg ebp
shl ebp, 4
mov eax, dword [ecx + ebp - 4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x40]
movsd xmm0, qword [ecx + ebp - 0xc]
movsd qword [esp + 0x18], xmm0
mov dword [ecx + ebp - 4], eax
movsd xmm0, qword [esp + 0x38]
movsd qword [ecx + ebp - 0xc], xmm0
mov ebp, dword [esp + 4]
cmp dword [esp + 0x18], 0
je 0x608136
lea ecx, [esp + 0x18]
call fcn.00602a6d
mov eax, dword [esp + 0x30]
mov byte [eax], 5
xor ecx, ecx
mov al, 1
lock cmpxchg byte [ebp], cl
jne 0x608150
add esp, 0x44
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, ebp
add esp, 0x44
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.006545f5
mov eax, dword [esp + 0x30]
mov dword [eax], ebp
mov ebp, dword [esp + 4]
mov dword [eax + 4], esi
jmp 0x60813d
lea ecx, [ebx + 0x40]
mov edx, ebp
push edi
push esi
push dword [esp + 8]
mov esi, eax
call fcn.006601b7
mov eax, esi
add esp, 0xc
jmp 0x607fb6
mov esi, dword [esp + 0xc]
mov dl, byte [edi + esi]
test dl, dl
js 0x6081a2
movdqa xmm0, xmmword [edi]
pmovmskb eax, xmm0
bsf esi, eax
mov dl, byte [edi + esi]
and dl, 1
mov ecx, dword [esp + 0x28]
movzx eax, dl
sub dword [ebx + 0x48], eax
lea eax, [esi - 0x10]
and eax, dword [esp]
mov byte [edi + esi], cl
shl esi, 4
mov byte [eax + edi + 0x10], cl
mov ecx, dword [esp + 0x2c]
mov eax, edi
inc dword [ebx + 0x4c]
sub eax, esi
neg esi
mov dword [eax - 0x10], ecx
movsd xmm0, qword [esp + 0x38]
movsd qword [edi + esi - 0xc], xmm0
mov ecx, dword [esp + 0x40]
mov dword [eax - 4], ecx
jmp 0x6080eb
mov ecx, str.assertion_failed:_prev.ref_count_____1
mov edx, 0x27
push 0x7cabd4
call fcn.006522d0
add esp, 4
ud2
ud2
mov ecx, str.assertion_failed:_shared.shutdown_tx.is_some__C:UsersNop.cargo_registry_srcindex.crates.io_1cd66030c949c28d_tokio_1.34.0_src_runtime_blockingpool.rs
mov edx, 0x2e
push 0x7cad68
jmp 0x6081f6
mov ecx, 4
mov edx, 0x18
jmp 0x60822b
mov ecx, 4
mov edx, 0x1c
call fcn.00651860
ud2
mov eax, dword [esp]
mov dword [esp + 0x18], ebp
mov ecx, str.thread_name_may_not_contain_interior_null_bytes
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edx
mov edx, 0x2f
push 0x7c8b14
push 0x7c8d34
lea eax, [esp + 0x20]
push eax
call fcn.006525c0
add esp, 0xc
ud2