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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd8
mov edi, edx
mov esi, ecx
call sym.std::sys_common::thread_info::current_thread::hfec4a4a0a13df32d
mov ebx, eax
test eax, eax
je 0x100a6a87
lock dec byte [ebx + 0x18]
je 0x100a6a73
mov eax, dword [ebp + 8]
mov dword [esp + 8], eax
mov eax, ebx
add eax, 0x18
mov dword [esp + 0x2c], eax
mov eax, dword [0x1022a108]
mov dword [esp + 0x38], ebx
test eax, eax
je 0x100a6556
mov dword [esp + 4], eax
mov ecx, 0x3e8
mov eax, edi
mul ecx
mov edi, eax
mov eax, esi
seto bl
mul ecx
mov esi, edx
mov ecx, eax
add esi, edi
setb al
or al, bl
jne 0x100a6531
mov eax, dword [ebp + 8]
mov edx, 0x431bde83
mul edx
shr edx, 0x12
add ecx, edx
adc esi, 0
jb 0x100a6531
imul eax, edx, 0xf4240
xor edx, edx
sub dword [esp + 8], eax
setne dl
xor eax, eax
add ecx, edx
adc esi, 0
setb dl
neg esi
sbb eax, eax
test dl, dl
je 0x100a65a2
mov eax, 0xffffffff
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 4]
push eax
push 1
push 0x101c0c48
push esi
call ecx
xor eax, eax
xchg byte [esi], al
mov ebx, dword [esp + 0x38]
jmp 0x100a6a73
mov eax, dword [0x10163184]
cmp eax, 0xffffffff
mov dword [esp + 0x28], eax
jne 0x100a65b8
mov dword [esp + 0x4c], 0xffffffff
mov eax, dword [sym.__ZN3std3sys7windows1c18NtCreateKeyedEvent4load17h6799fb2b30fc1d6eE_16]
lea ecx, [esp + 0x4c]
push 0
push 0
push 0xc0000000
push ecx
call eax
test eax, eax
jne 0x100a6aa0
mov ecx, dword [esp + 0x4c]
mov eax, 0xffffffff
lock cmpxchg dword [0x10163184], ecx
jne 0x100a65a6
mov dword [esp + 0x28], ecx
jmp 0x100a65b8
or eax, ecx
jmp 0x100a6536
push ecx
mov dword [esp + 8], eax
call sub.kernel32.dll_CloseHandle
mov eax, dword [esp + 4]
mov dword [esp + 0x28], eax
mov ebx, 0x3b9aca00
mov eax, esi
mul ebx
mov esi, eax
mov eax, edi
mov ecx, edx
mul ebx
add eax, ecx
mov ecx, 0xffffff9c
adc edx, 0
add esi, dword [ebp + 8]
adc eax, 0
adc edx, 0
setb bl
cmp ecx, esi
mov ecx, 0xffffffff
sbb ecx, eax
mov ecx, 0x31
movzx edi, bl
sbb ecx, edx
mov ecx, 0
sbb ecx, edi
jb 0x100a67dd
mov dword [esp + 0x24], esi
add esi, 0x63
mov ebx, eax
mov ecx, edi
mov edi, eax
mov edi, edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
adc ebx, 0
mov eax, ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 4], esi
adc edi, 0
mov ecx, ebx
adc eax, 0
or esi, edi
mov dword [esp + 0xc], edi
or ecx, eax
mov dword [esp + 0x14], eax
or esi, ecx
sete byte [esp + 8]
bsr edx, edi
bsr esi, eax
xor edx, 0x1f
xor esi, 0x1f
add edx, 0x20
test eax, eax
cmovne edx, esi
bsr esi, dword [esp + 4]
bsr ecx, ebx
xor ecx, 0x1f
xor esi, 0x1f
add esi, 0x20
test ebx, ebx
cmovne esi, ecx
mov ecx, edi
mov edi, 0
add esi, 0x40
or ecx, eax
mov eax, 0
mov ecx, 0x7f
cmovne esi, edx
mov edx, 0x79
sub edx, esi
mov esi, 0
sbb edi, edi
sbb eax, eax
sbb esi, esi
cmp ecx, edx
mov ecx, 0
mov dword [esp + 0x1c], eax
sbb ecx, edi
mov ecx, 0
sbb ecx, eax
mov ecx, 0
mov eax, esi
sbb ecx, esi
mov esi, 0
setb cl
or cl, byte [esp + 8]
mov ecx, ebx
mov dword [esp + 8], ebx
mov ebx, dword [esp + 4]
cmovne ecx, esi
cmovne ebx, esi
jne 0x100a69f2
mov dword [esp + 0x10], ecx
mov ecx, edx
mov dword [esp + 0x18], edx
mov edx, edi
mov esi, dword [esp + 0x24]
xor ecx, 0x7f
or edx, eax
or ecx, dword [esp + 0x1c]
or edx, ecx
mov ecx, dword [esp + 0x10]
je 0x100a69f6
mov dword [esp + 0x20], eax
mov eax, dword [esp + 4]
mov dword [esp + 0xc4], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xcc], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc0], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xd0], ecx
mov ebx, dword [esp + 0x18]
mov ecx, ebx
xor cl, 0x7f
mov ch, cl
shr cl, 3
and cl, 0xf
and ch, 7
neg cl
movsx edx, cl
mov cl, ch
mov eax, dword [esp + edx + 0xcc]
mov esi, dword [esp + edx + 0xd0]
shld esi, eax, cl
shl eax, cl
not cl
mov dword [esp + 0x48], esi
mov dword [esp + 0x30], eax
mov eax, dword [esp + edx + 0xc8]
mov esi, dword [esp + edx + 0xc4]
mov edx, eax
shr edx, 1
shr edx, cl
mov cl, ch
shld eax, esi, cl
shl esi, cl
add ebx, 1
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x1c]
adc edi, 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x34], edi
adc ebx, 0
adc ecx, 0
jae 0x100a67e2
mov dword [esp + 4], 0
mov dword [esp + 0xc], 0
jmp 0x100a69de
jmp 0x100a6a06
mov eax, dword [esp + 4]
or dword [esp + 0x30], edx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x18]
mov ch, al
shr al, 3
and al, 0xf
and ch, 7
movzx edx, al
mov cl, ch
mov edi, dword [esp + edx + 0x9c]
mov eax, dword [esp + edx + 0xa0]
mov ebx, edi
add edi, edi
shrd ebx, eax, cl
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + edx + 0x98]
mov dword [esp + 0x14], esi
mov esi, ebx
shr esi, cl
not cl
shl edi, cl
mov cl, ch
or edi, esi
shr eax, cl
mov esi, dword [esp + 0x14]
mov dword [esp + 0x44], edi
mov edi, 0x64
mov edx, dword [esp + edx + 0x94]
mov dword [esp + 4], 0
mov dword [esp + 0xc], 0
shrd edx, ebx, cl
add edi, 0xffffffff
mov dword [esp + 0x3c], edx
mov edx, 0
mov dword [esp + 0x68], edi
mov edi, 0
adc edx, 0xffffffff
adc edi, 0xffffffff
mov dword [esp + 0x64], edx
mov edx, 0
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x34]
adc edx, 0xffffffff
mov dword [esp + 0x5c], edx
nop word cs:[eax + eax]
nop
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x48]
mov ecx, dword [esp + 0x30]
shld eax, edi, 1
shld edi, edx, 1
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
shld edx, eax, 1
shld eax, ebx, 1
shld ebx, ecx, 1
or ebx, dword [esp + 4]
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x10]
shld ecx, ebx, 1
shld ebx, esi, 1
add esi, esi
or ecx, dword [esp + 4]
or ebx, dword [esp + 4]
or esi, dword [esp + 0xc]
cmp dword [esp + 0x68], eax
mov dword [esp + 4], 0
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 8]
mov dword [esp + 0x14], esi
sbb ecx, edx
mov ecx, dword [esp + 0x60]
sbb ecx, edi
mov ecx, dword [esp + 0x5c]
sbb ecx, ebx
sar ecx, 0x1f
mov esi, ecx
and esi, 1
mov dword [esp + 0xc], esi
mov esi, 0x64
and ecx, esi
mov esi, dword [esp + 0x18]
sub eax, ecx
sbb edx, 0
mov dword [esp + 0x3c], eax
mov eax, ebx
sbb edi, 0
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x20]
sbb eax, 0
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x34]
add esi, 0xffffffff
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], esi
adc edi, 0xffffffff
adc eax, 0xffffffff
mov ecx, edi
adc edx, 0xffffffff
or esi, eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 8]
or ecx, edx
mov dword [esp + 0x20], edx
or esi, ecx
mov esi, dword [esp + 0x14]
jne 0x100a68f0
mov ecx, dword [esp + 0x10]
shld ecx, esi, 1
add esi, esi
or esi, dword [esp + 0xc]
or ecx, dword [esp + 4]
mov ebx, esi
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x10], ecx
neg ebx
mov ecx, 0
sbb ecx, dword [esp + 0x10]
cmp esi, 0xffffff9d
sbb eax, 0xffffffff
mov eax, 0
sbb edx, 0x31
sbb edi, 0
mov dword [esp + 4], ecx
mov ecx, 0x80000000
cmovae ebx, eax
cmovb ecx, dword [esp + 4]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ecx
mov eax, dword [sym.__ZN3std3sys7windows1c19NtWaitForKeyedEvent4load17h07b09b7114084cc8E_16]
lea ecx, [esp + 0x70]
push ecx
push 0
mov esi, dword [esp + 0x34]
push esi
mov edi, dword [esp + 0x34]
push edi
call eax
test eax, eax
mov eax, 0
xchg byte [esi], al
mov ebx, dword [esp + 0x38]
je 0x100a6a73
cmp al, 1
jne 0x100a6a73
mov eax, dword [sym.__ZN3std3sys7windows1c19NtWaitForKeyedEvent4load17h07b09b7114084cc8E_16]
push 0
push 0
push esi
push edi
call eax
lock dec dword [ebx]
jne 0x100a6a7f
mov ecx, ebx
call dbg.drop_slow<std::thread::Inner, alloc::alloc::Global>
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, 0x5e
mov ecx, 0x101c1348
push 0x101c13a8
call dbg.expect_failed
add esp, 4
jmp 0x100a6b0b
lea edi, [esp + 0x6c]
lea esi, [esp + 0x8c]
mov dword [esp + 0x70], 0x101c2d38
mov dword [esp + 0x74], 1
mov dword [esp + 0x80], 0
mov dword [esp + 0x6c], eax
mov dword [esp + 0x8c], edi
mov dword [esp + 0x78], esi
mov dword [esp + 0x90], sym.core::fmt::num::imp::__LT_impl_u20_core..fmt..Display_u20_for_u20_i32_GT_::fmt::hd11459f753a2f251
mov dword [esp + 0x7c], 1
lea ecx, [esp + 0x70]
mov edx, 0x101c2d70
call dbg.panic_fmt
jmp 0x100a6b0b
ud2