Function at 0x46051a
Capabilities:
Create thread

Disassembly:
push 0x1ac
mov eax, 0x532643
call fcn.004e4550
mov edi, ecx
mov dword [ebp - 0x48], edi
push dword [edi + 8]
mov esi, dword [sym.imp.KERNEL32.DLL_ResetEvent]
call esi
push dword [edi + 0xc]
call esi
mov ecx, dword [edi + 0x14]
lea eax, [edi + 0x10]
mov dword [ebp - 0x44], eax
mov byte [eax], 0
mov eax, dword [ebp + 0xc]
mov dword [edi + 0x1c], eax
test ecx, ecx
je 0x46055f
mov eax, dword [ecx]
push 1
call dword [eax + 0xc]
and dword [edi + 0x14], 0
push 0x14
call fcn.004e3e03
mov edi, dword [ebp + 8]
mov ebx, eax
pop ecx
mov ecx, ebx
mov dword [ebp - 0x54], ebx
mov esi, dword [edi]
call fcn.0044f9bb
mov eax, dword [ebp - 0x44]
mov dword [ebx + 0xc], esi
mov esi, dword [ebp - 0x48]
mov dword [ebx], vtable.WorkerThreadStopSignal.0
mov dword [ebx + 0x10], eax
mov ecx, dword [edi + 4]
mov dword [esi + 0x18], ecx
mov ecx, ebx
mov dword [esi + 0x14], ebx
push 1
push dword [esi + 0x18]
mov eax, dword [ecx]
call dword [eax]
xor ebx, ebx
push ebx
push ebx
push esi
push 0x46077d
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_CreateThread]
mov dword [esi + 4], eax
test eax, eax
jne 0x46065d
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 8]
push 1
push 3
lea ecx, [ebp - 0x108]
call fcn.004241d9
push esi
mov dword [ebp - 4], ebx
call fcn.004fce47
add eax, 4
mov dword [esp], 0x5e7930
push eax
call fcn.004fc4f5
pop ecx
pop ecx
push 0x5abf38
push ecx
mov esi, eax
call dword [sym.imp.KERNEL32.DLL_GetLastError]
push eax
push ecx
push str.::IWorkerThread::Start:_CreateThread_failed__
push ecx
lea eax, [ebp - 0xf8]
push esi
push eax
call fcn.004191b0
add esp, 0xc
push eax
call fcn.004191b0
add esp, 0xc
mov ecx, eax
call fcn.004242a2
pop ecx
push eax
call fcn.004191b0
pop ecx
pop ecx
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x108]
call fcn.0042418e
mov byte [ebp - 4], 1
cmp dword [eax + 0x14], 0x10
jb 0x460646
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x28]
call fcn.004353fd
push 0x5dc754
lea eax, [ebp - 0x28]
push eax
call fcn.004fd5aa
mov eax, dword [esi + 8]
push 0xffffffffffffffff
mov dword [ebp - 0x50], eax
mov eax, dword [esi + 0xc]
push ebx
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x50]
push eax
push 2
pop ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_WaitForMultipleObjects]
mov edi, eax
cmp edi, ebx
jbe 0x46072f
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 8]
push 1
push 3
lea ecx, [ebp - 0x1b8]
call fcn.004241d9
push esi
mov dword [ebp - 4], ebx
call fcn.004fce47
add eax, 4
mov dword [esp], 0x5e7930
push eax
call fcn.004fc4f5
pop ecx
pop ecx
push 0x5abf38
push ecx
mov esi, eax
call dword [sym.imp.KERNEL32.DLL_GetLastError]
push eax
push ecx
push 0x550ce8
push ecx
push edi
push ecx
push str.::IWorkerThread::Start:_WaitForMultipleObjects_failed__
push ecx
lea eax, [ebp - 0x1a8]
push esi
push eax
call fcn.004191b0
add esp, 0xc
push eax
call fcn.004191b0
add esp, 0xc
mov ecx, eax
call fcn.004242a2
pop ecx
push eax
call fcn.004191b0
add esp, 0xc
mov ecx, eax
call fcn.004242a2
pop ecx
push eax
call fcn.004191b0
pop ecx
pop ecx
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x1b8]
call fcn.0042418e
mov byte [ebp - 4], 3
cmp dword [eax + 0x14], 0x10
jb 0x460646
jmp 0x460644
test edi, edi
sete bl
test bl, bl
jne 0x46073f
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 8]
mov al, bl
call fcn.004e44fa
ret 8