Function at 0x10017260
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, 0x240
mov edi, dword [edx + 8]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x44], edx
test edi, edi
jne 0x100176b5
lea esi, [esp + 0xc0]
push 0x11
push str.RAYON_NUM_THREADSRAYON_RS_NUM_CPUSkind
push esi
call sym.std::env::_var_os::h51f55a83741f426c
add esp, 0xc
mov edi, dword [esp + 0xc0]
mov eax, edi
neg eax
jo 0x100173d9
mov edx, dword [esp + 0xc4]
mov ebx, dword [esp + 0xc8]
test byte [esp + 0xcc], 1
mov dword [esp + 0x48], edi
mov dword [esp + 0x40], edx
jne 0x1001733b
test ebx, ebx
je 0x1001733b
lea esi, [edx + ebx]
jmp 0x100172e6
add edx, 2
cmp ecx, esi
cmovne ecx, edx
nop dword [eax + eax]
cmp ecx, esi
mov edx, ecx
je 0x10017334
movzx eax, byte [edx]
lea ecx, [edx + 1]
test al, al
jns 0x100172e0
cmp al, 0xe0
jb 0x100172d3
cmp al, 0xed
jne 0x10017314
cmp ecx, esi
je 0x10017334
lea eax, [edx + 2]
cmp eax, esi
je 0x10017334
cmp byte [edx + 1], 0x9f
ja 0x10018472
add edx, 3
mov ecx, edx
jmp 0x100172e0
add edx, 2
cmp ecx, esi
cmove edx, ecx
xor ecx, ecx
cmp edx, esi
setne cl
add ecx, edx
cmp al, 0xf0
jb 0x100172e0
xor eax, eax
cmp ecx, esi
setne al
add ecx, eax
jmp 0x100172e0
lea esi, [esp + 0xc0]
test ebx, ebx
je 0x100173c0
cmp ebx, 1
jne 0x10017367
mov eax, dword [esp + 0x40]
movzx eax, byte [eax]
cmp eax, 0x2b
je 0x100173c0
mov ecx, dword [esp + 0x40]
mov ebx, 1
cmp eax, 0x2d
je 0x100173c0
jmp 0x10017577
mov ecx, dword [esp + 0x40]
cmp byte [ecx], 0x2b
jne 0x1001756e
cmp ebx, 0xa
lea ecx, [ecx + 1]
lea ebx, [ebx - 1]
jb 0x10017577
xor edi, edi
nop word cs:[eax + eax]
nop
sub ebx, 1
jb 0x10017599
mov eax, edi
mov edx, 0xa
mul edx
movzx edx, byte [ecx]
seto byte [esp + 0x3c]
add edx, 0xffffffd0
cmp edx, 9
ja 0x100173c0
cmp byte [esp + 0x3c], 0
jne 0x100173c0
mov edi, eax
inc ecx
add edi, edx
jae 0x10017390
cmp dword [esp + 0x48], 0
je 0x100173d9
mov eax, dword [0x100f2e2c]
push dword [esp + 0x40]
push 0
push dword [eax]
call sub.kernel32.dll_HeapFree
push 0x11
push 0x100ee1d5
push esi
call sym.std::env::_var_os::h51f55a83741f426c
add esp, 0xc
mov edi, dword [esp + 0xc0]
mov eax, edi
neg eax
jo 0x1001751b
mov esi, dword [esp + 0xc4]
mov ebx, dword [esp + 0xc8]
test byte [esp + 0xcc], 1
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], esi
jne 0x10017487
test ebx, ebx
je 0x10017487
lea eax, [esi + ebx]
jmp 0x10017436
add esi, 2
cmp edx, eax
cmovne edx, esi
nop dword [eax + eax]
cmp edx, eax
mov esi, edx
je 0x10017487
movzx ecx, byte [esi]
lea edx, [esi + 1]
test cl, cl
jns 0x10017430
cmp cl, 0xe0
jb 0x10017423
cmp cl, 0xed
jne 0x10017466
cmp edx, eax
je 0x10017487
lea ecx, [esi + 2]
cmp ecx, eax
je 0x10017487
cmp byte [esi + 1], 0x9f
ja 0x1001848a
add esi, 3
mov edx, esi
jmp 0x10017430
add esi, 2
cmp edx, eax
cmove esi, edx
xor edx, edx
cmp esi, eax
setne dl
add edx, esi
cmp cl, 0xf0
jb 0x10017430
xor ecx, ecx
cmp edx, eax
setne cl
add edx, ecx
jmp 0x10017430
test ebx, ebx
je 0x100174fb
cmp ebx, 1
jne 0x100174af
mov eax, dword [esp + 0x3c]
movzx eax, byte [eax]
cmp eax, 0x2b
je 0x100174fb
mov esi, dword [esp + 0x3c]
mov ebx, 1
cmp eax, 0x2d
je 0x100174fb
jmp 0x10017669
mov esi, dword [esp + 0x3c]
cmp byte [esi], 0x2b
jne 0x10017660
cmp ebx, 0xa
lea esi, [esi + 1]
lea ebx, [ebx - 1]
jb 0x10017669
xor edi, edi
nop dword [eax]
sub ebx, 1
jb 0x10017689
mov eax, edi
mov ecx, 0xa
mul ecx
movzx ecx, byte [esi]
seto dl
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x100174fb
test dl, dl
jne 0x100174fb
mov edi, eax
inc esi
add edi, ecx
jae 0x100174d0
cmp dword [esp + 0x40], 0
lea esi, [esp + 0xc0]
je 0x1001751b
mov eax, dword [0x100f2e2c]
push dword [esp + 0x3c]
push 0
push dword [eax]
call sub.kernel32.dll_HeapFree
xorps xmm0, xmm0
mov dword [esp + 0xe0], 0
movaps xmmword [esp + 0xd0], xmm0
movaps xmmword [esp + 0xc0], xmm0
push esi
call sub.kernel32.dll_GetSystemInfo
mov edi, dword [esp + 0xd4]
mov edx, dword [esp + 0x44]
test edi, edi
jne 0x100176b5
movzx eax, byte [0x100f12c0]
mov esi, dword [0x100f12c4]
cmp al, 4
jne 0x1001760a
mov edi, esi
jmp 0x100176b5
cmp ebx, 9
jae 0x10017383
xor edi, edi
nop dword [eax]
movzx eax, byte [ecx]
add eax, 0xffffffd0
cmp eax, 9
ja 0x100173c0
lea edx, [edi + edi*4]
inc ecx
dec ebx
lea edi, [eax + edx*2]
jne 0x10017580
cmp dword [esp + 0x48], 0
je 0x100175b2
mov eax, dword [0x100f2e2c]
push dword [esp + 0x40]
push 0
push dword [eax]
call sub.kernel32.dll_HeapFree
mov edx, dword [esp + 0x44]
test edi, edi
jne 0x100176b5
xorps xmm0, xmm0
mov dword [esp + 0xe0], 0
movaps xmmword [esp + 0xd0], xmm0
movaps xmmword [esp + 0xc0], xmm0
push esi
call sub.kernel32.dll_GetSystemInfo
mov edi, dword [esp + 0xd4]
mov edx, dword [esp + 0x44]
test edi, edi
jne 0x100176b5
movzx eax, byte [0x100f12c0]
mov esi, dword [0x100f12c4]
cmp al, 4
je 0x10017567
mov edi, 1
cmp al, 3
jne 0x100176b5
mov ebx, dword [esi + 4]
mov edi, dword [esi]
mov eax, dword [ebx]
test eax, eax
je 0x10017628
push edi
call eax
add esp, 4
cmp dword [ebx + 4], 0
je 0x10017646
cmp dword [ebx + 8], 9
jb 0x10017637
mov edi, dword [edi - 4]
mov eax, dword [0x100f2e2c]
push edi
push 0
push dword [eax]
call sub.kernel32.dll_HeapFree
mov eax, dword [0x100f2e2c]
push esi
push 0
push dword [eax]
call sub.kernel32.dll_HeapFree
mov edx, dword [esp + 0x44]
mov edi, 1
jmp 0x100176b5
cmp ebx, 9
jae 0x100174cb
xor edi, edi
nop dword [eax + eax]
movzx eax, byte [esi]
add eax, 0xffffffd0
cmp eax, 9
ja 0x100174fb
lea ecx, [edi + edi*4]
inc esi
dec ebx
lea edi, [eax + ecx*2]
jne 0x10017670
cmp dword [esp + 0x40], 0
lea esi, [esp + 0xc0]
je 0x100176a9
mov eax, dword [0x100f2e2c]
push dword [esp + 0x3c]
push 0
push dword [eax]
call sub.kernel32.dll_HeapFree
mov edx, dword [esp + 0x44]
test edi, edi
je 0x1001751b
movzx eax, byte [edx + 0x2d]
cmp edi, 0xff
mov esi, 0xff
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 4
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 4
mov dword [esp + 0xd4], 0
cmovb esi, edi
test edi, edi
mov dword [esp + 0x58], esi
jne 0x10018066
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 4
mov dword [esp + 0xc8], 0
mov dword [esp + 0x9c], 4
mov dword [esp + 0x5c], 0
xor ebx, ebx
mov dword [esp + 0xb0], 0
mov dword [esp + 0x3c], 4
xor eax, eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 4
mov dword [esp + 0x50], 0
mov ecx, dword [esp + 0xc8]
movsd xmm0, qword [esp + 0xc0]
mov edx, 0x1c
mov esi, eax
mov dword [esp + 0x1e8], ecx
xor ecx, ecx
mul edx
movsd qword [esp + 0x1e0], xmm0
jo 0x10018555
cmp eax, 0x7ffffffc
ja 0x10018555
mov dword [esp + 0x4c], ebx
xor ebx, ebx
test eax, eax
je 0x100177ff
mov ecx, dword [0x100f2e44]
movzx ecx, byte [ecx]
sub esp, 0xc
mov dword [esp + 0x20c], eax
mov dword [esp + 8], eax
mov dword [esp + 4], 0
call sym.std::sys::alloc::windows::process_heap_alloc::hc2bfe060f1f208f4
add esp, 0xc
mov edx, dword [esp + 0x3c]
test eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x64], esi
je 0x10018549
test esi, esi
jne 0x10017817
jmp 0x1001787e
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x40], 4
mov dword [esp + 0x64], 0
test esi, esi
je 0x1001787e
mov eax, dword [esp + 0x40]
lea esi, [edx + esi*8]
xor ebx, ebx
lea ecx, [eax + 0x18]
nop word cs:[eax + eax]
nop dword [eax]
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + ebx*8]
mov eax, dword [esp + 0x3c]
movzx eax, byte [eax + ebx*8 + 4]
mov dword [ecx - 0x18], 0
mov word [ecx - 0x14], 0
mov byte [ecx - 0x12], 0
mov dword [ecx - 0x10], 0
mov word [ecx - 0xc], 0
mov byte [ecx - 0xa], 0
mov dword [ecx - 8], 0
mov dword [ecx - 4], edx
mov edx, dword [esp + 0x3c]
mov byte [ecx], al
lea eax, [edx + ebx*8 + 8]
add ecx, 0x1c
inc ebx
cmp eax, esi
jne 0x10017830
cmp dword [esp + 0xb0], 0
je 0x10017897
mov eax, dword [0x100f2e2c]
push edx
push 0
push dword [eax]
call sub.kernel32.dll_HeapFree
test edi, edi
je 0x100178f8
mov edi, dword [esp + 0x58]
mov eax, dword [0x100f2e44]
mov esi, edi
movzx eax, byte [eax]
shl esi, 6
lea eax, [esi + 0x40]
sub esp, 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], 0
call sym.std::sys::alloc::windows::process_heap_alloc::hc2bfe060f1f208f4
add esp, 0xc
test eax, eax
je 0x1001855c
mov ecx, eax
and ecx, 0xffffffc0
lea edx, [ecx + 0x40]
mov dword [ecx + 0x3c], eax
add ecx, 0x46
mov dword [esp + 0x3c], edx
mov dword [ecx - 6], 0
mov word [ecx - 2], 0
mov byte [ecx], 0
add ecx, 0x40
dec edi
jne 0x100178e0
jmp 0x10017900
mov dword [esp + 0x3c], 0x40
mov edi, dword [0x100f2e44]
movzx eax, byte [edi]
sub esp, 0xc
mov dword [esp + 8], 0x2f8
mov dword [esp + 4], 0
call sym.std::sys::alloc::windows::process_heap_alloc::hc2bfe060f1f208f4
add esp, 0xc
test eax, eax
je 0x100184e6
mov esi, eax
push 0x2f8
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x1e8]
movsd xmm0, qword [esp + 0x1e0]
mov dword [esp + 0x76], eax
mov eax, dword [esp + 0x44]
movsd qword [esp + 0x6e], xmm0
movsd xmm0, qword [eax + 0xc]
movsd xmm2, qword [eax + 0x1c]
mov dword [eax + 0xc], 0
mov dword [eax + 0x1c], 0
movsd xmm1, qword [eax + 0x24]
mov dword [eax + 0x24], 0
movaps xmmword [esp + 0x200], xmm2
movsd xmm2, qword [esp + 0x6c]
movaps xmmword [esp + 0xb0], xmm0
movaps xmmword [esp + 0x210], xmm1
movsd xmm1, qword [esp + 0x72]
movsd qword [esp + 0xc6], xmm1
movsd qword [esp + 0xc0], xmm2
movzx eax, byte [edi]
sub esp, 0xc
mov dword [esp + 8], 0x180
mov dword [esp + 4], 0
call sym.std::sys::alloc::windows::process_heap_alloc::hc2bfe060f1f208f4
add esp, 0xc
test eax, eax
je 0x100184f2
mov ecx, eax
mov edx, dword [esp + 0x3c]
and ecx, 0xffffffc0
mov dword [ecx + 0x3c], eax
mov dword [ecx + 0x40], 1
mov dword [ecx + 0x44], 1
mov dword [ecx + 0x80], 0
mov dword [ecx + 0x84], esi
mov dword [ecx + 0xc0], 0
mov dword [ecx + 0xc4], esi
mov word [ecx + 0x100], 0
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
movsd xmm0, qword [esp + 0xc0]
movsd xmm1, qword [esp + 0xc6]
movsd qword [ecx + 0x102], xmm0
movaps xmm0, xmmword [esp + 0xb0]
movsd qword [ecx + 0x108], xmm1
unpcklpd xmm0, xmmword [esp + 0x200]
movaps xmmword [ecx + 0x110], xmm0
movaps xmm0, xmmword [esp + 0x210]
movlps qword [ecx + 0x120], xmm0
mov dword [ecx + 0x128], 1
mov dword [ecx + 0x12c], eax
mov dword [ecx + 0x130], edx
mov dword [ecx + 0x134], eax
mov eax, dword [esp + 0x64]
mov dword [ecx + 0x138], 0
mov edx, dword [esp + 0x4c]
xorps xmm0, xmm0
mov dword [ecx + 0x13c], eax
mov eax, dword [esp + 0x40]
mov edi, edx
shl edi, 4
mov dword [ecx + 0x140], eax
lea eax, [ecx + 0x40]
mov dword [ecx + 0x144], ebx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x5c]
add edi, ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ecx
test edx, edx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x78], edi
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], esi
lea eax, [esi + eax*8]
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], eax
movsd qword [esp + 0x8c], xmm0
movsd qword [esp + 0x94], xmm0
je 0x10017edb
jmp 0x10017b40
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x5c], eax
cmp ecx, dword [esp + 0x5c]
je 0x10017edb
nop dword [eax]
lea esi, [ecx + 0x10]
mov dword [esp + 0x70], esi
movzx edx, byte [ecx + 0xc]
cmp dl, 2
je 0x10017edb
mov eax, dword [ecx + 8]
mov byte [esp + 0x3c], dl
lea edx, [esp + 0xcd]
mov dword [esp + 0xc8], eax
movsd xmm0, qword [ecx]
movsd qword [esp + 0xc0], xmm0
movzx eax, byte [ecx + 0xf]
mov byte [edx + 2], al
movzx eax, word [ecx + 0xd]
mov word [edx], ax
movzx eax, byte [esp + 0x3c]
mov byte [esp + 0xcc], al
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x88]
je 0x10017ec3
mov edx, ecx
lea ecx, [eax + 8]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x40], ecx
inc ecx
je 0x100184c5
movzx ebx, byte [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x98], ecx
lea edi, [edx + 0xd]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], eax
movzx eax, word [edi]
mov byte [esp + 0x4c], bl
mov word [esp + 0x60], ax
movzx eax, byte [edi + 2]
mov byte [esp + 0x62], al
mov eax, dword [edx + 8]
movsd xmm0, qword [edx]
mov dword [esp + 0x1f8], eax
mov eax, dword [ecx + 0x14]
movsd qword [esp + 0x1f0], xmm0
test eax, eax
je 0x10017c60
mov ecx, dword [ecx + 0x18]
push dword [esp + 0x40]
push eax
lea edi, [esp + 0xc8]
push edi
call dword [ecx + 0x10]
mov ecx, dword [esp + 0x50]
add esp, 0xc
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc4]
mov ebx, dword [esp + 0xa0]
movsd xmm0, qword [ecx]
lock inc dword [ebx]
jg 0x10017c8e
jmp 0x100184a2
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x48], 0x80000000
lea edi, [esp + 0xc0]
mov ebx, dword [esp + 0xa0]
movsd xmm0, qword [ecx]
lock inc dword [ebx]
jle 0x100184a2
mov esi, ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x58], eax
mov dword [esp + 0xb0], edx
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x1b8], eax
mov eax, dword [esp + 0x1f8]
mov dword [esp + 0x1bc], edx
lea edx, [esp + 0x1c8]
movlps qword [esp + 0x1ac], xmm0
movsd xmm0, qword [esp + 0x1f0]
mov ecx, dword [esp + 0x40]
mov dword [edx + 8], eax
movzx eax, byte [esp + 0x3c]
movsd qword [edx], xmm0
test ecx, ecx
mov byte [esp + 0x1d4], al
movzx eax, word [esp + 0x60]
mov word [edx + 0xd], ax
movzx eax, byte [esp + 0x62]
mov byte [edx + 0xf], al
mov eax, dword [esp + 0x54]
movzx edx, byte [esp + 0x4c]
mov dword [esp + 0x1c0], eax
mov byte [esp + 0x1c4], dl
mov dword [esp + 0x1d8], ebx
mov dword [esp + 0x1dc], ecx
jne 0x10017e40
cmp byte [esi + 0x2c], 0
je 0x10017e40
xor ecx, ecx
call sym.__ZN10rayon_core8registry19WORKER_THREAD_STATE28__u7b__u7b_closure_u7d__u7d_17h0ff8e655c7f3bbb0E.llvm.6552185947209378814
mov esi, dword [0x100f2e44]
test eax, eax
je 0x100184cf
cmp dword [eax], 0
jne 0x10018388
lea eax, [esp + 0x1ac]
push eax
push edi
call sym.__ZN117__LT_rayon_core..registry..WorkerThread_u20_as_u20_core..convert..From_LT_rayon_core..registry..ThreadBuilder_GT__GT_4f
add esp, 8
movzx eax, byte [esi]
sub esp, 0xc
mov dword [esp + 8], 0x100
mov dword [esp + 4], 0
call sym.std::sys::alloc::windows::process_heap_alloc::hc2bfe060f1f208f4
add esp, 0xc
test eax, eax
je 0x100184a4
mov esi, eax
and esi, 0xffffffc0
mov dword [esi + 0x3c], eax
add esi, 0x40
push 0xc0
push edi
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
xor ecx, ecx
call sym.__ZN10rayon_core8registry19WORKER_THREAD_STATE28__u7b__u7b_closure_u7d__u7d_17h0ff8e655c7f3bbb0E.llvm.6552185947209378814
test eax, eax
je 0x100184cf
cmp dword [eax], 0
jne 0x100184fe
mov dword [eax], esi
cmp dword [ebx + 0x104], 0
je 0x1001853b
mov edi, dword [ebx + 0x100]
xor eax, eax
mov cl, 1
lock cmpxchg byte [edi + 4], cl
lea esi, [edi + 4]
jne 0x10017e77
mov eax, dword [0x100f2e38]
mov eax, dword [eax]
test eax, 0x7fffffff
jne 0x10017e92
xor ebx, ebx
movzx eax, byte [edi + 5]
test al, al
jne 0x1001850f
mov byte [edi + 6], 1
lock inc dword [edi]
push edi
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressAll]
test bl, bl
jne 0x10017e24
mov eax, dword [0x100f2e38]
mov eax, dword [eax]
test eax, 0x7fffffff
jne 0x10017ead
xor eax, eax
xchg byte [esi], al
cmp al, 2
jne 0x10017b27
push esi
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle]
jmp 0x10017b27
sub esp, 0xc
lea eax, [esp + 0x1b8]
mov dword [esp], edi
mov dword [esp + 8], eax
call sym.__LT_rayon_core..registry..DefaultSpawn_u20_as_u20_rayon_core..registry..ThreadSpawn_GT_::spawn::h989a46cc0c2deac6
add esp, 0xc
cmp byte [esp + 0xc0], 4
jne 0x10017fe9
mov ecx, dword [esp + 0x50]
cmp ecx, dword [esp + 0x5c]
jne 0x10017b40
jmp 0x10017edb
push esi
call sym.std::sys::sync::mutex::futex::Mutex::lock_contended::h7bd09c01afe60157
add esp, 4
mov eax, dword [0x100f2e38]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x10017df2
call sym.std::panicking::panic_count::is_zero_slow_path::h8d6729d981530f26
mov ebx, eax
xor bl, 1
movzx eax, byte [edi + 5]
test al, al
je 0x10017e00
jmp 0x1001850f
call sym.std::panicking::panic_count::is_zero_slow_path::h8d6729d981530f26
test al, al
jne 0x10017e24
mov byte [edi + 5], 1
jmp 0x10017e24
mov eax, dword [esp + 0xc0]
lock dec dword [eax]
jne 0x10017edb
lea ecx, [esp + 0xc0]
call sym.alloc::sync::Arc_LT_T_C_A_GT_::drop_slow::h03dd8d3afd80b9a2
lea ecx, [esp + 0x6c]
call sym.__ZN4core3ptr313drop_in_place_LT_core..iter..adapters..enumerate..Enumerate_LT_core..iter..adapters..zip..Zip_LT_alloc..vec..i
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x68]
mov dword [ecx + 4], eax
mov byte [ecx], 6
mov ecx, dword [esp + 0x44]
mov esi, dword [ecx + 0xc]
test esi, esi
je 0x10017f35
mov edi, dword [ecx + 0x10]
mov eax, dword [edi]
test eax, eax
je 0x10017f13
push esi
call eax
mov ecx, dword [esp + 0x48]
add esp, 4
cmp dword [edi + 4], 0
je 0x10017f35
cmp dword [edi + 8], 9
jb 0x10017f22
mov esi, dword [esi - 4]
mov eax, dword [0x100f2e2c]
push esi
push 0
push dword [eax]
call sub.kernel32.dll_HeapFree
mov ecx, dword [esp + 0x44]
mov esi, dword [ecx + 0x14]
test esi, esi
je 0x10017f71
mov edi, dword [ecx + 0x18]
mov eax, dword [edi]
test eax, eax
je 0x10017f4f
push esi
call eax
mov ecx, dword [esp + 0x48]
add esp, 4
cmp dword [edi + 4], 0
je 0x10017f71
cmp dword [edi + 8], 9
jb 0x10017f5e
mov esi, dword [esi - 4]
mov eax, dword [0x100f2e2c]
push esi
push 0
push dword [eax]
call sub.kernel32.dll_HeapFree
mov ecx, dword [esp + 0x44]
mov esi, dword [ecx + 0x1c]
test esi, esi
je 0x10017fad
mov edi, dword [ecx + 0x20]
mov eax, dword [edi]
test eax, eax
je 0x10017f8b
push esi
call eax
mov ecx, dword [esp + 0x48]
add esp, 4
cmp dword [edi + 4], 0
je 0x10017fad
cmp dword [edi + 8], 9
jb 0x10017f9a
mov esi, dword [esi - 4]
mov eax, dword [0x100f2e2c]
push esi
push 0
push dword [eax]
call sub.kernel32.dll_HeapFree
mov ecx, dword [esp + 0x44]
mov esi, dword [ecx + 0x24]
test esi, esi
je 0x10017fe1
mov edi, dword [ecx + 0x28]
mov eax, dword [edi]
test eax, eax
je 0x10017fc3
push esi
call eax
add esp, 4
cmp dword [edi + 4], 0
je 0x10017fe1
cmp dword [edi + 8], 9
jb 0x10017fd2
mov esi, dword [esi - 4]
mov eax, dword [0x100f2e2c]
push esi
push 0
push dword [eax]
call sub.kernel32.dll_HeapFree
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
movsd xmm0, qword [esp + 0xc0]
mov eax, dword [esp + 0x68]
movsd qword [eax], xmm0
lea ecx, [esp + 0x6c]
call sym.__ZN4core3ptr313drop_in_place_LT_core..iter..adapters..enumerate..Enumerate_LT_core..iter..adapters..zip..Zip_LT_alloc..vec..i
lock dec dword [ebx + 0xe8]
jne 0x100183fe
mov eax, dword [ebx + 0x104]
mov ecx, ebx
test eax, eax
je 0x100183fe
mov edi, dword [ecx + 0x100]
add ecx, 0xec
xor esi, esi
mov dword [esp + 0x3c], ecx
lea ecx, [eax + eax*8]
lea ebx, [ecx + ecx*2]
add ebx, eax
add edi, 0x10
jmp 0x1001804d
add edi, 0x1c
inc esi
add ebx, 0xffffffe4
je 0x100183fe
mov eax, 3
xchg dword [edi], eax
cmp eax, 2
jne 0x10018040
mov ecx, dword [esp + 0x3c]
mov edx, esi
call sym.__ZN10rayon_core5sleep5Sleep20wake_specific_thread17h77260759ab541da8E.llvm.6552185947209378814
jmp 0x10018040
lea ecx, [esp + 0xc0]
mov byte [esp + 0x54], al
mov dword [esp + 0x64], edi
mov edx, esi
push 0x10
call sym.alloc::raw_vec::RawVecInner_LT_A_GT_::reserve::do_reserve_and_handle::h11fa292f85f2df0d
add esp, 4
lea ecx, [esp + 0xcc]
mov edx, esi
push 8
call sym.alloc::raw_vec::RawVecInner_LT_A_GT_::reserve::do_reserve_and_handle::h11fa292f85f2df0d
add esp, 4
mov edi, dword [esp + 0xd4]
mov ecx, dword [esp + 0xc8]
mov eax, dword [esp + 0xc4]
mov edx, dword [esp + 0xd0]
mov dword [esp + 0x40], edi
mov edi, ecx
mov dword [esp + 0x9c], eax
mov dword [esp + 0x3c], edx
shl edi, 4
add edi, eax
mov eax, esi
mov esi, ecx
mov ecx, dword [esp + 0x40]
nop
cmp byte [esp + 0x54], 0
mov dword [esp + 0x48], eax
mov dword [esp + 0x40], ecx
je 0x10018100
lea ecx, [esp + 0x6c]
call sym.crossbeam_deque::deque::Worker_LT_T_GT_::new_fifo::hc9091679c649942f
mov ebx, dword [esp + 0x6c]
jmp 0x100181e2
mov dword [esp + 0x4c], esi
mov esi, dword [0x100f2e44]
movzx eax, byte [esi]
sub esp, 0xc
mov dword [esp + 8], 0x200
mov dword [esp + 4], 0
call sym.std::sys::alloc::windows::process_heap_alloc::hc2bfe060f1f208f4
add esp, 0xc
test eax, eax
je 0x100184b9
mov ebx, eax
movzx eax, byte [esi]
sub esp, 0xc
mov dword [esp + 8], 8
mov dword [esp + 4], 0
call sym.std::sys::alloc::windows::process_heap_alloc::hc2bfe060f1f208f4
add esp, 0xc
test eax, eax
je 0x100184b0
mov dword [eax], ebx
mov esi, eax
mov dword [eax + 4], 0x40
mov eax, dword [0x100f2e44]
mov dword [esp + 0x50], ebx
movzx eax, byte [eax]
sub esp, 0xc
mov dword [esp + 8], 0x100
mov dword [esp + 4], 0
call sym.std::sys::alloc::windows::process_heap_alloc::hc2bfe060f1f208f4
add esp, 0xc
test eax, eax
je 0x100184a4
mov edx, eax
mov ecx, dword [esp + 0x50]
and edx, 0xffffffc0
mov dword [edx + 0x3c], eax
mov dword [edx + 0x40], 1
mov dword [edx + 0x44], 1
mov dword [edx + 0x80], esi
mov esi, dword [esp + 0x4c]
lea ebx, [edx + 0x40]
mov dword [edx + 0xc0], 0
mov dword [edx + 0xc4], 0
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], 0x40
mov byte [esp + 0x78], 1
lock inc dword [ebx]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x48]
jle 0x100184a2
movzx ecx, byte [esp + 0x78]
movsd xmm0, qword [esp + 0x6c]
movsd xmm1, qword [esp + 0x74]
inc esi
mov byte [esp + 0x4c], cl
mov ecx, dword [esp + 0x40]
movsd qword [esp + 0xa0], xmm0
movsd qword [esp + 0xa8], xmm1
movsd qword [edi + 8], xmm1
movsd qword [edi], xmm0
add edi, 0x10
mov dword [edx + ecx*8], ebx
mov bh, byte [esp + 0x4c]
mov byte [edx + ecx*8 + 4], bh
inc ecx
dec eax
jne 0x100180d0
mov dword [esp + 0x40], ecx
mov dword [esp + 0x4c], esi
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xcc]
mov esi, dword [esp + 0x58]
lea edi, [esp + 0xcc]
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 4
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 4
mov dword [esp + 0xd4], 0
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x5c], eax
lea ecx, [esp + 0xc0]
mov edx, esi
push 0x10
call sym.alloc::raw_vec::RawVecInner_LT_A_GT_::reserve::do_reserve_and_handle::h11fa292f85f2df0d
add esp, 4
mov ecx, edi
mov edx, esi
push 8
call sym.alloc::raw_vec::RawVecInner_LT_A_GT_::reserve::do_reserve_and_handle::h11fa292f85f2df0d
add esp, 4
mov edi, dword [esp + 0xc8]
mov eax, dword [esp + 0xd0]
mov ebx, edi
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xd4]
shl ebx, 4
add ebx, dword [esp + 0xc4]
mov dword [esp + 0x48], eax
nop word cs:[eax + eax]
lea ecx, [esp + 0x6c]
call sym.crossbeam_deque::deque::Worker_LT_T_GT_::new_fifo::hc9091679c649942f
mov eax, dword [esp + 0x6c]
lock inc dword [eax]
jle 0x100184a2
movzx ecx, byte [esp + 0x78]
movsd xmm0, qword [esp + 0x6c]
movsd xmm1, qword [esp + 0x74]
mov edx, dword [esp + 0x54]
inc edi
mov byte [esp + 0x50], cl
mov ecx, dword [esp + 0x48]
movsd qword [esp + 0xa0], xmm0
movsd qword [esp + 0xa8], xmm1
movsd qword [ebx + 8], xmm1
movsd qword [ebx], xmm0
add ebx, 0x10
mov dword [edx + ecx*8], eax
mov ah, byte [esp + 0x50]
mov byte [edx + ecx*8 + 4], ah
inc ecx
dec esi
mov dword [esp + 0x48], ecx
jne 0x10018300
mov dword [esp + 0xc8], edi
mov edi, dword [esp + 0x64]
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x40]
jmp 0x10017778
mov eax, dword [esp + 0x68]
test dword [esp + 0x48], 0x7fffffff
mov byte [eax], 5
jne 0x1001841f
mov eax, dword [esp + 0x1c8]
lock dec dword [eax]
jne 0x10018441
lea ecx, [esp + 0x1c8]
call sym.alloc::sync::Arc_LT_T_C_A_GT_::drop_slow::h03dd8d3afd80b9a2
mov eax, dword [esp + 0x1c0]
lock dec dword [eax]
je 0x10018451
mov eax, dword [esp + 0x1d8]
lock dec dword [eax]
jne 0x100183e1
lea ecx, [esp + 0x1d8]
call sym.alloc::sync::Arc_LT_T_C_A_GT_::drop_slow::h561a89a743cecec0
mov ebx, dword [esp + 0xa0]
lea ecx, [esp + 0x6c]
call sym.__ZN4core3ptr313drop_in_place_LT_core..iter..adapters..enumerate..Enumerate_LT_core..iter..adapters..zip..Zip_LT_alloc..vec..i
lock dec dword [ebx + 0xe8]
je 0x10018010
mov eax, dword [esp + 0xa0]
lock dec dword [eax]
jne 0x10017ef5
lea ecx, [esp + 0xa0]
call sym.alloc::sync::Arc_LT_T_C_A_GT_::drop_slow::h561a89a743cecec0
jmp 0x10017ef5
mov eax, dword [0x100f2e2c]
push dword [esp + 0x58]
push 0
push dword [eax]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0x1c8]
lock dec dword [eax]
je 0x100183ad
mov eax, dword [esp + 0x1c0]
lock dec dword [eax]
jne 0x100183c9
lea ecx, [esp + 0x1c0]
call sym.alloc::sync::Arc_LT_T_C_A_GT_::drop_slow::h03dd8d3afd80b9a2
mov eax, dword [esp + 0x1d8]
lock dec dword [eax]
je 0x100183d5
jmp 0x100183e1
test edi, 0x7fffffff
lea esi, [esp + 0xc0]
je 0x100173d9
jmp 0x100173c7
test edi, 0x7fffffff
lea esi, [esp + 0xc0]
jne 0x10017509
jmp 0x1001751b
ud2
push 0xc0
push 0x40
call sym.alloc::alloc::handle_alloc_error::h3ca6a9ac69c8e3db
push 8
push 4
call sym.alloc::alloc::handle_alloc_error::h3ca6a9ac69c8e3db
push 0x200
push 4
call sym.alloc::raw_vec::handle_error::he63c9115d026ec98
push 0x100edb4c
call sym.core::panicking::panic_const::panic_const_add_overflow::hf3b41c4c75c49a6d
push 0x100edf90
push 0x100edd50
push edi
push 0x46
push 0x100edef8
call sym.core::result::unwrap_failed::h534a40e08cfe968a
push 0x2f8
push 4
call sym.alloc::alloc::handle_alloc_error::h3ca6a9ac69c8e3db
push 0x140
push 0x40
call sym.alloc::alloc::handle_alloc_error::h3ca6a9ac69c8e3db
push 0x100ee018
push 0x23
push str.assertion_failed:_t.get__.is_null__
call sym.core::panicking::panic::hf6244c8fb5815825
mov dword [esp + 0xc0], esi
mov byte [esp + 0xc4], bl
push 0x100ede2c
push 0x100edd60
lea eax, [esp + 0xc8]
push eax
push 0x2b
push str.called__Result::unwrap____on_an__Err__valuePoisonErrorC:Userswin10_x64.cargo_registry_srcindex.crates.io_1cd66030c949c28d_rayon_core_1.12.1_srclatch.rs
call sym.core::result::unwrap_failed::h534a40e08cfe968a
push 0x100edfa0
push 0
push 0
call sym.core::panicking::panic_bounds_check::hf1cd1614d6353f3c
mov eax, dword [esp + 0x200]
mov ecx, 4
push eax
push ecx
call sym.alloc::raw_vec::handle_error::he63c9115d026ec98
push esi
push 0x40
call sym.alloc::raw_vec::handle_error::he63c9115d026ec98
nop word cs:[eax + eax]
nop