Function at 0x140116a52
Capabilities:
Check os version

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x238
movaps xmmword [rsp + 0x220], xmm6
mov rsi, rcx
mov qword [rsp + 0x178], rcx
mov qword [rsp + 0x180], rdx
lea rcx, [rsp + 0x1b0]
call fcn.1401182e8
xorps xmm6, xmm6
test rsi, rsi
je 0x140116cd9
cmp rsi, 1
jne 0x140116f37
mov r12, qword [rsp + 0x180]
mov dword [rsp + 0x108], 0x3b9aca00
movaps xmmword [rsp + 0xe0], xmm6
movaps xmmword [rsp + 0xd0], xmm6
mov qword [rsp + 0xf0], 0
mov rax, qword [r12]
mov r8, qword [r12 + 8]
mov esi, 1
xor r14d, r14d
xor ebp, ebp
cmp ebp, 6
mov ecx, 6
cmovb ecx, ebp
mov rdx, rax
shr rdx, 1
mov r13d, edx
and r13d, 0x1f
cmp r13, 0x1f
jne 0x140116b24
cmp ebp, 6
ja 0x140116b98
mov eax, ebp
imul eax, ebp
test eax, eax
je 0x140116b9e
mov eax, r14d
pause
dec eax
jne 0x140116b1c
jmp 0x140116b9e
lea r15, [rax + 2]
test al, 1
jne 0x140116b51
mfence
mov rbx, qword [r12 + 0x80]
mov rdi, rbx
shr rdi, 1
cmp rdx, rdi
je 0x140116bb4
xor rbx, rax
xor edx, edx
cmp rbx, 0x40
setae dl
or r15, rdx
test r8, r8
je 0x140116b7f
lock cmpxchg qword [r12], r15
je 0x140117072
cmp ebp, 6
mov eax, 6
cmovb eax, ebp
imul eax, eax
test eax, eax
je 0x140116b9e
imul ecx, ecx
pause
dec ecx
jne 0x140116b77
jmp 0x140116b9e
cmp ebp, 6
ja 0x140116b98
mov eax, ebp
imul eax, ebp
test eax, eax
je 0x140116b9e
mov eax, r14d
pause
dec eax
jne 0x140116b90
jmp 0x140116b9e
call qword [sym.imp.KERNEL32.DLL_SwitchToThread]
mov rax, qword [r12]
mov r8, qword [r12 + 8]
inc ebp
add r14d, esi
add esi, 2
jmp 0x140116ae5
test bl, 1
jne 0x1401176f0
mov esi, dword [rsp + 0x108]
cmp esi, 0x3b9aca00
je 0x140116bed
mov rdi, qword [rsp + 0x100]
call fcn.14025b070
cmp rax, rdi
jne 0x140116be7
cmp edx, esi
jb 0x140116bed
jmp 0x140117701
ja 0x140117701
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], r12
lea rax, [rsp + 0x100]
mov qword [rsp + 0x50], rax
mov eax, dword [0x14051f7b8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0xf0], 0
je 0x140116c32
lea rsi, [rax + 0xf8]
jmp 0x140116c3f
call fcn.14025f3c0
mov rsi, rax
test rax, rax
je 0x140116c9b
mov rbx, qword [rsi]
mov qword [rsi], 0
test rbx, rbx
je 0x140116c9b
mov qword [rsp + 0x90], rbx
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0
lea rcx, [rsp + 0x40]
lea rdx, [rsp + 0x90]
call fcn.140113711
mov rcx, qword [rsi]
mov qword [rsi], rbx
test rcx, rcx
je 0x140116ad2
lock dec qword [rcx]
jne 0x140116ad2
call fcn.140118f60
jmp 0x140116ad2
call fcn.1403ba130
mov rsi, rax
mov qword [rsp + 0x90], rax
lea rcx, [rsp + 0x40]
lea rdx, [rsp + 0x90]
call fcn.140113711
lock dec qword [rsi]
jne 0x140116ad2
mov rcx, qword [rsp + 0x90]
call fcn.140118f60
jmp 0x140116ad2
mov r13, qword [rsp + 0x180]
mov dword [rsp + 0x108], 0x3b9aca00
movaps xmmword [rsp + 0xe0], xmm6
movaps xmmword [rsp + 0xd0], xmm6
mov qword [rsp + 0xf0], 0
mov rcx, qword [r13]
mov r15d, 1
xor r14d, r14d
xor r12d, r12d
cmp r12d, 6
mov edx, 6
cmovb edx, r12d
imul edx, edx
mov r8, qword [r13 + 0x100]
mov rsi, qword [r13 + 0x120]
dec rsi
and rsi, rcx
xor eax, eax
sub rax, qword [r13 + 0x118]
mov rbp, rsi
shl rbp, 6
mov rdi, qword [r8 + rbp]
lea rbx, [rcx + 1]
cmp rbx, rdi
jne 0x140116d9d
inc rsi
cmp rsi, qword [r13 + 0x110]
jb 0x140116d72
and rax, rcx
add rax, qword [r13 + 0x118]
mov rdi, rax
mov rax, rcx
lock cmpxchg qword [r13], rdi
je 0x14011701a
cmp r12d, 6
mov eax, 6
cmovb eax, r12d
imul eax, eax
test eax, eax
je 0x140116dff
pause
dec edx
jne 0x140116d95
jmp 0x140116dff
cmp rdi, rcx
jne 0x140116ddd
mfence
mov rax, qword [r13 + 0x80]
mov rbx, qword [r13 + 0x120]
mov rbp, rbx
not rbp
and rbp, rax
cmp rbp, rcx
je 0x140116e12
cmp r12d, 6
mov eax, 6
cmovb eax, r12d
imul eax, eax
test eax, eax
je 0x140116dff
pause
dec edx
jne 0x140116dd5
jmp 0x140116dff
cmp r12d, 7
jae 0x140116df9
mov eax, r12d
imul eax, r12d
test eax, eax
je 0x140116dff
mov eax, r14d
pause
dec eax
jne 0x140116df1
jmp 0x140116dff
call qword [sym.imp.KERNEL32.DLL_SwitchToThread]
mov rcx, qword [r13]
inc r12d
add r14d, r15d
add r15d, 2
jmp 0x140116d18
test rbx, rax
jne 0x14011774e
mov esi, dword [rsp + 0x108]
cmp esi, 0x3b9aca00
je 0x140116e4b
mov rdi, qword [rsp + 0x100]
call fcn.14025b070
cmp rax, rdi
jne 0x140116e45
cmp edx, esi
jb 0x140116e4b
jmp 0x140117701
ja 0x140117701
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], r13
lea rax, [rsp + 0x100]
mov qword [rsp + 0x50], rax
mov eax, dword [0x14051f7b8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0xf0], 0
je 0x140116e90
lea rsi, [rax + 0xf8]
jmp 0x140116e9d
call fcn.14025f3c0
mov rsi, rax
test rax, rax
je 0x140116ef9
mov rdi, qword [rsi]
mov qword [rsi], 0
test rdi, rdi
je 0x140116ef9
mov qword [rsp + 0x90], rdi
mov qword [rdi + 0x10], 0
mov qword [rdi + 0x18], 0
lea rcx, [rsp + 0x40]
lea rdx, [rsp + 0x90]
call fcn.140119ef8
mov rcx, qword [rsi]
mov qword [rsi], rdi
test rcx, rcx
je 0x140116d08
lock dec qword [rcx]
jne 0x140116d08
call fcn.140118f60
jmp 0x140116d08
call fcn.1403ba130
mov rsi, rax
mov qword [rsp + 0x90], rax
lea rcx, [rsp + 0x40]
lea rdx, [rsp + 0x90]
call fcn.140119ef8
lock dec qword [rsi]
jne 0x140116d08
mov rcx, qword [rsp + 0x90]
call fcn.140118f60
jmp 0x140116d08
mov rdi, qword [rsp + 0x180]
add rdi, 0x10
mov dword [rsp + 0x1a8], 0x3b9aca00
movaps xmmword [rsp + 0x110], xmm6
movaps xmmword [rsp + 0x100], xmm6
mov qword [rsp + 0x120], 0
lea rcx, [rsp + 0x40]
mov rdx, rdi
call fcn.140264d05
cmp qword [rsp + 0x40], 0
jne 0x14011820f
mov r13, qword [rsp + 0x48]
mov al, byte [rsp + 0x50]
mov byte [rsp + 0x38], al
mov rax, qword [r13 + 0x20]
test rax, rax
je 0x140116fef
lea rcx, [r13 + 0x10]
mov qword [rsp + 0x88], rcx
mov rbx, qword [r13 + 0x18]
shl rax, 3
lea r14, [rax + rax*2]
xor esi, esi
xor ebp, ebp
mov r12, qword [rbx + rsi + 0x10]
mov r15, qword [r12 + 0x20]
lea rcx, [0x14025f4d0]
call fcn.14011917f
cmp r15, rax
je 0x140116fe3
mov rcx, qword [rbx + rsi]
xor eax, eax
lock cmpxchg qword [r12 + 0x10], rcx
je 0x140117269
inc rbp
add rsi, 0x18
cmp r14, rsi
jne 0x140116fb5
cmp byte [r13 + 0x70], 0
je 0x140117115
mov byte [rsp + 0x138], 1
mov qword [rsp + 0x130], 3
mov rcx, r13
mov dl, byte [rsp + 0x38]
jmp 0x1401174b6
lea rax, [r8 + rbp]
mov qword [rsp + 0xd0], rax
add rcx, qword [r13 + 0x118]
mov qword [rsp + 0xd8], rcx
mov rbx, qword [r8 + rbp + 8]
movups xmm0, xmmword [r8 + rbp + 0x30]
movaps xmmword [rsp + 0x60], xmm0
movups xmm0, xmmword [r8 + rbp + 0x20]
movaps xmmword [rsp + 0x50], xmm0
movups xmm0, xmmword [r8 + rbp + 0x10]
movaps xmmword [rsp + 0x40], xmm0
mov qword [rax], rcx
add r13, 0x128
mov rcx, r13
call fcn.140118b61
jmp 0x1401171e6
cmp r13d, 0x1e
jne 0x1401170a9
mov rcx, r8
mov rsi, r8
call fcn.1401134ea
mov r8, rsi
add r15, 2
and r15, 0xfffffffffffffffe
mov rcx, qword [rax + 0x7c0]
xor edx, edx
test rcx, rcx
setne dl
or rdx, r15
mov qword [r12 + 8], rax
mov qword [r12], rdx
mov qword [rsp + 0xe0], r8
mov qword [rsp + 0xe8], r13
test r8, r8
je 0x140117213
mov rdi, qword [rsp + 0xe8]
mov rsi, rdi
shl rsi, 6
lea rcx, [r8 + rsi]
mov rbx, r8
call fcn.14011342e
mov r8, rbx
mov rbx, qword [rbx + rsi]
movups xmm0, xmmword [r8 + rsi + 0x28]
movaps xmmword [rsp + 0x60], xmm0
movups xmm0, xmmword [r8 + rsi + 0x18]
movaps xmmword [rsp + 0x50], xmm0
movups xmm0, xmmword [r8 + rsi + 8]
movaps xmmword [rsp + 0x40], xmm0
inc rdi
cmp rdi, 0x1f
jne 0x14011717d
xor edi, edi
jmp 0x14011719a
mov qword [rsp + 0xd0], r13
mov al, byte [rsp + 0x38]
mov byte [rsp + 0xd8], al
lea rax, [rsp + 0x100]
mov qword [rsp + 0xe0], rax
lea rax, [rsp + 0x1a0]
mov qword [rsp + 0xe8], rax
mov qword [rsp + 0xf0], rdi
mov eax, dword [0x14051f7b8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0xf0], 0
je 0x1401173a4
lea rsi, [rax + 0xf8]
jmp 0x1401173b5
lea rcx, [r8 + rsi]
add rcx, 0x38
mov rax, qword [rcx]
mov rdx, rax
or rdx, 2
lock cmpxchg qword [rcx], rdx
jne 0x140117188
test al, 4
je 0x1401171e6
cmp rdi, 0x1d
ja 0x1401171d7
mov rax, rdi
shl rax, 6
mov rcx, qword [r8 + rax + 0x38]
test cl, 2
jne 0x1401171ce
lea rcx, [r8 + rax]
add rcx, 0x38
mov rax, qword [rcx]
mov rdx, rax
or rdx, 4
lock cmpxchg qword [rcx], rdx
jne 0x1401171bc
test al, 2
je 0x1401171e6
inc rdi
cmp rdi, 0x1e
jne 0x1401171a0
mov rcx, qword [0x14051f200]
xor edx, edx
call qword [sym.imp.KERNEL32.DLL_HeapFree]
movaps xmm0, xmmword [rsp + 0x40]
movaps xmm1, xmmword [rsp + 0x50]
movaps xmm2, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xb0], xmm2
movaps xmmword [rsp + 0xa0], xmm1
movaps xmmword [rsp + 0x90], xmm0
cmp rbx, 3
jne 0x140117231
mov byte [rsp + 0x138], 1
mov qword [rsp + 0x130], 3
mov ebx, 3
jmp 0x1401174c3
mov qword [rsp + 0x130], rbx
movaps xmm0, xmmword [rsp + 0x90]
movaps xmm1, xmmword [rsp + 0xa0]
movaps xmm2, xmmword [rsp + 0xb0]
lea rax, [rsp + 0x138]
movups xmmword [rax + 0x20], xmm2
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
jmp 0x1401174c3
mov rcx, qword [rbx + rsi + 8]
mov rax, qword [rbx + rsi + 0x10]
test rcx, rcx
je 0x14011727c
mov qword [rax + 0x18], rcx
mov rcx, qword [rax + 0x28]
add rcx, 0x28
call fcn.140260030
lea rcx, [rsp + 0xd0]
mov rdx, qword [rsp + 0x88]
mov r8, rbp
lea r9, str._rustc_d5a82bbd26e1ad8b7401f6a718a9c57c96905483library_std_src_syncmpmcwaker.rs
call fcn.140110006
mov rbp, qword [rsp + 0xe0]
test rbp, rbp
je 0x140116fef
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x120], rax
mov rcx, r13
mov dl, byte [rsp + 0x38]
call fcn.140241640
mov rdi, qword [rsp + 0x120]
test rdi, rdi
je 0x140117571
cmp byte [rdi + 0x39], 0
je 0x14011758a
mov qword [rsp + 0x40], 3
xor eax, eax
mov rcx, qword [rdi + rax*8]
mov rdx, qword [rsp + rax*8 + 0x40]
mov qword [rdi + rax*8], rdx
mov qword [rsp + rax*8 + 0x40], rcx
inc rax
cmp rax, 7
jne 0x1401172fb
mov rsi, qword [rsp + 0x40]
lea rax, [rsp + 0x48]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0xa0], xmm1
movaps xmmword [rsp + 0xb0], xmm2
cmp rsi, 3
je 0x14011825e
movaps xmm0, xmmword [rsp + 0x90]
movaps xmm1, xmmword [rsp + 0xa0]
movaps xmm2, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0x60], xmm2
movaps xmmword [rsp + 0x50], xmm1
movaps xmmword [rsp + 0x40], xmm0
mov byte [rdi + 0x38], 1
movaps xmm0, xmmword [rsp + 0x40]
movaps xmm1, xmmword [rsp + 0x50]
movaps xmm2, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xb0], xmm2
movaps xmmword [rsp + 0xa0], xmm1
movaps xmmword [rsp + 0x90], xmm0
jmp 0x14011765c
call fcn.14025f3c0
mov rsi, rax
test rax, rax
je 0x1401176a7
mov rdi, qword [rsi]
mov qword [rsi], 0
test rdi, rdi
je 0x14011770e
mov qword [rsp + 0x188], rdi
mov qword [rdi + 0x10], 0
mov qword [rdi + 0x18], 0
lea rcx, [rsp + 0x40]
lea rdx, [rsp + 0xd0]
lea r8, [rsp + 0x188]
call fcn.140113de8
mov rcx, qword [rsi]
mov qword [rsi], rdi
test rcx, rcx
je 0x140117410
lock dec qword [rcx]
jne 0x140117410
call fcn.140118f60
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0xc0], rax
movups xmm0, xmmword [rsp + 0x40]
movups xmm1, xmmword [rsp + 0x50]
movups xmm2, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xb0], xmm2
movaps xmmword [rsp + 0xa0], xmm1
movaps xmmword [rsp + 0x90], xmm0
mov rax, qword [rsp + 0x90]
lea rcx, [rsp + 0x98]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmm2, xmmword [rcx + 0x20]
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x50], xmm1
movaps xmmword [rsp + 0x60], xmm2
cmp rax, 4
je 0x1401176a7
mov qword [rsp + 0x130], rax
movaps xmm0, xmmword [rsp + 0x40]
movaps xmm1, xmmword [rsp + 0x50]
movaps xmm2, xmmword [rsp + 0x60]
lea rax, [rsp + 0x138]
movups xmmword [rax + 0x20], xmm2
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
mov dl, byte [rsp + 0xd8]
cmp dl, 2
je 0x1401174bb
mov rcx, qword [rsp + 0xd0]
call fcn.140241640
mov rbx, qword [rsp + 0x130]
cmp rbx, 3
je 0x14011806e
mov rax, qword [rsp + 0x138]
mov r14, qword [rsp + 0x140]
mov rcx, qword [rsp + 0x148]
test rbx, rbx
je 0x140117520
cmp rbx, 1
jne 0x14011775b
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x58], rcx
lea rcx, [rsp + 0x1b0]
lea rdx, [rsp + 0x40]
call fcn.14011852a
jmp 0x140117564
mov rdx, qword [rsp + 0x150]
mov rbp, qword [rsp + 0x160]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], rbp
lea rcx, [rsp + 0x1b0]
lea rdx, [rsp + 0x40]
call fcn.1401183ea
mov rsi, qword [rsp + 0x178]
jmp 0x140116a90
mov byte [rsp + 0x138], 1
mov qword [rsp + 0x130], 3
jmp 0x14011768f
mov rcx, rdi
call fcn.140113d04
mov qword [rsp + 0x40], 3
xor eax, eax
mov rcx, qword [rdi + rax*8]
mov rdx, qword [rsp + rax*8 + 0x40]
mov qword [rdi + rax*8], rdx
mov qword [rsp + rax*8 + 0x40], rcx
inc rax
cmp rax, 7
jne 0x14011759d
mov rsi, qword [rsp + 0x40]
lea rax, [rsp + 0x48]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0xa0], xmm1
movaps xmmword [rsp + 0xb0], xmm2
cmp rsi, 3
je 0x14011826e
movaps xmm0, xmmword [rsp + 0x90]
movaps xmm1, xmmword [rsp + 0xa0]
movaps xmm2, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0x60], xmm2
movaps xmmword [rsp + 0x50], xmm1
movaps xmmword [rsp + 0x40], xmm0
cmp dword [rdi], 3
je 0x140117623
mov rcx, rdi
call fcn.1401136cc
mov rcx, qword [0x14051f200]
xor edx, edx
mov r8, rdi
call qword [sym.imp.KERNEL32.DLL_HeapFree]
movaps xmm0, xmmword [rsp + 0x40]
movaps xmm1, xmmword [rsp + 0x50]
movaps xmm2, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0xa0], xmm1
movaps xmmword [rsp + 0xb0], xmm2
mov qword [rsp + 0x130], rsi
movaps xmm0, xmmword [rsp + 0x90]
movaps xmm1, xmmword [rsp + 0xa0]
movaps xmm2, xmmword [rsp + 0xb0]
lea rax, [rsp + 0x138]
movups xmmword [rax + 0x20], xmm2
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
lock dec qword [rbp]
jne 0x1401174bb
mov rcx, rbp
call fcn.140118f60
jmp 0x1401174bb
call fcn.1403ba130
mov rsi, rax
mov qword [rsp + 0x90], rax
lea rcx, [rsp + 0x130]
lea rdx, [rsp + 0xd0]
lea r8, [rsp + 0x90]
call fcn.140113de8
lock dec qword [rsi]
jne 0x1401174a2
mov rcx, qword [rsp + 0x90]
call fcn.140118f60
jmp 0x1401174a2
mov qword [rsp + 0xe0], 0
jmp 0x140117213
mov byte [rsp + 0x138], 0
jmp 0x140117227
call fcn.1403ba130
mov rsi, rax
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0xd0]
lea r8, [rsp + 0x40]
call fcn.140113de8
lock dec qword [rsi]
jne 0x140117444
mov rcx, qword [rsp + 0x40]
call fcn.140118f60
jmp 0x140117444
movaps xmmword [rsp + 0xd0], xmm6
jmp 0x140117213
mov qword [rsp + 0x188], rax
mov qword [rsp + 0x190], r14
cmp qword [rsp + 0x1e0], 0
je 0x1401181d9
mov rcx, qword [rsp + 0x1d8]
mov rdx, qword [rcx]
mov r15, qword [rcx + 8]
mov r12, qword [rcx + 0x10]
xor r13d, r13d
mov qword [rcx], r13
mov qword [rcx + 8], 1
mov qword [rcx + 0x10], r13
test rax, rax
mov qword [rsp + 0x38], rdx
je 0x1401178e6
cmp rax, 1
jne 0x140117b82
mov rbx, qword [r14 + 0x80]
mov rsi, qword [r14 + 0x88]
test bl, 1
jne 0x140117d1a
xor edi, edi
xor r13d, r13d
mov ebp, ebx
shr ebp, 1
and ebp, 0x1f
cmp ebp, 0x1f
jne 0x140117800
cmp edi, 7
jae 0x1401178a6
mov eax, edi
imul eax, edi
test eax, eax
je 0x1401178ac
pause
dec eax
jne 0x1401177f5
jmp 0x1401178ac
cmp ebp, 0x1e
jne 0x140117835
test r13, r13
jne 0x140117835
mov ecx, 0x3e8
mov edx, 8
call fcn.14002c720
test rax, rax
je 0x14011824d
mov r13, rax
mov r8d, 0x3e8
mov rcx, rax
xor edx, edx
call fcn.1403ac180
test rsi, rsi
jne 0x140117876
mov ecx, 0x3e8
mov edx, 8
call fcn.14002c720
test rax, rax
je 0x14011824d
mov rsi, rax
mov r8d, 0x3e8
mov rcx, rax
xor edx, edx
call fcn.1403ac180
xor eax, eax
lock cmpxchg qword [r14 + 0x88], rsi
jne 0x1401178ca
mov qword [r14 + 8], rsi
lea rcx, [rbx + 2]
mov rax, rbx
lock cmpxchg qword [r14 + 0x80], rcx
je 0x140117eaf
cmp edi, 6
mov eax, 6
cmovb eax, edi
imul eax, eax
test eax, eax
je 0x1401178ac
pause
dec eax
jne 0x14011789e
jmp 0x1401178ac
call qword [sym.imp.KERNEL32.DLL_SwitchToThread]
inc edi
mov rbx, qword [r14 + 0x80]
mov rsi, qword [r14 + 0x88]
test bl, 1
je 0x1401177d3
jmp 0x140117cf6
test r13, r13
je 0x1401178e1
mov rcx, qword [0x14051f200]
xor edx, edx
mov r8, r13
call qword [sym.imp.KERNEL32.DLL_HeapFree]
mov r13, rsi
jmp 0x1401178ae
mov qword [rsp + 0xf8], r12
mov qword [rsp + 0x88], r15
mov dword [rsp + 0x138], 0x3b9aca00
xorps xmm0, xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x60], 0
mov rcx, qword [r14 + 0x80]
mov rax, qword [r14 + 0x120]
test rax, rcx
jne 0x140117cae
mov r12d, 1
xor r15d, r15d
xor ebp, ebp
cmp ebp, 6
mov edx, 6
cmovb edx, ebp
imul edx, edx
dec rax
and rax, rcx
mov rbx, qword [r14 + 0x118]
xor esi, esi
sub rsi, rbx
mov r8, qword [r14 + 0x100]
mov rdi, rax
shl rdi, 5
mov rbx, qword [r8 + rdi]
cmp rcx, rbx
jne 0x140117982
inc rax
cmp rax, qword [r14 + 0x110]
jae 0x1401179c2
lea rsi, [rcx + 1]
jmp 0x1401179cc
add rbx, qword [r14 + 0x118]
lea rax, [rcx + 1]
cmp rbx, rax
jne 0x1401179f8
mfence
mov rax, qword [r14]
add rax, qword [r14 + 0x118]
cmp rax, rcx
je 0x140117a3c
cmp ebp, 6
mov eax, 6
cmovb eax, ebp
imul eax, eax
test eax, eax
je 0x140117a17
pause
dec edx
jne 0x1401179ba
jmp 0x140117a17
and rsi, rcx
add rsi, qword [r14 + 0x118]
mov rax, rcx
lock cmpxchg qword [r14 + 0x80], rsi
je 0x140117d45
cmp ebp, 6
mov eax, 6
cmovb eax, ebp
imul eax, eax
test eax, eax
je 0x140117a17
pause
dec edx
jne 0x1401179f0
jmp 0x140117a17
cmp ebp, 7
jae 0x140117a11
mov eax, ebp
imul eax, ebp
test eax, eax
je 0x140117a17
mov eax, r15d
pause
dec eax
jne 0x140117a09
jmp 0x140117a17
call qword [sym.imp.KERNEL32.DLL_SwitchToThread]
mov rcx, qword [r14 + 0x80]
inc ebp
mov rax, qword [r14 + 0x120]
add r15d, r12d
add r12d, 2
test rax, rcx
je 0x140117939
jmp 0x140117cae
cmp r13d, 7
jne 0x140117a7c
mov esi, dword [rsp + 0x138]
cmp esi, 0x3b9aca00
mov rbx, qword [rsp + 0x88]
mov rbp, qword [rsp + 0xf8]
je 0x140117a9b
mov rdi, qword [rsp + 0x130]
call fcn.14025b070
cmp rax, rdi
jne 0x140117a95
cmp edx, esi
jb 0x140117a9b
jmp 0x1401181eb
mov eax, r13d
imul eax, r13d
test eax, eax
je 0x140117a8d
pause
dec eax
jne 0x140117a87
inc r13d
jmp 0x140117917
ja 0x1401181eb
lea rax, [rsp + 0x40]
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], r14
lea rax, [rsp + 0x130]
mov qword [rsp + 0xa0], rax
mov eax, dword [0x14051f7b8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0xf0], 0
je 0x140117ae6
lea rdi, [rax + 0xf8]
jmp 0x140117af3
call fcn.14025f3c0
mov rdi, rax
test rax, rax
je 0x140117b4d
mov rsi, qword [rdi]
mov qword [rdi], 0
test rsi, rsi
je 0x140117b4d
mov qword [rsp + 0xd0], rsi
mov qword [rsi + 0x10], 0
mov qword [rsi + 0x18], 0
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0xd0]
call fcn.140118d80
mov rcx, qword [rdi]
mov qword [rdi], rsi
test rcx, rcx
je 0x140117b45
lock dec qword [rcx]
jne 0x140117b45
call fcn.140118f60
xor r13d, r13d
jmp 0x140117917
call fcn.1403ba130
mov rdi, rax
mov qword [rsp + 0xd0], rax
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0xd0]
call fcn.140118d80
lock dec qword [rdi]
jne 0x140117b45
mov rcx, qword [rsp + 0xd0]
jmp 0x140117b40
mov qword [rsp + 0xf8], r12
mov qword [rsp + 0x88], r15
add r14, 0x10
mov dword [rsp + 0x1a8], 0x3b9aca00
xorps xmm0, xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0xb0], 0
lea rsi, [rsp + 0x40]
mov rcx, rsi
mov rdx, r14
call fcn.140264d05
cmp qword [rsi], 0
jne 0x140118288
mov rcx, qword [rsp + 0x48]
mov al, byte [rsp + 0x50]
mov byte [rsp + 0x37], al
mov qword [rsp + 0x170], rcx
mov rax, qword [rcx + 0x50]
test rax, rax
je 0x140117c5a
mov rcx, qword [rsp + 0x170]
lea rdx, [rcx + 0x40]
mov qword [rsp + 0x198], rdx
mov rbx, qword [rcx + 0x48]
shl rax, 3
lea r13, [rax + rax*2]
xor r15d, r15d
lea rbp, [0x14025f4d0]
xor edi, edi
mov r12, qword [rbx + r15 + 0x10]
mov rsi, qword [r12 + 0x20]
mov rcx, rbp
call fcn.14011917f
cmp rsi, rax
je 0x140117c4e
mov rcx, qword [rbx + r15]
xor eax, eax
lock cmpxchg qword [r12 + 0x10], rcx
je 0x140117e13
inc rdi
add r15, 0x18
cmp r13, r15
jne 0x140117c24
mov rcx, qword [rsp + 0x170]
cmp byte [rcx + 0x70], 0
je 0x140117d96
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x110], rax
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x100], 1
mov dl, byte [rsp + 0x37]
jmp 0x14011801e
xorps xmm0, xmm0
movaps xmmword [rsp + 0x40], xmm0
mov rax, qword [rsp + 0x88]
test rax, rax
je 0x140117d8c
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x108], rcx
mov qword [rsp + 0x110], rax
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0x118], rax
mov eax, 1
jmp 0x14011802b
xor ebp, ebp
xor esi, esi
test r13, r13
je 0x140117d11
mov rcx, qword [0x14051f200]
xor edx, edx
mov r8, r13
call qword [sym.imp.KERNEL32.DLL_HeapFree]
test rsi, rsi
jne 0x140117edd
test r15, r15
je 0x140118061
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x110], r15
mov qword [rsp + 0x118], r12
jmp 0x14011803a
lea rax, [r8 + rdi]
mov qword [rsp + 0x40], rax
inc rcx
mov qword [rsp + 0x48], rcx
mov rdx, qword [rsp + 0x38]
mov qword [r8 + rdi + 8], rdx
mov rdx, qword [rsp + 0x88]
mov qword [r8 + rdi + 0x10], rdx
mov rdx, qword [rsp + 0xf8]
mov qword [r8 + rdi + 0x18], rdx
mov qword [rax], rcx
add r14, 0x170
mov rcx, r14
call fcn.140118b61
mov eax, 2
jmp 0x14011802b
mov qword [rsp + 0x40], rcx
mov al, byte [rsp + 0x37]
mov byte [rsp + 0x48], al
lea rax, [rsp + 0x90]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0x68], rax
lea rax, [rsp + 0x1a0]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], r14
mov eax, dword [0x14051f7b8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0xf0], 0
je 0x140117f0f
lea rsi, [rax + 0xf8]
jmp 0x140117f20
mov rcx, qword [rbx + r15 + 8]
mov rax, qword [rbx + r15 + 0x10]
test rcx, rcx
je 0x140117e26
mov qword [rax + 0x18], rcx
mov rcx, qword [rax + 0x28]
add rcx, 0x28
call fcn.140260030
lea r9, str._rustc_d5a82bbd26e1ad8b7401f6a718a9c57c96905483library_std_src_syncmpmcwaker.rs
lea rbp, [rsp + 0x40]
mov rcx, rbp
mov rdx, qword [rsp + 0x198]
mov r8, rdi
call fcn.140110006
mov rdi, qword [rbp + 0x10]
test rdi, rdi
je 0x140117c5a
mov rbx, qword [rsp + 0x48]
mov qword [rsp + 0xb0], rbx
mov rcx, qword [rsp + 0x170]
mov dl, byte [rsp + 0x37]
call fcn.140241640
test rbx, rbx
je 0x140118123
mov rax, qword [rsp + 0x38]
mov qword [rbx], rax
mov rax, qword [rsp + 0x88]
mov qword [rbx + 8], rax
mov rax, qword [rsp + 0xf8]
mov qword [rbx + 0x10], rax
mov byte [rbx + 0x18], 1
jmp 0x140118134
cmp ebp, 0x1e
jne 0x140117cfa
test r13, r13
je 0x1401182be
mov qword [r14 + 0x88], r13
lock add qword [r14 + 0x80], 2
mov qword [rsi + 0x3e0], r13
mov ebp, 0x1e
shl rbp, 5
mov rax, qword [rsp + 0x38]
mov qword [rsi + rbp], rax
mov qword [rsi + rbp + 8], r15
mov qword [rsi + rbp + 0x10], r12
lock or qword [rsi + rbp + 0x18], 1
add r14, 0x100
mov rcx, r14
call fcn.140113a8d
jmp 0x140118061
call fcn.14025f3c0
mov rsi, rax
test rax, rax
je 0x140118157
mov rdi, qword [rsi]
mov qword [rsi], 0
test rdi, rdi
je 0x140118198
lea r8, [rsp + 0x218]
mov qword [r8], rdi
mov qword [rdi + 0x10], 0
mov qword [rdi + 0x18], 0
lea rcx, [rsp + 0x130]
lea rdx, [rsp + 0x40]
call fcn.1401142c0
mov rcx, qword [rsi]
mov qword [rsi], rdi
test rcx, rcx
je 0x140117f76
lock dec qword [rcx]
jne 0x140117f76
call fcn.140118f60
movups xmm0, xmmword [rsp + 0x130]
movups xmm1, xmmword [rsp + 0x140]
movaps xmmword [rsp + 0xe0], xmm1
movaps xmmword [rsp + 0xd0], xmm0
mov rax, qword [rsp + 0xd0]
movups xmm0, xmmword [rsp + 0xd8]
movaps xmmword [rsp + 0x130], xmm0
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x140], rcx
cmp rax, 3
je 0x140118157
mov qword [rsp + 0x100], rax
movaps xmm0, xmmword [rsp + 0x130]
movups xmmword [rsp + 0x108], xmm0
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x118], rax
mov dl, byte [rsp + 0x48]
cmp dl, 2
je 0x140118023
cmp qword [rsp + 0x58], 0
je 0x140118019
mov r8, qword [rsp + 0x60]
mov rcx, qword [0x14051f200]
xor edx, edx
call qword [sym.imp.KERNEL32.DLL_HeapFree]
mov dl, byte [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
call fcn.140241640
mov rax, qword [rsp + 0x100]
cmp rax, 2
je 0x140118061
test rax, rax
je 0x1401182a9
mov r8, qword [rsp + 0x110]
test r8, r8
je 0x140118061
cmp qword [rsp + 0x108], 0
je 0x140118061
mov rcx, qword [0x14051f200]
xor edx, edx
call qword [sym.imp.KERNEL32.DLL_HeapFree]
lea rcx, [rsp + 0x188]
call fcn.14011887e
mov rsi, qword [rsp + 0x1d8]
mov rdx, qword [rsp + 0x1e0]
mov rcx, rsi
call fcn.140031a1c
cmp qword [rsp + 0x1d0], 0
je 0x1401180a3
mov rcx, qword [0x14051f200]
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.DLL_HeapFree]
cmp qword [rsp + 0x1e8], 0
je 0x1401180c5
mov r8, qword [rsp + 0x1f0]
mov rcx, qword [0x14051f200]
xor edx, edx
call qword [sym.imp.KERNEL32.DLL_HeapFree]
mov rsi, qword [rsp + 0x208]
mov rdx, qword [rsp + 0x210]
mov rcx, rsi
call fcn.1401100e9
cmp qword [rsp + 0x200], 0
je 0x1401180fa
mov rcx, qword [0x14051f200]
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.DLL_HeapFree]
lea rcx, [rsp + 0x178]
call fcn.14011895e
movaps xmm6, xmmword [rsp + 0x220]
add rsp, 0x238
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, qword [rsp + 0x88]
test rdx, rdx
jne 0x1401182ce
mov qword [rsp + 0x100], 2
lock dec qword [rdi]
jne 0x140118023
mov rcx, rdi
call fcn.140118f60
jmp 0x140118023
call fcn.1403ba130
mov rsi, rax
lea r8, [rsp + 0xd0]
mov qword [r8], rax
lea rcx, [rsp + 0x100]
lea rdx, [rsp + 0x40]
call fcn.1401142c0
lock dec qword [rsi]
jne 0x140117ff0
mov rcx, qword [rsp + 0xd0]
call fcn.140118f60
jmp 0x140117ff0
call fcn.1403ba130
mov rsi, rax
lea r8, [rsp + 0x130]
mov qword [r8], rax
lea rcx, [rsp + 0xd0]
lea rdx, [rsp + 0x40]
call fcn.1401142c0
lock dec qword [rsi]
jne 0x140117f96
mov rcx, qword [rsp + 0x130]
call fcn.140118f60
jmp 0x140117f96
lea r8, str.C:Usersuser1.cargo_registry_srcgithub.com_1ecc6299db9ec823jpeg_decoder_0.3.0_srcworkerimmediate.rs
xor ecx, ecx
xor edx, edx
call fcn.1403af8b0
ud2
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x110], rbx
mov qword [rsp + 0x118], rbp
xor eax, eax
jmp 0x14011802b
mov rax, qword [rsp + 0x48]
mov cl, byte [rsp + 0x50]
lea r8, [rsp + 0x90]
mov qword [r8], rax
mov byte [r8 + 8], cl
lea rax, str._rustc_d5a82bbd26e1ad8b7401f6a718a9c57c96905483library_std_src_syncmpmczero.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x1404ef56b]
lea r9, [0x1404490b8]
mov edx, 0x2b
call fcn.1403afcb0
ud2
mov ecx, 0x3e8
mov edx, 8
call fcn.1403af440
ud2
lea rcx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
lea r8, str._rustc_d5a82bbd26e1ad8b7401f6a718a9c57c96905483library_std_src_syncmpmczero.rs
jmp 0x14011827c
lea rcx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
lea r8, str._rustc_d5a82bbd26e1ad8b7401f6a718a9c57c96905483library_std_src_syncmpmczero.rs
mov edx, 0x2b
call fcn.1403af950
ud2
mov rax, qword [rsp + 0x48]
mov cl, byte [rsp + 0x50]
lea r8, [rsp + 0x130]
mov qword [r8], rax
mov byte [r8 + 8], cl
lea rax, str._rustc_d5a82bbd26e1ad8b7401f6a718a9c57c96905483library_std_src_syncmpmczero.rs
jmp 0x14011822e
lea rcx, str.internal_error:_entered_unreachable_code
lea r8, str._rustc_d5a82bbd26e1ad8b7401f6a718a9c57c96905483library_std_src_syncmpmcmod.rs
mov edx, 0x28
jmp 0x140118281
lea rcx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
lea r8, [0x140448df0]
jmp 0x14011827c
mov rcx, qword [rsp + 0x38]
call fcn.140053680
lea rcx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
lea r8, str._rustc_d5a82bbd26e1ad8b7401f6a718a9c57c96905483library_std_src_syncmpmczero.rs
jmp 0x14011827c