Function at 0x4056d0
Capabilities:
Check for foreground window switch
Read file on windows
Write file on windows

Disassembly:
push 0xffffffffffffffff
push 0x4f2646
mov eax, dword fs:[0]
push eax
mov eax, 0x4004c
call fcn.004bbbb0
mov eax, dword [0x53de10]
xor eax, esp
mov dword [esp + 0x40048], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x53de10]
xor eax, esp
push eax
lea eax, [esp + 0x40060]
mov dword fs:[0], eax
mov eax, dword [esp + 0x40074]
xor ebx, ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x58], 0xf
mov dword [esp + 0x54], ebx
mov byte [esp + 0x44], bl
push 0xf
push str..pipeezPDF_
lea eax, [esp + 0x48]
mov dword [esp + 0x40070], ebx
call fcn.0040b690
mov ecx, dword [esp + 0x40070]
push ecx
lea ecx, [esp + 0x28]
call fcn.004171f0
add esp, 4
push ebx
push eax
or eax, 0xffffffff
lea esi, [esp + 0x48]
mov byte [esp + 0x40070], 1
call fcn.0040b5a0
mov ebp, 0x10
cmp dword [esp + 0x3c], ebp
jb 0x405785
mov edx, dword [esp + 0x28]
push edx
call fcn.004b8c4b
add esp, 4
mov esi, dword [sym.imp.KERNEL32.dll_CreateFileA]
xor edi, edi
lea ecx, [ecx]
cmp dword [esp + 0x58], ebp
mov eax, dword [esp + 0x44]
jae 0x40579e
lea eax, [esp + 0x44]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitNamedPipeA]
cmp eax, 1
jne 0x4057d6
cmp dword [esp + 0x58], ebp
mov eax, dword [esp + 0x44]
jae 0x4057ba
lea eax, [esp + 0x44]
push ebx
push ebx
push 3
push ebx
push ebx
push 0xc0000000
push eax
call esi
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x4057ef
mov ebp, 0x10
jmp 0x405790
cmp edi, 0xa
jg 0x405945
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
add edi, 1
jmp 0x405790
mov esi, dword [esp + 0x18]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x4057f8
push ebx
lea ecx, [esp + 0x20]
push ecx
sub eax, edx
push eax
push esi
push ebp
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x405904
cmp dword [esp + 0x1c], ebx
je 0x405904
push 0x3ffff
lea edx, [esp + 0x61]
push ebx
push edx
mov byte [esp + 0x68], bl
call fcn.004bbbe0
add esp, 0xc
push ebx
lea eax, [esp + 0x24]
push eax
push 0x40000
lea ecx, [esp + 0x68]
push ecx
push ebp
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x405897
push 0x200
push ebx
push 0x54b218
call fcn.004bbbe0
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.ERROR__process_method_PIPE_ReadFile____code__d_n
push 0x54b218
call fcn.004b913a
add esp, 0xc
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [esp + 0x40]
call fcn.00401830
jmp 0x40598c
xor edx, edx
mov edi, str.TRUE
lea esi, [esp + 0x5c]
mov ecx, 5
repe cmpsb byte [esi], byte es:[edi]
sete al
cmp al, bl
mov byte [esp + 0x17], al
je 0x4058eb
mov eax, dword [esp + 0x40070]
push eax
call fcn.004043c0
mov edi, dword [sym.imp.USER32.dll_SetForegroundWindow]
add esp, 4
mov esi, eax
push esi
call edi
mov ebx, dword [sym.imp.USER32.dll_GetForegroundWindow]
call ebx
cmp esi, eax
push esi
je 0x4058e5
call edi
call ebx
cmp esi, eax
jne 0x4058eb
push esi
call dword [sym.imp.USER32.dll_SetFocus]
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [esp + 0x40]
call fcn.00401830
mov al, byte [esp + 0x17]
jmp 0x40598e
push 0x200
push ebx
push 0x54b218
call fcn.004bbbe0
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.ERROR__process_method_PIPE_WriteFile____code__d_n
push 0x54b218
call fcn.004b913a
add esp, 0xc
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x58], 0x10
jb 0x40598c
mov ecx, dword [esp + 0x44]
push ecx
jmp 0x405984
push 0x200
push ebx
push 0x54b218
call fcn.004bbbe0
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esp + 0x40070]
push eax
push edx
push str.ERROR__process_method_PIPE_Create____pid__d__code__d_n
push 0x54b218
call fcn.004b913a
add esp, 0x10
cmp dword [esp + 0x58], ebp
jb 0x40598c
mov eax, dword [esp + 0x44]
push eax
call fcn.004b8c4b
add esp, 4
xor al, al
mov ecx, dword [esp + 0x40060]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x40048]
xor ecx, esp
call fcn.004b883d
add esp, 0x40058
ret