Function at 0x403a74
Capabilities:
Create thread
Terminate process
Terminate thread

Disassembly:
push 0x12c
mov eax, 0x406bad
call fcn.0040652b
mov ebx, ecx
mov dword [ebp - 0x120], ebx
push dword [ebx + 4]
lea eax, [ebp - 0x114]
push str..pipe_virtpipe__d
push eax
call fcn.00402a37
push 0x6c
call fcn.0040575b
add esp, 0x10
mov dword [ebp - 0x128], eax
push dword [ebx + 0x18]
push ecx
push ecx
mov ecx, eax
call fcn.00402a6d
mov dword [ebx + 0x20], eax
jmp 0x403c45
cmp byte [ebp - 0x114], 0
mov esi, dword [ebx + 0x20]
jne 0x403ad3
xor eax, eax
jmp 0x403ae1
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strlen]
pop ecx
push eax
lea eax, [ebp - 0x114]
push eax
lea ecx, [esi + 8]
call fcn.0040270b
jmp 0x403c3b
push dword [ebx + 0x18]
mov ecx, dword [ebx + 0x20]
call fcn.00402b92
mov edi, eax
test edi, edi
je 0x403c4f
push 4
lea eax, [ebp - 0x118]
mov ecx, edi
push eax
call fcn.00402ceb
test eax, eax
jne 0x403b3b
push str.remote_opengl::linux_pipe_thread
push str._S:_error_reading_clientFlags_n
call fcn.0040105e
pop ecx
mov ecx, edi
call fcn.00403a2a
jmp 0x403c3b
push dword [ebp - 0x118]
push str.remote_opengl::linux_pipe_thread
push str._S:_accept_client_linux_pid_d_n
call fcn.0040105e
add esp, 0xc
lea eax, [ebx + 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x118]
lea ecx, [ebp - 0x124]
push ecx
lea ecx, [ebp - 0x128]
mov dword [ebp - 0x124], eax
push ecx
lea ecx, [ebx + 0x10c]
call fcn.00404d8d
mov esi, dword [ebp - 0x128]
lea ecx, [ebx + 0x10c]
mov eax, dword [ebp - 0x118]
cmp esi, dword [ecx]
je 0x403ba0
cmp eax, dword [esi + 0x10]
jge 0x403ba2
mov esi, dword [ecx]
cmp esi, dword [ecx]
jne 0x403ba9
push eax
jmp 0x403bf8
and dword [ebp - 0x11c], 0
lea eax, [ebp - 0x11c]
push eax
mov eax, dword [esi + 0x14]
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
je 0x403bd3
cmp dword [ebp - 0x11c], 0x103
je 0x403bff
mov eax, dword [esi + 0x14]
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
lea eax, [ebp - 0x138]
push eax
lea ecx, [ebx + 0x10c]
call fcn.004048d7
push dword [ebp - 0x118]
mov ecx, ebx
call fcn.00404285
lea eax, [ebx + 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x10
call fcn.0040575b
pop ecx
mov ecx, dword [ebp - 0x118]
mov esi, eax
push 0
push 0
push esi
push 0x403f12
push 0
push 0
mov dword [esi + 4], ecx
mov dword [esi], edi
mov dword [esi + 8], ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 0xc], eax
cmp byte [ebx + 0x14], 0
je 0x403af6
cmp byte [ebx + 0x14], 0
je 0x403ac3
push dword [ebx + 0x12c]
call dword [sym.imp.KERNEL32.dll_SetEvent]
xor eax, eax
xor edi, edi
xor esi, esi
mov dword [ebp - 0x134], edi
mov dword [ebp - 0x130], esi
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x12c], eax
and dword [ebp - 4], eax
lea eax, [ebx + 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebx + 0x10c]
mov eax, dword [ecx]
mov dword [ebp - 0x128], ecx
mov eax, dword [eax]
mov dword [ebp - 0x11c], eax
cmp eax, dword [ecx]
je 0x403d61
mov ebx, dword [ebp - 0x118]
mov eax, dword [eax + 0x14]
add eax, 4
mov dword [ebp - 0x118], eax
cmp eax, esi
jae 0x403cfd
cmp edi, eax
ja 0x403cfd
sub eax, edi
sar eax, 2
mov dword [ebp - 0x118], eax
cmp esi, ebx
jne 0x403cf4
push ecx
lea ecx, [ebp - 0x134]
call fcn.0040265a
mov ebx, dword [ebp - 0x12c]
mov esi, dword [ebp - 0x130]
mov edi, dword [ebp - 0x134]
mov eax, dword [ebp - 0x118]
test esi, esi
je 0x403d2d
mov eax, dword [edi + eax*4]
jmp 0x403d2b
cmp esi, ebx
jne 0x403d25
push ecx
lea ecx, [ebp - 0x134]
call fcn.0040265a
mov ebx, dword [ebp - 0x12c]
mov esi, dword [ebp - 0x130]
mov edi, dword [ebp - 0x134]
mov eax, dword [ebp - 0x118]
test esi, esi
je 0x403d2d
mov eax, dword [eax]
mov dword [esi], eax
add esi, 4
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x130], esi
call fcn.00404c8e
mov ecx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x11c]
cmp eax, dword [ecx]
jne 0x403cad
mov dword [ebp - 0x118], ebx
mov ebx, dword [ebp - 0x120]
lea eax, [ebx + 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub esi, edi
cmp esi, 4
jb 0x403d84
push 0xffffffffffffffff
push 1
sar esi, 2
push edi
push esi
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
lea eax, [ebx + 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea esi, [ebx + 0x10c]
mov eax, dword [esi]
mov eax, dword [eax]
mov dword [ebp - 0x124], eax
cmp eax, dword [esi]
je 0x403e79
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x120], eax
lea edi, [eax + 8]
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [ebp - 0x11c], eax
cmp eax, dword [edi]
je 0x403dff
mov esi, dword [eax + 0x10]
push 0
push dword [esi + 0xc]
call dword [sym.imp.KERNEL32.dll_TerminateThread]
push dword [esi + 0xc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x10
push esi
call fcn.00405793
pop ecx
pop ecx
lea ecx, [ebp - 0x11c]
call fcn.00404c8e
mov eax, dword [ebp - 0x11c]
cmp eax, dword [edi]
jne 0x403dc3
lea esi, [ebx + 0x10c]
mov byte [ebp - 4], 1
mov ecx, edi
mov eax, dword [edi]
push dword [eax + 4]
call fcn.00404dbd
mov eax, dword [edi]
mov dword [eax + 4], eax
mov eax, dword [edi]
mov dword [eax], eax
mov eax, dword [edi]
mov dword [eax + 8], eax
and dword [edi + 4], 0
mov edi, dword [ebp - 0x120]
mov eax, dword [edi + 4]
mov dword [ebp - 0x120], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov ecx, dword [ebp - 0x120]
cmp ecx, eax
je 0x403e52
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
mov ecx, edi
call fcn.00403ed6
lea ecx, [ebp - 0x124]
call fcn.00404c8e
mov eax, dword [ebp - 0x124]
cmp eax, dword [esi]
jne 0x403da9
mov edi, dword [ebp - 0x134]
mov byte [ebp - 4], 2
mov ecx, esi
mov eax, dword [esi]
push dword [eax + 4]
call fcn.00404d52
mov eax, dword [esi]
mov dword [eax + 4], eax
mov eax, dword [esi]
mov dword [eax], eax
mov eax, dword [esi]
mov dword [eax + 8], eax
lea eax, [ebx + 0x114]
and dword [esi + 4], 0
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x403eb5
push ecx
call fcn.00403a2a
test edi, edi
je 0x403ece
mov edx, dword [ebp - 0x118]
mov ecx, edi
sub edx, edi
push 4
sar edx, 2
call fcn.004010ed
pop ecx
xor eax, eax
call fcn.004064e6
ret