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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xffffffc0
sub esp, 0x180
movsd xmm1, qword [ecx + 0x20]
movsd xmm2, qword [ecx + 0x18]
mov eax, dword [ecx + 0x30]
movsd xmm0, qword [ecx + 0x28]
lea esi, [esp + 0x80]
lea edx, [esp + 0x48]
movsd qword [esp + 0x68], xmm1
movsd xmm1, qword [ecx + 0x10]
movsd qword [esp + 0x60], xmm2
movsd xmm2, qword [ecx]
mov dword [esp + 0x78], eax
movsd qword [esp + 0x70], xmm0
movsd qword [esp + 0x58], xmm1
movsd xmm1, qword [ecx + 8]
mov ecx, esi
movsd qword [esp + 0x48], xmm2
movsd qword [esp + 0x50], xmm1
call sym.__ZN117__LT_rayon_core..registry..WorkerThread_u20_as_u20_core..convert..From_LT_rayon_core..registry..ThreadBuilder_GT__GT_4f
call sym.std::sys::common::thread_local::os_local::Key_LT_T_GT_::get::h9a8ba225ee42ef50
test eax, eax
je 0x4695e8
cmp dword [eax], 0
jne 0x46960b
mov dword [eax], esi
mov esi, dword [esp + 0x10c]
mov ecx, dword [esp + 0x108]
mov edx, dword [esi + 0xf8]
cmp ecx, edx
jae 0x4695d0
mov ebx, dword [esi + 0xf0]
lea eax, [ecx + ecx*4]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x38], eax
lea edi, [ebx + eax*8 + 8]
push edi
call sub.kernel32.dll_AcquireSRWLockExclusive
mov eax, dword [0x5da168]
test eax, 0x7fffffff
jne 0x469524
mov dword [esp + 0x34], 0
movzx eax, byte [edi + 4]
test al, al
jne 0x46957e
mov eax, dword [esp + 0x38]
mov byte [edi + 5], 1
lea eax, [ebx + eax*8 + 0x10]
push eax
call sub.kernel32.dll_WakeAllConditionVariable
cmp byte [esp + 0x34], 0
jne 0x469385
mov eax, dword [0x5da168]
test eax, 0x7fffffff
jne 0x4695a4
push edi
call sub.kernel32.dll_ReleaseSRWLockExclusive
mov eax, dword [esi + 0xc8]
mov edi, dword [esp + 0x44]
test eax, eax
je 0x4693a7
mov ecx, dword [esi + 0xcc]
push edi
push eax
call dword [ecx + 0x14]
add esp, 8
mov edx, dword [esi + 0xf8]
cmp edi, edx
jae 0x4695d7
mov eax, dword [esi + 0xf0]
mov ecx, dword [esp + 0x38]
mov ecx, dword [eax + ecx*8]
cmp ecx, 3
jne 0x46953d
mov edx, dword [esi + 0xf8]
cmp edi, edx
jae 0x46955e
mov ebx, dword [esi + 0xf0]
mov eax, dword [esp + 0x38]
lea edi, [ebx + eax*8 + 0x14]
push edi
call sub.kernel32.dll_AcquireSRWLockExclusive
mov eax, dword [0x5da168]
test eax, 0x7fffffff
jne 0x469567
mov dword [esp + 0x34], 0
movzx eax, byte [edi + 4]
test al, al
jne 0x46957e
mov eax, dword [esp + 0x38]
mov byte [edi + 5], 1
lea eax, [ebx + eax*8 + 0x1c]
push eax
call sub.kernel32.dll_WakeAllConditionVariable
cmp byte [esp + 0x34], 0
jne 0x46943a
mov eax, dword [0x5da168]
test eax, 0x7fffffff
jne 0x4695ba
push edi
call sub.kernel32.dll_ReleaseSRWLockExclusive
mov eax, dword [esi + 0xd0]
test eax, eax
je 0x46945b
mov ecx, dword [esi + 0xd4]
push dword [esp + 0x44]
push eax
call dword [ecx + 0x14]
add esp, 8
call sym.std::sys::common::thread_local::os_local::Key_LT_T_GT_::get::h9a8ba225ee42ef50
test eax, eax
lea ecx, [esp + 0x80]
je 0x4695e8
cmp dword [eax], ecx
jne 0x46961c
mov dword [eax], 0
mov eax, dword [esp + 0x110]
lock dec dword [eax]
jne 0x469495
lea ecx, [esp + 0x110]
call sym.alloc::sync::Arc_LT_T_GT_::drop_slow::ha41ab0968137ee85
mov eax, dword [esp + 0x120]
lock dec dword [eax]
jne 0x4694ad
lea ecx, [esp + 0x120]
call sym.alloc::sync::Arc_LT_T_GT_::drop_slow::ha41ab0968137ee85
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0x80]
mov eax, dword [esp + 0x84]
and edi, 0xfffffffe
and esi, 0xfffffffe
cmp edi, esi
jne 0x469507
push eax
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0x10c]
lock dec dword [eax]
jne 0x4694f2
mov ecx, dword [esp + 0x10c]
call sym.alloc::sync::Arc_LT_T_GT_::drop_slow::hba302c01ffeb975b
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
add edi, 2
cmp esi, edi
je 0x4694cc
mov ecx, edi
not ecx
test cl, 0x7e
jne 0x469500
mov ebx, dword [eax]
push eax
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
mov eax, ebx
jmp 0x469500
call dbg.is_zero_slow_path
xor al, 1
mov dword [esp + 0x34], eax
movzx eax, byte [edi + 4]
test al, al
je 0x46935c
jmp 0x46957e
mov ecx, dword [esp + 0x38]
lea edx, [eax + ecx*8]
lea ecx, [esp + 0x80]
call sym.rayon_core::registry::WorkerThread::wait_until_cold::he6dbf704907f9b1a
mov edx, dword [esi + 0xf8]
cmp edi, edx
jb 0x4693d9
mov ecx, edi
push 0x569e3c
jmp 0x4695de
call dbg.is_zero_slow_path
xor al, 1
mov dword [esp + 0x34], eax
movzx eax, byte [edi + 4]
test al, al
je 0x469411
mov eax, dword [esp + 0x34]
mov dword [esp + 0x3c], edi
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
mov byte [esp + 0x40], al
lea eax, [esp + 0x3c]
push 0x5bd2f8
push 0x569d34
jmp 0x469600
call dbg.is_zero_slow_path
test al, al
jne 0x469385
mov byte [edi + 4], 1
jmp 0x469385
call dbg.is_zero_slow_path
test al, al
jne 0x46943a
mov byte [edi + 4], 1
jmp 0x46943a
push 0x569e1c
jmp 0x4695de
mov ecx, edi
push 0x569e2c
call dbg.panic_bounds_check
add esp, 4
ud2
lea eax, [esp + 0x3c]
mov ecx, 0x5bfdd0
mov edx, 0x46
push 0x5bfe68
push 0x569d14
push eax
call dbg.unwrap_failed
add esp, 0xc
ud2
mov ecx, str.assertion_failed:_t.get__.is_null__
mov edx, 0x23
push 0x569e0c
jmp 0x46962b
mov ecx, 0x569da4
mov edx, 0x31
push 0x569dd8
call dbg.panic
add esp, 4
ud2