Function at 0x471140
Capabilities:
Create pipe
Create process on windows
Read file on windows
Read pipe

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6a4f73
mov eax, dword fs:[0]
push eax
mov eax, 0x18a4
call fcn.00666cc0
mov eax, dword [0x7e2670]
xor eax, ebp
mov dword [ebp - 0x18], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1884], 0x44
push 0x40
push 0
lea eax, [ebp - 0x1880]
push eax
call fcn.006665c0
add esp, 0xc
mov byte [ebp - 0x101c], 0
push 0xfff
push 0
lea ecx, [ebp - 0x101b]
push ecx
call fcn.006665c0
add esp, 0xc
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x101c]
push eax
call fcn.00666ba0
add esp, 8
mov dword [ebp - 0x1830], 0
mov dword [ebp - 0x1020], 0
mov dword [ebp - 0x10], 0
push 0
push 0
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 0x1020]
push edx
call dword [sym.imp.KERNEL32.dll_CreatePipe]
push 1
push 1
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_SetHandleInformation]
push 0x44
push 0
lea ecx, [ebp - 0x1884]
push ecx
call fcn.006665c0
add esp, 0xc
mov dword [ebp - 0x1858], 0x100
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x1844], edx
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1848], eax
xor ecx, ecx
mov word [ebp - 0x1854], cx
push 0x10abc64
lea edx, [ebp - 0x1884]
push edx
push 0
push 0
push 0x8000000
push 1
push 0
push 0
lea eax, [ebp - 0x101c]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
mov dword [ebp - 0x1888], eax
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x1888], 0
jne 0x471299
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1830], eax
mov edx, dword [ebp - 0x1020]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x1830]
jmp 0x471569
mov eax, dword [0x10abc6c]
push eax
push 0x705154
call fcn.0066610b
add esp, 8
call fcn.006684b5
add eax, 0x20
push eax
call fcn.00668459
add esp, 4
mov byte [ebp - 0x182c], 0
push 0x800
push 0
lea ecx, [ebp - 0x182b]
push ecx
call fcn.006665c0
add esp, 0xc
push 0x70379b
lea ecx, [ebp - 0x14]
call fcn.0040dbe0
mov dword [ebp - 4], 0
mov dword [ebp - 0x1838], 0
mov byte [ebp - 0x1831], 0
push 1
mov edx, dword [0x10abc64]
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
xor ecx, ecx
cmp eax, 0x102
sete cl
mov byte [ebp - 0x1831], cl
push 0
lea edx, [ebp - 0x1838]
push edx
push 0
push 0
push 0
mov eax, dword [ebp - 0x1020]
push eax
call dword [sym.imp.KERNEL32.dll_PeekNamedPipe]
movzx ecx, byte [ebp - 0x1831]
test ecx, ecx
jne 0x47135a
cmp dword [ebp - 0x1838], 0
ja 0x47135a
mov dword [ebp - 0x18b0], 0
jmp 0x471364
mov dword [ebp - 0x18b0], 1
cmp dword [ebp - 0x18b0], 0
je 0x47147a
push 0x7037b9
lea ecx, [ebp - 0x18a4]
call fcn.00404630
mov byte [ebp - 4], 1
cmp dword [ebp - 0x1838], 0
jbe 0x47144c
mov edx, dword [ebp - 0x1838]
mov dword [ebp - 0x18a8], edx
cmp dword [ebp - 0x18a8], 0x800
jbe 0x4713b4
mov dword [ebp - 0x18a8], 0x800
push 0
lea eax, [ebp - 0x18a8]
push eax
mov ecx, dword [ebp - 0x18a8]
push ecx
lea edx, [ebp - 0x182c]
push edx
mov eax, dword [ebp - 0x1020]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [ebp - 0x18a8]
mov byte [ebp + ecx - 0x182c], 0
cmp dword [ebp - 0x18a8], 0
jbe 0x471414
lea edx, [ebp - 0x182c]
push edx
push 0x705168
call fcn.0066610b
add esp, 8
call fcn.006684b5
add eax, 0x20
push eax
call fcn.00668459
add esp, 4
lea eax, [ebp - 0x182c]
push eax
lea ecx, [ebp - 0x18a4]
call fcn.004138a0
lea ecx, [ebp - 0x182c]
push ecx
lea ecx, [ebp - 0x14]
call fcn.0040e920
mov edx, dword [ebp - 0x1838]
sub edx, dword [ebp - 0x18a8]
mov dword [ebp - 0x1838], edx
jmp 0x471385
lea ecx, [ebp - 0x18a4]
call fcn.00405300
movzx eax, al
test eax, eax
je 0x471466
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18a4]
call fcn.00404770
jmp 0x4712ff
push 0x70516c
call fcn.0066610b
add esp, 4
push 0xffffffffffffffff
mov ecx, dword [0x10abc64]
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea edx, [ebp - 0x1830]
push edx
mov eax, dword [0x10abc64]
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov dword [ebp - 0x1888], eax
cmp dword [ebp - 0x1888], 0
jne 0x4714c2
mov dword [ebp - 0x1830], 0
mov ecx, dword [0x10abc68]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [0x10abc64]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x1830]
push eax
push 0x705184
call fcn.0066610b
add esp, 8
push str.dfu4.exe
mov ecx, dword [ebp + 8]
push ecx
call fcn.006687b0
add esp, 8
test eax, eax
je 0x471548
push 0
push str.Update_completed
lea ecx, [ebp - 0x14]
call fcn.00404540
cmp eax, 0xffffffff
jne 0x471548
mov dword [ebp - 0x1830], 0xffffffff
mov edx, dword [ebp - 0x1830]
push edx
push str.find__update_completed__fail_errorcode_d_r_n
call fcn.0066610b
add esp, 8
call fcn.006684b5
add eax, 0x20
push eax
call fcn.00668459
add esp, 4
mov eax, dword [ebp - 0x1830]
mov dword [ebp - 0x18ac], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.004014d0
mov eax, dword [ebp - 0x18ac]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x18]
xor ecx, ebp
call fcn.006665ac
mov esp, ebp
pop ebp
ret