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

Disassembly:
push 0xffffffffffffffff
push 0x4f25a6
mov eax, dword fs:[0]
push eax
mov eax, 0x4404c
call fcn.004bbbb0
mov eax, dword [0x53de10]
xor eax, esp
mov dword [esp + 0x44048], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x53de10]
xor eax, esp
push eax
lea eax, [esp + 0x44060]
mov dword fs:[0], eax
mov eax, dword [esp + 0x44074]
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 + 0x44070], ebx
call fcn.0040b690
mov ecx, dword [esp + 0x44070]
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 + 0x44070], 1
call fcn.0040b5a0
mov ebp, 0x10
cmp dword [esp + 0x3c], ebp
jb 0x406c05
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 0x406c1e
lea eax, [esp + 0x44]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitNamedPipeA]
cmp eax, 1
jne 0x406c56
cmp dword [esp + 0x58], ebp
mov eax, dword [esp + 0x44]
jae 0x406c3a
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 0x406c6f
mov ebp, 0x10
jmp 0x406c10
cmp edi, 1
jg 0x406ded
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
add edi, 1
jmp 0x406c10
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x60]
push str.setdata_s
push ecx
call fcn.004b913a
lea eax, [esp + 0x68]
add esp, 0xc
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x406c90
sub eax, edx
push ebx
lea edx, [esp + 0x20]
push edx
push eax
lea eax, [esp + 0x68]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x406dac
cmp dword [esp + 0x1c], ebx
je 0x406dac
push 0x3ffff
lea ecx, [esp + 0x4061]
push ebx
push ecx
mov byte [esp + 0x4068], bl
call fcn.004bbbe0
add esp, 0xc
push ebx
lea edx, [esp + 0x24]
push edx
push 0x40000
lea eax, [esp + 0x4068]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x406d3c
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_setdata_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 0x406e34
xor edx, edx
mov edi, str.TRUE
lea esi, [esp + 0x405c]
mov ecx, 5
repe cmpsb byte [esi], byte es:[edi]
sete al
cmp al, bl
mov byte [esp + 0x17], al
je 0x406d93
mov eax, dword [esp + 0x44070]
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 0x406d8d
call edi
call ebx
cmp esi, eax
jne 0x406d93
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 0x406e36
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_setdata_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 0x406e34
mov ecx, dword [esp + 0x44]
push ecx
jmp 0x406e2c
push 0x200
push ebx
push 0x54b218
call fcn.004bbbe0
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esp + 0x44070]
push eax
push edx
push str.ERROR__process_setdata_PIPE_Create____pid__d__code__d_n
push 0x54b218
call fcn.004b913a
add esp, 0x10
cmp dword [esp + 0x58], ebp
jb 0x406e34
mov eax, dword [esp + 0x44]
push eax
call fcn.004b8c4b
add esp, 4
xor al, al
mov ecx, dword [esp + 0x44060]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x44048]
xor ecx, esp
call fcn.004b883d
add esp, 0x44058
ret