Function at 0x18040a9b0
Capabilities:
Access peb ldr_data
Get number of processors

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2e8
mov rdi, rdx
mov rsi, rcx
cmp byte [rdx + 0xb0], 0
je 0x18040a9e5
cmp qword [rdi], 0
je 0x18040acfb
mov r13, qword [rdi + 8]
jmp 0x18040ad03
movzx eax, word [rdi + 0xb1]
movzx ecx, byte [rdi + 0xb3]
mov rdx, qword [rdi + 0x48]
mov word [rsp + 0x70], ax
mov byte [rsp + 0x72], 1
mov byte [rsp + 0x73], cl
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x68], 1
lea rcx, [rsp + 0x220]
lea rdx, [rsp + 0x60]
call fcn.18040cd00
mov r14, qword [rsp + 0x220]
mov rbx, qword [rsp + 0x228]
cmp r14, 2
je 0x18040ad67
lea rdx, [rsp + 0x230]
lea rcx, [rsp + 0x98]
mov r8d, 0xb8
call fcn.180468b10
mov qword [rsp + 0x150], r14
mov qword [rsp + 0x158], rbx
movups xmm0, xmmword [rsp + 0x98]
movups xmm1, xmmword [rsp + 0xa8]
movups xmm2, xmmword [rsp + 0xb8]
movups xmmword [rsp + 0x160], xmm0
movups xmmword [rsp + 0x170], xmm1
movups xmmword [rsp + 0x180], xmm2
lea rdx, [rsp + 0xc8]
lea rcx, [rsp + 0x190]
mov r8d, 0x88
call fcn.180468b10
mov rdx, qword [rdi + 0x50]
mov rcx, rdi
call fcn.18040e380
lock inc qword [rax]
jle 0x18040b398
mov r9, rax
mov qword [rsp + 0x58], rdx
mov cl, 1
xor eax, eax
lock cmpxchg byte [rdi + 0xa4], cl
jne 0x18040b32b
mov eax, dword [rdi + 0xa8]
mov ebp, dword [rdi + 0xac]
mov r12d, eax
shl r12d, 0x11
xor r12d, eax
mov eax, ebp
shr eax, 0x10
xor eax, ebp
xor eax, r12d
shr r12d, 7
xor r12d, eax
mov eax, ebp
shl eax, 0x11
xor eax, ebp
mov r13d, eax
shr r13d, 7
mov ecx, r12d
shr ecx, 0x10
xor r13d, eax
xor r13d, r12d
xor r13d, ecx
mov dword [rdi + 0xa8], r12d
mov dword [rdi + 0xac], r13d
xor eax, eax
xchg byte [rdi + 0xa4], al
cmp al, 2
je 0x18040b342
mov cl, 1
xor eax, eax
lock cmpxchg byte [rdi + 0xa4], cl
jne 0x18040b366
mov eax, dword [rdi + 0xa8]
mov r15d, dword [rdi + 0xac]
mov ebx, eax
shl ebx, 0x11
xor ebx, eax
mov eax, r15d
shr eax, 0x10
xor eax, r15d
xor eax, ebx
shr ebx, 7
xor ebx, eax
mov eax, r15d
shl eax, 0x11
xor eax, r15d
mov r14d, eax
shr r14d, 7
mov ecx, ebx
shr ecx, 0x10
xor r14d, eax
xor r14d, ebx
xor r14d, ecx
mov dword [rdi + 0xa8], ebx
mov dword [rdi + 0xac], r14d
xor eax, eax
xchg byte [rdi + 0xa4], al
cmp al, 2
je 0x18040b37d
add r14d, ebx
add r15d, ebx
mov dword [rsp + 0x44], 0
mov dword [rsp + 0x48], r15d
mov dword [rsp + 0x4c], r14d
mov rax, qword [rdi + 0x78]
xorps xmm0, xmm0
xorps xmm1, xmm1
test rax, rax
je 0x18040abed
lock inc qword [rax]
jle 0x18040b398
movups xmm1, xmmword [rdi + 0x78]
mov rax, qword [rdi + 0x88]
test rax, rax
je 0x18040ac0a
lock inc qword [rax]
jle 0x18040b398
movups xmm0, xmmword [rdi + 0x88]
add r13d, r12d
add ebp, r12d
mov eax, dword [rdi + 0xa0]
mov rcx, qword [rdi + 0x20]
mov rdx, qword [rdi + 0x98]
movzx r8d, word [rdi + 0xb4]
mov qword [rsp + 0x220], rcx
mov dword [rsp + 0x250], eax
mov qword [rsp + 0x228], rdx
movups xmmword [rsp + 0x230], xmm1
movups xmmword [rsp + 0x240], xmm0
mov word [rsp + 0x260], r8w
mov dword [rsp + 0x254], 0
mov dword [rsp + 0x258], ebp
mov dword [rsp + 0x25c], r13d
lea rax, [rsp + 0x220]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x98]
lea rdx, [rsp + 0x150]
lea r8, [rsp + 0x190]
mov rdi, r9
call fcn.180415090
mov rax, qword [rsp + 0xb8]
mov qword [rsi + 0x28], rax
movups xmm0, xmmword [rsp + 0x98]
movups xmm1, xmmword [rsp + 0xa8]
movups xmmword [rsi + 0x18], xmm1
movups xmmword [rsi + 8], xmm0
mov rax, qword [rsp + 0xc0]
mov qword [rsi], 0
mov qword [rsi + 0x30], 0
mov qword [rsi + 0x38], rax
mov qword [rsi + 0x40], rdi
mov rax, qword [rsp + 0x58]
mov qword [rsi + 0x48], rax
jmp 0x18040b2d0
call fcn.180406800
mov r13, rax
movzx eax, word [rdi + 0xb1]
movzx ecx, byte [rdi + 0xb3]
mov rdx, qword [rdi + 0x48]
mov word [rsp + 0x1a0], ax
mov byte [rsp + 0x1a2], 0
mov byte [rsp + 0x1a3], cl
mov qword [rsp + 0x190], rdx
mov qword [rsp + 0x198], r13
lea rcx, [rsp + 0x220]
lea rdx, [rsp + 0x190]
call fcn.18040cd00
mov r14, qword [rsp + 0x220]
mov rbx, qword [rsp + 0x228]
cmp r14, 2
jne 0x18040ad77
mov qword [rsi + 8], rbx
mov qword [rsi], 2
jmp 0x18040b2d0
lea rdx, [rsp + 0x230]
lea rcx, [rsp + 0x98]
mov r8d, 0xb8
call fcn.180468b10
movups xmm0, xmmword [rsp + 0x98]
movups xmm1, xmmword [rsp + 0xa8]
movups xmm2, xmmword [rsp + 0xb8]
movaps xmmword [rsp + 0x190], xmm0
movaps xmmword [rsp + 0x1a0], xmm1
movaps xmmword [rsp + 0x1b0], xmm2
lea rdx, [rsp + 0xc8]
lea rcx, [rsp + 0x220]
mov r8d, 0x88
call fcn.180468b10
mov rdx, qword [rdi + 0x50]
add rdx, r13
mov rcx, rdi
call fcn.18040e380
lock inc qword [rax]
jle 0x18040b398
mov r15, rax
mov qword [rsp + 0x90], r14
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x80], rdx
mov cl, 1
xor eax, eax
lock cmpxchg byte [rdi + 0xa4], cl
jne 0x18040b2e7
mov eax, dword [rdi + 0xa8]
mov r12d, dword [rdi + 0xac]
mov r14d, eax
shl r14d, 0x11
xor r14d, eax
mov eax, r12d
shr eax, 0x10
xor eax, r12d
xor eax, r14d
shr r14d, 7
xor r14d, eax
mov eax, r12d
shl eax, 0x11
xor eax, r12d
mov ebx, eax
shr ebx, 7
mov ecx, r14d
shr ecx, 0x10
xor ebx, eax
xor ebx, r14d
xor ebx, ecx
mov dword [rdi + 0xa8], r14d
mov dword [rdi + 0xac], ebx
xor eax, eax
xchg byte [rdi + 0xa4], al
cmp al, 2
je 0x18040b2f8
mov qword [rsp + 0x88], r13
mov qword [rsp + 0x58], r15
mov cl, 1
xor eax, eax
lock cmpxchg byte [rdi + 0xa4], cl
jne 0x18040b309
mov eax, dword [rdi + 0xa8]
mov r13d, dword [rdi + 0xac]
mov r15d, eax
shl r15d, 0x11
xor r15d, eax
mov eax, r13d
shr eax, 0x10
xor eax, r13d
xor eax, r15d
shr r15d, 7
xor r15d, eax
mov eax, r13d
shl eax, 0x11
xor eax, r13d
mov ebp, eax
shr ebp, 7
mov ecx, r15d
shr ecx, 0x10
xor ebp, eax
xor ebp, r15d
xor ebp, ecx
mov dword [rdi + 0xa8], r15d
mov dword [rdi + 0xac], ebp
xor eax, eax
xchg byte [rdi + 0xa4], al
cmp al, 2
je 0x18040b31a
add ebp, r15d
add r13d, r15d
mov dword [rsp + 0x44], 0
mov dword [rsp + 0x48], r13d
mov dword [rsp + 0x4c], ebp
mov rax, qword [rdi + 0x78]
xorps xmm0, xmm0
xorps xmm1, xmm1
test rax, rax
mov r13, qword [rsp + 0x58]
je 0x18040af3c
lock inc qword [rax]
jle 0x18040b398
movups xmm1, xmmword [rdi + 0x78]
mov rax, qword [rdi + 0x88]
test rax, rax
je 0x18040af59
lock inc qword [rax]
jle 0x18040b398
movups xmm0, xmmword [rdi + 0x88]
add ebx, r14d
add r12d, r14d
mov eax, dword [rdi + 0xa0]
mov rcx, qword [rdi + 0x20]
mov rdx, qword [rdi + 0x98]
movzx r8d, word [rdi + 0xb4]
mov qword [rsp + 0x98], rcx
mov dword [rsp + 0xc8], eax
mov qword [rsp + 0xa0], rdx
movups xmmword [rsp + 0xa8], xmm1
movups xmmword [rsp + 0xb8], xmm0
mov word [rsp + 0xd8], r8w
mov dword [rsp + 0xcc], 0
mov dword [rsp + 0xd0], r12d
mov dword [rsp + 0xd4], ebx
movzx eax, byte [0x1805297c8]
mov ecx, 0x58
mov edx, 8
call fcn.1802cbf10
test rax, rax
je 0x18040b39a
mov rdi, rax
mov qword [rax], 1
mov qword [rax + 8], 1
mov rax, qword [rsp + 0x90]
mov qword [rdi + 0x10], rax
mov rax, qword [rsp + 0x50]
mov qword [rdi + 0x18], rax
movaps xmm0, xmmword [rsp + 0x190]
movaps xmm1, xmmword [rsp + 0x1a0]
movaps xmm2, xmmword [rsp + 0x1b0]
movups xmmword [rdi + 0x20], xmm0
movups xmmword [rdi + 0x30], xmm1
movups xmmword [rdi + 0x40], xmm2
mov byte [rdi + 0x50], 0
movzx eax, byte [0x1805297c8]
mov ecx, 0x30
mov edx, 8
call fcn.1802cbf10
test rax, rax
lea rcx, [rsp + 0x98]
je 0x18040b3a9
mov qword [rax], 1
mov qword [rax + 8], 1
mov qword [rax + 0x10], rdi
xorps xmm0, xmm0
movups xmmword [rax + 0x18], xmm0
mov byte [rax + 0x28], 0
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x44]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], r13
lea rcx, [rsp + 0x150]
lea r9, [rsp + 0x220]
mov rdx, qword [rsp + 0x88]
mov r8, rax
call fcn.180416ee0
mov rdi, qword [rsp + 0x150]
movups xmm0, xmmword [rsp + 0x158]
movaps xmmword [rsp + 0x60], xmm0
mov rax, qword [rsp + 0x168]
mov qword [rsp + 0x70], rax
mov eax, dword [0x180529a6c]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
movzx eax, byte [rax + 0xd8]
test rax, rax
je 0x18040b0f4
cmp eax, 1
je 0x18040b121
jmp 0x18040b398
mov eax, dword [0x180529a6c]
mov rcx, qword gs:[0x58]
mov rbx, qword [rcx + rax*8]
lea rcx, [rbx + 0x88]
lea rdx, [0x1804056e0]
call fcn.180428e50
mov byte [rbx + 0xd8], 1
mov eax, dword [0x180529a6c]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0x88], 0
jne 0x18040b3b8
mov eax, dword [0x180529a6c]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov qword [rax + 0x88], 0xffffffffffffffff
lock inc qword [rdi]
jle 0x18040b398
mov eax, dword [0x180529a6c]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rbx, qword [rax + 0x90]
mov r14, qword [rax + 0x98]
mov qword [rax + 0x90], 1
mov qword [rax + 0x98], rdi
inc qword [rax + 0x88]
mov r15, qword [rax + 0xa0]
cmp r15, 0xffffffffffffffff
je 0x18040b398
lea r12, [r15 + 1]
mov eax, dword [0x180529a6c]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov qword [rax + 0xa0], r12
mov qword [rsp + 0xa0], r14
mov qword [rsp + 0xa8], r12
lea rcx, [rsp + 0x60]
call fcn.1804177c0
mov qword [rsi], 1
mov qword [rsi + 0x30], 1
mov qword [rsi + 0x38], rdi
mov qword [rsi + 0x40], r13
mov rax, qword [rsp + 0x80]
mov qword [rsi + 0x48], rax
xor ecx, ecx
call fcn.180405720
test rax, rax
je 0x18040b398
mov rdi, rax
cmp qword [rax + 0x18], r12
jne 0x18040b398
mov qword [rsp + 0x98], 2
cmp qword [rdi], 0
jne 0x18040b3c4
mov qword [rdi], 0xffffffffffffffff
mov rax, qword [rdi + 8]
cmp rax, 2
je 0x18040b27e
mov rcx, rdi
add rcx, 0x10
test rax, rax
je 0x18040b270
mov rax, qword [rcx]
lock dec qword [rax]
jne 0x18040b27e
call fcn.180409990
jmp 0x18040b27e
mov rax, qword [rcx]
lock dec qword [rax]
jne 0x18040b27e
call fcn.1804092f0
mov qword [rdi + 8], rbx
mov qword [rdi + 0x10], r14
inc qword [rdi]
mov qword [rdi + 0x18], r15
mov rax, qword [rsp + 0x98]
cmp rax, 2
je 0x18040b2d0
lea rcx, [rsp + 0xa0]
test rax, rax
je 0x18040b2bd
mov rax, qword [rsp + 0xa0]
lock dec qword [rax]
jne 0x18040b2d0
call fcn.180409990
jmp 0x18040b2d0
mov rax, qword [rsp + 0xa0]
lock dec qword [rax]
jne 0x18040b2d0
call fcn.1804092f0
mov rax, rsi
add rsp, 0x2e8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [rdi + 0xa4]
call fcn.180474830
jmp 0x18040ae20
lea rcx, [rdi + 0xa4]
call fcn.1804748f0
jmp 0x18040ae82
lea rcx, [rdi + 0xa4]
call fcn.180474830
jmp 0x18040aea1
lea rcx, [rdi + 0xa4]
call fcn.1804748f0
jmp 0x18040af03
lea rcx, [rdi + 0xa4]
mov rbx, r9
call fcn.180474830
mov r9, rbx
jmp 0x18040aae5
lea rcx, [rdi + 0xa4]
mov rbx, r9
call fcn.1804748f0
mov r9, rbx
mov cl, 1
xor eax, eax
lock cmpxchg byte [rdi + 0xa4], cl
je 0x18040ab59
lea rcx, [rdi + 0xa4]
mov rbx, r9
call fcn.180474830
mov r9, rbx
jmp 0x18040ab59
lea rcx, [rdi + 0xa4]
mov qword [rsp + 0x50], r9
call fcn.1804748f0
mov r9, qword [rsp + 0x50]
jmp 0x18040abb8
ud2
mov ecx, 8
mov edx, 0x58
call fcn.180407090
mov ecx, 8
mov edx, 0x30
call fcn.180407090
lea rcx, [0x1804e57e0]
call fcn.180407090
lea rcx, str.C:Userslucak.cargo_registry_srcindex.crates.io_6f17d22bba15001f_tokio_1.39.2_src_runtimecontextcurrent.rs
call fcn.180407090
int3