Function at 0x610ae700
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
sub esp, 0x20
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
mov dword [esp + 4], eax
mov dword [esp], ebx
call method.pthread.precreate_pthread_attr_
mov edx, dword [ebx + 4]
xor eax, eax
test edx, edx
je 0x610ae7c0
mov eax, dword [ebp + 0xc]
lea esi, [ebx + 0x58]
cmp dword [esi + 0x1c], 2
mov dword [ebx + 0x28], eax
mov eax, dword [ebp + 0x14]
mov dword [ebx + 0x2c], eax
je 0x610ae7c7
call sym._pthread_self
mov dword [esp + 4], eax
mov dword [esp], esi
call method.pthread_mutex._lock_pthread_
mov dword [esp + 0xc], ebx
lea eax, [ebx + 0x50]
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 0x10], eax
mov eax, sym.__ZN7pthread19thread_init_wrapperEPv_4
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x24]
mov dword [esp], 0x61107420
mov dword [esp + 4], eax
call sub.KERNEL32.dll_CreateThread
mov dword [ebx + 8], eax
sub esp, 0x18
test eax, eax
jne 0x610ae848
test byte [0x6110a820], 1
jne 0x610ae883
mov dword [ebx + 4], 0
xor ebx, ebx
cmp dword [esi + 0x1c], 2
je 0x610ae87c
call sym._pthread_self
mov dword [esp + 4], eax
mov dword [esp], esi
call method.pthread_mutex._unlock_pthread_
xor eax, eax
nop
lea esp, [ebp - 8]
pop ebx
pop esi
pop ebp
ret
mov dword [esp], esi
mov ecx, 0xffffffff
mov dword [esp + 4], ecx
call method.pthread_mutex._lock_pthread_
mov dword [esp + 0xc], ebx
lea eax, [ebx + 0x50]
xor edx, edx
mov dword [esp + 0x14], eax
mov eax, sym.__ZN7pthread19thread_init_wrapperEPv_4
mov dword [esp + 0x10], edx
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x24]
mov dword [esp], 0x61107420
mov dword [esp + 4], eax
call sub.KERNEL32.dll_CreateThread
mov dword [ebx + 8], eax
sub esp, 0x18
test eax, eax
jne 0x610ae848
test byte [0x6110a820], 1
jne 0x610ae883
mov dword [ebx + 4], 0
mov eax, dword [ebx + 4]
test eax, eax
setne bl
cmp dword [esi + 0x1c], 2
je 0x610ae87c
call sym._pthread_self
mov dword [esp], esi
mov dword [esp + 4], eax
call method.pthread_mutex._unlock_pthread_
lea esp, [ebp - 8]
movzx eax, bl
pop ebx
pop esi
pop ebp
ret
mov dword [esp], ebx
call method.pthread.postcreate__
mov eax, dword [ebx + 0x40]
test eax, eax
jne 0x610ae81f
mov esi, esi
lea edi, [edi]
xor eax, eax
call sym._low_priority_sleep
mov eax, dword [ebx + 0x40]
test eax, eax
je 0x610ae860
mov eax, dword [ebx + 4]
test eax, eax
setne bl
cmp dword [esi + 0x1c], 2
jne 0x610ae82d
mov eax, 0xffffffff
jmp 0x610ae832
mov dword [esp + 0x10], ebx
mov eax, str.CreateThread_failed:_this__p___E
mov dword [esp + 0xc], eax
mov eax, str.virtual_bool_pthread::create_void___void___pthread_attr__void_
mov dword [esp + 8], eax
mov eax, 0xc0000
mov dword [esp + 4], eax
mov dword [esp], 0x6110a820
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x610ae818

Function at 0x610aeaf0
Capabilities:
Suspend thread

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 4
mov ebx, dword [ebp + 8]
cmp byte [ebx + 0x34], 0
jne 0x610aeb05
mov ebx, dword [ebp - 4]
leave
ret
call method.pthread.self__
cmp eax, ebx
je 0x610aeb00
mov eax, dword [ebx + 8]
mov dword [esp], eax
call sub.KERNEL32.dll_SuspendThread
sub esp, 4
mov ebx, dword [ebp - 4]
leave
ret