Function at 0x54d9c0
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 0x54da90
mov byte [esi + 0x105c], bl
cmp dword [ebp + 8], ebx
je 0x54dabe
cmp dword [ebp + 0xc], ebx
je 0x54dabe
cmp dword [esi + 0x1078], ebx
jne 0x54da2c
push 3
push 0x17e
push str.ipc_channel_win.cc
lea ecx, [ebp - 0xb4]
mov ebx, 0x10
call fcn.0052bdc0
add eax, 8
push str.Check_failed:__output_queue_.empty__.
push eax
call fcn.00409e6d
add esp, 8
test bl, 0x10
je 0x54da3f
lea ecx, [ebp - 0xb4]
and ebx, 0xffffffef
call fcn.0052bfb0
mov eax, dword [esi + 0x1068]
mov edi, dword [esi + 0x1074]
test eax, eax
jne 0x54da53
xor edx, edx
jmp 0x54da55
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 0x54da80
mov dword [esi + 0x1074], 0
jmp 0x54da86
inc dword [esi + 0x1074]
test ecx, ecx
je 0x54da90
mov eax, dword [ecx]
push 1
call dword [eax]
cmp dword [esi + 0x1078], 0
je 0x54db9a
mov eax, dword [esi + 0x1060]
test eax, eax
je 0x54db15
cmp eax, 0xffffffff
je 0x54db15
mov edx, dword [esi + 0x1068]
mov edi, dword [esi + 0x1074]
test edx, edx
jne 0x54db20
jmp 0x54db22
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call fcn.0052c840
cmp eax, 2
jg 0x54db05
push 2
push 0x17a
push str.ipc_channel_win.cc
lea ecx, [ebp - 0xb4]
mov ebx, 8
call fcn.0052bdc0
push esi
add eax, ebx
push str.pipe_error:
push eax
call fcn.00409e6d
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 0x54db15
lea ecx, [ebp - 0xb4]
call fcn.0052bfb0
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 0x54db4c
lea ecx, [ebp - 0xb4]
and ebx, 0xffffffdf
call fcn.0052bfb0
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 0x54dc04
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
cmp edi, 0x3e5
jne 0x54dba5
mov byte [esi + 0x105c], 1
test bl, 0x40
je 0x54db9a
lea ecx, [ebp - 0xb4]
call fcn.0052bfb0
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret 8
call fcn.0052c840
cmp eax, 2
jg 0x54dbe6
push 2
push 0x19c
push str.ipc_channel_win.cc
lea ecx, [ebp - 0xb4]
or ebx, 0x80
call fcn.0052bdc0
push edi
add eax, 8
push str.pipe_error:
push eax
call fcn.00409e6d
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 0x54db15
lea ecx, [ebp - 0xb4]
call fcn.0052bfb0
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 8
test ebx, 0x100
je 0x54dc17
lea ecx, [ebp - 0xb4]
call fcn.0052bfb0
pop edi
mov byte [esi + 0x105c], 1
mov al, 1
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8