Function at 0x55cde0
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 0x55ceb0
mov byte [esi + 0x105c], bl
cmp dword [ebp + 8], ebx
je 0x55cede
cmp dword [ebp + 0xc], ebx
je 0x55cede
cmp dword [esi + 0x1078], ebx
jne 0x55ce4c
push 3
push 0x17e
push str.ipc_channel_win.cc
lea ecx, [ebp - 0xb4]
mov ebx, 0x10
call fcn.0053b1b0
add eax, 8
push str.Check_failed:__output_queue_.empty__.
push eax
call fcn.00409f76
add esp, 8
test bl, 0x10
je 0x55ce5f
lea ecx, [ebp - 0xb4]
and ebx, 0xffffffef
call fcn.0053b3a0
mov eax, dword [esi + 0x1068]
mov edi, dword [esi + 0x1074]
test eax, eax
jne 0x55ce73
xor edx, edx
jmp 0x55ce75
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 0x55cea0
mov dword [esi + 0x1074], 0
jmp 0x55cea6
inc dword [esi + 0x1074]
test ecx, ecx
je 0x55ceb0
mov eax, dword [ecx]
push 1
call dword [eax]
cmp dword [esi + 0x1078], 0
je 0x55cfba
mov eax, dword [esi + 0x1060]
test eax, eax
je 0x55cf35
cmp eax, 0xffffffff
je 0x55cf35
mov edx, dword [esi + 0x1068]
mov edi, dword [esi + 0x1074]
test edx, edx
jne 0x55cf40
jmp 0x55cf42
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call fcn.0053bc30
cmp eax, 2
jg 0x55cf25
push 2
push 0x17a
push str.ipc_channel_win.cc
lea ecx, [ebp - 0xb4]
mov ebx, 8
call fcn.0053b1b0
push esi
add eax, ebx
push str.pipe_error:
push eax
call fcn.00409f76
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 0x55cf35
lea ecx, [ebp - 0xb4]
call fcn.0053b3a0
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 0x55cf6c
lea ecx, [ebp - 0xb4]
and ebx, 0xffffffdf
call fcn.0053b3a0
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 0x55d024
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
cmp edi, 0x3e5
jne 0x55cfc5
mov byte [esi + 0x105c], 1
test bl, 0x40
je 0x55cfba
lea ecx, [ebp - 0xb4]
call fcn.0053b3a0
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret 8
call fcn.0053bc30
cmp eax, 2
jg 0x55d006
push 2
push 0x19c
push str.ipc_channel_win.cc
lea ecx, [ebp - 0xb4]
or ebx, 0x80
call fcn.0053b1b0
push edi
add eax, 8
push str.pipe_error:
push eax
call fcn.00409f76
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 0x55cf35
lea ecx, [ebp - 0xb4]
call fcn.0053b3a0
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 8
test ebx, 0x100
je 0x55d037
lea ecx, [ebp - 0xb4]
call fcn.0053b3a0
pop edi
mov byte [esi + 0x105c], 1
mov al, 1
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8