Function at 0x100ed901
Capabilities:
Enumerate threads
Suspend thread

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2f4
mov dword [esp + 0x10], edx
mov eax, dword [0x10356534]
xor eax, esp
mov dword [esp + 0x2f0], eax
xor eax, eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [esp + 8], ecx
mov dword [ecx + 8], eax
push eax
push 4
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov esi, 9
cmp eax, 0xffffffff
je 0x100edc24
mov ebp, eax
lea ebx, [esp + 0x24]
mov dword [ebx], 0x1c
push ebx
push eax
call sub.KERNEL32.dll_Thread32First
test eax, eax
je 0x100edbf3
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [esp + 0x24], 0x10
jb 0x100eda00
mov edi, dword [esp + 0x30]
call esi
cmp edi, eax
jne 0x100eda00
mov edi, dword [esp + 0x2c]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
je 0x100eda00
mov ebx, dword [esp + 8]
mov eax, dword [ebx]
test eax, eax
je 0x100ed9c4
mov ecx, dword [ebx + 4]
cmp dword [ebx + 8], ecx
jb 0x100ed9ec
mov edi, ebx
lea edx, [ecx + ecx]
mov dword [ebx + 4], edx
shl ecx, 3
push ecx
push eax
push 0
push dword [0x1035bd04]
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
test eax, eax
je 0x100edbfc
mov dword [edi], eax
mov ebx, edi
jmp 0x100ed9ec
mov dword [ebx + 4], 0x80
push 0x200
push 0
push dword [0x1035bd04]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ebx, dword [esp + 8]
mov dword [ebx], eax
test eax, eax
je 0x100edc14
mov ecx, dword [esp + 0x2c]
mov edx, dword [ebx + 8]
lea edi, [edx + 1]
mov dword [ebx + 8], edi
lea ebx, [esp + 0x24]
mov dword [eax + edx*4], ecx
mov dword [esp + 0x24], 0x1c
push ebx
push ebp
call sub.KERNEL32.dll_Thread32Next
test eax, eax
jne 0x100ed962
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
mov edi, dword [esp + 8]
jne 0x100edbfc
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [edi]
test eax, eax
je 0x100edc22
xor esi, esi
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov dword [esp + 0xc], 0
add edx, 1
mov dword [esp + 0x18], edx
je 0x100eda58
mov dword [esp + 0xc], ecx
cmp dword [edi + 8], 0
mov ebp, dword [esp + 0x308]
je 0x100edc24
xor esi, esi
push dword [eax + esi*4]
push 0
push 0x5a
call dword [sym.imp.KERNEL32.dll_OpenThread]
test eax, eax
je 0x100edbe2
mov dword [esp + 0x1c], esi
push eax
mov esi, eax
call dword [sym.imp.KERNEL32.dll_SuspendThread]
mov dword [esp + 0x24], 0x10001
push ebx
mov dword [esp + 0x18], esi
push esi
call dword [sym.imp.KERNEL32.dll_GetThreadContext]
test eax, eax
je 0x100edbd0
cmp dword [esp + 0x10], 0xffffffff
je 0x100edab6
mov edi, dword [esp + 0x18]
jmp 0x100edabc
mov edi, dword [0x1035bd10]
cmp dword [esp + 0xc], edi
jae 0x100edbd0
mov eax, dword [0x1035bd08]
mov ecx, dword [esp + 0xc]
mov dword [esp], edi
mov dword [esp + 0x20], ecx
imul ecx, ecx, 0x2c
mov esi, ebp
test ebp, ebp
je 0x100edaf3
cmp ebp, 1
jne 0x100edae9
xor esi, esi
inc esi
jmp 0x100edaf3
mov esi, dword [eax + ecx + 0x14]
shr esi, 2
and esi, 1
mov ebx, dword [eax + ecx + 0x14]
mov edx, ebx
shr edx, 1
and edx, 1
cmp esi, edx
je 0x100edbc3
lea edi, [eax + ecx]
mov edx, dword [esp + 0xdc]
test esi, esi
je 0x100edb39
mov esi, dword [eax + ecx + 0x18]
and esi, 0xf
je 0x100edb7f
mov edi, dword [edi]
mov dword [esp + 4], eax
lea ebp, [eax + ecx]
add ebp, 0x24
movzx eax, byte [ebp - 8]
add eax, edi
cmp eax, edx
je 0x100edb84
inc ebp
dec esi
jne 0x100edb29
jmp 0x100edb6f
test bl, 1
je 0x100edb4b
mov esi, dword [edi]
mov ebx, eax
lea eax, [esi - 5]
cmp eax, edx
mov eax, ebx
je 0x100edba1
mov esi, dword [eax + ecx + 0x18]
and esi, 0xf
je 0x100edb7f
mov dword [esp + 4], eax
lea ebp, [eax + ecx]
add ebp, 0x1c
mov ecx, dword [ebp - 0x14]
movzx eax, byte [ebp + 8]
add eax, ecx
cmp eax, edx
je 0x100edb90
inc ebp
dec esi
jne 0x100edb61
mov ebp, dword [esp + 0x308]
mov edi, dword [esp]
mov eax, dword [esp + 4]
jmp 0x100edbc3
mov edi, dword [esp]
jmp 0x100edbc3
mov eax, dword [esp + 4]
lea edi, [eax + ecx]
add edi, 8
jmp 0x100edb94
mov eax, dword [esp + 4]
movzx esi, byte [ebp]
add esi, dword [edi]
mov ebp, dword [esp + 0x308]
test esi, esi
mov edi, dword [esp]
je 0x100edbc3
mov dword [esp + 0xdc], esi
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.dll_SetThreadContext]
mov eax, dword [0x1035bd08]
mov ecx, dword [esp + 0x20]
inc ecx
cmp ecx, edi
jne 0x100edad2
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ebx, [esp + 0x24]
mov esi, dword [esp + 0x1c]
inc esi
mov eax, dword [esp + 8]
cmp esi, dword [eax + 8]
jae 0x100edc22
mov eax, dword [eax]
jmp 0x100eda6b
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x100edc24
mov eax, dword [edi]
test eax, eax
je 0x100edc14
xor esi, esi
push eax
push esi
push dword [0x1035bd04]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [edi], esi
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, 9
jmp 0x100edc24
xor esi, esi
mov ecx, dword [esp + 0x2f0]
xor ecx, esp
call fcn.100f6c33
mov eax, esi
add esp, 0x2f4
pop esi
pop edi
pop ebx
pop ebp
ret