Function at 0x47ba00
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 [0x4ea418]
xor eax, ebp
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc], eax
mov ebx, dword [ebp + 0x10]
mov eax, dword [0x4ff858]
mov ecx, dword [0x4ed65c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x47be86
mov eax, 0x4ff854
mov ecx, 0x4ff854
shr ecx, 0xe
mov edi, 1
shl edi, cl
mov edx, 0x4ff854
shr edx, 0x13
mov dword [esp + 8], edx
mov edx, dword [edx*4 + 0x4f500c]
bt edx, ecx
jae 0x47ba7d
push 0x4ff854
call fcn.0045f9c0
add esp, 4
jmp 0x47ba87
shr eax, 0x15
mov byte [eax + 0x4fd00c], 1
push 0x4ff854
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x47baa0
mov ecx, 0x4ff854
call fcn.004455e0
mov esi, dword [ebp + 8]
mov eax, dword [0x4ff868]
mov ecx, dword [0x4ed65c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x47bebc
cmp dword [0x4ff864], 0
je 0x47bd61
mov dword [esp + 0x10], edi
mov eax, dword [0x4ff860]
mov ecx, dword [0x4ed65c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x47bef2
mov edx, dword [0x4ff85c]
mov eax, dword [esp + 0xc]
mov esi, eax
mov edi, ebx
test edx, edx
mov dword [esp + 4], ebx
je 0x47bb6d
mov ecx, dword [edx + 0xfc]
mov ebx, edx
mov edx, 0x3938700
add edx, dword [ebx + 0xf8]
adc ecx, 0
mov edi, 0x7fffffff
cmovno edi, ecx
mov esi, 0xffffffff
cmovno esi, edx
mov edx, ebx
mov ebx, dword [esp + 4]
cmp eax, esi
mov ecx, ebx
sbb ecx, edi
jge 0x47bb6d
mov esi, dword [ebp + 8]
mov dword [esi], edx
mov ecx, 1
lock xadd dword [edx], ecx
mov dword [esp], 0
mov ebx, 0
cmp ecx, 0x7fffffff
mov edi, dword [esp + 0x10]
jne 0x47bcaa
int3
mov dword [esp], edx
mov ecx, eax
sub ecx, esi
mov eax, ebx
sbb eax, edi
seto bl
mov edx, eax
sar edx, 0x1f
test bl, bl
cmovne ecx, edx
add edx, 0x80000000
test bl, bl
cmove edx, eax
cmp ecx, 0x989680
sbb edx, 0
jl 0x47bbad
mov eax, dword [esp]
mov byte [eax + 0x104], 1
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 4]
push 0x108
call fcn.00494206
add esp, 4
mov ebx, eax
mov dword [eax], 0
lea ecx, [eax + 4]
call fcn.004455d0
xorps xmm0, xmm0
movups xmmword [ebx + 8], xmm0
movups xmmword [ebx + 0x18], xmm0
movups xmmword [ebx + 0x28], xmm0
movups xmmword [ebx + 0x38], xmm0
movups xmmword [ebx + 0x48], xmm0
movups xmmword [ebx + 0x58], xmm0
movups xmmword [ebx + 0x68], xmm0
movups xmmword [ebx + 0x78], xmm0
movups xmmword [ebx + 0x88], xmm0
movups xmmword [ebx + 0x98], xmm0
movups xmmword [ebx + 0xa8], xmm0
movups xmmword [ebx + 0xb8], xmm0
movups xmmword [ebx + 0xc8], xmm0
movups xmmword [ebx + 0xd8], xmm0
movups xmmword [ebx + 0xe8], xmm0
mov dword [ebx + 0xfc], edi
mov dword [ebx + 0xf8], esi
mov dword [ebx + 0x100], 0
mov byte [ebx + 0x104], 0
test ebx, ebx
je 0x47bc53
mov eax, 1
lock xadd dword [ebx], eax
cmp eax, 0x7fffffff
je 0x47bf28
mov eax, dword [0x4ff85c]
test eax, eax
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0x10]
je 0x47bc70
cmp byte [eax + 0x104], 0
je 0x47be42
test ebx, ebx
je 0x47bc88
mov eax, 1
lock xadd dword [ebx], eax
cmp eax, 0x7fffffff
je 0x47bf2b
mov eax, dword [0x4ff85c]
mov dword [0x4ff85c], ebx
mov cl, 1
mov dword [esp], ecx
test eax, eax
je 0x47bcaa
lock dec dword [eax]
jne 0x47bcaa
push eax
call fcn.0047c6d0
add esp, 4
push 0x4ff854
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 8]
test dword [eax*4 + 0x4f500c], edi
je 0x47bccf
push 0x4ff854
call fcn.0045fae0
add esp, 4
cmp byte [esp], 0
je 0x47bd95
mov eax, dword [ebx + 0xf8]
mov edi, dword [ebx + 0xfc]
mov edx, dword [esp + 0xc]
mov dword [esp + 8], eax
sub edx, eax
mov eax, dword [esp + 4]
sbb eax, edi
seto cl
mov esi, eax
sar esi, 0x1f
test cl, cl
cmovne edx, esi
add esi, 0x80000000
test cl, cl
cmove esi, eax
mov eax, edx
add eax, 0xffffffff
mov ecx, esi
adc ecx, 0x7fffffff
add eax, 2
adc ecx, 0
cmp eax, 2
sbb ecx, 0
mov ecx, 0xffffffff
jae 0x47bdb1
mov esi, 0xffffffff
mov ecx, edi
mov edi, 0xffffffff
add edi, 1
mov eax, 0x7fffffff
adc eax, 0
mov edx, dword [esp + 0xc]
cmp edx, dword [esp + 8]
sbb dword [esp + 4], ecx
mov ecx, 0x7fffffff
cmovl eax, ecx
cmovl edi, esi
jmp 0x47bdc7
mov dword [esi], 0
push 0x4ff854
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 8]
test dword [eax*4 + 0x4f500c], edi
je 0x47be2d
push 0x4ff854
call fcn.0045fae0
add esp, 4
jmp 0x47be2d
test ebx, ebx
je 0x47be2d
lock dec dword [ebx]
jne 0x47be2d
push ebx
call fcn.0047c6d0
add esp, 4
jmp 0x47be2d
xor eax, eax
mov edi, 0x3938700
sub edi, edx
sbb eax, esi
mov edx, 0x7fffffff
cmovo eax, edx
cmovo edi, ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], eax
push 0x14
call fcn.00494206
add esp, 4
mov edi, eax
mov ecx, eax
push 0x47c6b0
push 0x47c650
call fcn.00466180
mov dword [esp + 0x24], edi
lea esi, [esp + 0x14]
push 0xca
push 0x4e0078
push str.MonitorNextJankWindowIfNecessary
push esi
call fcn.0045a490
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.00466350
add esp, 0x10
mov esi, dword [ebp + 8]
mov dword [esi], ebx
mov ecx, dword [esp + 0x30]
xor ecx, ebp
call fcn.004961ed
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
test ebx, ebx
je 0x47be5b
mov ecx, 1
lock xadd dword [ebx], ecx
cmp ecx, 0x7fffffff
je 0x47bf2e
mov ecx, dword [eax + 0x100]
mov dword [eax + 0x100], ebx
test ecx, ecx
je 0x47bc70
lock dec dword [ecx]
jne 0x47bc70
push ecx
call fcn.0047c6d0
add esp, 4
jmp 0x47bc70
push 0x4ff858
call fcn.004942a7
add esp, 4
cmp dword [0x4ff858], 0xffffffff
jne 0x47ba42
mov ecx, 0x4ff854
call fcn.004455d0
push 0x4ff858
call fcn.0049431d
add esp, 4
jmp 0x47ba42
push 0x4ff868
call fcn.004942a7
add esp, 4
cmp dword [0x4ff868], 0xffffffff
jne 0x47bac4
mov dword [0x4ff864], 0
push 0x4ff868
call fcn.0049431d
add esp, 4
jmp 0x47bac4
push 0x4ff860
call fcn.004942a7
add esp, 4
cmp dword [0x4ff860], 0xffffffff
jne 0x47baf6
mov dword [0x4ff85c], 0
push 0x4ff860
call fcn.0049431d
add esp, 4
jmp 0x47baf6
int3
int3
int3