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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x40
mov eax, dword [ebp + 8]
call 0x1004eb40
pop ebx
mov eax, dword [eax]
mov edi, dword [eax]
and dword [eax], 0
test edi, edi
je 0x1004ec47
lea edx, [ebp - 0x4c]
lea esi, [ebp - 0x14]
and dword [edx + 8], 0
and word [edx + 0x2c], 0
and dword [edx + 0xc], 0
and dword [edx + 0x14], 0
and dword [edx], 0
and dword [edx + 0x1c], 0
and dword [edx + 0x24], 0
mov ecx, esi
call sym.rayon_core::registry::Registry::new::h9a45c61d6c856526
movzx eax, byte [esi]
cmp eax, 6
je 0x1004ebff
mov ecx, eax
and cl, 6
cmp cl, 4
je 0x1004ebff
add ebx, dword [eax*4 + 0x1004ec5c]
jmp ebx
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x10]
cmp bl, 6
jne 0x1004ec2e
cmp dword [0x1022a058], 0
mov dword [ebp - 0x4c], esi
je 0x1004ec20
lea ecx, [ebp - 0x4c]
call sym.core::ptr::drop_in_place_LT_alloc..sync..Arc_LT_rayon_core..registry..Registry_GT__GT_::ha2f43f18a4647e9b
jmp 0x1004ec26
mov dword [0x1022a058], esi
push 6
pop ebx
mov esi, 0x1022a058
cmp byte [edi], 6
je 0x1004ec3a
push edi
call sym.core::ptr::drop_in_place_LT_rayon_core..ThreadPoolBuildError_GT_::h0176657bc36a08cd
pop eax
mov dword [edi], ebx
mov dword [edi + 4], esi
add esp, 0x40
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__value
push 0x101c0984
call dbg.panic
nop dword [eax]
pop esp
add byte [eax], al
add byte [eax + eax], ah
add byte [eax + eax], dl
add byte [eax + eax], dl
add byte [ebp - 0x77], dl
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xffffffc0
sub esp, 0x280
mov esi, dword [edx + 8]
mov ebx, edx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x34], edx
test esi, esi
jne 0x1004edb2
lea esi, [esp + 0x180]
mov edx, str.RAYON_NUM_THREADSRAYON_RS_NUM_CPUSThreadPoolBuildError
mov ecx, esi
push 0x11
call sym.std::env::_var::h05d581a908375d2a
pop eax
lea edi, [esp + 0x100]
mov edx, esi
mov ecx, edi
call sym.core::result::Result_LT_T_C_E_GT_::ok::h073c9fd9c0562cf0
mov edi, dword [edi]
cmp edi, 0x80000000
je 0x1004ecff
mov ebx, dword [esp + 0x104]
lea esi, [esp + 0x180]
mov ecx, esi
mov edx, ebx
push dword [esp + 0x108]
call sym.core::num::__LT_impl_u20_core..str..traits..FromStr_u20_for_u20_u32_GT_::from_str::h81385e08cbfe51bd
pop eax
mov al, byte [esi]
mov edx, ebx
mov esi, dword [esi + 4]
mov ebx, dword [esp + 0x34]
mov ecx, edi
mov byte [esp + 0x24], al
call sym.__LT_alloc..raw_vec..RawVec_LT_T_C_A_GT__u20_as_u20_core..ops..drop..Drop_GT_::drop::h1e3cb15a61af7b6e
cmp byte [esp + 0x24], 0
je 0x1004ed6b
lea esi, [esp + 0x180]
mov edx, 0x101b848d
mov ecx, esi
push 0x11
call sym.std::env::_var::h05d581a908375d2a
pop eax
lea edi, [esp + 0x100]
mov edx, esi
mov ecx, edi
call sym.core::result::Result_LT_T_C_E_GT_::ok::h073c9fd9c0562cf0
mov edi, dword [edi]
cmp edi, 0x80000000
je 0x1004ed6f
mov ebx, dword [esp + 0x104]
lea esi, [esp + 0x180]
mov ecx, esi
mov edx, ebx
push dword [esp + 0x108]
call sym.core::num::__LT_impl_u20_core..str..traits..FromStr_u20_for_u20_u32_GT_::from_str::h81385e08cbfe51bd
pop eax
mov al, byte [esi]
mov edx, ebx
mov esi, dword [esi + 4]
mov ebx, dword [esp + 0x34]
mov ecx, edi
mov byte [esp + 0x24], al
call sym.__LT_alloc..raw_vec..RawVec_LT_T_C_A_GT__u20_as_u20_core..ops..drop..Drop_GT_::drop::h1e3cb15a61af7b6e
cmp byte [esp + 0x24], 0
jne 0x1004ed6f
test esi, esi
jne 0x1004edb2
and dword [esp + 0x1a0], 0
xorps xmm0, xmm0
lea eax, [esp + 0x180]
movaps xmmword [esp + 0x190], xmm0
movaps xmmword [esp + 0x180], xmm0
push eax
call sub.kernel32.dll_GetSystemInfo
mov esi, dword [esp + 0x194]
test esi, esi
jne 0x1004edb2
push 2
pop ecx
mov edx, 0x101c2c6c
call sym.core::ptr::drop_in_place_LT_std..io..error..Error_GT_::h08b7c887e56c6cce
xor esi, esi
inc esi
mov edi, 0xff
mov al, byte [ebx + 0x2d]
cmp esi, edi
cmovb edi, esi
lea esi, [esp + 0x10c]
and dword [esi - 0xc], 0
mov byte [esp + 0x24], al
push 4
pop eax
mov dword [esi - 8], eax
and dword [esi - 4], 0
and dword [esi], 0
mov dword [esi + 4], eax
and dword [esi + 8], 0
test edi, edi
mov dword [esp + 0x30], eax
je 0x1004ee01
lea ecx, [esp + 0x100]
mov edx, edi
call sym.alloc::vec::Vec_LT_T_C_A_GT_::reserve::he2db142390933f84
mov ecx, esi
mov edx, edi
call sym.alloc::vec::Vec_LT_T_C_A_GT_::reserve::he6d31edc603daacd
push 0x40
pop eax
mov ebx, edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], edi
sub ebx, 1
jb 0x1004eed4
cmp byte [esp + 0x24], 0
je 0x1004ee2d
lea ecx, [esp + 0x50]
call sym.crossbeam_deque::deque::Worker_LT_T_GT_::new_fifo::h02e226f6bf7c7c2e
mov eax, dword [esp + 0x50]
jmp 0x1004ee7f
push 0x40
pop ecx
call sym.crossbeam_deque::deque::Buffer_LT_T_GT_::alloc::hf497d03240f5f8ca
mov ecx, eax
mov esi, eax
mov edi, edx
call sym.__LT_T_u20_as_u20_crossbeam_epoch..atomic..Pointable_GT_::init::h2e787be889e864a3
mov dword [esp + 0x180], eax
and dword [esp + 0x1c0], 0
and dword [esp + 0x1c4], 0
lea ecx, [esp + 0x180]
call sym.alloc::sync::Arc_LT_T_GT_::new::h241ddecb5e9113d5
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x38]
lea esi, [esp + 0x10c]
mov byte [esp + 0x5c], 1
lock inc dword [eax]
jle 0x1004fa0d
movsd xmm0, qword [esp + 0x50]
movsd xmm1, qword [esp + 0x58]
mov cl, byte [esp + 0x5c]
mov edx, esi
movsd qword [esp + 0x180], xmm0
movsd qword [esp + 0x188], xmm1
mov dword [esp + 0x190], eax
lea eax, [esp + 0x180]
mov byte [esp + 0x194], cl
lea ecx, [esp + 0x100]
push eax
call sym.__ZN102__LT__LP_ExtendA_C_ExtendB_RP__u20_as_u20_core..iter..traits..collect..Extend_LT__LP_A_C_B_RP__GT__GT_6extend6extend28_
pop eax
jmp 0x1004ee0e
lea esi, [esp + 0x10c]
mov ebx, edi
mov eax, dword [esi - 0xc]
mov edi, dword [esi + 4]
mov dword [esp + 0x94], eax
mov eax, dword [esi - 8]
mov dword [esp + 0x98], eax
mov eax, dword [esi - 4]
mov dword [esp + 0x48], eax
mov eax, dword [esi]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 8]
and dword [esi - 0xc], 0
mov dword [esp + 0x2c], eax
push 4
pop eax
mov dword [esi - 8], eax
and dword [esi - 4], 0
and dword [esi], 0
mov dword [esi + 4], eax
and dword [esi + 8], 0
test ebx, ebx
je 0x1004ef3b
lea ecx, [esp + 0x100]
mov edx, ebx
call sym.alloc::vec::Vec_LT_T_C_A_GT_::reserve::he2db142390933f84
mov ecx, esi
mov edx, ebx
call sym.alloc::vec::Vec_LT_T_C_A_GT_::reserve::he6d31edc603daacd
lea esi, [esp + 0x100]
sub ebx, 1
jb 0x1004efa6
lea ecx, [esp + 0x50]
call sym.crossbeam_deque::deque::Worker_LT_T_GT_::new_fifo::h02e226f6bf7c7c2e
mov eax, dword [esp + 0x50]
lock inc dword [eax]
jle 0x1004fa0d
movsd xmm0, qword [esp + 0x50]
movsd xmm1, qword [esp + 0x58]
mov cl, byte [esp + 0x5c]
lea edx, [esp + 0x10c]
movsd qword [esp + 0x180], xmm0
movsd qword [esp + 0x188], xmm1
mov dword [esp + 0x190], eax
lea eax, [esp + 0x180]
mov byte [esp + 0x194], cl
mov ecx, esi
push eax
call sym.__ZN102__LT__LP_ExtendA_C_ExtendB_RP__u20_as_u20_core..iter..traits..collect..Extend_LT__LP_A_C_B_RP__GT__GT_6extend6extend28_
pop eax
jmp 0x1004ef42
mov eax, dword [esp + 0x108]
movsd xmm0, qword [esp + 0x100]
mov ebx, dword [esp + 0x10c]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x110]
movsd qword [esp + 0xe0], xmm0
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x114]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x1004f01b
cmp eax, 0x38e38e3
ja 0x1004fa25
imul esi, eax, 0x24
test esi, esi
js 0x1004fa25
push 4
pop ecx
mov edx, esi
call sym.__ZN63__LT_alloc..alloc..Global_u20_as_u20_core..alloc..Allocator_GT_8allocate17h4d3fea93a7ca0a04E.1414
mov dword [esp + 0x30], eax
test eax, eax
mov eax, dword [esp + 0x2c]
je 0x1004fa2a
mov ecx, dword [esp + 0x30]
lea edx, [edi + eax*8]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x180], edi
mov dword [esp + 0x90], ebx
mov dword [esp + 0x24], 0
mov dword [esp + 0x184], eax
lea eax, [esp + 0x102]
add ecx, 0x20
mov dword [esp + 0x188], edi
mov dword [esp + 0x18c], edx
cmp edi, edx
je 0x1004f0bf
lea edx, [edi + 8]
inc dword [esp + 0x24]
mov dword [esp + 0x188], edx
mov edx, dword [edi]
mov bl, byte [edi + 4]
and dword [eax + 4], 0
and dword [eax], 0
and word [eax + 8], 0
and dword [ecx - 0x20], 0
and word [ecx - 0x1c], 0
movsd xmm0, qword [esp + 0x100]
movsd qword [ecx - 0x1a], xmm0
mov esi, dword [esp + 0x108]
mov dword [ecx - 0x12], esi
and dword [ecx - 0xc], 0
and dword [ecx - 8], 0
mov dword [ecx - 4], edx
mov byte [ecx], bl
add ecx, 0x24
mov edi, dword [esp + 0x188]
mov edx, dword [esp + 0x18c]
jmp 0x1004f05b
lea ecx, [esp + 0x180]
call sym.__LT_alloc..vec..into_iter..IntoIter_LT_T_C_A_GT__u20_as_u20_core..ops..drop..Drop_GT_::drop::h102845de8408df33
mov edi, dword [esp + 0x38]
test edi, edi
je 0x1004f0ee
mov esi, edi
shl esi, 6
push 0x40
pop ecx
mov edx, esi
call sym.__ZN63__LT_alloc..alloc..Global_u20_as_u20_core..alloc..Allocator_GT_8allocate17h4d3fea93a7ca0a04E.1414
test eax, eax
mov dword [esp + 0x28], eax
je 0x1004fa2e
mov eax, dword [esp + 0x28]
xor ebx, ebx
add eax, 8
cmp edi, ebx
je 0x1004f10d
and dword [eax - 8], 0
and word [eax - 4], 0
and dword [eax], 0
inc ebx
add eax, 0x40
jmp 0x1004f0f7
lea esi, [esp + 0x100]
mov ecx, esi
call sym.__LT_crossbeam_deque..deque..Injector_LT_T_GT__u20_as_u20_core..default..Default_GT_::default::he22f306781c8f08d
mov eax, dword [esp + 0xe8]
lea edi, [esp + 0x1b8]
movsd xmm0, qword [esp + 0xe0]
mov dword [edi - 0x2d], eax
mov eax, dword [esp + 0x34]
movsd qword [edi - 0x35], xmm0
movsd xmm0, qword [edi - 0x31]
mov ecx, dword [eax + 0xc]
movsd qword [esp + 0x57], xmm0
movsd xmm0, qword [edi - 0x38]
mov dword [esp + 0x8c], ecx
mov ecx, dword [eax + 0x10]
and dword [eax + 0xc], 0
movsd qword [esp + 0x50], xmm0
mov dword [esp + 0x88], ecx
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x84], ecx
mov ecx, dword [eax + 0x20]
and dword [eax + 0x1c], 0
mov dword [esp + 0xcc], ecx
mov ecx, dword [eax + 0x24]
mov dword [esp + 0xc8], ecx
mov ecx, dword [eax + 0x28]
and dword [eax + 0x24], 0
mov dword [esp + 0xc4], ecx
push 0x20
pop ecx
rep movsd dword es:[edi], dword [esi]
push 0x40
pop edx
mov ecx, 0x140
call sym.__ZN5alloc5alloc15exchange_malloc17hb61fce2610a36b72E.1425
xor edi, edi
mov esi, eax
inc edi
mov dword [eax], edi
mov dword [eax + 4], edi
add eax, 8
push 0xb8
lea ecx, [esp + 0x184]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x98]
mov dword [esi + 0xc0], eax
mov eax, dword [esp + 0x88]
shl ecx, 4
add ecx, edx
mov dword [esp + 0x48], ecx
mov dword [esi + 0xc4], eax
mov eax, dword [esp + 0x84]
mov dword [esi + 0xc8], eax
mov eax, dword [esp + 0xcc]
mov dword [esi + 0xcc], eax
mov eax, dword [esp + 0xc8]
mov dword [esi + 0xd0], eax
mov eax, dword [esp + 0xc4]
mov dword [esi + 0xd4], eax
and dword [esi + 0xd8], 0
mov byte [esi + 0xdc], 0
mov eax, dword [esp + 0x38]
movsd xmm0, qword [esp + 0x50]
movsd xmm1, qword [esp + 0x57]
movsd qword [esi + 0xdd], xmm0
movsd qword [esi + 0xe4], xmm1
mov dword [esi + 0xec], edi
mov dword [esi + 0xf0], eax
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x3c]
mov dword [esi + 0xf4], eax
mov eax, dword [esp + 0x2c]
mov dword [esi + 0xf8], ebx
and dword [esi + 0xfc], 0
mov ebx, dword [esp + 0x34]
mov dword [esi + 0x100], eax
mov eax, dword [esp + 0x30]
mov dword [esi + 0x104], eax
mov eax, dword [esp + 0x24]
mov dword [esi + 0x108], eax
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x94]
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x60], edi
lea eax, [edi + eax*8]
mov dword [esp + 0x64], ecx
mov ecx, dword [ebx + 4]
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], eax
mov eax, dword [ebx]
and dword [esp + 0x74], 0
and dword [esp + 0x70], 0
and dword [esp + 0x7c], 0
and dword [esp + 0x78], 0
mov dword [esp + 0x40], ecx
mov ch, byte [ebx + 0x2c]
mov dword [esp + 0x3c], eax
mov byte [esp + 0x88], ch
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x94], ecx
mov ecx, dword [ebx + 0x14]
mov dword [esp + 0x38], esi
mov dword [esp + 0x8c], edi
mov dword [esp + 0x90], ecx
mov ecx, dword [ebx + 0x18]
xor ebx, ebx
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x38]
cmp edx, dword [esp + 0x48]
mov dword [esp + 0x24], ebx
lea esi, [esi + ebx]
je 0x1004f8b2
mov bl, byte [edx + 0xc]
lea ecx, [edx + 0x10]
cmp bl, 2
je 0x1004f8b2
movsd xmm0, qword [edx]
mov eax, dword [edx + 8]
mov dword [esp + 0x28], ecx
cmp edi, dword [esp + 0x94]
mov dword [esp + 0x188], eax
movsd qword [esp + 0x180], xmm0
mov byte [esp + 0x18c], bl
mov al, byte [edx + 0xf]
movzx ecx, word [edx + 0xd]
lea edx, [esp + 0x1b8]
mov word [edx - 0x2b], cx
mov byte [edx - 0x29], al
je 0x1004f8c4
mov ecx, edx
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x2c], esi
movsd xmm0, qword [esp + 0x180]
mov esi, dword [eax + edx*8]
mov bh, byte [eax + edx*8 + 4]
mov eax, dword [esp + 0x188]
movsd qword [esp + 0xf0], xmm0
mov dword [esp + 0xf8], eax
movzx eax, word [ecx - 0x2b]
mov dword [esp + 0x98], esi
mov word [esp + 0x44], ax
mov al, byte [ecx - 0x29]
mov byte [esp + 0x46], al
mov eax, dword [esp + 0x90]
test eax, eax
je 0x1004f431
mov esi, dword [esp + 0x2c]
push esi
push eax
lea eax, [esp + 0x188]
push eax
mov eax, dword [esp + 0x90]
call dword [eax + 0x10]
mov edx, dword [esp + 0x30]
add esp, 0xc
jmp 0x1004f440
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x180], 0x80000000
mov eax, dword [esp + 0x38]
add edi, 8
mov dword [esp + 0x2c], edi
lea edi, [eax + edx + 1]
mov edx, dword [esp + 0x30]
lock inc dword [edx]
jle 0x1004fa0f
mov eax, dword [esp + 0x188]
lea ecx, [esp + 0x100]
movsd xmm0, qword [esp + 0x180]
test esi, esi
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x3c]
movsd qword [ecx + 8], xmm0
movsd xmm0, qword [esp + 0xf0]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0xf8]
movsd qword [ecx + 0x1c], xmm0
mov dword [ecx + 0x24], eax
mov byte [esp + 0x128], bl
movzx eax, word [esp + 0x44]
mov bl, byte [esp + 0x46]
mov word [ecx + 0x29], ax
mov byte [ecx + 0x2b], bl
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x114], ecx
mov byte [esp + 0x118], bh
mov dword [esp + 0x12c], edx
mov dword [esp + 0x130], esi
jne 0x1004f579
cmp byte [esp + 0x88], 0
je 0x1004f579
call sym.rayon_core::registry::WorkerThread::current::h023ecf16726ad183
test eax, eax
jne 0x1004f903
lea edi, [esp + 0x180]
lea edx, [esp + 0x100]
mov ecx, edi
call sym.__ZN117__LT_rayon_core..registry..WorkerThread_u20_as_u20_core..convert..From_LT_rayon_core..registry..ThreadBuilder_GT__GT_4f
mov ecx, 0xc0
push 0x40
pop edx
call sym.__ZN5alloc5alloc15exchange_malloc17hb61fce2610a36b72E.1425
mov esi, eax
push 0xc0
push edi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, esi
call sym.rayon_core::registry::WorkerThread::set_current::hcaa687e4911105dc
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x104]
mov edx, dword [eax + 0x108]
push 0x101b82fc
push 0
call sym.__LT_alloc..vec..Vec_LT_T_C_A_GT__u20_as_u20_core..ops..index..Index_LT_I_GT__GT_::index::hb3f198229abded14
pop ecx
pop edx
mov ecx, eax
call sym.__LT_rayon_core..latch..LockLatch_u20_as_u20_rayon_core..latch..Latch_GT_::set::hfea69535c6511a8b
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
inc ebx
mov edx, ecx
jmp 0x1004f34e
lea edx, [esp + 0x100]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x10c]
mov esi, dword [esp + 0x110]
movsd xmm1, qword [edx + 0x1c]
movsd xmm0, qword [edx + 0x14]
movsd xmm2, qword [edx + 0x24]
mov dword [esp + 0x58], eax
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x7c], edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], esi
movsd qword [esp + 0x188], xmm1
movsd xmm1, qword [edx + 0x2c]
movsd qword [esp + 0x180], xmm0
movsd qword [esp + 0x190], xmm2
cmp ecx, 0x80000000
mov dword [esp + 0x24], ecx
movsd qword [esp + 0x198], xmm1
jne 0x1004f607
mov edx, dword [esp + 0x3c]
mov ebx, 0x80000000
xor esi, esi
xor eax, eax
jmp 0x1004f692
and dword [esp + 0x9c], 0
mov ecx, esi
xor edx, edx
mov dword [esp + 0xa4], 0x80000000
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::allocate_in::h27dc888bb151676b
mov edi, edx
mov dword [esp + 0x28], eax
push esi
push ebx
push edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xb0]
lea edx, [esp + 0x9c]
mov dword [esp + 0xd0], eax
lea eax, [esp + 0xd0]
mov dword [esp + 0xd4], edi
mov dword [esp + 0xd8], esi
push eax
call sym.std::thread::Builder::name::h9826598a6a990704
mov edx, dword [esp + 0x40]
add esp, 4
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov ebx, dword [esp + 0xb8]
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0xbc]
or eax, edx
jne 0x1004f6a1
call dbg.min_stack
mov dword [esp + 0x28], eax
jmp 0x1004f6ac
test edx, edx
cmovne ecx, dword [esp + 0x40]
mov dword [esp + 0x28], ecx
xor ecx, ecx
cmp ebx, 0x80000000
je 0x1004f70b
cmp esi, 7
ja 0x1004f6cc
xor eax, eax
xor edx, edx
cmp esi, edx
je 0x1004f6d9
cmp byte [edi + edx], 0
je 0x1004f6dd
inc edx
jmp 0x1004f6bf
mov edx, edi
xor ecx, ecx
push esi
call sym.core::slice::memchr::memchr_aligned::h1a35e36347725a9f
pop ecx
jmp 0x1004f6e0
mov edx, esi
jmp 0x1004f6e0
xor eax, eax
inc eax
test eax, eax
jne 0x1004fa38
lea ecx, [esp + 0x9c]
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], esi
call dbg._from_vec_unchecked
mov ecx, eax
call sym.std::thread::Thread::new::h891e011230b4b9a2
mov dword [esp + 0xdc], eax
lock inc dword [eax]
jle 0x1004fa0d
mov edi, eax
push 0x18
pop ecx
push 4
pop edx
call sym.__ZN5alloc5alloc15exchange_malloc17hb61fce2610a36b72E.1425
mov ebx, eax
xor eax, eax
inc eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
and dword [ebx + 8], 0
and dword [ebx + 0xc], 0
mov dword [esp + 0xd0], ebx
lock inc dword [ebx]
jle 0x1004fa0d
xor ecx, ecx
call sym.std::io::stdio::set_output_capture::h4c64913747c4a16b
mov esi, eax
test eax, eax
je 0x1004f769
lock inc dword [esi]
jle 0x1004fa0d
mov ecx, esi
jmp 0x1004f76b
xor ecx, ecx
call sym.std::io::stdio::set_output_capture::h4c64913747c4a16b
lea ecx, [esp + 0x9c]
mov dword [esp + 0x9c], eax
call sym.__ZN4core3ptr129drop_in_place_LT_core..option..Option_LT_alloc..sync..Arc_LT_std..sync..mutex..Mutex_LT_alloc..vec..Vec_LT_u8_
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x1004f792
add ecx, 8
call dbg.increment_num_running_threads
push 0x40
pop ecx
push 4
pop edx
call sym.__ZN5alloc5alloc15exchange_malloc17hb61fce2610a36b72E.1425
mov ecx, dword [esp + 0x3c]
mov dword [eax], edi
mov dword [eax + 4], ebx
mov dword [eax + 8], esi
mov edx, dword [esp + 0x28]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x40]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x38]
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 0x1c], ecx
lea ecx, [esp + 0x9c]
movsd xmm0, qword [esp + 0x180]
movsd xmm1, qword [esp + 0x188]
movsd qword [eax + 0x20], xmm0
movsd qword [eax + 0x28], xmm1
movsd xmm0, qword [esp + 0x190]
movsd qword [eax + 0x30], xmm0
movsd xmm0, qword [esp + 0x198]
movsd qword [eax + 0x38], xmm0
push 0x101b821c
push eax
call sym.std::sys::windows::thread::Thread::new::h501542e7ba0adf53
pop eax
pop ecx
movzx esi, byte [esp + 0x9c]
cmp esi, 4
jne 0x1004f861
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], eax
push eax
call sub.kernel32.dll_CloseHandle
lea ecx, [esp + 0xb0]
call sym.core::ptr::drop_in_place_LT_std..thread..Thread_GT_::h60df96dc60866373
lea ecx, [esp + 0xb4]
call sym.core::ptr::drop_in_place_LT_alloc..sync..Arc_LT_std..thread..Packet_LT__LP__RP__GT__GT__GT_::h21e04bb063256506
jmp 0x1004f89d
mov eax, dword [esp + 0xa0]
movzx ebx, byte [esp + 0x9f]
movzx edi, word [esp + 0x9d]
lea ecx, [esp + 0xd0]
mov dword [esp + 0x24], eax
call sym.core::ptr::drop_in_place_LT_alloc..sync..Arc_LT_std..thread..Packet_LT__LP__RP__GT__GT__GT_::h21e04bb063256506
lea ecx, [esp + 0xdc]
call sym.core::ptr::drop_in_place_LT_std..thread..Thread_GT_::h60df96dc60866373
cmp esi, 4
jne 0x1004f9e6
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x48], eax
jmp 0x1004f30e
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x68], edi
mov dword [esp + 0x7c], esi
jmp 0x1004f8e4
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x180]
mov dword [esp + 0x58], eax
mov dword [esp + 0x68], edi
mov dword [esp + 0x7c], esi
call sym.__ZN4core3ptr155drop_in_place_LT_alloc..sync..Arc_LT_crossbeam_utils..cache_padded..CachePadded_LT_crossbeam_deque..deque..Inn
mov ebx, dword [esp + 0x34]
lea ecx, [esp + 0x50]
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 + 0x4c]
mov ecx, dword [esp + 0x80]
mov dword [ecx + 4], eax
mov byte [ecx], 6
jmp 0x1004f99a
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
and dword [ecx + 4], 0
mov dword [ecx], 5
lea ecx, [esp + 0x100]
mov dword [esp + 0x58], eax
mov dword [esp + 0x68], edx
mov dword [esp + 0x7c], edi
call sym.core::ptr::drop_in_place_LT_rayon_core..registry..ThreadBuilder_GT_::hf18fae2899883971
lea ecx, [esp + 0x50]
call sym.__ZN4core3ptr313drop_in_place_LT_core..iter..adapters..enumerate..Enumerate_LT_core..iter..adapters..zip..Zip_LT_alloc..vec..i
mov esi, dword [esp + 0x30]
lock dec dword [esi + 0xec]
jne 0x1004f98d
mov ecx, dword [esi + 0x104]
imul ebx, dword [esi + 0x108], 0x24
add esi, 0xf0
xor edi, edi
push 3
pop edx
test ebx, ebx
je 0x1004f98d
mov eax, edx
xchg dword [ecx + 0x18], eax
cmp eax, 2
jne 0x1004f984
mov dword [esp + 0x24], ecx
mov ecx, esi
mov edx, edi
call sym.rayon_core::sleep::Sleep::wake_specific_thread::h0a699174287a87f0
push 3
pop edx
mov ecx, dword [esp + 0x24]
add ecx, 0x24
add ebx, 0xffffffdc
inc edi
jmp 0x1004f962
lea ecx, [esp + 0x4c]
call sym.core::ptr::drop_in_place_LT_alloc..sync..Arc_LT_rayon_core..registry..Registry_GT__GT_::ha2f43f18a4647e9b
mov ebx, dword [esp + 0x34]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
call sym.__ZN4core3ptr130drop_in_place_LT_core..result..Result_LT__LP__RP__C_alloc..boxed..Box_LT_dyn_u20_core..any..Any_u2b_core..mark
mov esi, dword [ebx + 0x14]
test esi, esi
je 0x1004f9c8
mov edi, dword [ebx + 0x18]
push esi
call dword [edi]
add esp, 4
mov eax, dword [edi + 4]
test eax, eax
je 0x1004f9c8
mov edx, dword [edi + 8]
mov ecx, esi
push eax
call sym.__LT_alloc..alloc..Global_u20_as_u20_core..alloc..Allocator_GT_::deallocate::hfbcbcf7f85fde04c
pop eax
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x20]
call sym.__ZN4core3ptr130drop_in_place_LT_core..result..Result_LT__LP__RP__C_alloc..boxed..Box_LT_dyn_u20_core..any..Any_u2b_core..mark
mov ecx, dword [ebx + 0x24]
mov edx, dword [ebx + 0x28]
call sym.__ZN4core3ptr130drop_in_place_LT_core..result..Result_LT__LP__RP__C_alloc..boxed..Box_LT_dyn_u20_core..any..Any_u2b_core..mark
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x24]
shl edi, 8
shl ebx, 0x18
or ebx, edi
or ebx, esi
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax], ebx
mov dword [esp + 0x30], ecx
jmp 0x1004f934
ud2
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x58], eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x7c], edi
ud2
call sym.alloc::raw_vec::capacity_overflow::h7b8b81325d19d337
push 4
jmp 0x1004fa30
push 0x40
pop ecx
mov edx, esi
call dbg.handle_alloc_error
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa8], edx
push 0x2f
pop edx
mov ecx, str.thread_name_may_not_contain_interior_null_bytes
push 0x101c4204
push 0x101b823c
lea eax, [esp + 0xa4]
push eax
call dbg.unwrap_failed