Function at 0x140054460
Capabilities:
Create pipe
Create two anonymous pipes
Read file on windows

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
mov eax, 0x2a90
call sub.ntdll.dll___chkstk
sub rsp, rax
mov rax, qword [0x14042d950]
xor rax, rsp
mov qword [rsp + 0x2a80], rax
lea rdx, [rcx + 0x190]
mov rsi, rcx
lea r8, [rsp + 0x38]
xor ebp, ebp
xor r9d, r9d
add rcx, 0x188
mov dword [rsp + 0x38], 0x18
mov dword [rsp + 0x48], 1
mov qword [rsp + 0x40], rbp
call qword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
jne 0x1400545ad
call fcn.140049470
lea rsi, [0x140433950]
xor edx, edx
mov rcx, rsi
mov r8d, 0x80
mov rbx, rax
call sub.ntdll.dll_memset
lea edx, [rbp + 0x5c]
lea rcx, str...cnvfat.cpp
call qword [sym.imp.ntdll.dll_strrchr]
test rax, rax
mov rdi, rax
je 0x140054593
xor eax, eax
lea rdx, [0x1402dfd08]
lea rcx, [rsp + 0x870]
mov r8d, Ordinal_760
mov byte [rsp + Ordinal_2164], bpl
mov qword [rsp + Ordinal_2164], rax
mov word [rsp + 0x879], ax
mov byte [rsp + 0x87b], al
call qword [sym.imp.ntdll.dll_sprintf]
lea rdx, [rdi + 1]
mov rcx, rsi
sub rcx, rdx
nop
nop
nop
movzx eax, byte [rdx]
add rdx, 1
test al, al
mov byte [rcx + rdx - 1], al
jne 0x140054550
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rsi
repne scasb al, byte [rdi]
xor ecx, ecx
lea rdx, [rsp + 0x870]
nop
nop
nop
movzx eax, byte [rdx + rcx]
add rcx, 1
test al, al
mov byte [rdi + rcx - 2], al
jne 0x140054580
mov rbp, rsi
mov rax, qword [rbx]
lea rdx, str._s:_Stdout_pipe_creation_failed
mov r8, rbp
mov rcx, rbx
call qword [rax + 0x10]
xor eax, eax
jmp 0x1400548fb
mov rcx, qword [rsi + 0x188]
xor r8d, r8d
mov qword [rsp + 0x2ad0], r14
lea edx, [r8 + 1]
mov qword [rsp + 0x2ad8], r15
call qword [sym.imp.KERNEL32.dll_SetHandleInformation]
lea r8, [rsp + 0x38]
lea rdx, [rsi + 0x180]
lea rcx, [rsi + reloc.MFC80U.DLL_Ordinal_376]
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
jne 0x140054624
call fcn.140049470
lea rcx, str...cnvfat.cpp
mov edx, Ordinal_766
mov rbx, qword [rax]
mov rdi, rax
call fcn.140052f30
lea rdx, str._s:_Stdin_pipe_creation_failed
mov rcx, rdi
mov r8, rax
call qword [rbx + 0x10]
xor eax, eax
jmp 0x1400548eb
mov rcx, qword [rsi + 0x180]
xor r8d, r8d
lea edx, [r8 + 1]
call qword [sym.imp.KERNEL32.dll_SetHandleInformation]
mov rcx, rsi
call fcn.140053a20
test eax, eax
jne 0x140054677
call fcn.140049470
lea rcx, str...cnvfat.cpp
mov edx, Ordinal_774
mov rbx, qword [rax]
mov rdi, rax
call fcn.140052f30
lea rdx, str._s:_Create_process_failed_with_chkdsk.exe
mov rcx, rdi
mov r8, rax
call qword [rbx + 0x10]
xor eax, eax
jmp 0x1400548eb
mov rcx, qword [rsi + 0x190]
mov qword [rsp + 0x2ac8], r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x1400546bc
call fcn.140049470
lea rcx, str...cnvfat.cpp
mov edx, Ordinal_784
mov rbx, qword [rax]
mov rdi, rax
call fcn.140052f30
lea rdx, str._s:_Closing_handle_failed
mov rcx, rdi
mov r8, rax
call qword [rbx + 0x10]
lea rcx, [rsp + 0x50]
xor edx, edx
mov r8d, Ordinal_2070
call sub.ntdll.dll_memset
lea rcx, [rsp + 0x50]
xor edx, edx
mov r8d, 0x400
mov dword [rsp + Ordinal_1112], ebp
mov dword [rsp + 0x45c], ebp
mov dword [rsp + reloc.MFC80U.DLL_Ordinal_1112], ebp
mov dword [rsp + 0x450], ebp
call sub.ntdll.dll_memset
lea rdx, str.Checking_Partition__please_wait...
lea rcx, [rsp + 0x50]
call qword [sym.imp.ntdll.dll_sprintf]
mov rax, qword [rsi + 0x1b0]
test rax, rax
je 0x140054728
mov rdx, qword [rsi + 0x1b8]
lea rcx, [rsp + 0x50]
call rax
lea rcx, [rsp + 0xa81]
xor edx, edx
mov r8d, 0x1fff
mov byte [rsp + Ordinal_2692], bpl
call sub.ntdll.dll_memset
cmp qword [0x140423220], 0xffffffffffffffff
mov r13, rbp
je 0x140054897
nop
nop
nop
lea rcx, [rsp + 0xa80]
xor edx, edx
mov r8d, 0x2000
call sub.ntdll.dll_memset
mov rcx, qword [rsi + 0x188]
lea r9, [rsp + 0x30]
lea rdx, [rsp + 0xa80]
mov r8d, 0x2000
mov qword [rsp + 0x20], rbp
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140054897
cmp dword [rsp + 0x30], ebp
je 0x140054897
lea rcx, [rsp + 0x881]
xor edx, edx
mov r8d, Ordinal_512
mov byte [rsp + Ordinal_2183], bpl
call sub.ntdll.dll_memset
lea r9, [rsp + 0x880]
lea r8, [rsp + 0x34]
lea rdx, [rsp + 0xa80]
mov rcx, rsi
call fcn.140053cd0
mov ebx, dword [rsp + 0x34]
lea rcx, [rsp + 0x50]
xor edx, edx
mov r8d, 0x400
mov dword [rsp + Ordinal_1112], ebx
add r13, rax
mov dword [rsp + 0x45c], ebp
mov dword [rsp + reloc.MFC80U.DLL_Ordinal_1112], ebp
mov dword [rsp + 0x450], ebp
call sub.ntdll.dll_memset
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x880]
repne scasb al, byte [rdi]
not rcx
cmp rcx, 1
je 0x14005484e
lea r8, [rsp + 0x880]
lea rdx, str.Checking_Partition:__s
lea rcx, [rsp + 0x50]
call qword [sym.imp.ntdll.dll_sprintf]
test ebx, ebx
je 0x140054864
lea rdx, str.Checking_Partition__please_wait...
lea rcx, [rsp + 0x50]
call qword [sym.imp.ntdll.dll_sprintf]
mov rax, qword [rsi + 0x1b0]
test rax, rax
je 0x14005487e
mov rdx, qword [rsi + 0x1b8]
lea rcx, [rsp + 0x50]
call rax
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp qword [0x140423220], 0xffffffffffffffff
jne 0x140054760
mov rcx, qword [rsi + 0x188]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsi + reloc.MFC80U.DLL_Ordinal_376]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsi + 0x180]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [0x140423220]
cmp rcx, 0xffffffffffffffff
jne 0x1400548cf
xor eax, eax
jmp 0x1400548e3
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [0x140423220], 0xffffffffffffffff
mov rax, r13
mov r13, qword [rsp + 0x2ac8]
mov r14, qword [rsp + 0x2ad0]
mov r15, qword [rsp + 0x2ad8]
mov rcx, qword [rsp + 0x2a80]
xor rcx, rsp
call fcn.140161080
add rsp, 0x2a90
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret