Function at 0x4718d0
Capabilities:
Check if file exists
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb4
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov dword [ebp - 4], ebx
cmp byte [esi + 0x105c], bl
je 0x4719a0
mov byte [esi + 0x105c], bl
cmp dword [ebp + 8], ebx
je 0x4719ce
cmp dword [ebp + 0xc], ebx
je 0x4719ce
cmp dword [esi + 0x1078], ebx
jne 0x47193c
push 3
push 0x17e
push str.ipc_channel_win.cc
lea ecx, [ebp - 0xb4]
mov ebx, 0x10
call fcn.0044a9b0
add eax, 8
push str.Check_failed:__output_queue_.empty__.
push eax
call fcn.004022c0
add esp, 8
test bl, 0x10
je 0x47194f
lea ecx, [ebp - 0xb4]
and ebx, 0xffffffef
call fcn.0044aba0
mov eax, dword [esi + 0x1068]
mov edi, dword [esi + 0x1074]
test eax, eax
jne 0x471963
xor edx, edx
jmp 0x471965
mov edx, dword [eax]
mov eax, dword [edx + 8]
mov ecx, edi
dec eax
shr ecx, 2
and ecx, eax
and edi, 3
mov eax, dword [edx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + edi*4]
dec dword [esi + 0x1078]
jne 0x471990
mov dword [esi + 0x1074], 0
jmp 0x471996
inc dword [esi + 0x1074]
test ecx, ecx
je 0x4719a0
mov eax, dword [ecx]
push 1
call dword [eax]
cmp dword [esi + 0x1078], 0
je 0x471aaa
mov eax, dword [esi + 0x1060]
test eax, eax
je 0x471a25
cmp eax, 0xffffffff
je 0x471a25
mov edx, dword [esi + 0x1068]
mov edi, dword [esi + 0x1074]
test edx, edx
jne 0x471a30
jmp 0x471a32
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call fcn.0044b430
cmp eax, 2
jg 0x471a15
push 2
push 0x17a
push str.ipc_channel_win.cc
lea ecx, [ebp - 0xb4]
mov ebx, 8
call fcn.0044a9b0
push esi
add eax, ebx
push str.pipe_error:
push eax
call fcn.004022c0
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP120.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int_]
test bl, 8
je 0x471a25
lea ecx, [ebp - 0xb4]
call fcn.0044aba0
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [edx]
mov eax, dword [edx + 8]
mov ecx, edi
dec eax
shr ecx, 2
and ecx, eax
and edi, 3
mov eax, dword [edx + 4]
mov eax, dword [eax + ecx*4]
mov edi, dword [eax + edi*4]
test bl, 0x20
je 0x471a5c
lea ecx, [ebp - 0xb4]
and ebx, 0xffffffdf
call fcn.0044aba0
mov edx, dword [edi + 4]
lea eax, [esi + 0x1044]
mov ecx, dword [edi + 8]
push eax
push 0
add ecx, dword [edx]
push ecx
push edx
push dword [esi + 0x1060]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x471b14
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
cmp edi, 0x3e5
jne 0x471ab5
mov byte [esi + 0x105c], 1
test bl, 0x40
je 0x471aaa
lea ecx, [ebp - 0xb4]
call fcn.0044aba0
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret 8
call fcn.0044b430
cmp eax, 2
jg 0x471af6
push 2
push 0x19c
push str.ipc_channel_win.cc
lea ecx, [ebp - 0xb4]
or ebx, 0x80
call fcn.0044a9b0
push edi
add eax, 8
push str.pipe_error:
push eax
call fcn.004022c0
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP120.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int_]
test bl, bl
jns 0x471a25
lea ecx, [ebp - 0xb4]
call fcn.0044aba0
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 8
test ebx, 0x100
je 0x471b27
lea ecx, [ebp - 0xb4]
call fcn.0044aba0
pop edi
mov byte [esi + 0x105c], 1
mov al, 1
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8