Function at 0x4fea40
Capabilities:
Connect pipe
Create pipe
Read file on windows
Write file on windows
Write pipe

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
push eax
mov eax, 0x8078
call fcn.0057e5f0
sub esp, eax
mov eax, dword [esp + eax]
mov dword [ebp - 0x8064], eax
or eax, 1
mov dword [ebp - 0x8054], eax
mov dword [esp + 8], eax
mov eax, dword [sym.imp.kernel32.dll_CreateNamedPipeA]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x200
mov dword [esp + 0x10], 0x200
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0x40000003
mov dword [esp], str..PiPe_tests_pipe.c
mov dword [ebp - 0x8058], eax
call eax
sub esp, 0x20
mov ebx, eax
mov eax, 0xf68
call fcn.004f6080
xor eax, eax
cmp ebx, 0xffffffff
mov dword [esp + 4], str.CreateNamedPipe_failed_n
setne al
mov dword [esp], eax
call fcn.004f6800
mov eax, dword [sym.imp.kernel32.dll_CreateFileA]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x40000000
mov dword [esp], str..PiPe_tests_pipe.c
mov dword [ebp - 0x805c], eax
call eax
sub esp, 0x1c
mov edi, eax
mov dword [ebp - 0x8040], eax
mov eax, 0xf6a
call fcn.004f6080
xor eax, eax
cmp edi, 0xffffffff
mov dword [esp + 4], str.CreateFileA_failed_n
setne al
lea edi, [ebp - 0x803c]
mov dword [esp], eax
mov esi, dword fs:[0x18]
call fcn.004f6800
mov eax, dword [sym.imp.kernel32.dll_CreateEventW]
mov dword [ebp - 0x8034], 0
mov dword [ebp - 0x8030], 0
mov dword [ebp - 0x802c], 0
mov dword [ebp - 0x8028], 0
mov dword [ebp - 0x8024], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], 0
mov dword [ebp - 0x8060], eax
call eax
mov dword [esi + 0x34], 0xdeadbeef
sub esp, 0x10
mov dword [ebp - 0x8024], eax
mov eax, 0xf6e
call fcn.004f6080
lea eax, [ebp - 0x8034]
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x800c]
mov dword [esp + 4], eax
mov eax, dword [sym.imp.kernel32.dll_ReadFile]
mov dword [esp + 8], 0x8000
mov dword [esp], ebx
mov dword [ebp - 0x8048], eax
call eax
sub esp, 0x14
test eax, eax
sete al
mov dword [esp + 4], str.ReadFile_should_fail_n
movzx eax, al
mov dword [esp], eax
call fcn.004f6800
mov eax, 0xf6f
call fcn.004f6080
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.got__ld_should_be_ERROR_NO_DATA_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [esi + 0x34], 0xe8
sete al
mov dword [esp], eax
call fcn.004f6800
cmp dword [esi + 0x34], 0x3e5
je 0x4ffec0
mov eax, 0xf74
call fcn.004f6080
lea eax, [ebp - 0x8038]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 5
mov dword [esp + 4], str.bits
mov eax, dword [ebp - 0x8040]
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_WriteFile]
mov dword [ebp - 0x804c], eax
call eax
sub esp, 0x14
mov dword [esp], eax
mov dword [esp + 4], str.WriteFile_should_succeed_n
call fcn.004f6800
mov eax, 0xf75
call fcn.004f6080
lea edx, [ebp - 0x8034]
mov dword [esp], ebx
mov dword [esp + 0x10], edx
lea edx, [ebp - 0x800c]
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0x8000
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x8048]
call edx
sub esp, 0x14
mov dword [esp], eax
mov dword [esp + 4], str.ReadFile_should_succeed_n
call fcn.004f6800
mov eax, 0xf76
call fcn.004f6080
mov dword [esp + 4], str.read_write_bytes_should_match_n
xor eax, eax
mov edx, dword [ebp - 0x8038]
cmp dword [ebp - 0x803c], edx
sete al
mov dword [esp], eax
call fcn.004f6800
mov eax, 0xf77
call fcn.004f6080
mov esi, dword [sym.imp.kernel32.dll_CloseHandle]
mov eax, dword [ebp - 0x8024]
mov dword [esp], eax
mov dword [ebp - 0x8050], esi
call esi
sub esp, 4
mov dword [esp], eax
mov dword [esp + 4], str.CloseHandle_for_the_event_failed_n
call fcn.004f6800
mov eax, 0xf78
call fcn.004f6080
mov ecx, dword [ebp - 0x8040]
mov dword [esp], ecx
call esi
sub esp, 4
mov dword [esp], eax
mov dword [esp + 4], str.CloseHandle_for_the_write_pipe_failed_n
call fcn.004f6800
mov eax, 0xf79
call fcn.004f6080
mov dword [esp], ebx
call esi
sub esp, 4
mov dword [esp + 4], str.CloseHandle_for_the_read_pipe_failed_n
mov dword [esp], eax
call fcn.004f6800
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x200
mov dword [esp + 0x10], 0x200
mov dword [esp + 0xc], 1
mov ecx, dword [ebp - 0x8054]
mov dword [esp + 4], 0x40000003
mov dword [esp + 8], ecx
mov dword [esp], str..PiPe_tests_pipe.c
mov ecx, dword [ebp - 0x8058]
call ecx
sub esp, 0x20
mov ebx, eax
mov eax, 0xf84
call fcn.004f6080
xor eax, eax
cmp ebx, 0xffffffff
mov dword [esp + 4], str.CreateNamedPipe_failed_n
setne al
mov dword [ebp - 0x8044], ebx
mov dword [esp], eax
call fcn.004f6800
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x40000000
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x80000000
mov dword [esp], str..PiPe_tests_pipe.c
mov edx, dword [ebp - 0x805c]
call edx
sub esp, 0x1c
mov ebx, eax
mov eax, 0xf86
call fcn.004f6080
xor eax, eax
cmp ebx, 0xffffffff
mov dword [esp + 4], str.CreateFileA_failed_n
setne al
mov dword [esp], eax
call fcn.004f6800
mov dword [ebp - 0x8034], 0
mov dword [ebp - 0x8030], 0
mov dword [ebp - 0x802c], 0
mov dword [ebp - 0x8028], 0
mov dword [ebp - 0x8024], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], 0
mov esi, dword [ebp - 0x8060]
call esi
mov dword [ebp - 0x8020], 0
sub esp, 0x10
mov dword [ebp - 0x8024], eax
mov dword [ebp - 0x801c], 0
mov dword [ebp - 0x8018], 0
mov dword [ebp - 0x8014], 0
mov dword [ebp - 0x8010], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], 0
call esi
mov esi, dword fs:[0x18]
mov dword [esi + 0x34], 0xdeadbeef
sub esp, 0x10
mov dword [ebp - 0x8010], eax
mov eax, 0xf8e
call fcn.004f6080
lea edx, [ebp - 0x8034]
mov dword [esp + 8], 0x201
mov dword [esp + 0x10], edx
lea edx, [ebp - 0x8038]
mov dword [esp + 0xc], edx
lea edx, [ebp - 0x800c]
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x8044]
mov dword [esp], ecx
mov eax, dword [ebp - 0x804c]
call eax
sub esp, 0x14
mov dword [esp], eax
mov dword [esp + 4], str.WriteFile_should_succeed_n
call fcn.004f6800
mov eax, 0xf92
call fcn.004f6080
mov dword [esp + 4], str.WriteFile_should_fail_to_write_the_whole_buffer_n
xor eax, eax
cmp dword [ebp - 0x8038], 0x7fff
setbe al
mov dword [esp], eax
call fcn.004f6800
mov eax, 0xf93
call fcn.004f6080
mov dword [esp + 4], str.WriteFile_doesnt_do_partial_writes_here_n
xor eax, eax
mov edx, dword [ebp - 0x8038]
test edx, edx
sete al
mov dword [esp], eax
call fcn.004f6800
cmp dword [esi + 0x34], 0x3e5
je 0x4ffef0
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
mov eax, 0xf99
lea esi, [ebp - 0x8020]
mov dword [ebp - 0x8040], edx
call fcn.004f6080
lea eax, [ebp - 0x800c]
mov dword [esp], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0x8000
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8048]
call eax
sub esp, 0x14
test eax, eax
sete al
mov dword [esp + 4], str.ReadFile_should_fail_n
movzx eax, al
mov dword [esp], eax
call fcn.004f6800
mov eax, 0xf9a
call fcn.004f6080
mov edx, dword [ebp - 0x8040]
mov eax, dword [edx + 0x34]
mov dword [esp + 4], str.got__ld_should_be_ERROR_IO_PENDING_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edx + 0x34], 0x3e5
sete al
mov dword [esp], eax
call fcn.004f6800
mov eax, 0xf9b
call fcn.004f6080
lea eax, [ebp - 0x8034]
mov dword [esp + 8], 5
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x8038]
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.bits
mov eax, dword [ebp - 0x8044]
mov dword [esp], eax
mov eax, dword [ebp - 0x804c]
call eax
sub esp, 0x14
mov dword [esp], eax
mov dword [esp + 4], str.WriteFile_should_succeed_n
call fcn.004f6800
mov eax, 0xf9c
call fcn.004f6080
mov eax, dword [ebp - 0x8038]
mov dword [esp + 4], 0x5ec900
cmp eax, 5
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004f6800
mov eax, 0xf9d
call fcn.004f6080
mov eax, dword [sym.imp.kernel32.dll_GetOverlappedResult]
mov dword [esp + 8], edi
mov dword [esp + 0xc], 0
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [ebp - 0x8040], eax
call eax
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], str.GetOverlappedResult_should_succeed_n
call fcn.004f6800
mov eax, 0xf9e
call fcn.004f6080
mov eax, dword [ebp - 0x803c]
mov dword [esp + 4], 0x5ec900
cmp eax, 5
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004f6800
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
mov eax, dword [ebp - 0x8040]
call eax
sub esp, 0x10
test eax, eax
je 0x4ffe90
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
mov eax, 0xfa4
mov dword [ebp - 0x8068], edx
call fcn.004f6080
lea eax, [ebp - 0x800c]
mov dword [esp], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0x8000
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8048]
call eax
sub esp, 0x14
test eax, eax
sete al
mov dword [esp + 4], str.ReadFile_should_fail_n
movzx eax, al
mov dword [esp], eax
call fcn.004f6800
mov eax, 0xfa5
call fcn.004f6080
mov edx, dword [ebp - 0x8068]
mov eax, dword [edx + 0x34]
mov dword [esp + 4], str.got__ld_should_be_ERROR_IO_PENDING_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edx + 0x34], 0x3e5
sete al
mov dword [esp], eax
call fcn.004f6800
mov eax, 0xfa6
call fcn.004f6080
lea eax, [ebp - 0x8034]
mov dword [esp + 8], 0x201
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x8038]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x800c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8044]
mov dword [esp], eax
mov eax, dword [ebp - 0x804c]
call eax
sub esp, 0x14
mov dword [esp], eax
mov dword [esp + 4], str.WriteFile_should_succeed_n
call fcn.004f6800
mov eax, 0xfa7
call fcn.004f6080
mov eax, dword [ebp - 0x8038]
mov dword [esp + 0xc], 0x201
mov dword [esp + 4], str.got__ld__write_should_be__d_n
cmp eax, 0x201
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004f6800
mov eax, 0xfa8
call fcn.004f6080
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
mov eax, dword [ebp - 0x8040]
call eax
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], str.GetOverlappedResult_should_succeed_n
call fcn.004f6800
mov eax, 0xfa9
call fcn.004f6080
mov eax, dword [ebp - 0x803c]
mov dword [esp + 0xc], 0x201
mov dword [esp + 4], str.got__ld__read_should_be__d_n
cmp eax, 0x201
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004f6800
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
mov eax, dword [ebp - 0x8040]
call eax
sub esp, 0x10
test eax, eax
je 0x4ffe78
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
mov eax, 0xfaf
mov dword [ebp - 0x8068], edx
call fcn.004f6080
lea eax, [ebp - 0x800c]
mov dword [esp], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8048]
call eax
sub esp, 0x14
test eax, eax
sete al
mov dword [esp + 4], str.ReadFile_should_fail_n
movzx eax, al
mov dword [esp], eax
call fcn.004f6800
mov eax, 0xfb0
call fcn.004f6080
mov edx, dword [ebp - 0x8068]
mov eax, dword [edx + 0x34]
mov dword [esp + 4], str.got__ld_should_be_ERROR_IO_PENDING_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edx + 0x34], 0x3e5
sete al
mov dword [esp], eax
call fcn.004f6800
mov eax, 0xfb1
call fcn.004f6080
lea eax, [ebp - 0x8034]
mov dword [esp + 8], 0x201
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x8038]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x800c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8044]
mov dword [esp], eax
mov eax, dword [ebp - 0x804c]
call eax
sub esp, 0x14
mov dword [esp], eax
mov dword [esp + 4], str.WriteFile_should_succeed_n
call fcn.004f6800
mov eax, 0xfb2
call fcn.004f6080
mov eax, dword [ebp - 0x8038]
mov dword [esp + 0xc], 0x201
mov dword [esp + 4], str.got__ld__write_should_be__d_n
cmp eax, 0x201
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004f6800
mov eax, 0xfb3
call fcn.004f6080
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
mov eax, dword [ebp - 0x8040]
call eax
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], str.GetOverlappedResult_should_succeed_n
call fcn.004f6800
mov eax, 0xfb4
call fcn.004f6080
mov eax, dword [ebp - 0x803c]
mov dword [esp + 0xc], 1
mov dword [esp + 4], str.got__ld__read_should_be__d_n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004f6800
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
mov eax, dword [ebp - 0x8040]
call eax
sub esp, 0x10
test eax, eax
je 0x4ffe60
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0xdeadbeef
mov eax, 0xfb9
call fcn.004f6080
lea eax, [ebp - 0x800c]
mov dword [esp], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0x8000
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8048]
call eax
sub esp, 0x14
mov dword [esp], eax
mov dword [esp + 4], str.ReadFile_should_succeed_n
call fcn.004f6800
mov eax, 0xfba
call fcn.004f6080
mov dword [esp + 0xc], 0x200
mov eax, dword [ebp - 0x8038]
mov dword [esp + 4], str.got__ld__write_should_be__d_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebp - 0x803c], 0x200
sete al
mov dword [esp], eax
call fcn.004f6800
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
mov eax, dword [ebp - 0x8040]
call eax
sub esp, 0x10
test eax, eax
je 0x4ffe48
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
mov eax, 0xfc0
mov dword [ebp - 0x8068], edx
call fcn.004f6080
lea eax, [ebp - 0x800c]
mov dword [esp], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8048]
call eax
sub esp, 0x14
test eax, eax
sete al
mov dword [esp + 4], str.ReadFile_should_fail_n
movzx eax, al
mov dword [esp], eax
call fcn.004f6800
mov eax, 0xfc1
call fcn.004f6080
mov edx, dword [ebp - 0x8068]
mov eax, dword [edx + 0x34]
mov dword [esp + 4], str.got__ld_should_be_ERROR_IO_PENDING_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edx + 0x34], 0x3e5
sete al
mov dword [esp], eax
call fcn.004f6800
mov eax, 0xfc2
call fcn.004f6080
lea eax, [ebp - 0x8034]
mov dword [esp + 8], 0x202
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x8038]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x800c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8044]
mov dword [esp], eax
mov eax, dword [ebp - 0x804c]
call eax
sub esp, 0x14
mov dword [esp + 4], str.WriteFile_should_succeed_n
mov dword [esp], eax
call fcn.004f6800
cmp dword [ebp - 0x8064], 4
je 0x4ffbf0
mov eax, 0xfd0
call fcn.004f6080
mov eax, dword [ebp - 0x8038]
mov dword [esp + 4], 0x5ec900
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004f6800
mov eax, 0xfd1
call fcn.004f6080
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
mov eax, dword [ebp - 0x8040]
call eax
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], str.GetOverlappedResult_should_fail_n
call fcn.004f6800
mov eax, 0xfd2
call fcn.004f6080
mov eax, dword [ebp - 0x803c]
mov dword [esp + 0xc], 1
mov dword [esp + 4], str.got__ld__read_should_be__d_n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004f6800
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
mov eax, dword [ebp - 0x8040]
call eax
sub esp, 0x10
test eax, eax
je 0x4ffea8
mov esi, dword fs:[0x18]
mov dword [esi + 0x34], 0xdeadbeef
mov eax, 0xfd9
call fcn.004f6080
lea eax, [ebp - 0x8034]
mov dword [esp + 8], 0x200
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x8038]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x800c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8044]
mov dword [esp], eax
mov eax, dword [ebp - 0x804c]
call eax
sub esp, 0x14
mov dword [esp], eax
mov dword [esp + 4], str.WriteFile_should_succeed_n
call fcn.004f6800
mov eax, 0xfda
call fcn.004f6080
mov dword [esp + 4], str.WriteFile_should_write_the_whole_buffer_n
xor eax, eax
cmp dword [ebp - 0x8038], 0x200
sete al
mov dword [esp], eax
call fcn.004f6800
cmp dword [esi + 0x34], 0x3e5
je 0x4fff08
mov eax, 0xfde
call fcn.004f6080
mov eax, dword [ebp - 0x8024]
mov dword [esp], eax
mov edi, dword [ebp - 0x8050]
call edi
sub esp, 4
mov dword [esp], eax
mov dword [esp + 4], str.CloseHandle_for_the_event_failed_n
call fcn.004f6800
mov eax, 0xfdf
call fcn.004f6080
mov eax, dword [ebp - 0x8010]
mov dword [esp], eax
call edi
sub esp, 4
mov dword [esp], eax
mov dword [esp + 4], str.CloseHandle_for_the_event_failed_n
call fcn.004f6800
mov eax, 0xfe0
call fcn.004f6080
mov eax, dword [ebp - 0x8044]
mov dword [esp], eax
call edi
sub esp, 4
mov dword [esp], eax
mov dword [esp + 4], str.CloseHandle_for_the_write_pipe_failed_n
call fcn.004f6800
mov eax, 0xfe1
call fcn.004f6080
mov dword [esp], ebx
call edi
sub esp, 4
mov dword [esp], eax
mov dword [esp + 4], str.CloseHandle_for_the_read_pipe_failed_n
call fcn.004f6800
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x200
mov dword [esp + 0x10], 0x200
mov dword [esp + 0xc], 1
mov eax, dword [ebp - 0x8054]
mov dword [esp + 4], 0x40000003
mov dword [esp + 8], eax
mov dword [esp], str..PiPe_tests_pipe.c
mov eax, dword [ebp - 0x8058]
call eax
sub esp, 0x20
mov ebx, eax
mov eax, 0xfec
call fcn.004f6080
xor eax, eax
cmp ebx, 0xffffffff
mov dword [esp + 4], str.CreateNamedPipe_failed_n
setne al
mov dword [esp], eax
mov esi, dword fs:[0x18]
call fcn.004f6800
mov dword [ebp - 0x8034], 0
mov dword [ebp - 0x8030], 0
mov dword [ebp - 0x802c], 0
mov dword [ebp - 0x8028], 0
mov dword [ebp - 0x8024], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], 0
mov eax, dword [ebp - 0x8060]
call eax
mov dword [esi + 0x34], 0xdeadbeef
sub esp, 0x10
mov dword [ebp - 0x8024], eax
mov eax, 0xff0
call fcn.004f6080
lea eax, [ebp - 0x8034]
mov dword [esp], ebx
mov edi, dword [sym.imp.kernel32.dll_ConnectNamedPipe]
mov dword [esp + 4], eax
call edi
sub esp, 8
test eax, eax
sete al
mov dword [esp + 4], str.ConnectNamedPipe_should_fail_n
movzx eax, al
mov dword [esp], eax
call fcn.004f6800
mov eax, 0xff1
call fcn.004f6080
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.got__ld_should_be_ERROR_PIPE_LISTENING_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [esi + 0x34], 0x218
sete al
mov dword [esp], eax
call fcn.004f6800
cmp dword [esi + 0x34], 0x3e5
je 0x4fff38
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc0000000
mov dword [esp], str..PiPe_tests_pipe.c
mov eax, dword [ebp - 0x805c]
call eax
sub esp, 0x1c
mov esi, eax
mov eax, 0xff7
call fcn.004f6080
xor eax, eax
cmp esi, 0xffffffff
mov dword [esp + 4], str.CreateFileA_failed_n
setne al
mov dword [esp], eax
call fcn.004f6800
mov eax, 0xff8
call fcn.004f6080
mov dword [esp], esi
mov eax, dword [ebp - 0x8050]
call eax
sub esp, 4
mov dword [esp], eax
mov dword [esp + 4], 0x5eca00
mov esi, dword fs:[0x18]
call fcn.004f6800
mov dword [esi + 0x34], 0xdeadbeef
mov eax, 0xffa
call fcn.004f6080
lea eax, [ebp - 0x8034]
mov dword [esp], ebx
mov dword [esp + 4], eax
call edi
sub esp, 8
test eax, eax
sete al
mov dword [esp + 4], str.ConnectNamedPipe_should_fail_n
movzx eax, al
mov dword [esp], eax
call fcn.004f6800
mov eax, 0xffb
call fcn.004f6080
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.got__ld_should_be_ERROR_NO_DATA_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [esi + 0x34], 0xe8
sete al
mov dword [esp], eax
call fcn.004f6800
cmp dword [esi + 0x34], 0x3e5
je 0x4fff20
mov eax, 0x1000
call fcn.004f6080
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_DisconnectNamedPipe]
sub esp, 4
cmp eax, 1
sete al
mov dword [esp + 4], str.DisconnectNamedPipe_should_succeed_n
movzx eax, al
mov dword [esp], eax
mov esi, dword fs:[0x18]
call fcn.004f6800
mov dword [esi + 0x34], 0xdeadbeef
mov eax, 0x1002
call fcn.004f6080
lea eax, [ebp - 0x8034]
mov dword [esp], ebx
mov dword [esp + 4], eax
call edi
sub esp, 8
test eax, eax
sete al
mov dword [esp + 4], str.ConnectNamedPipe_should_fail_n
movzx eax, al
mov dword [esp], eax
call fcn.004f6800
mov eax, 0x1003
call fcn.004f6080
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.got__ld_should_be_ERROR_PIPE_LISTENING_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [esi + 0x34], 0x218
sete al
mov dword [esp], eax
call fcn.004f6800
cmp dword [esi + 0x34], 0x3e5
je 0x4ffed8
mov eax, 0x1006
call fcn.004f6080
mov eax, dword [ebp - 0x8024]
mov dword [esp], eax
mov edi, dword [ebp - 0x8050]
call edi
sub esp, 4
mov dword [esp], eax
mov dword [esp + 4], str.CloseHandle_for_the_event_failed_n
call fcn.004f6800
mov eax, 0x1007
call fcn.004f6080
mov dword [esp], ebx
call edi
sub esp, 4
mov dword [esp + 4], str.CloseHandle_for_the_write_pipe_failed_n
mov dword [esp], eax
call fcn.004f6800
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [0x8f0770]
mov dword [ebp - 0x8048], ecx
call fcn.0057d110
mov ecx, dword [eax + 0x10]
mov dword [eax + 0x14], 1
lea edx, [ecx + ecx]
mov ecx, dword [ebp - 0x8048]
test ecx, ecx
setne cl
movzx ecx, cl
or edx, ecx
mov dword [eax + 0x10], edx
jmp 0x4ffc64
call fcn.0057d110
mov dword [eax], 0x5ead94
mov dword [eax + 4], 0xfc6
mov eax, dword [ebp - 0x8038]
mov dword [esp + 4], 0x5ec900
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004f6800
call fcn.0057d110
shr dword [eax + 0x10], 1
call fcn.0057d110
mov edx, dword [eax + 0x14]
mov dword [eax + 0x14], 0
test edx, edx
jne 0x4ffc28
mov ecx, dword [0x8f0770]
mov dword [ebp - 0x8048], ecx
call fcn.0057d110
mov ecx, dword [eax + 0x10]
mov dword [eax + 0x14], 1
lea edx, [ecx + ecx]
mov ecx, dword [ebp - 0x8048]
test ecx, ecx
setne cl
movzx ecx, cl
or edx, ecx
mov dword [eax + 0x10], edx
jmp 0x4ffd00
call fcn.0057d110
mov dword [eax], 0x5ead94
mov dword [eax + 4], 0xfc8
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
mov eax, dword [ebp - 0x8040]
call eax
sub esp, 0x10
test eax, eax
sete al
mov dword [esp + 4], str.GetOverlappedResult_should_fail_n
movzx eax, al
mov dword [esp], eax
call fcn.004f6800
call fcn.0057d110
shr dword [eax + 0x10], 1
call fcn.0057d110
mov edx, dword [eax + 0x14]
mov dword [eax + 0x14], 0
test edx, edx
jne 0x4ffcb0
mov ecx, dword [0x8f0770]
mov dword [ebp - 0x8048], ecx
call fcn.0057d110
mov ecx, dword [eax + 0x10]
mov dword [eax + 0x14], 1
lea edx, [ecx + ecx]
mov ecx, dword [ebp - 0x8048]
mov dword [ebp - 0x8048], ebx
test ecx, ecx
setne cl
movzx ecx, cl
or edx, ecx
mov dword [eax + 0x10], edx
mov eax, dword fs:[0x18]
mov ebx, eax
jmp 0x4ffd95
call fcn.0057d110
mov dword [eax], 0x5ead94
mov dword [eax + 4], 0xfca
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], str.got__ld_should_be_ERROR_IO_PENDING_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebx + 0x34], 0x3e4
sete al
mov dword [esp], eax
call fcn.004f6800
call fcn.0057d110
shr dword [eax + 0x10], 1
call fcn.0057d110
mov edx, dword [eax + 0x14]
mov dword [eax + 0x14], 0
test edx, edx
jne 0x4ffd58
mov ecx, dword [0x8f0770]
mov ebx, dword [ebp - 0x8048]
mov dword [ebp - 0x8048], ecx
call fcn.0057d110
mov ecx, dword [eax + 0x10]
mov dword [eax + 0x14], 1
lea edx, [ecx + ecx]
mov ecx, dword [ebp - 0x8048]
test ecx, ecx
setne cl
movzx ecx, cl
or edx, ecx
mov dword [eax + 0x10], edx
jmp 0x4ffe2c
call fcn.0057d110
mov dword [eax], 0x5ead94
mov dword [eax + 4], 0xfcc
mov eax, dword [ebp - 0x803c]
mov dword [esp + 0xc], 1
test eax, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 4], str.got__ld__read_should_be__d_n
movzx eax, al
mov dword [esp], eax
call fcn.004f6800
call fcn.0057d110
shr dword [eax + 0x10], 1
call fcn.0057d110
mov edx, dword [eax + 0x14]
mov dword [eax + 0x14], 0
test edx, edx
jne 0x4ffde8
jmp 0x4ff730
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_CancelIo]
sub esp, 4
jmp 0x4ff5a4
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_CancelIo]
sub esp, 4
jmp 0x4ff4f4
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_CancelIo]
sub esp, 4
jmp 0x4ff345
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_CancelIo]
sub esp, 4
jmp 0x4ff194
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_CancelIo]
sub esp, 4
jmp 0x4ff756
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_CancelIo]
sub esp, 4
jmp 0x4fec4f
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_CancelIo]
sub esp, 4
jmp 0x4ffb97
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_CancelIo]
sub esp, 4
jmp 0x4fefee
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_CancelIo]
sub esp, 4
jmp 0x4ff7ee
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_CancelIo]
sub esp, 4
jmp 0x4ffaec
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_CancelIo]
sub esp, 4
jmp 0x4ff9e2