Function at 0x7ce2ce7e
Capabilities:
Terminate process

Disassembly:
sub esp, 0x1c
mov eax, dword [0x7ce4df6c]
push ebx
mov ebx, ecx
push ebp
push esi
push edi
test byte [ebx + 0x18], 1
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], eax
jne 0x7ce2ce9e
mov eax, dword [ebx]
call dword [eax]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [ebx + 0x10], eax
jne 0x7ce2ceb9
mov ecx, ebx
call fcn.7ce2d132
mov dword [esp + 0x10], eax
jmp 0x7ce2d0f5
mov eax, dword [ebx]
lea ecx, [esp + 0x24]
push ecx
mov ecx, ebx
call dword [eax + 8]
test eax, eax
mov dword [esp + 0x10], eax
jl 0x7ce2d0cd
mov ecx, dword [esp + 0x24]
mov ax, word [ecx]
test ax, ax
je 0x7ce2cee6
inc eax
mov word [ecx], ax
jmp 0x7ce2d0cd
and dword [esp + 0x10], 0
and dword [esp + 0x18], 0
mov esi, dword [ebx + 0xc]
lea edi, [ebx + 0xc]
mov eax, 0x3ff
mov ebp, esi
cmp esi, eax
jb 0x7ce2d098
test esi, 0x400
je 0x7ce2cf2e
test esi, 0x1000
jne 0x7ce2cf2e
mov edx, esi
mov ecx, esi
shr edx, 0xd
and ecx, eax
and edx, eax
add ecx, edx
cmp ecx, 0x3fd
jbe 0x7ce2d098
mov ecx, esi
and ecx, eax
cmp ecx, eax
je 0x7ce2d084
mov ecx, esi
mov eax, 0x7fe000
and ecx, eax
cmp ecx, eax
je 0x7ce2d084
mov eax, esi
and eax, 0xc00
cmp eax, 0x400
je 0x7ce2d084
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, dword [0x7ce50f3c]
jbe 0x7ce2d094
push esi
add esi, 0x2000
push esi
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedCompareExchange]
mov esi, eax
cmp esi, ebp
jne 0x7ce2d0a8
lea eax, [ebx + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov ecx, ebx
call fcn.7ce2ce47
mov ebp, eax
test ebp, ebp
je 0x7ce2cfb2
push dword [esp + 0x28]
push ebp
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [esp + 0x14], eax
jmp 0x7ce2cfbf
or dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0x80010101
cmp dword [esp + 0x14], 0
jne 0x7ce2cfd0
mov dword [esp + 0x1c], 0xffffe001
jmp 0x7ce2d019
cmp dword [esp + 0x14], 0x102
mov dword [esp + 0x1c], 0xffffe000
jne 0x7ce2cfec
mov dword [esp + 0x10], 0x8001011f
jmp 0x7ce2d019
cmp dword [esp + 0x10], 0
jl 0x7ce2d019
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jg 0x7ce2d005
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x7ce2d015
call dword [sym.imp.KERNEL32.dll_GetLastError]
and eax, 0xffff
or eax, 0x80070000
mov dword [esp + 0x10], eax
push dword [esp + 0x1c]
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
mov ecx, eax
and ecx, 0x7fe000
cmp ecx, 0x2000
jne 0x7ce2d07d
test ah, 4
je 0x7ce2d07d
cmp dword [esp + 0x14], 0
mov ebx, 0xfffffc00
je 0x7ce2d06b
test ebp, ebp
jne 0x7ce2d054
mov ecx, dword [esp + 0x20]
call fcn.7ce2ce47
mov ebp, eax
push 0xffffffffffffffff
push ebp
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
and dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
mov ebx, 0xfffffc01
push ebp
call fcn.7ce2d101
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
mov ebx, dword [esp + 0x20]
cmp dword [esp + 0x14], 0
jmp 0x7ce2d0a6
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
and dword [esp + 0x18], 0
mov esi, dword [edi]
jmp 0x7ce2d0a8
push esi
inc esi
push esi
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedCompareExchange]
mov esi, eax
cmp esi, ebp
je 0x7ce2d0b3
cmp dword [esp + 0x10], 0
jge 0x7ce2cef6
cmp dword [esp + 0x10], 0
jl 0x7ce2d0d4
mov eax, dword [esp + 0x24]
add ebx, 0x1c
push ebx
mov word [eax], 1
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
cmp dword [esp + 0x10], 0
jge 0x7ce2d0f5
cmp dword [0x7ce50f44], 0
je 0x7ce2d0e3
call dword [sym.imp.KERNEL32.dll_DebugBreak]
push 0x3e8
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret