Function at 0x466b20
Capabilities:
Get system information on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xffffffc0
sub esp, 0x2c0
mov eax, dword [ebp + 8]
call 0x466b37
pop edi
mov eax, dword [eax]
mov esi, dword [eax]
mov dword [eax], 0
test esi, esi
je 0x468a6f
lea ecx, [esp + 0x80]
mov edx, str.RAYON_NUM_THREADSRAYON_RS_NUM_CPUSThreadPoolBuildError
push 0x11
call dbg._var_os
add esp, 4
movzx eax, byte [esp + 0x8c]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x1c8], edi
cmp al, 2
je 0x466d09
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov esi, dword [esp + 0x88]
test al, al
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
je 0x466bd0
mov ecx, dword [esp + 4]
test ecx, ecx
je 0x466d09
test esi, esi
je 0x466c47
movzx eax, byte [ecx]
mov edx, esi
cmp eax, 0x2d
je 0x466c59
cmp eax, 0x2b
jne 0x466c5e
dec edx
je 0x466c47
inc ecx
jmp 0x466c5e
test esi, esi
je 0x466cc4
mov edx, dword [esp + 4]
mov eax, esi
lea eax, [edx + esi]
jmp 0x466bf6
add edx, 2
cmp ecx, eax
cmovne ecx, edx
nop dword [eax + eax]
cmp ecx, eax
mov edx, ecx
je 0x466b9c
movzx ebx, byte [edx]
lea ecx, [edx + 1]
test bl, bl
jns 0x466bf0
cmp bl, 0xe0
jb 0x466be3
cmp bl, 0xed
jne 0x466c26
cmp ecx, eax
je 0x466b9c
lea ecx, [edx + 2]
cmp ecx, eax
je 0x466b9c
cmp byte [edx + 1], 0x9f
ja 0x466cf0
add edx, 3
mov ecx, edx
jmp 0x466bf0
add edx, 2
cmp ecx, eax
cmove edx, ecx
xor ecx, ecx
cmp edx, eax
setne cl
add ecx, edx
cmp bl, 0xf0
jb 0x466bf0
xor edx, edx
cmp ecx, eax
setne dl
add ecx, edx
jmp 0x466bf0
xor ebx, ebx
cmp dword [esp + 8], 0
jne 0x466cd1
jmp 0x466cdf
cmp edx, 1
je 0x466cc4
xor edi, edi
cmp edx, 9
jae 0x466c8d
nop word cs:[eax + eax]
nop
movzx eax, byte [ecx]
add eax, 0xffffffd0
cmp eax, 9
ja 0x466cc4
mov esi, edx
lea edx, [edi + edi*4]
inc ecx
lea edi, [eax + edx*2]
mov edx, esi
dec edx
jne 0x466c70
mov bl, 1
jmp 0x466cc6
nop dword [eax]
test edx, edx
je 0x466c89
movzx ebx, byte [ecx]
mov dword [esp + 0xc], edx
mov eax, edi
mov edx, 0xa
mul edx
seto dl
add ebx, 0xffffffd0
cmp ebx, 0xa
cmovb esi, ebx
jae 0x466cc4
test dl, dl
jne 0x466cc4
mov edx, dword [esp + 0xc]
mov edi, eax
inc ecx
dec edx
add edi, esi
mov esi, ebx
jae 0x466c90
xor ebx, ebx
mov ecx, dword [esp + 4]
cmp dword [esp + 8], 0
je 0x466cdf
push ecx
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
test bl, bl
je 0x466d09
test edi, edi
jne 0x466e54
jmp 0x466e22
cmp dword [esp + 8], 0
mov eax, dword [esp + 4]
je 0x466d09
push eax
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
lea ecx, [esp + 0x80]
mov edx, 0x569e8d
push 0x11
call dbg._var_os
add esp, 4
movzx eax, byte [esp + 0x8c]
cmp al, 2
je 0x466e22
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x88]
test al, al
mov dword [esp + 0xc], ecx
je 0x466d82
test esi, esi
je 0x466e22
test edi, edi
je 0x466e02
movzx eax, byte [esi]
mov edx, edi
cmp eax, 0x2d
je 0x466df7
cmp eax, 0x2b
jne 0x467d69
dec edx
je 0x466e02
lea ecx, [esi + 1]
jmp 0x467d6b
test edi, edi
je 0x466e02
mov eax, edi
lea eax, [esi + edi]
mov edx, esi
jmp 0x466da6
add edx, 2
cmp ecx, eax
cmovne ecx, edx
nop dword [eax + eax]
cmp ecx, eax
mov edx, ecx
je 0x466d4c
movzx ebx, byte [edx]
lea ecx, [edx + 1]
test bl, bl
jns 0x466da0
cmp bl, 0xe0
jb 0x466d93
cmp bl, 0xed
jne 0x466dd6
cmp ecx, eax
je 0x466d4c
lea ecx, [edx + 2]
cmp ecx, eax
je 0x466d4c
cmp byte [edx + 1], 0x9f
ja 0x467e2d
add edx, 3
mov ecx, edx
jmp 0x466da0
add edx, 2
cmp ecx, eax
cmove edx, ecx
xor ecx, ecx
cmp edx, eax
setne cl
add ecx, edx
cmp bl, 0xf0
jb 0x466da0
xor edx, edx
cmp ecx, eax
setne dl
add ecx, edx
jmp 0x466da0
cmp edx, 1
mov ecx, esi
jne 0x467d6b
xor ebx, ebx
cmp dword [esp + 0xc], 0
je 0x466e19
push esi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
test edi, edi
setne al
test bl, al
jne 0x466e54
xorps xmm0, xmm0
mov dword [esp + 0xa0], 0
movaps xmmword [esp + 0x90], xmm0
movaps xmmword [esp + 0x80], xmm0
lea eax, [esp + 0x80]
push eax
call sub.kernel32.dll_GetSystemInfo
mov edi, dword [esp + 0x94]
cmp edi, 0xff
mov ebx, 0xff
mov dword [esp + 0x80], 4
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 4
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
cmovb ebx, edi
test ebx, ebx
mov dword [esp + 0xc], ebx
jne 0x467afa
mov ecx, dword [esp + 0x8c]
mov esi, dword [esp + 0x94]
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x80]
mov edi, dword [esp + 0x84]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x90]
test ebx, ebx
mov dword [esp + 0x80], 4
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 4
mov dword [esp + 0x90], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x198], edi
mov dword [esp + 0x94], 0
jne 0x467c25
mov edi, 4
mov dword [esp + 0x28], 0
xor ebx, ebx
mov eax, dword [esp + 0x88]
movsd xmm0, qword [esp + 0x80]
lea esi, [ecx + esi*8]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], esi
mov dword [esp + 0x1f0], eax
movsd qword [esp + 0x1e8], xmm0
lea ecx, [esp + 0x1a0]
lea edx, [esp + 0x80]
call sym.__ZN5alloc3vec16in_place_collect108__LT_impl_u20_alloc..vec..spec_from_iter..SpecFromIter_LT_T_C_I_GT__u20_for_u20_alloc..vec.
sub esp, 8
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x210]
mov edx, 3
mov dword [esp + 4], eax
call sym.rayon_core::sleep::Sleep::new::h8b82606825ce4164
add esp, 8
movzx eax, byte [0x5da16c]
mov eax, dword [0x5da100]
test eax, eax
jne 0x466fd9
call sub.kernel32.dll_GetProcessHeap
test eax, eax
je 0x468a4d
mov dword [0x5da100], eax
push 0x2f8
push 0
push eax
call sub.kernel32.dll_HeapAlloc
test eax, eax
je 0x468a4d
mov esi, eax
push 0x2f8
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x1f0]
movsd xmm0, qword [esp + 0x1e8]
movsd xmm2, qword [esp + 0x258]
mov dword [esp + 0x8b], eax
movsd qword [esp + 0x83], xmm0
movsd qword [esp + 0x40], xmm2
movsd xmm2, qword [esp + 0x270]
movsd xmm0, qword [esp + 0x87]
movsd xmm1, qword [esp + 0x80]
movsd qword [esp + 0x58], xmm2
movsd xmm2, qword [esp + 0x280]
movsd qword [esp + 0x1b7], xmm0
movsd qword [esp + 0x1b0], xmm1
movsd xmm1, qword [esp + 0x260]
movsd qword [esp + 0x68], xmm2
movsd xmm2, qword [esp + 0x220]
movsd qword [esp + 0x48], xmm1
movsd xmm1, qword [esp + 0x268]
movsd qword [esp + 0x150], xmm2
movsd xmm2, qword [esp + 0x238]
movsd qword [esp + 0x50], xmm1
movsd xmm1, qword [esp + 0x278]
movsd qword [esp + 0x168], xmm2
movsd xmm2, qword [esp + 0x248]
movsd qword [esp + 0x60], xmm1
movsd xmm1, qword [esp + 0x288]
movsd qword [esp + 0x178], xmm2
movsd qword [esp + 0x70], xmm1
movsd xmm1, qword [esp + 0x228]
movsd qword [esp + 0x158], xmm1
movsd xmm1, qword [esp + 0x230]
movsd qword [esp + 0x160], xmm1
movsd xmm1, qword [esp + 0x240]
movsd qword [esp + 0x170], xmm1
movsd xmm1, qword [esp + 0x250]
movsd qword [esp + 0x180], xmm1
movzx eax, byte [0x5da16c]
mov eax, dword [0x5da100]
test eax, eax
jne 0x46714d
call sub.kernel32.dll_GetProcessHeap
test eax, eax
je 0x468a5e
mov dword [0x5da100], eax
push 0x180
push 0
push eax
call sub.kernel32.dll_HeapAlloc
test eax, eax
je 0x468a5e
mov edx, eax
and eax, 0xffffffc0
mov dword [esp + 0x194], ebx
mov dword [esp + 0x20], edi
mov dword [eax + 0x3c], edx
mov dword [eax + 0x40], 1
mov dword [eax + 0x44], 1
lea ecx, [eax + 0x40]
mov edx, dword [esp + 0x28]
movsd xmm0, qword [esp + 0x80]
movsd xmm1, qword [esp + 0x88]
mov dword [esp + 0xc], ecx
movsd qword [eax + 0x48], xmm0
movsd qword [eax + 0x50], xmm1
movsd xmm0, qword [esp + 0x90]
movsd qword [eax + 0x58], xmm0
movsd xmm0, qword [esp + 0x98]
movsd qword [eax + 0x60], xmm0
movsd xmm0, qword [esp + 0xa0]
movsd qword [eax + 0x68], xmm0
movsd xmm0, qword [esp + 0xa8]
movsd qword [eax + 0x70], xmm0
movsd xmm0, qword [esp + 0xb0]
movsd qword [eax + 0x78], xmm0
mov dword [eax + 0x80], 0
mov dword [eax + 0x84], esi
movsd xmm0, qword [esp + 0x40]
movsd xmm1, qword [esp + 0x48]
movsd qword [eax + 0x88], xmm0
movsd qword [eax + 0x90], xmm1
movsd xmm0, qword [esp + 0x50]
movsd qword [eax + 0x98], xmm0
movsd xmm0, qword [esp + 0x58]
movsd qword [eax + 0xa0], xmm0
movsd xmm0, qword [esp + 0x60]
movsd qword [eax + 0xa8], xmm0
movsd xmm0, qword [esp + 0x68]
movsd qword [eax + 0xb0], xmm0
movsd xmm0, qword [esp + 0x70]
movsd qword [eax + 0xb8], xmm0
mov dword [eax + 0xc0], 0
mov dword [eax + 0xc4], esi
mov esi, dword [esp + 8]
movsd xmm0, qword [esp + 0x180]
mov ebx, esi
movsd qword [eax + 0xf8], xmm0
shl ebx, 4
test esi, esi
movsd xmm0, qword [esp + 0x178]
movsd qword [eax + 0xf0], xmm0
movsd xmm0, qword [esp + 0x170]
movsd qword [eax + 0xe8], xmm0
movsd xmm0, qword [esp + 0x168]
movsd qword [eax + 0xe0], xmm0
movsd xmm0, qword [esp + 0x160]
movsd qword [eax + 0xd8], xmm0
movsd xmm0, qword [esp + 0x150]
movsd xmm1, qword [esp + 0x158]
movsd qword [eax + 0xd0], xmm1
movsd qword [eax + 0xc8], xmm0
mov dword [eax + 0x100], 0
mov dword [eax + 0x108], 0
mov dword [eax + 0x110], 0
mov dword [eax + 0x118], 0
mov byte [eax + 0x11c], 0
movsd xmm0, qword [esp + 0x1b0]
movsd xmm1, qword [esp + 0x1b7]
movsd qword [eax + 0x124], xmm1
movsd qword [eax + 0x11d], xmm0
mov dword [eax + 0x12c], 1
mov ecx, dword [esp + 0x1a8]
mov dword [eax + 0x138], ecx
lea ecx, [edi + edx*8]
movsd xmm0, qword [esp + 0x1a0]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x10]
movsd qword [eax + 0x130], xmm0
mov esi, ecx
movsd xmm0, qword [esp + 0x218]
movsd qword [eax + 0x14c], xmm0
movsd xmm0, qword [esp + 0x208]
movsd xmm1, qword [esp + 0x210]
movsd qword [eax + 0x13c], xmm0
movsd qword [eax + 0x144], xmm1
mov dword [eax + 0x154], 3
je 0x4677c2
lea ecx, [eax + 0x12c]
add eax, 0x13c
lea esi, [ebx - 0x10]
xor edi, edi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x1c4], ecx
lea ecx, [edx*8 - 8]
shl edx, 3
mov dword [esp + 0x18c], esi
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x28], edx
xor edx, edx
mov dword [esp + 0x190], ecx
jmp 0x467426
mov edx, dword [esp + 0x14]
inc dword [esp + 0x1c]
add edi, 8
add edx, 0x10
cmp ebx, edx
je 0x4679f2
mov esi, dword [esp + 0x10]
movzx ecx, byte [esi + edi*2 + 0xc]
cmp cl, 2
je 0x4677b8
lea eax, [esi + edi*2]
mov dword [esp + 0x14], edx
mov edx, ecx
cmp dword [esp + 0x28], edi
mov ecx, dword [eax + 8]
mov byte [esp + 0x38], dl
mov dword [esp + 0x88], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x80], xmm0
mov byte [esp + 0x8c], dl
lea edx, [esp + 0x8d]
movzx ecx, byte [esi + edi*2 + 0xf]
mov byte [edx + 2], cl
movzx ecx, word [esi + edi*2 + 0xd]
mov word [edx], cx
je 0x4677fa
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + edi]
movzx ecx, byte [ecx + edi + 4]
mov byte [esp + 0x34], cl
mov ecx, dword [eax + 8]
mov dword [esp + 0x24], edx
mov dword [esp + 0x200], ecx
lea ecx, [esi + edi*2 + 0xd]
movsd xmm0, qword [eax]
movsd qword [esp + 0x1f8], xmm0
movzx eax, word [ecx]
mov word [esp + 0x3c], ax
movzx eax, byte [ecx + 2]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x80], 0
mov byte [esp + 0x3e], al
lock inc dword [ecx]
jle 0x468988
movsd xmm0, qword [esp + 0x84]
mov eax, dword [esp + 0x200]
lea ecx, [esp + 0x1d3]
movaps xmmword [esp + 0x290], xmm0
movsd xmm0, qword [esp + 0x1f8]
mov dword [ecx + 8], eax
movzx eax, word [esp + 0x3c]
movsd qword [ecx], xmm0
movzx ecx, byte [esp + 0x3e]
mov word [esp + 0x19c], ax
mov word [esp + 0x150], ax
movsd xmm0, qword [esp + 0x1d0]
movsd xmm1, qword [esp + 0x1d7]
mov byte [esp + 0x19e], cl
mov byte [esp + 0x152], cl
movsd qword [esp + 0x40], xmm0
movsd qword [esp + 0x47], xmm1
call dbg.min_stack
mov esi, eax
xor ecx, ecx
call sym.std::thread::Thread::new::h7bff6366d6269064
lock inc dword [eax]
jle 0x468988
mov dword [esp + 0x30], esi
mov dword [esp + 0x18], eax
movzx eax, byte [0x5da16c]
mov eax, dword [0x5da100]
test eax, eax
jne 0x467591
call sub.kernel32.dll_GetProcessHeap
test eax, eax
je 0x46899b
mov dword [0x5da100], eax
push 0x18
push 0
push eax
call sub.kernel32.dll_HeapAlloc
test eax, eax
je 0x46899b
mov dword [eax], 1
mov dword [eax + 4], 1
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov esi, eax
lock inc dword [eax]
jle 0x468988
movzx eax, byte [0x5da088]
test al, al
je 0x467630
mov byte [0x5da088], 1
call sym.std::io::stdio::OUTPUT_CAPTURE::__getit::h24c13ae958baaed5
test eax, eax
je 0x4689bd
mov ecx, dword [eax]
mov dword [eax], 0
test ecx, ecx
je 0x467630
mov dword [esp + 8], ecx
lock inc dword [ecx]
jle 0x468988
mov byte [0x5da088], 1
call sym.std::io::stdio::OUTPUT_CAPTURE::__getit::h24c13ae958baaed5
test eax, eax
je 0x468a13
mov edx, dword [esp + 8]
mov ecx, dword [eax]
mov dword [eax], edx
test ecx, ecx
jne 0x467667
jmp 0x467671
movzx eax, byte [0x5da088]
test al, al
je 0x4677a0
mov byte [0x5da088], 1
call sym.std::io::stdio::OUTPUT_CAPTURE::__getit::h24c13ae958baaed5
test eax, eax
je 0x468a27
mov ecx, dword [eax]
mov dword [eax], 0
mov dword [esp + 8], 0
test ecx, ecx
je 0x467671
lock dec dword [ecx]
jne 0x467671
call sym.alloc::sync::Arc_LT_T_GT_::drop_slow::h5dae33a82a76dccc
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x467682
lock inc dword [ecx + 0xc]
jle 0x4689bf
mov dword [esp + 4], esi
movzx eax, byte [0x5da16c]
mov eax, dword [0x5da100]
test eax, eax
jne 0x4676a8
call sub.kernel32.dll_GetProcessHeap
test eax, eax
je 0x4689ac
mov dword [0x5da100], eax
push 0x40
push 0
push eax
call sub.kernel32.dll_HeapAlloc
test eax, eax
je 0x4689ac
mov esi, ebx
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 4]
mov dword [eax], ebx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 8]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + 0xc], 0
mov dword [eax + 0x14], ecx
movzx ecx, byte [esp + 0x34]
mov byte [eax + 0x18], cl
movzx ecx, byte [esp + 0x38]
movsd xmm0, qword [esp + 0x40]
movsd xmm1, qword [esp + 0x47]
movsd qword [eax + 0x19], xmm0
movsd qword [eax + 0x20], xmm1
mov byte [eax + 0x28], cl
movaps xmm0, xmmword [esp + 0x290]
movzx ecx, word [esp + 0x150]
mov word [eax + 0x29], cx
movzx ecx, byte [esp + 0x152]
mov byte [eax + 0x2b], cl
mov ecx, dword [esp + 0xc]
mov dword [eax + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0x30], 0
movlps qword [eax + 0x34], xmm0
mov dword [eax + 0x3c], ecx
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x80]
push 0x569c84
push eax
call sym.std::sys::windows::thread::Thread::new::hcbb13acf88dc458b
add esp, 8
movzx eax, byte [esp + 0x80]
cmp eax, 4
jne 0x46782d
push dword [esp + 0x84]
call sub.kernel32.dll_CloseHandle
lock dec dword [ebx]
jne 0x46777e
mov ecx, ebx
call sym.alloc::sync::Arc_LT_T_GT_::drop_slow::h11981ade3ce8ba02
mov ecx, dword [esp + 4]
mov ebx, esi
lock dec dword [ecx]
jne 0x467410
call sym.alloc::sync::Arc_LT_T_GT_::drop_slow::h04d38b091065dc59
jmp 0x467410
mov dword [esp + 8], 0
mov ecx, dword [esi + 8]
test ecx, ecx
jne 0x467678
jmp 0x467682
add edi, dword [esp + 0x20]
mov ecx, esi
lea esi, [esi + edx + 0x10]
add ebx, ecx
sub ebx, esi
je 0x4679f6
shr ebx, 4
jmp 0x4677ea
add esi, 0x10
dec ebx
je 0x4679f6
mov eax, dword [esi]
lock dec dword [eax]
jne 0x4677e0
mov ecx, esi
call sym.alloc::sync::Arc_LT_T_GT_::drop_slow::ha41ab0968137ee85
jmp 0x4677e0
mov eax, dword [esp + 0x80]
lock dec dword [eax]
mov eax, dword [esp + 0x14]
lea esi, [esi + eax + 0x10]
jne 0x46781a
lea ecx, [esp + 0x80]
call sym.alloc::sync::Arc_LT_T_GT_::drop_slow::ha41ab0968137ee85
mov edi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x10]
add ebx, ecx
sub ebx, esi
jne 0x4677cc
jmp 0x4679f6
mov ecx, dword [esp + 0x84]
movzx edx, word [esp + 0x81]
mov dword [esp + 0x38], eax
movzx esi, byte [esp + 0x83]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 4]
mov dword [esp + 8], edx
lock dec dword [ecx]
jne 0x46787a
call sym.alloc::sync::Arc_LT_T_GT_::drop_slow::h04d38b091065dc59
mov ecx, dword [esp + 0x18]
mov dword [esp + 4], esi
lock dec dword [ecx]
je 0x467887
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x18c], ecx
jne 0x467899
jmp 0x4678c6
mov ecx, dword [esp + 0x18]
mov dword [esp + 4], esi
lock dec dword [ecx]
jne 0x46786b
call sym.alloc::sync::Arc_LT_T_GT_::drop_slow::h11981ade3ce8ba02
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x18c], ecx
je 0x4678c6
mov ebx, dword [esp + 0x18c]
mov eax, dword [esp + 0x10]
sub ebx, ecx
lea esi, [eax + ecx + 0x10]
shr ebx, 4
jmp 0x4678b6
add esi, 0x10
dec ebx
je 0x4678c6
mov eax, dword [esi]
lock dec dword [eax]
jne 0x4678b0
mov ecx, esi
call sym.alloc::sync::Arc_LT_T_GT_::drop_slow::ha41ab0968137ee85
jmp 0x4678b0
cmp dword [esp + 0x198], 0
je 0x4678e1
push dword [esp + 0x10]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
mov ebx, dword [esp + 4]
shl ebx, 0x10
cmp dword [esp + 0x190], edi
je 0x467926
mov ecx, dword [esp + 0x190]
mov eax, dword [esp + 0x20]
sub ecx, edi
lea esi, [eax + edi + 8]
shr ecx, 3
mov edi, ecx
jmp 0x467916
add esi, 8
dec edi
je 0x467926
mov eax, dword [esi]
lock dec dword [eax]
jne 0x467910
mov ecx, esi
call sym.alloc::sync::Arc_LT_T_GT_::drop_slow::ha41ab0968137ee85
jmp 0x467910
mov esi, dword [esp + 8]
or esi, ebx
cmp dword [esp + 0x194], 0
je 0x467947
push dword [esp + 0x20]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0x1c4]
shl esi, 8
mov dword [esp + 8], esi
lock dec dword [eax]
jne 0x4679a6
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xf8]
test eax, eax
je 0x4679a6
mov ecx, dword [esp + 0xc]
shl eax, 3
xor esi, esi
lea ebx, [eax + eax*4]
mov edi, dword [ecx + 0xf0]
add edi, 4
jmp 0x467989
add edi, 0x28
inc esi
add ebx, 0xffffffd8
je 0x4679a6
lock dec dword [edi]
jne 0x467980
mov eax, 3
xchg dword [edi - 4], eax
mov ecx, dword [esp + 0x1cc]
mov edx, esi
call sym.rayon_core::sleep::Sleep::wake_specific_thread::h62f4d9f0c56a8047
jmp 0x467980
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0xc]
add ebx, dword [esp + 0x38]
lock dec dword [ecx]
jne 0x4679bc
call sym.alloc::sync::Arc_LT_T_GT_::drop_slow::hba302c01ffeb975b
mov eax, ebx
mov edi, dword [esp + 0x2c]
and al, 0xfe
cmp al, 4
mov eax, ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 8], eax
je 0x467e15
mov ecx, dword [esp + 0x1c8]
movzx eax, al
add ecx, dword [eax*4 + 0x468b0c]
jmp ecx
add edi, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x198], 0
mov esi, dword [esp + 0x194]
mov ebx, dword [esp + 0x7c]
je 0x467a1d
push eax
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
sub ebx, edi
je 0x467a46
shr ebx, 3
jmp 0x467a36
add edi, 8
dec ebx
je 0x467a46
mov eax, dword [edi]
lock dec dword [eax]
jne 0x467a30
mov ecx, edi
call sym.alloc::sync::Arc_LT_T_GT_::drop_slow::ha41ab0968137ee85
jmp 0x467a30
test esi, esi
je 0x467a5b
push dword [esp + 0x20]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x2c]
cmp dword [0x5da078], 0
je 0x467a82
lock dec dword [ebx]
mov dword [esp + 8], 5
jne 0x467a90
mov ecx, ebx
call sym.alloc::sync::Arc_LT_T_GT_::drop_slow::hba302c01ffeb975b
jmp 0x467a90
mov dword [0x5da078], ebx
mov dword [esp + 8], 5
mov ebx, 0x5da078
movzx eax, byte [edi]
mov esi, dword [edi + 4]
cmp eax, 5
ja 0x467ab6
cmp eax, 3
je 0x467ab6
mov eax, dword [esp + 8]
mov dword [edi], eax
mov dword [edi + 4], ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x1c], ebx
mov edi, dword [esi]
mov ebx, dword [esi + 4]
push edi
call dword [ebx]
add esp, 4
cmp dword [ebx + 4], 0
je 0x467ae2
cmp dword [ebx + 8], 9
jb 0x467ad4
mov edi, dword [edi - 4]
push edi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
push esi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x1c]
jmp 0x467aa5
xor edx, edx
lea ecx, [esp + 0x80]
push ebx
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve::do_reserve_and_handle::h653d247151440670
add esp, 4
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
sub eax, edx
cmp eax, ebx
jae 0x467b62
lea ecx, [esp + 0x8c]
push ebx
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve::do_reserve_and_handle::h2be1717529650d3c
add esp, 4
jmp 0x467b62
mov ecx, dword [esp + 0x8c]
movzx eax, byte [esp + 4]
mov dword [ecx + esi*8], edi
mov byte [ecx + esi*8 + 4], al
inc esi
dec ebx
mov dword [esp + 0x94], esi
je 0x466ebe
lea ecx, [esp + 0x40]
call sym.crossbeam_deque::deque::Worker_LT_T_GT_::new_lifo::h97811cc0ee2535d2
mov eax, dword [esp + 0x40]
lock inc dword [eax]
jle 0x468988
mov edx, dword [esp + 0x88]
movzx eax, byte [esp + 0x4c]
movsd xmm0, qword [esp + 0x40]
movsd xmm1, qword [esp + 0x48]
mov edi, dword [esp + 0x40]
cmp edx, dword [esp + 0x84]
movsd qword [esp + 0x150], xmm0
movsd qword [esp + 0x158], xmm1
mov byte [esp + 4], al
jne 0x467bc6
lea ecx, [esp + 0x80]
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h3cac5eaa7bff534a
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x80]
movsd xmm0, qword [esp + 0x150]
movsd xmm1, qword [esp + 0x158]
mov ecx, edx
inc edx
shl ecx, 4
movsd qword [eax + ecx + 8], xmm1
movsd qword [eax + ecx], xmm0
mov dword [esp + 0x88], edx
mov esi, dword [esp + 0x94]
cmp esi, dword [esp + 0x90]
jne 0x467b40
lea ecx, [esp + 0x8c]
mov edx, esi
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h097fe01122eb0200
mov esi, dword [esp + 0x94]
jmp 0x467b40
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], ecx
xor edx, edx
lea ecx, [esp + 0x80]
push ebx
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve::do_reserve_and_handle::h653d247151440670
add esp, 4
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
sub eax, edx
cmp eax, ebx
jae 0x467c92
lea ecx, [esp + 0x8c]
push ebx
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve::do_reserve_and_handle::h2be1717529650d3c
add esp, 4
jmp 0x467c92
mov eax, dword [esp + 0x8c]
movzx ecx, byte [esp + 4]
mov dword [eax + edx*8], edi
mov byte [eax + edx*8 + 4], cl
inc edx
dec ebx
mov dword [esp + 0x94], edx
je 0x467d4f
lea ecx, [esp + 0x40]
call sym.crossbeam_deque::deque::Worker_LT_T_GT_::new_fifo::hb7e2c33c0755ea8d
mov edi, dword [esp + 0x40]
lock inc dword [edi]
jle 0x468988
mov edx, dword [esp + 0x88]
movzx eax, byte [esp + 0x4c]
movsd xmm0, qword [esp + 0x40]
movsd xmm1, qword [esp + 0x48]
cmp edx, dword [esp + 0x84]
movsd qword [esp + 0x150], xmm0
movsd qword [esp + 0x158], xmm1
mov byte [esp + 4], al
jne 0x467cf2
lea ecx, [esp + 0x80]
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h3cac5eaa7bff534a
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x80]
movsd xmm0, qword [esp + 0x150]
movsd xmm1, qword [esp + 0x158]
mov ecx, edx
inc edx
shl ecx, 4
movsd qword [eax + ecx + 8], xmm1
movsd qword [eax + ecx], xmm0
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x94]
cmp edx, dword [esp + 0x90]
jne 0x467c70
lea ecx, [esp + 0x8c]
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h097fe01122eb0200
mov edx, dword [esp + 0x94]
jmp 0x467c70
mov dword [esp + 0x28], edx
mov ebx, dword [esp + 0x90]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov edi, eax
jmp 0x466f46
mov ecx, esi
cmp edx, 9
jae 0x467da4
xor edi, edi
nop word cs:[eax + eax]
nop dword [eax]
movzx eax, byte [ecx]
add eax, 0xffffffd0
cmp eax, 9
ja 0x466e02
mov ebx, edx
lea edx, [edi + edi*4]
inc ecx
lea edi, [eax + edx*2]
mov edx, ebx
dec edx
jne 0x467d80
mov bl, 1
jmp 0x466e04
xor edi, edi
mov dword [esp + 8], esi
nop word [eax + eax]
test edx, edx
je 0x467e22
movzx ebx, byte [ecx]
mov dword [esp + 4], edx
mov eax, edi
mov edx, 0xa
mul edx
seto dl
add ebx, 0xffffffd0
cmp ebx, 0xa
cmovb esi, ebx
jae 0x467de4
test dl, dl
jne 0x467de4
mov edx, dword [esp + 4]
mov edi, eax
inc ecx
dec edx
add edi, esi
mov esi, ebx
jae 0x467db0
xor ebx, ebx
jmp 0x467e24
cmp al, 5
je 0x467a63
jmp 0x467a95
mov bl, 1
mov esi, dword [esp + 8]
jmp 0x466e04
cmp dword [esp + 0xc], 0
je 0x466e22
push esi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
jmp 0x466e22
ud2
mov ecx, 4
mov edx, 0x18
call dbg.handle_alloc_error
ud2
mov ecx, 4
mov edx, 0x40
call dbg.handle_alloc_error
ud2
jmp 0x468a27
add ecx, 8
xor edx, edx
call dbg.decrement_num_running_threads
mov dword [esp + 0x80], 0x5ba65c
mov dword [esp + 0x84], 1
mov dword [esp + 0x90], 0
mov dword [esp + 0x88], str.Lazy_instance_has_previously_been_poisoned
mov dword [esp + 0x8c], 0
lea ecx, [esp + 0x80]
mov edx, 0x5ba684
call dbg.panic_fmt
ud2
mov eax, dword [esp + 8]
lock dec dword [eax]
jne 0x468a25
mov ecx, dword [esp + 8]
call dbg.drop_slow<std::sync::mutex::Mutex<alloc::vec::Vec<u8, alloc::alloc::Global>>>
jmp 0x468a27
mov ecx, 0x5bfdd0
mov edx, 0x46
push 0x5bace4
push 0x5b9e20
lea eax, [esp + 0x88]
push eax
call dbg.unwrap_failed
add esp, 0xc
ud2
mov ecx, 4
mov edx, 0x2f8
call dbg.handle_alloc_error
ud2
mov ecx, 0x40
mov edx, 0x140
call dbg.handle_alloc_error
ud2
mov ecx, str.called__Option::unwrap____on_a__None__valueC:UsersTEST.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinapi_util_0.1.5_srcwin.rs
mov edx, 0x2b
push 0x569d04
call dbg.panic
add esp, 4
ud2