Function at 0x464ee0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56397e
mov eax, dword fs:[0]
push eax
sub esp, 0x40
push ebx
push esi
push edi
mov eax, dword [0x5b7de4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x14], ebx
mov dword [ebx], vtable.Utilities::Singleton_class_EventDispatcher__class_Utilities::SingletonCreateUsingNew_.0
mov dword [ebx + 4], vtable.Utilities::SimpleThread.0
mov dword [ebp - 4], 0
mov dword [ebx + 8], 2
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0
lea esi, [ebx + 0x1c]
mov dword [ebx], vtable.EventDispatcher.0
mov dword [ebx + 4], vtable.EventDispatcher.1.0
mov dword [ebp - 0x18], esi
push 8
mov byte [ebp - 4], 1
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
call fcn.005189be
mov edi, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
xor ecx, ecx
mov dword [esi], eax
xor edx, edx
add esp, 4
mov dword [ebp - 0x20], ecx
mov dword [eax], ecx
mov dword [eax + 4], edx
mov eax, dword [esi]
mov dword [ebp - 0x1c], edx
mov dword [eax], esi
lea eax, [esi + 0x14]
push eax
call edi
lea eax, [ebx + 0x1581c]
push eax
call edi
lea eax, [ebx + 0x15834]
push eax
call edi
lea eax, [ebx + 0x1584c]
push eax
call edi
lea esi, [ebx + 0x158a8]
mov dword [ebx + 0x15874], 0
mov dword [ebx + 0x15878], 0
push esi
mov dword [ebx + 0x158a4], 0
call edi
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
lea edi, [ebx + 0x15868]
mov dword [edi], eax
push esi
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [edi + 4], 0x64
mov dword [edi + 8], 1
call esi
push 0x5c86b8
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x5c86d0], 0
mov byte [ebp - 4], 7
jne 0x465039
call fcn.00421610
mov dword [0x5c86d0], eax
inc dword [0x5c86d4]
push 0x5c86b8
call esi
mov dword [ebx + 0x158c0], 0x465a20
lea eax, [ebx + 0x48]
mov dword [ebx + 0x158c4], 0x466150
mov ecx, 0x3e8
mov dword [eax + 0xfa0], 0
lea eax, [eax + 4]
mov dword [eax - 4], 0
sub ecx, 1
jne 0x465062
lea eax, [ebx + 0x1f88]
mov ecx, 0x2710
nop word [eax + eax]
mov dword [eax + 0x9c40], 0
lea eax, [eax + 4]
mov dword [eax - 4], 0
sub ecx, 1
jne 0x465090
mov al, byte [ebp - 0x10]
mov byte [ebp - 0x10], al
lea eax, [ebp - 0x48]
mov dword [ebx + 0x15808], ecx
mov dword [ebx + 0x1580c], ecx
mov dword [ebx + 0x15810], ecx
mov dword [ebx + 0x15814], ecx
mov dword [ebp - 0x48], vtable.std::_Func_impl_no_alloc_class__lambda_18363e8749273f106e51f8f8e38b1470___void___.0
mov dword [ebp - 0x24], eax
lea esi, [edi + 0x40]
push esi
mov dword [ebp - 0x18], esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [edi + 0x10], 0
mov byte [ebp - 4], 9
jne 0x4650f7
lea eax, [ebp - 0x48]
push eax
lea ecx, [edi + 0x18]
call fcn.0041edf0
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push esi
call eax
mov ecx, dword [ebp - 0x24]
mov byte [ebp - 4], 6
test ecx, ecx
je 0x465122
mov edx, dword [ecx]
lea eax, [ebp - 0x48]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov dword [ebp - 0x24], 0
push 0
push 0x64
mov ecx, edi
call fcn.00466530
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
lea esi, [ebx + 4]
mov dword [ebx + 0x15818], eax
cmp dword [esi + 4], 2
jne 0x465178
lea eax, [esi + 0xc]
mov dword [esi + 0x10], 1
push eax
push 0
push esi
push 0x418e00
push 0x1000
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 8], eax
test eax, eax
je 0x465178
mov dword [esi + 4], 0
mov dword [ebx + 0x15864], 0
mov dword [0x5c8858], ebx
mov ecx, dword [ebx + 0x15864]
lea eax, [ecx + 1]
mov dword [ebx + 0x15864], eax
mov eax, ebx
mov dword [0x5b7a60], ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret