Function at 0x10005c00
Capabilities:
Terminate thread

Disassembly:
push 0xffffffffffffffff
push 0x10026d4b
mov eax, dword fs:[0]
push eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1004f220]
xor eax, esp
push eax
lea eax, [esp + 0x14]
mov dword fs:[0], eax
mov esi, dword [esp + 0x24]
xor ebp, ebp
cmp dword [esi + 0x24], ebp
jle 0x10005e02
mov eax, dword [esi + 0x34]
cmp eax, ebp
je 0x10005c44
mov eax, dword [eax + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_PulseEvent]
xor ebx, ebx
cmp dword [0x10051640], ebp
je 0x10005e18
mov edi, dword [esi + 0x24]
xor ecx, ecx
mov eax, edi
mov edx, 0x1c
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.1001526d
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], ebp
cmp eax, ebp
je 0x10005ca4
push 0x10004140
push 0x10004100
push edi
lea ebx, [eax + 4]
push 0x1c
push ebx
mov dword [eax], edi
call fcn.10015278
mov edi, ebx
jmp 0x10005ca6
xor edi, edi
xor ebx, ebx
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x24], edi
cmp dword [esi + 0x24], ebp
jbe 0x10005cdd
mov ebp, dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
nop
push edi
push 0
mov dword [edi + 0x14], 4
mov ecx, dword [esi + 0x28]
push 0x1c
push ecx
call ebp
inc ebx
add edi, 0x1c
cmp ebx, dword [esi + 0x24]
jb 0x10005cc0
xor ebp, ebp
mov ebx, dword [esp + 0x24]
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x24]
push 0x1388
push 1
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
cmp dword [esi + 0x24], ebp
jbe 0x10005d3e
jmp 0x10005d00
dec dword [esi + 0x24]
mov eax, dword [esi + 0x24]
mov edx, dword [esi + 0x2c]
mov eax, dword [edx + eax*4]
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x10005d29
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x2c]
mov eax, dword [edx + ecx*4]
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x2c]
mov eax, dword [edx + ecx*4]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esi + 0x24], ebp
ja 0x10005d00
cmp ebx, ebp
je 0x10005d5f
mov ecx, dword [ebx - 4]
push 0x10004140
lea edi, [ebx - 4]
push ecx
push 0x1c
push ebx
call fcn.1001533b
push edi
call fcn.10014c14
add esp, 4
mov eax, dword [esi + 0x2c]
cmp eax, ebp
je 0x10005d72
push eax
call fcn.10014c14
add esp, 4
mov dword [esi + 0x2c], ebp
cmp dword [esi + 0x94], ebp
je 0x10005de9
mov edx, dword [esi + 0x68]
push edx
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov edi, dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
lea ebx, [ebx]
mov eax, dword [esi + 0x98]
mov ecx, dword [eax + 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_PulseEvent]
mov edx, dword [esi + 0x94]
push ebp
push 0x1f4
push edx
call edi
cmp eax, 0x102
je 0x10005d90
mov eax, dword [esi + 0x94]
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x10005dd6
mov ecx, dword [esi + 0x94]
push ebp
push ecx
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov edx, dword [esi + 0x94]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x94], ebp
cmp dword [0x10051640], ebp
je 0x10005e02
mov eax, dword [esi + 0x28]
cmp eax, ebp
je 0x10005dff
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x28], ebp
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 4
mov edx, dword [esi + 0xe4]
push edx
call dword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x10005ce1