Function at 0x61017fd0
Capabilities:
Resume thread
Suspend thread

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov esi, eax
push ebx
sub esp, 0x32c
mov ecx, dword [0x61148178]
mov eax, dword [ecx + 0xcc]
mov dword [ebp - 0x28], eax
mov eax, dword [ecx + 0xd0]
mov dword [ebp - 0x24], eax
mov eax, dword [ecx + 0xd4]
mov dword [ebp - 0x20], eax
mov ebx, dword [esi]
cmp ebx, 0x13
je 0x61018324
xor edx, edx
test byte [0x6110c854], 1
mov edi, 1
mov dword [ebp - 0x2fc], edx
jne 0x61018380
lea edx, [ebx + ebx*2]
lea edx, [ecx + edx*4]
mov dword [ebp - 0x300], edx
mov eax, dword [0x61148184]
mov edx, dword [0x61109170]
inc dword [edx + 0x174]
test eax, eax
jne 0x61018230
mov eax, dword [ebp - 0x300]
mov eax, dword [eax]
mov dword [ebp - 0x308], eax
cmp ebx, 9
je 0x6101857a
cmp ebx, 0x11
je 0x610186d6
mov eax, dword [edx + 4]
shr eax, 2
and al, 1
mov byte [ebp - 0x309], al
test al, al
mov byte [ebp - 0x301], al
je 0x61018260
mov edx, dword [esi + 0x98]
test edx, edx
jne 0x6101809b
mov edx, dword [0x61107538]
mov dword [esi + 0x98], edx
cmp byte [ebp - 0x301], 0
jne 0x610183f0
mov ebx, dword [esi]
cmp ebx, 0x12
sete dl
cmp ebx, 0x15
sete al
or dl, al
jne 0x61018554
cmp ebx, 0x16
je 0x61018554
mov eax, dword [ebp - 0x308]
test eax, eax
je 0x610185d1
cmp dword [ebp - 0x308], 1
je 0x61018780
cmp dword [ebp - 0x308], 0xffffffff
je 0x61018578
mov eax, dword [esi + 0x98]
mov edx, esi
call method._cygtls.set_siginfo_sigpacket_
test byte [0x6110c854], 1
jne 0x61018651
mov byte [ebp - 0x311], 0
mov edx, dword [esi]
mov esi, dword [esi + 0x98]
mov dword [ebp - 0x310], edx
mov edx, dword [esi + 0xc5c]
test edx, edx
jne 0x6101868d
xor edi, edi
jmp 0x61018192
mov edx, dword [ebp - 0x300]
mov eax, dword [ebp - 0x308]
mov ecx, dword [ebp - 0x310]
mov dword [esp + 4], edx
lea edx, [ebp - 0x2f8]
mov dword [esp], eax
mov eax, esi
call method._cygtls.interrupt_now__CONTEXT__int__void__sigaction_
mov byte [ebp - 0x311], al
mov dword [esp], ebx
call sub.KERNEL32.dll_ResumeThread
sub esp, 4
cmp byte [ebp - 0x311], 0
jne 0x61018470
test byte [0x6110c854], 1
jne 0x610182f8
xor eax, eax
inc edi
call sym._low_priority_sleep
cmp edi, 0x13
jg 0x61018470
mov eax, esi
call method._cygtls.lock__
mov eax, dword [esi + 0xc60]
test eax, eax
jne 0x61018431
mov eax, esi
call method._cygtls.unlock__
test byte [0x6110c854], 1
mov eax, dword [esi + 0x1a0]
mov ebx, dword [eax + 8]
jne 0x610182a4
mov dword [esp], ebx
call sub.KERNEL32.dll_SuspendThread
sub esp, 4
test eax, eax
jne 0x61018770
mov eax, 0x10003
mov dword [ebp - 0x2f8], eax
lea eax, [ebp - 0x2f8]
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.KERNEL32.dll_GetThreadContext
sub esp, 8
test eax, eax
jne 0x61018130
mov dword [esp], 0x6110c854
mov eax, str.couldnt_get_context_of_main_thread___E
mov dword [esp + 0xc], eax
mov eax, str.int_setup_handler_int__void__sigaction___cygtls_
mov dword [esp + 8], eax
mov eax, 0x8000
mov dword [esp + 4], eax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x6101815c
mov eax, dword [ebp - 0x300]
cmp dword [eax], 1
je 0x61018427
mov ecx, dword [esi + 0x98]
mov eax, 1
test ecx, ecx
jne 0x6101841f
xor eax, eax
jmp 0x61018051
mov edx, dword [esi + 0x98]
test edx, edx
jne 0x610185a8
mov eax, dword [ebp - 0x308]
test eax, eax
je 0x610187bf
mov eax, dword [esi]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x9c]
mov dword [esp], eax
call sym._sigismember
test eax, eax
je 0x610183c0
mov byte [ebp - 0x301], 1
jmp 0x61018085
mov dword [esp], 0x6110c854
mov ecx, str.suspending_mainthread
mov edx, str.int_setup_handler_int__void__sigaction___cygtls_
mov dword [esp + 0xc], ecx
mov eax, 0x800
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
mov dword [esp], ebx
call sub.KERNEL32.dll_SuspendThread
sub esp, 4
test eax, eax
jne 0x61018770
mov eax, 0x10003
lea edx, [ebp - 0x2f8]
mov dword [ebp - 0x2f8], eax
mov dword [esp + 4], edx
jmp 0x610181ec
mov dword [esp], 0x6110c854
mov eax, str.couldnt_interrupt.__trying_again.
mov ebx, str.int_setup_handler_int__void__sigaction___cygtls_
mov dword [esp + 0xc], eax
mov ecx, 0x800
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x61018181
mov eax, dword [0x61109170]
mov edi, 1
mov edx, dword [eax + 4]
and edx, 4
mov dword [ebp - 0x2fc], edx
mov byte [eax + 0x1cc], 0
mov eax, dword [0x61109170]
and dword [eax + 4], 0xfffffffb
mov eax, 0x11
call sym.__Z9sig_cleari_4
mov eax, 0x12
call sym.__Z9sig_cleari_4
mov eax, 0x15
call sym.__Z9sig_cleari_4
mov eax, 0x16
call sym.__Z9sig_cleari_4
test byte [0x6110c854], 1
mov ebx, dword [esi]
je 0x610183ad
lea esi, [esi]
mov dword [esp + 0x10], ebx
mov eax, str.signal__d_processing
mov dword [esp + 0xc], eax
mov eax, str.int_sigpacket::process__
mov dword [esp + 8], eax
mov eax, 0x800
mov dword [esp + 4], eax
mov dword [esp], 0x6110c854
call method.strace.prntf_unsigned_int__char_const__char_const__..._
mov ebx, dword [esi]
mov eax, dword [0x61148178]
lea edx, [ebx + ebx*2]
lea edx, [eax + edx*4]
jmp 0x6101802a
mov edx, dword [esi + 0x98]
test edx, edx
je 0x6101808f
mov eax, dword [esi]
mov dword [esp + 4], eax
lea eax, [edx + 0x24]
mov dword [esp], eax
call sym._sigismember
test eax, eax
setne byte [ebp - 0x301]
jmp 0x61018085
test byte [0x6110c854], 1
jne 0x61018522
mov edi, 0xffffffff
mov ecx, dword [ebp - 0x2fc]
test ecx, ecx
jne 0x61018563
test byte [0x6110c854], 1
jne 0x610184f0
mov eax, edi
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 1
jmp 0x61018051
test byte [0x6110c854], 1
jne 0x61018865
mov eax, dword [ebp - 0x300]
mov ecx, dword [ebp - 0x308]
mov edx, dword [ebp - 0x310]
mov dword [esp], eax
mov eax, esi
call sym.__ZN7_cygtls15interrupt_setupEiPvR9sigaction_16
mov byte [ebp - 0x311], 1
sub esp, 4
mov eax, esi
call method._cygtls.unlock__
nop
lea esi, [esi]
movzx eax, byte [0x6110c854]
test al, 1
je 0x610184c3
cmp byte [ebp - 0x311], 0
mov eax, 0x6111c8fc
je 0x6101848e
mov eax, 0x6111c248
mov dword [esp + 0x14], eax
mov edx, dword [ebp - 0x310]
mov eax, str.signal__d__sdelivered
mov dword [esp + 0xc], eax
mov edi, str.int_setup_handler_int__void__sigaction___cygtls_
mov esi, 0x800
mov dword [esp + 8], edi
mov dword [esp + 0x10], edx
mov dword [esp + 4], esi
mov dword [esp], 0x6110c854
call method.strace.prntf_unsigned_int__char_const__char_const__..._
movzx edi, byte [ebp - 0x311]
mov ebx, dword [ebp - 0x2fc]
test ebx, ebx
jne 0x61018563
test byte [0x6110c854], 1
mov eax, edi
je 0x6101841f
mov esi, esi
lea edi, [edi]
mov dword [esp + 0x10], edi
mov eax, str.int_sigpacket::process__
mov edx, 0x6111c917
mov dword [esp + 8], eax
mov eax, 0x800
mov dword [esp + 4], eax
mov dword [esp + 0xc], edx
mov dword [esp], 0x6110c854
call method.strace.prntf_unsigned_int__char_const__char_const__..._
mov eax, edi
jmp 0x6101841f
mov eax, dword [esi]
mov edx, str.signal__d_blocked
mov dword [esp + 0xc], edx
mov dword [esp], 0x6110c854
mov dword [esp + 0x10], eax
mov eax, str.int_sigpacket::process__
mov dword [esp + 8], eax
mov eax, 0x800
mov dword [esp + 4], eax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x610183fd
mov eax, 0x13
call sym.__Z9sig_cleari_4
jmp 0x610180c7
mov eax, dword [0x6110955c]
mov dword [esp], eax
call sub.KERNEL32.dll_SetEvent
sub esp, 4
jmp 0x61018410
mov ebx, dword [esi]
cmp ebx, 3
sete dl
cmp ebx, 6
sete al
or dl, al
jne 0x6101872f
test byte [0x6110c854], 1
jne 0x61018805
mov eax, dword [esi + 0x98]
mov edx, dword [esi]
call method._cygtls.signal_exit_int_
mov dword [esp + 4], ebx
lea eax, [edx + 0x28]
mov dword [esp], eax
call sym._sigismember
test eax, eax
jne 0x610187d5
cmp byte [ebp - 0x309], 0
je 0x6101827c
jmp 0x61018085
mov ebx, dword [esi]
cmp ebx, 0x14
sete dl
cmp ebx, 0x17
sete al
or dl, al
jne 0x610186ff
cmp ebx, 0x13
je 0x610186ff
cmp ebx, 0x1c
je 0x610186ff
cmp ebx, 0x10
je 0x610186ff
cmp ebx, 0x12
sete dl
cmp ebx, 0x15
sete al
or dl, al
jne 0x6101861b
cmp ebx, 0x16
jne 0x6101857a
mov eax, dword [0x61109170]
test byte [eax + 4], 4
jne 0x61018402
mov eax, dword [ebp - 0x28]
mov ebx, sym._sig_handle_tty_stop
mov edx, dword [ebp - 0x300]
mov dword [ebp - 0x308], ebx
mov dword [edx], eax
mov eax, dword [ebp - 0x24]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x20]
mov dword [edx + 8], eax
jmp 0x610180fc
mov eax, dword [ebp - 0x308]
mov edx, str.signal__d__about_to_call__p
mov dword [esp + 0x14], eax
mov eax, dword [esi]
mov dword [esp + 0xc], edx
mov dword [esp], 0x6110c854
mov dword [esp + 0x10], eax
mov eax, str.int_sigpacket::process__
mov dword [esp + 8], eax
mov eax, 0x800
mov dword [esp + 4], eax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x61018109
movzx eax, byte [0x6110c854]
test al, 1
je 0x61018477
mov dword [esp + 0x14], edx
mov eax, str.trying_to_send_sig__d_but_signal__d_already_armed
mov edx, dword [ebp - 0x310]
mov dword [esp + 0xc], eax
mov eax, str.int_setup_handler_int__void__sigaction___cygtls_
mov dword [esp + 8], eax
mov eax, 0x800
mov dword [esp + 0x10], edx
mov dword [esp + 4], eax
mov dword [esp], 0x6110c854
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x61018470
mov eax, 0x13
call sym.__Z9sig_cleari_4
mov eax, dword [esi + 0x98]
test eax, eax
jne 0x6101861b
mov edx, dword [0x61107538]
mov dword [esi + 0x98], edx
jmp 0x6101861b
test byte [0x6110c854], 1
jne 0x61018835
mov eax, dword [ebp - 0x2fc]
test eax, eax
je 0x61018410
mov eax, dword [0x61109560]
mov dword [esp], eax
call sub.KERNEL32.dll_SetEvent
sub esp, 4
jmp 0x61018402
mov eax, 0x10007
lea ebx, [ebp - 0x2f8]
mov dword [ebp - 0x2f8], eax
mov eax, dword [0x61107564]
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.KERNEL32.dll_GetThreadContext
mov eax, dword [esi + 0x98]
mov edx, ebx
sub esp, 8
call method._cygtls.copy_context__CONTEXT_
mov ebx, dword [esi]
or ebx, 0x80
mov dword [esi], ebx
jmp 0x6101858e
mov dword [esp], ebx
call sub.KERNEL32.dll_ResumeThread
sub esp, 4
jmp 0x61018470
test byte [0x6110c854], 1
je 0x61018402
mov eax, dword [esi]
mov ebx, str.int_sigpacket::process__
mov esi, str.signal__d_ignored
mov dword [esp + 0xc], esi
mov ecx, 0x800
mov dword [esp + 8], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 4], ecx
mov dword [esp], 0x6110c854
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x61018402
mov dword [esp], ebx
call method._cygtls.find_tls_int_
mov dword [esi + 0x98], eax
test eax, eax
je 0x6101827c
mov edx, dword [esi]
mov eax, dword [esi + 0x98]
mov dword [eax + 0xc5c], edx
mov edx, esi
call method._cygtls.set_siginfo_sigpacket_
test byte [0x6110c854], 1
jne 0x610188b2
mov eax, dword [esi + 0x98]
mov eax, dword [eax + 0x1c]
jmp 0x6101871f
mov dword [esp + 0x10], ebx
mov edi, str.signal__d__about_to_call_do_exit
mov ebx, str.int_sigpacket::process__
mov dword [esp + 0xc], edi
mov ecx, 0x800
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
mov dword [esp], 0x6110c854
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x6101859b
mov dword [esp + 0x10], ebx
mov eax, str.default_signal__d_ignored
mov dword [esp + 0xc], eax
mov eax, str.int_sigpacket::process__
mov dword [esp + 8], eax
mov eax, 0x800
mov dword [esp + 4], eax
mov dword [esp], 0x6110c854
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x6101870c
mov eax, dword [esi + 0xc6c]
mov edi, str.int_setup_handler_int__void__sigaction___cygtls_
mov ebx, 0x800
mov eax, dword [eax - 4]
mov dword [esp + 0x18], eax
lea eax, [esi + 0xc70]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0xc6c]
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp + 0x10], eax
mov eax, str.controlled_interrupt._stackptr__p__stack__p__stackptr__1___p
mov dword [esp + 0xc], eax
mov dword [esp], 0x6110c854
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x6101843e
mov dword [esp], 0x6110c854
mov eax, str.releasing_sigwait_for_thread
mov dword [esp + 0xc], eax
mov eax, str.int_sigpacket::process__
mov dword [esp + 8], eax
mov eax, 0x800
mov dword [esp + 4], eax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x610187f7