Function at 0x425f10
Capabilities:
Create thread
Resume thread

Disassembly:
sub esp, 8
push esi
push edi
mov esi, ecx
call fcn.00445690
test eax, eax
je 0x425f3f
mov eax, dword [0x481a98]
test eax, eax
jne 0x425f3f
mov ecx, esi
call fcn.0041f2b0
test eax, eax
je 0x425f3f
pop edi
mov eax, 1
pop esi
add esp, 8
ret
mov eax, dword [esi + 0x1120]
test eax, eax
je 0x425f54
pop edi
mov eax, 1
pop esi
add esp, 8
ret
call fcn.004457a0
test eax, eax
je 0x425f7a
mov eax, dword [0x481a98]
test eax, eax
jne 0x425f7a
call fcn.00445b80
test eax, eax
je 0x425f7a
pop edi
mov eax, 1
pop esi
add esp, 8
ret
mov eax, dword [esi + 0x390]
test eax, eax
je 0x425f8f
pop edi
mov eax, 1
pop esi
add esp, 8
ret
mov eax, dword [esi + 0x28]
lea edi, [esi + 0x28]
test eax, eax
mov dword [esp + 8], 0
je 0x425fce
lea ecx, [esp + 8]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
test eax, eax
je 0x425fbb
cmp dword [esp + 8], 0x103
je 0x425f84
mov eax, dword [edi]
test eax, eax
je 0x425fce
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi], 0
lea eax, [esi + 0x2cf4]
push ebx
push eax
mov dword [esp + 0x10], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0
mov ecx, esi
mov ebx, 1
mov dword [esp + 0x14], 0
call fcn.004203f0
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x42600d
push 0
push 0
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x30]
test eax, eax
je 0x42601b
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov ecx, esi
call fcn.00425ab0
test eax, eax
je 0x426087
call fcn.004306f0
test eax, eax
jne 0x426087
mov ecx, esi
call fcn.00425ab0
test eax, eax
je 0x42612c
lea edx, [esp + 0x10]
push edx
push 4
push esi
push 0x439480
push 0
push 0
call fcn.0045233c
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x4260d0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x474534
call fcn.00446e00
mov ecx, dword [esp + 0x14]
add esp, 8
xor ebx, ebx
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, ebx
pop ebx
pop edi
pop esi
add esp, 8
ret
lea eax, [esp + 0x10]
push eax
push 4
push esi
push 0x441800
push 0
push 0
call fcn.0045233c
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x4260d0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x474510
call fcn.00446e00
mov ecx, dword [esp + 0x14]
add esp, 8
xor ebx, ebx
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, ebx
pop ebx
pop edi
pop esi
add esp, 8
ret
push 2
push 0
push 0
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
call edi
push eax
push esi
call edi
push eax
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
test eax, eax
push esi
jne 0x42611f
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor ebx, ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x4744e8
call fcn.00446e00
mov ecx, dword [esp + 0x14]
add esp, 8
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, ebx
pop ebx
pop edi
pop esi
add esp, 8
ret
call dword [sym.imp.KERNEL32.dll_ResumeThread]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, ebx
pop ebx
pop edi
pop esi
add esp, 8
ret