Function at 0x405e40
Capabilities:
Terminate thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x27c], 1
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x280], 1
push 2
push 0x20
mov ecx, dword [ebp - 0xc]
call fcn.00408bac
mov eax, dword [ebp - 0xc]
mov al, byte [eax]
push eax
call sym.NPROTECT.EXE__NprotectReleaseSemaphores_4
call sym.NPROTECT.EXE__NPSystemGetWindowsType_0
cmp eax, 2
jne 0x405f46
push 1
pop eax
test eax, eax
je 0x405f41
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x1e4], 0
je 0x405ed4
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 0xc]
push dword [eax + 0x1e4]
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
test eax, eax
je 0x405ed4
cmp dword [ebp - 4], 0x103
je 0x405ed4
push 0x41c310
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
pop ecx
mov eax, dword [ebp - 0xc]
and dword [eax + 0x1e4], 0
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x1f0], 0
je 0x405f15
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 0xc]
push dword [eax + 0x1f0]
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
test eax, eax
je 0x405f15
cmp dword [ebp - 4], 0x103
je 0x405f15
push 0x41c334
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
pop ecx
mov eax, dword [ebp - 0xc]
and dword [eax + 0x1f0], 0
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x1e4], 0
jne 0x405f2d
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x1f0], 0
je 0x405f3a
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x405f3c
jmp 0x405f41
jmp 0x405e88
jmp 0x40605b
and dword [ebp - 8], 0
jmp 0x405f53
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0x64
jge 0x40600b
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x1e4], 0
je 0x405f9e
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 0xc]
push dword [eax + 0x1e4]
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
test eax, eax
je 0x405f9e
cmp dword [ebp - 4], 0x103
je 0x405f9e
push str.LazyWrite_Thread_confirmed_ended
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
pop ecx
mov eax, dword [ebp - 0xc]
and dword [eax + 0x1e4], 0
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x1f0], 0
je 0x405fdf
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 0xc]
push dword [eax + 0x1f0]
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
test eax, eax
je 0x405fdf
cmp dword [ebp - 4], 0x103
je 0x405fdf
push str.Critical_Thread_confirmed_ended
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
pop ecx
mov eax, dword [ebp - 0xc]
and dword [eax + 0x1f0], 0
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x1e4], 0
jne 0x405ff7
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x1f0], 0
je 0x406004
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x406006
jmp 0x40600b
jmp 0x405f4c
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x1e4], 0
je 0x406033
push str.LazyWrite_thread_FORCE_terminate
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
pop ecx
push 0
mov eax, dword [ebp - 0xc]
push dword [eax + 0x1e4]
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x1f0], 0
je 0x40605b
push str.Critical_thread_FORCE_terminate
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
pop ecx
push 0
mov eax, dword [ebp - 0xc]
push dword [eax + 0x1f0]
call dword [sym.imp.KERNEL32.dll_TerminateThread]
leave
ret