Function at 0x61017fe0
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 [0x61146328]
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 0x61018334
xor edx, edx
test byte [0x6110a820], 1
mov edi, 1
mov dword [ebp - 0x2fc], edx
jne 0x61018390
lea edx, [ebx + ebx*2]
lea edx, [ecx + edx*4]
mov dword [ebp - 0x300], edx
mov eax, dword [0x61146334]
mov edx, dword [0x61107154]
inc dword [edx + 0x174]
test eax, eax
jne 0x61018240
mov eax, dword [ebp - 0x300]
mov eax, dword [eax]
mov dword [ebp - 0x308], eax
cmp ebx, 9
je 0x6101858a
cmp ebx, 0x11
je 0x610186e6
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 0x61018270
mov edx, dword [esi + 0x98]
test edx, edx
jne 0x610180ab
mov edx, dword [0x61105554]
mov dword [esi + 0x98], edx
cmp byte [ebp - 0x301], 0
jne 0x61018400
mov ebx, dword [esi]
cmp ebx, 0x12
sete dl
cmp ebx, 0x15
sete al
or dl, al
jne 0x61018564
cmp ebx, 0x16
je 0x61018564
mov eax, dword [ebp - 0x308]
test eax, eax
je 0x610185e1
cmp dword [ebp - 0x308], 1
je 0x61018790
cmp dword [ebp - 0x308], 0xffffffff
je 0x61018588
mov eax, dword [esi + 0x98]
mov edx, esi
call method._cygtls.set_siginfo_sigpacket_
test byte [0x6110a820], 1
jne 0x61018661
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 0x6101869d
xor edi, edi
jmp 0x610181a2
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 0x61018480
test byte [0x6110a820], 1
jne 0x61018308
xor eax, eax
inc edi
call sym._low_priority_sleep
cmp edi, 0x13
jg 0x61018480
mov eax, esi
call method._cygtls.lock__
mov eax, dword [esi + 0xc60]
test eax, eax
jne 0x61018441
mov eax, esi
call method._cygtls.unlock__
test byte [0x6110a820], 1
mov eax, dword [esi + 0x1a0]
mov ebx, dword [eax + 8]
jne 0x610182b4
mov dword [esp], ebx
call sub.KERNEL32.dll_SuspendThread
sub esp, 4
test eax, eax
jne 0x61018780
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 0x61018140
mov dword [esp], 0x6110a820
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 0x6101816c
mov eax, dword [ebp - 0x300]
cmp dword [eax], 1
je 0x61018437
mov ecx, dword [esi + 0x98]
mov eax, 1
test ecx, ecx
jne 0x6101842f
xor eax, eax
jmp 0x61018061
mov edx, dword [esi + 0x98]
test edx, edx
jne 0x610185b8
mov eax, dword [ebp - 0x308]
test eax, eax
je 0x610187cf
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 0x610183d0
mov byte [ebp - 0x301], 1
jmp 0x61018095
mov dword [esp], 0x6110a820
mov eax, str.int_setup_handler_int__void__sigaction___cygtls_
mov edx, str.suspending_mainthread
mov dword [esp + 8], eax
mov eax, 0x800
mov dword [esp + 0xc], 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 0x61018780
mov eax, 0x10003
lea edx, [ebp - 0x2f8]
mov dword [ebp - 0x2f8], eax
mov dword [esp + 4], edx
jmp 0x610181fc
mov dword [esp], 0x6110a820
mov ebx, str.couldnt_interrupt.__trying_again.
mov ecx, str.int_setup_handler_int__void__sigaction___cygtls_
mov dword [esp + 0xc], ebx
mov edx, 0x800
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x61018191
mov eax, dword [0x61107154]
mov edi, 1
mov edx, dword [eax + 4]
and edx, 4
mov dword [ebp - 0x2fc], edx
mov byte [eax + 0x1cc], 0
mov eax, dword [0x61107154]
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 [0x6110a820], 1
mov ebx, dword [esi]
je 0x610183bd
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], 0x6110a820
call method.strace.prntf_unsigned_int__char_const__char_const__..._
mov ebx, dword [esi]
mov eax, dword [0x61146328]
lea edx, [ebx + ebx*2]
lea edx, [eax + edx*4]
jmp 0x6101803a
mov edx, dword [esi + 0x98]
test edx, edx
je 0x6101809f
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 0x61018095
test byte [0x6110a820], 1
jne 0x61018532
mov edi, 0xffffffff
mov edx, dword [ebp - 0x2fc]
test edx, edx
jne 0x61018573
test byte [0x6110a820], 1
jne 0x61018500
mov eax, edi
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 1
jmp 0x61018061
test byte [0x6110a820], 1
jne 0x61018875
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 [0x6110a820]
test al, 1
je 0x610184d3
cmp byte [ebp - 0x311], 0
mov eax, 0x6111a8fc
je 0x6101849e
mov eax, 0x6111a248
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], 0x6110a820
call method.strace.prntf_unsigned_int__char_const__char_const__..._
movzx edi, byte [ebp - 0x311]
mov ebx, dword [ebp - 0x2fc]
test ebx, ebx
jne 0x61018573
test byte [0x6110a820], 1
mov eax, edi
je 0x6101842f
mov esi, esi
lea edi, [edi]
mov dword [esp + 0x10], edi
mov eax, 0x6111a917
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], 0x6110a820
call method.strace.prntf_unsigned_int__char_const__char_const__..._
mov eax, edi
jmp 0x6101842f
mov eax, dword [esi]
mov dword [esp], 0x6110a820
mov dword [esp + 0x10], eax
mov eax, str.signal__d_blocked
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 0x6101840d
mov eax, 0x13
call sym.__Z9sig_cleari_4
jmp 0x610180d7
mov eax, dword [0x61107528]
mov dword [esp], eax
call sub.KERNEL32.dll_SetEvent
sub esp, 4
jmp 0x61018420
mov ebx, dword [esi]
cmp ebx, 3
sete dl
cmp ebx, 6
sete al
or dl, al
jne 0x6101873f
test byte [0x6110a820], 1
jne 0x61018815
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 0x610187e5
cmp byte [ebp - 0x309], 0
je 0x6101828c
jmp 0x61018095
mov ebx, dword [esi]
cmp ebx, 0x14
sete dl
cmp ebx, 0x17
sete al
or dl, al
jne 0x6101870f
cmp ebx, 0x13
je 0x6101870f
cmp ebx, 0x1c
je 0x6101870f
cmp ebx, 0x10
je 0x6101870f
cmp ebx, 0x12
sete dl
cmp ebx, 0x15
sete al
or dl, al
jne 0x6101862b
cmp ebx, 0x16
jne 0x6101858a
mov eax, dword [0x61107154]
test byte [eax + 4], 4
jne 0x61018412
mov eax, dword [ebp - 0x28]
mov ecx, sym._sig_handle_tty_stop
mov edx, dword [ebp - 0x300]
mov dword [ebp - 0x308], ecx
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 0x6101810c
mov eax, dword [ebp - 0x308]
mov dword [esp + 0x14], eax
mov eax, dword [esi]
mov dword [esp], 0x6110a820
mov dword [esp + 0x10], eax
mov eax, str.signal__d__about_to_call__p
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 0x61018119
movzx eax, byte [0x6110a820]
test al, 1
je 0x61018487
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], 0x6110a820
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x61018480
mov eax, 0x13
call sym.__Z9sig_cleari_4
mov ebx, dword [esi + 0x98]
test ebx, ebx
jne 0x6101862b
mov edx, dword [0x61105554]
mov dword [esi + 0x98], edx
jmp 0x6101862b
test byte [0x6110a820], 1
jne 0x61018845
mov eax, dword [ebp - 0x2fc]
test eax, eax
je 0x61018420
mov eax, dword [0x6110752c]
mov dword [esp], eax
call sub.KERNEL32.dll_SetEvent
sub esp, 4
jmp 0x61018412
mov eax, dword [0x61105580]
lea ebx, [ebp - 0x2f8]
mov edi, 0x10007
mov dword [esp + 4], ebx
mov dword [ebp - 0x2f8], edi
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 0x6101859e
mov dword [esp], ebx
call sub.KERNEL32.dll_ResumeThread
sub esp, 4
jmp 0x61018480
test byte [0x6110a820], 1
je 0x61018412
mov eax, dword [esi]
mov ebx, str.signal__d_ignored
mov ecx, str.int_sigpacket::process__
mov dword [esp + 0xc], ebx
mov edx, 0x800
mov dword [esp + 8], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 4], edx
mov dword [esp], 0x6110a820
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x61018412
mov dword [esp], ebx
call method._cygtls.find_tls_int_
mov dword [esi + 0x98], eax
test eax, eax
je 0x6101828c
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 [0x6110a820], 1
jne 0x610188c2
mov eax, dword [esi + 0x98]
mov eax, dword [eax + 0x1c]
jmp 0x6101872f
mov dword [esp + 0x10], ebx
mov ecx, str.int_sigpacket::process__
mov ebx, str.signal__d__about_to_call_do_exit
mov dword [esp + 0xc], ebx
mov edx, 0x800
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], 0x6110a820
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x610185ab
mov dword [esp + 0x10], ebx
mov eax, str.default_signal__d_ignored
mov esi, 0x800
mov dword [esp + 0xc], eax
mov eax, str.int_sigpacket::process__
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], 0x6110a820
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x6101871c
mov eax, dword [esi + 0xc6c]
mov edi, str.controlled_interrupt._stackptr__p__stack__p__stackptr__1___p
mov ebx, str.int_setup_handler_int__void__sigaction___cygtls_
mov ecx, 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 + 0xc], edi
mov dword [esp + 8], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 4], ecx
mov dword [esp], 0x6110a820
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x6101844e
mov dword [esp], 0x6110a820
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 0x61018807