Function at 0x46dee0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d6a45
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x130
mov eax, dword [0x68a140]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0xd4], esi
mov edi, dword [esi + 0x118]
xor eax, eax
mov dword [ebp - 0xd0], eax
xorps xmm0, xmm0
mov dword [ebp - 0x9c], eax
xor al, al
mov dword [ebp - 0xc0], 0x28
mov dword [ebp - 0xcc], eax
movups xmmword [ebp - 0xbc], xmm0
movups xmmword [ebp - 0xac], xmm0
test edi, edi
je 0x46df8a
mov ecx, edi
call dword [0x5f3508]
call edi
test eax, 0x2000000
mov ecx, 1
mov eax, dword [ebp - 0xcc]
movzx eax, al
cmovne eax, ecx
mov dword [ebp - 0xcc], eax
test byte [ebx + 8], 1
jne 0x46e048
test al, al
jne 0x46e048
push 0x28
lea eax, [ebp - 0xc0]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_K32GetProcessMemoryInfo]
test eax, eax
je 0x46e048
cmp dword [ebp - 0xa0], 0x60000000
jb 0x46e041
cmp dword [ebp - 0xb4], 0x8000000
jae 0x46e041
inc dword [esi + 0x28]
cmp dword [esi + 0x28], 0xa
jbe 0x46e048
lea eax, [ebp - 0xc0]
mov dword [ebp - 0xf0], 0xe06d7771
mov dword [ebp - 0x34], eax
sub esp, 8
lea eax, [ebp - 0x34]
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xe4], eax
mov ecx, esi
mov eax, esp
mov dword [ebp - 0xe8], 1
movups xmm0, xmmword [ebp - 0xf0]
sub esp, 0x10
mov dword [eax], str.excessive_memory_usage
mov dword [eax + 4], 0x16
mov eax, esp
push 0
movups xmmword [eax], xmm0
call fcn.0046f0e0
mov dword [ebp - 0xd0], 1
jmp 0x46e048
mov dword [esi + 0x28], 0
test byte [ebx + 8], 2
jne 0x46e1ef
cmp byte [ebp - 0xcc], 0
jne 0x46e1ef
cmp dword [esi + 0x40], 0
lea edi, [esi + 0x40]
jne 0x46e1ef
cmp dword [esi + 0x50], 0
je 0x46e113
cmp dword [esi + 0x80], 0
je 0x46e113
mov eax, dword [ebp - 0xd4]
mov edi, dword [esi + 0x98]
sub edi, dword [esi + 0x68]
mov esi, dword [esi + 0x9c]
sbb esi, dword [eax + 0x6c]
sub edi, dword [eax + 0x60]
mov ecx, dword [eax + 0xa8]
sbb esi, dword [eax + 0x64]
add edi, dword [eax + 0x90]
mov edx, dword [eax + 0xac]
adc esi, dword [eax + 0x94]
sub ecx, dword [eax + 0x78]
sbb edx, dword [eax + 0x7c]
sub ecx, dword [eax + 0x70]
sbb edx, dword [eax + 0x74]
add ecx, dword [eax + 0xa0]
adc edx, dword [eax + 0xa4]
call fcn.005cc450
mov edx, esi
movsd qword [ebp - 0x70], xmm0
mov ecx, edi
call fcn.005cc450
mov esi, dword [ebp - 0xd4]
mov eax, dword [esi + 0x44]
lea edi, [esi + 0x40]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x64a510]
divsd xmm0, xmm1
movsd xmm1, qword [ebp - 0x70]
divsd xmm1, xmm0
jmp 0x46e116
xorps xmm1, xmm1
comisd xmm1, xmmword [0x64a4b0]
jbe 0x46e1e8
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
cmp dword [esi + 0x2c], 0
jne 0x46e13b
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [esi + 0x30], eax
jmp 0x46e147
cmp dword [esi + 0x30], eax
jbe 0x46e147
mov dword [esi + 0x30], 0
inc dword [esi + 0x2c]
cmp dword [esi + 0x2c], 0x64
jbe 0x46e1ef
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
sub eax, dword [esi + 0x30]
cmp eax, 0xa4cb80
jbe 0x46e1ef
lea eax, [ebp - 0x34]
mov dword [ebp - 0x34], edi
mov dword [ebp - 0xe4], eax
mov eax, dword [esi + 0xa4]
mov dword [ebp - 0xf0], 0xe06d7772
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xe8], 1
cmp eax, dword [esi + 0xac]
jb 0x46e1b4
ja 0x46e1b0
mov eax, dword [esi + 0xa0]
cmp eax, dword [esi + 0xa8]
jbe 0x46e1b4
mov cl, 1
jmp 0x46e1b6
xor cl, cl
movups xmm0, xmmword [ebp - 0xf0]
sub esp, 8
mov eax, esp
sub esp, 0x10
mov dword [eax], str.high_CPU_usage
mov dword [eax + 4], 0xe
mov eax, esp
push ecx
mov ecx, esi
movups xmmword [eax], xmm0
call fcn.0046f0e0
or dword [ebp - 0xd0], 2
jmp 0x46e1ef
mov dword [esi + 0x2c], 0
mov ecx, esi
call fcn.0046ed30
mov ecx, dword [ebx + 8]
mov edi, eax
mov dword [ebp - 0xcc], edi
test cl, 4
jne 0x46e3cc
test edi, edi
je 0x46e3cc
mov eax, dword [esi + 0x44]
add eax, 0x3c
lea eax, [eax + eax*4]
mov dword [ebp - 0x44], eax
cmp edi, eax
jbe 0x46e3c5
mov eax, dword [esi + 0x34]
inc eax
mov dword [esi + 0x34], eax
cmp eax, 0xa
jbe 0x46e342
call fcn.0046f190
mov ecx, eax
mov eax, edi
sub eax, ecx
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x44]
cmp eax, ecx
jbe 0x46e2b1
sub esp, 8
mov dword [ebp - 0x1c], ecx
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0xe4], eax
mov ecx, esi
mov eax, esp
mov dword [ebp - 0xf0], 0xe06d7773
sub esp, 0x10
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xe8], 2
movups xmm0, xmmword [ebp - 0xf0]
mov dword [eax], str.excessive_thread_count
mov dword [eax + 4], 0x16
mov eax, esp
push 0
movups xmmword [eax], xmm0
call fcn.0046f0e0
or dword [ebp - 0xd0], 4
mov ecx, dword [ebx + 8]
jmp 0x46e3cc
mov dword [esi + 0x34], 0
lea edx, [ebp - 0xcc]
mov eax, dword [0x629468]
movq xmm0, qword [str.dump]
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x58], 0x32353739
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x44]
mov dword [ebp - 0x54], 0x38383946
mov ecx, dword [ebp - 0x54]
push eax
movq qword [ebp - 0x128], xmm0
xorps xmm0, xmm0
mov dword [ebp - 0x118], ecx
lea ecx, [ebp - 0x128]
push 0x65
push str.Thread_count_is___expected_maximum_is___but_count_of_thread_pool_idle_workers_is___not_dumping_
mov dword [ebp - 0x114], 0x252
movups xmmword [ebp - 0x110], xmm0
mov dword [ebp - 0x100], 0
call fcn.00470150
mov edi, dword [ebp - 0xcc]
add esp, 0x10
mov ecx, dword [ebx + 8]
jmp 0x46e3cc
mov eax, dword [0x629468]
lea edx, [ebp - 0xcc]
movq xmm0, qword [str.dump]
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x58], 0x32353739
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x44]
push eax
mov dword [ebp - 0x54], 0x38383946
mov ecx, dword [ebp - 0x54]
movq qword [ebp - 0x128], xmm0
xorps xmm0, xmm0
mov dword [ebp - 0x118], ecx
lea ecx, [ebp - 0x128]
push 0x2c
push str.Thread_count_is___expected_maximum_is___
mov dword [ebp - 0x114], 0x256
movups xmmword [ebp - 0x110], xmm0
mov dword [ebp - 0x100], 0
call fcn.00470180
mov edi, dword [ebp - 0xcc]
add esp, 0xc
mov ecx, dword [ebx + 8]
jmp 0x46e3cc
mov dword [esi + 0x34], 0
test cl, 8
jne 0x46e51a
test edi, edi
je 0x46e51a
lea eax, [ebp - 0x44]
mov dword [ebp - 0x44], 0
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcessHandleCount]
cmp byte [esi + 0xc], 0
mov eax, 0x1b58
mov edx, dword [ebp - 0x44]
mov ecx, 0x7530
cmovne ecx, eax
mov dword [ebp - 0xdc], edx
imul eax, edi, 0x32
add eax, ecx
mov dword [ebp - 0x34], eax
cmp edx, eax
jbe 0x46e510
mov eax, dword [esi + 0x38]
inc eax
mov dword [esi + 0x38], eax
cmp eax, 0xa
jbe 0x46e496
sub esp, 8
mov dword [ebp - 0x34], edx
lea eax, [ebp - 0x34]
mov dword [ebp - 0xf0], 0xe06d7774
mov dword [ebp - 0xe4], eax
mov ecx, esi
mov eax, esp
mov dword [ebp - 0xec], 0
sub esp, 0x10
mov dword [ebp - 0xe8], 1
movups xmm0, xmmword [ebp - 0xf0]
mov dword [eax], str.excessive_handle_count
mov dword [eax + 4], 0x16
mov eax, esp
push 1
movups xmmword [eax], xmm0
call fcn.0046f0e0
mov edi, dword [ebp - 0xd0]
mov ecx, dword [ebx + 8]
or edi, 8
mov dword [ebp - 0xd0], edi
jmp 0x46e520
mov eax, dword [0x629468]
lea edx, [ebp - 0xdc]
movq xmm0, qword [str.dump]
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x58], 0x32353739
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x34]
push eax
mov dword [ebp - 0x54], 0x38383946
mov ecx, dword [ebp - 0x54]
movq qword [ebp - 0x128], xmm0
xorps xmm0, xmm0
mov dword [ebp - 0x118], ecx
lea ecx, [ebp - 0x128]
push 0x2c
push str.Handle_count_is___expected_maximum_is___
mov dword [ebp - 0x114], 0x26b
movups xmmword [ebp - 0x110], xmm0
mov dword [ebp - 0x100], 0
call fcn.00470180
add esp, 0xc
jmp 0x46e517
mov dword [esi + 0x38], 0
mov ecx, dword [ebx + 8]
mov edi, dword [ebp - 0xd0]
test cl, 0x10
jne 0x46ed02
xorps xmm0, xmm0
movlpd qword [ebp - 0x40], xmm0
push 0x40
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
call fcn.0059a103
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x40], eax
mov dword [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_GetPriorityClass]
cmp eax, 0x40
je 0x46ece4
cmp eax, 0x4000
je 0x46ece4
mov ecx, esi
call fcn.0046ef90
test al, al
jne 0x46ece4
mov esi, dword [esi + 4]
add esi, 0x20
push esi
mov dword [ebp - 0x38], esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp - 0xd4]
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 1
mov edi, dword [ecx + 4]
add edi, 0x38
cmp eax, edi
je 0x46e628
mov ecx, eax
call fcn.0046fc90
mov eax, dword [edi]
lea ecx, [ebp - 0x40]
push dword [ebp - 0x40]
push dword [eax + 4]
call fcn.00470710
mov ecx, dword [ebp - 0x40]
mov dword [ecx + 4], eax
mov eax, dword [edi + 4]
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x3c], eax
mov edx, dword [edi + 4]
cmp byte [edx + 0xd], 0
jne 0x46e620
mov ecx, dword [edx]
cmp byte [ecx + 0xd], 0
jne 0x46e5fc
nop
mov eax, dword [ecx]
mov edx, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x46e5f0
mov dword [edi], edx
mov edx, dword [ebp - 0x40]
mov ecx, dword [edx + 4]
mov eax, dword [ecx + 8]
cmp byte [eax + 0xd], 0
jne 0x46e61b
nop dword [eax]
mov ecx, eax
mov eax, dword [ecx + 8]
cmp byte [eax + 0xd], 0
je 0x46e610
mov dword [edx + 8], ecx
jmp 0x46e628
mov dword [edi], edi
mov eax, dword [ebp - 0x40]
mov dword [eax + 8], eax
push esi
mov byte [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
cmp byte [eax + 0xd], 0
jne 0x46ec89
mov esi, dword [eax + 0x10]
add eax, 0x10
xor edx, edx
mov dword [ebp - 0xcc], eax
push ecx
mov edi, 0x800
lea ecx, [edx + 6]
call fcn.00437fa0
add esp, 4
mov ecx, 0x40
test al, al
cmovne ecx, edi
push esi
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_OpenThread]
mov edi, eax
mov dword [ebp - 0x38], edi
mov byte [ebp - 4], 2
test edi, edi
jne 0x46e6c4
mov edi, dword [ebp - 0xd4]
mov esi, dword [edi + 4]
add esi, 0x20
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 4]
push dword [ebp - 0xcc]
add ecx, 0x38
call fcn.0046f890
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0
call fcn.00407660
mov eax, dword [ebp - 0x34]
jmp 0x46e63b
push edi
call dword [sym.imp.KERNEL32.dll_GetThreadPriority]
cmp eax, 0x7fffffff
je 0x46ecc9
test eax, eax
js 0x46ecc9
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp - 0x78]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetThreadTimes]
test eax, eax
je 0x46ecc9
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xd4]
mov esi, dword [eax + 0x110]
test esi, esi
je 0x46e738
lea eax, [ebp - 0x60]
mov ecx, esi
push eax
push edi
call dword [0x5f3508]
call esi
test eax, eax
jne 0x46e750
mov eax, dword [ebp - 0x80]
add eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x7c]
adc ecx, dword [ebp - 0x84]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx + 0x18]
mov eax, edx
mov esi, dword [ecx + 0x1c]
and eax, esi
cmp eax, 0xffffffff
je 0x46e77d
cmp dword [ebp - 0xfc], edx
jne 0x46ecc9
cmp dword [ebp - 0xdc], esi
jne 0x46ecc9
mov esi, dword [ecx + 0x28]
mov esi, dword [esi]
cmp byte [esi + 0xd], 0
jne 0x46ea09
nop dword [eax]
mov edi, dword [esi + 0x10]
xor edx, edx
push ecx
lea ecx, [edx + 6]
call fcn.00437fa0
add esp, 4
mov ecx, 0x40
test al, al
mov eax, 0x800
cmovne ecx, eax
push edi
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_OpenThread]
mov edi, eax
mov dword [ebp - 0x64], edi
mov byte [ebp - 4], 3
test edi, edi
jne 0x46e83b
mov eax, dword [ebp - 0xd4]
mov edi, dword [eax + 4]
add edi, 0x20
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp - 0xd4]
push dword [ebp - 0xcc]
mov eax, dword [ecx + 4]
lea ecx, [ebp - 0x134]
add eax, 0x38
push ecx
mov ecx, eax
mov dword [ebp - 0xf4], eax
call fcn.00451a90
mov ecx, dword [ebp - 0x12c]
cmp byte [ecx + 0xd], 0
jne 0x46e82f
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax]
cmp eax, dword [ecx + 0x10]
jb 0x46e82f
mov eax, dword [ebp - 0xf4]
cmp ecx, dword [eax]
je 0x46e82f
lea eax, [esi + 0x10]
add ecx, 0x38
push eax
call fcn.0046fae0
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x46e9bf
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x90]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetThreadTimes]
test eax, eax
je 0x46e9b8
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + 0x110]
mov dword [ebp - 0x44], eax
test eax, eax
je 0x46e8a7
lea ecx, [ebp - 0x20]
push ecx
push edi
mov ecx, eax
call dword [0x5f3508]
call dword [ebp - 0x44]
test eax, eax
je 0x46e8a7
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
jmp 0x46e8bf
mov edx, dword [ebp - 0x98]
add edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x94]
adc ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], ecx
mov edi, dword [esi + 0x20]
mov dword [ebp - 0x44], edi
mov edi, dword [esi + 0x24]
mov eax, dword [ebp - 0x44]
and eax, edi
mov dword [ebp - 0xd8], edi
mov edi, dword [ebp - 0x64]
cmp eax, 0xffffffff
je 0x46e901
mov eax, dword [ebp - 0xf8]
cmp eax, dword [ebp - 0x44]
jne 0x46e9b8
mov eax, dword [ebp - 0xf4]
cmp eax, dword [ebp - 0xd8]
je 0x46e9b2
jmp 0x46e9b8
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + 4]
add eax, 0x20
push eax
mov dword [ebp - 0x64], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp - 0xd4]
push dword [ebp - 0xcc]
mov eax, dword [ecx + 4]
lea ecx, [ebp - 0x140]
add eax, 0x38
push ecx
mov ecx, eax
mov dword [ebp - 0xd8], eax
call fcn.00451a90
mov ecx, dword [ebp - 0x138]
cmp byte [ecx + 0xd], 0
jne 0x46e9a3
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax]
cmp eax, dword [ecx + 0x10]
jb 0x46e9a3
mov eax, dword [ebp - 0xd8]
cmp ecx, dword [eax]
je 0x46e9a3
lea eax, [esi + 0x10]
add ecx, 0x38
push eax
lea eax, [ebp - 0x2c]
mov dword [ebp - 0xd8], ecx
push eax
call fcn.00451a90
mov ecx, dword [ebp - 0x24]
cmp byte [ecx + 0xd], 0
jne 0x46e9a3
mov eax, dword [esi + 0x10]
cmp eax, dword [ecx + 0x10]
jb 0x46e9a3
mov eax, dword [ebp - 0xd8]
cmp ecx, dword [eax]
je 0x46e9a3
mov eax, dword [ebp - 0xf8]
mov dword [ecx + 0x20], eax
mov eax, dword [ebp - 0xf4]
mov dword [ecx + 0x24], eax
push dword [ebp - 0x64]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
add dword [ebp - 0x60], edx
adc dword [ebp - 0x5c], ecx
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x46e9e5
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x46e9e1
cmp esi, dword [eax + 8]
jne 0x46e9e1
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x46e9d1
mov esi, eax
jmp 0x46e9fc
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x46e9fc
nop
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x46e9f0
cmp byte [esi + 0xd], 0
je 0x46e790
mov edi, dword [ebp - 0x38]
mov eax, dword [ebp - 0xd4]
mov esi, dword [eax + 4]
add esi, 0x20
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp - 0xd4]
push dword [ebp - 0xcc]
mov eax, dword [ecx + 4]
lea ecx, [ebp - 0xec]
add eax, 0x38
push ecx
mov ecx, eax
mov dword [ebp - 0x38], eax
call fcn.00451a90
mov edx, dword [ebp - 0xe4]
cmp byte [edx + 0xd], 0
jne 0x46ecc2
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax]
cmp eax, dword [edx + 0x10]
jb 0x46ecc2
mov eax, dword [ebp - 0x38]
cmp edx, dword [eax]
je 0x46ecc2
mov eax, dword [edx + 0x28]
and eax, dword [edx + 0x2c]
cmp eax, 0xffffffff
jne 0x46ea8d
mov eax, dword [ebp - 0xfc]
mov dword [edx + 0x28], eax
mov eax, dword [ebp - 0xdc]
mov dword [edx + 0x2c], eax
jmp 0x46ecb6
mov eax, dword [edx + 0x30]
cmp eax, dword [ebp - 0x60]
jne 0x46ecaf
mov eax, dword [edx + 0x34]
cmp eax, dword [ebp - 0x5c]
jne 0x46ecaf
inc dword [edx + 0x20]
cmp dword [edx + 0x20], 5
jbe 0x46ecc2
mov eax, dword [edx + 0x10]
push esi
mov dword [ebp - 0x34], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push edi
mov byte [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x34], 0
je 0x46ec89
or eax, 0xffffffff
xorps xmm0, xmm0
push 8
mov dword [ebp - 0xcc], eax
or esi, 0xffffffff
lea eax, [ebp - 0x60]
movlpd qword [ebp - 0x60], xmm0
push eax
push 0
push 0
push 0xf
call dword [sym.imp.POWRPROF.dll_CallNtPowerInformation]
test eax, eax
jne 0x46eb71
mov eax, dword [ebp - 0x60]
mov edx, 0x3886594b
mul edx
mov eax, dword [ebp - 0x60]
mov edi, 0x346dc5d6
mov esi, edx
mov ecx, 0x3886594b
mul edi
mov edi, eax
mov dword [ebp - 0xd8], edx
mov eax, dword [ebp - 0x5c]
mul ecx
mov ecx, eax
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x5c]
mov edx, 0x346dc5d6
mul edx
add ecx, esi
mov dword [ebp - 0x64], edx
mov edx, dword [ebp - 0x38]
adc edx, 0
mov dword [ebp - 0xcc], eax
add edi, ecx
mov ecx, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xcc]
adc ecx, 0
xor eax, eax
add edx, ecx
mov ecx, dword [ebp - 0x64]
adc eax, eax
add edi, edx
adc ecx, eax
shrd edi, ecx, 0xb
or esi, 0xffffffff
mov dword [ebp - 0xcc], edi
push 8
lea eax, [ebp - 0x60]
push eax
push 0
push 0
push 0xe
call dword [sym.imp.POWRPROF.dll_CallNtPowerInformation]
test eax, eax
jne 0x46ebf1
mov eax, dword [ebp - 0x60]
mov edx, 0x3886594b
mul edx
mov eax, dword [ebp - 0x60]
mov edi, 0x346dc5d6
mov esi, edx
mov ecx, 0x3886594b
mul edi
mov edi, eax
mov dword [ebp - 0xd8], edx
mov eax, dword [ebp - 0x5c]
mul ecx
mov ecx, eax
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x5c]
mov edx, 0x346dc5d6
mul edx
add ecx, esi
mov dword [ebp - 0xdc], edx
mov edx, dword [ebp - 0x38]
adc edx, 0
mov dword [ebp - 0x64], eax
mov esi, dword [ebp - 0x64]
add edi, ecx
mov ecx, dword [ebp - 0xd8]
adc ecx, 0
xor eax, eax
add edx, ecx
mov ecx, dword [ebp - 0xdc]
adc eax, eax
add esi, edx
adc ecx, eax
shrd esi, ecx, 0xb
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov ecx, dword [ebp - 0xcc]
mov edx, eax
cmp ecx, 0xffffffff
je 0x46ec89
cmp esi, 0xffffffff
je 0x46ec89
test ecx, ecx
je 0x46ec1e
cmp edx, esi
jbe 0x46ec89
sub eax, esi
cmp eax, 0xea60
jbe 0x46ec89
mov eax, dword [ebp - 0x34]
sub esp, 8
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
mov dword [ebp - 0xe4], eax
mov eax, esp
mov dword [ebp - 0x28], ecx
sub esp, 0x10
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x24], esi
mov dword [eax], str.deadlock_suspected
mov dword [eax + 4], 0x12
mov eax, esp
mov dword [ebp - 0xf0], 0xe06d7775
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xe8], 4
movups xmm0, xmmword [ebp - 0xf0]
push 1
movups xmmword [eax], xmm0
call fcn.0046f0e0
or dword [ebp - 0xd0], 0x10
mov eax, dword [ebp - 0x40]
push dword [eax + 4]
lea eax, [ebp - 0x40]
push eax
mov ecx, eax
call fcn.00470200
push 0x40
push dword [ebp - 0x40]
call fcn.0059a0ba
mov eax, dword [ebp - 0xd0]
add esp, 8
jmp 0x46ed04
mov dword [edx + 0x20], 0
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
mov dword [edx + 0x34], ecx
mov dword [edx + 0x30], eax
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push edi
mov byte [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x34]
call fcn.00407660
mov eax, dword [ebp - 0x34]
jmp 0x46e63b
mov eax, dword [ebp - 0x40]
push dword [eax + 4]
lea eax, [ebp - 0x40]
push eax
mov ecx, eax
call fcn.00470200
push 0x40
push dword [ebp - 0x40]
call fcn.0059a0ba
add esp, 8
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00599e5b
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4