Function at 0x46f6b0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x38
mov eax, dword [0x4d100c]
xor eax, ebp
mov dword [esp + 0x30], eax
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [0x4e5084]
mov ecx, dword [0x4d5294]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x46fa9c
push 0x4e5080
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x46f70b
mov ecx, 0x4e5080
call fcn.00456530
mov edi, dword [ebp + 8]
mov eax, dword [0x4e5094]
mov ecx, dword [0x4d5294]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x46fad2
cmp dword [0x4e5090], 0
je 0x46f997
mov eax, dword [0x4e508c]
mov ecx, dword [0x4d5294]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x46fb08
mov edx, dword [0x4e5088]
mov edi, esi
mov eax, dword [esp + 0xc]
mov ebx, eax
test edx, edx
mov dword [esp + 4], edx
je 0x46f7d2
mov ecx, dword [edx + 0xfc]
mov edx, 0x3938700
mov edi, dword [esp + 4]
add edx, dword [edi + 0xf8]
adc ecx, 0
mov edi, eax
seto al
mov ebx, ecx
sar ebx, 0x1f
test al, al
cmovne edx, ebx
add ebx, 0x80000000
test al, al
mov eax, edi
cmove ebx, ecx
mov edi, edx
cmp esi, edx
mov edx, dword [esp + 4]
mov ecx, eax
sbb ecx, ebx
jge 0x46f7d2
mov edi, dword [ebp + 8]
mov dword [edi], edx
mov ecx, 1
lock xadd dword [edx], ecx
cmp ecx, 0x7fffffff
jne 0x46f99d
int3
mov dword [esp + 8], esi
mov ecx, esi
mov esi, edi
sub ecx, edi
mov edi, eax
sbb edi, ebx
seto al
mov edx, edi
sar edx, 0x1f
test al, al
cmovne ecx, edx
add edx, 0x80000000
test al, al
cmove edx, edi
cmp ecx, 0x989680
sbb edx, 0
jl 0x46f816
mov eax, dword [esp + 4]
mov byte [eax + 0x104], 1
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0xc]
push 0x108
call fcn.0048ae0c
add esp, 4
mov edi, eax
mov dword [eax], 0
lea ecx, [eax + 4]
call fcn.00456520
xorps xmm0, xmm0
movups xmmword [edi + 8], xmm0
movups xmmword [edi + 0x18], xmm0
movups xmmword [edi + 0x28], xmm0
movups xmmword [edi + 0x38], xmm0
movups xmmword [edi + 0x48], xmm0
movups xmmword [edi + 0x58], xmm0
movups xmmword [edi + 0x68], xmm0
movups xmmword [edi + 0x78], xmm0
movups xmmword [edi + 0x88], xmm0
movups xmmword [edi + 0x98], xmm0
movups xmmword [edi + 0xa8], xmm0
movups xmmword [edi + 0xb8], xmm0
movups xmmword [edi + 0xc8], xmm0
movups xmmword [edi + 0xd8], xmm0
movups xmmword [edi + 0xe8], xmm0
mov dword [edi + 0xfc], ebx
mov dword [edi + 0xf8], esi
mov dword [edi + 0x100], 0
mov byte [edi + 0x104], 0
test edi, edi
je 0x46f8bc
mov eax, 1
lock xadd dword [edi], eax
cmp eax, 0x7fffffff
je 0x46fb3e
mov eax, dword [0x4e5088]
test eax, eax
mov esi, dword [esp + 8]
je 0x46f8d6
cmp byte [eax + 0x104], 0
je 0x46fa58
test edi, edi
je 0x46f8ee
mov eax, 1
lock xadd dword [edi], eax
cmp eax, 0x7fffffff
je 0x46fb41
mov eax, dword [0x4e5088]
mov dword [0x4e5088], edi
test eax, eax
je 0x46f90b
lock dec dword [eax]
jne 0x46f90b
push eax
call fcn.004701e0
add esp, 4
push 0x4e5080
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ecx, dword [edi + 0xf8]
mov eax, dword [edi + 0xfc]
mov edx, esi
mov dword [esp + 0x10], ecx
sub edx, ecx
mov ecx, dword [esp + 0xc]
mov ebx, ecx
mov dword [esp + 4], eax
sbb ebx, eax
seto al
mov esi, ebx
sar esi, 0x1f
test al, al
cmovne edx, esi
add esi, 0x80000000
test al, al
cmove esi, ebx
mov eax, edx
add eax, 0xffffffff
mov ebx, esi
adc ebx, 0x7fffffff
add eax, 2
adc ebx, 0
cmp eax, 2
sbb ebx, 0
jae 0x46f9ba
mov edx, 0xffffffff
add edx, 1
mov esi, 0x7fffffff
adc esi, 0
mov eax, dword [esp + 8]
cmp eax, dword [esp + 0x10]
sbb ecx, dword [esp + 4]
mov eax, 0x7fffffff
cmovl esi, eax
mov eax, 0xffffffff
cmovl edx, eax
jmp 0x46f9dd
mov dword [edi], 0
push 0x4e5080
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ecx, dword [esp + 0x30]
xor ecx, ebp
call fcn.0048b34a
mov eax, edi
jmp 0x46fa50
xor eax, eax
mov ecx, 0x3938700
sub ecx, edx
sbb eax, esi
seto bl
mov edx, eax
sar edx, 0x1f
lea esi, [edx - 0x80000000]
test bl, bl
cmove edx, ecx
test bl, bl
cmove esi, eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], esi
push 0x14
call fcn.0048ae0c
add esp, 4
mov ebx, eax
mov ecx, eax
push 0x470390
push 0x470330
call fcn.00455270
mov dword [esp + 0x24], ebx
lea esi, [esp + 0x14]
push 0xca
push str....._base_threading_scoped_blocking_call_internal.cc
push str.MonitorNextJankWindowIfNecessary
push esi
call fcn.00448cb0
movsd xmm0, qword [esp + 0x38]
movsd qword [esp + 8], xmm0
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.004554b0
add esp, 0x10
mov esi, dword [ebp + 8]
mov dword [esi], edi
mov ecx, dword [esp + 0x30]
xor ecx, ebp
call fcn.0048b34a
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
test edi, edi
je 0x46fa71
mov ecx, 1
lock xadd dword [edi], ecx
cmp ecx, 0x7fffffff
je 0x46fb44
mov ecx, dword [eax + 0x100]
mov dword [eax + 0x100], edi
test ecx, ecx
je 0x46f8d6
lock dec dword [ecx]
jne 0x46f8d6
push ecx
call fcn.004701e0
add esp, 4
jmp 0x46f8d6
push 0x4e5084
call fcn.0048ae81
add esp, 4
cmp dword [0x4e5084], 0xffffffff
jne 0x46f6f2
mov ecx, 0x4e5080
call fcn.00456520
push 0x4e5084
call fcn.0048aefb
add esp, 4
jmp 0x46f6f2
push 0x4e5094
call fcn.0048ae81
add esp, 4
cmp dword [0x4e5094], 0xffffffff
jne 0x46f72f
mov dword [0x4e5090], 0
push 0x4e5094
call fcn.0048aefb
add esp, 4
jmp 0x46f72f
push 0x4e508c
call fcn.0048ae81
add esp, 4
cmp dword [0x4e508c], 0xffffffff
jne 0x46f75d
mov dword [0x4e5088], 0
push 0x4e508c
call fcn.0048aefb
add esp, 4
jmp 0x46f75d
int3
int3
int3