Function at 0x14005f9a0
Capabilities:
Read file on windows

Disassembly:
mov dword [rsp + 0x10], edx
mov r11, rsp
mov qword [r11 + 8], rcx
push rsi
push rdi
push r14
sub rsp, 0xa0
mov qword [r11 - 0x38], 0xfffffffffffffffe
mov qword [r11 + 0x20], rbx
mov rbx, rcx
mov rax, qword [rcx + 0x128]
mov qword [r11 - 0x68], rax
mov rax, qword [rcx + 0x30]
mov qword [r11 - 0x60], rax
mov rax, qword [rcx + 0x98]
mov qword [r11 - 0x58], rax
xor r14d, r14d
mov rcx, rbx
call fcn.14005f8a0
test al, al
je 0x14005fbcd
cmp byte [rbx + 0x10], r14b
je 0x14005fa0c
mov rcx, rbx
call fcn.14005fcf0
test al, al
je 0x14005fb14
mov dword [rsp + 0xc8], r14d
lea rax, [rbx + 0x18]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0xc8]
mov r8d, 0x1000
mov rdx, qword [rbx + 0x60]
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x14005facc
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
je 0x14005fa98
cmp eax, 0x3e5
je 0x14005fa92
lea rax, str.Channel_read_failure
mov qword [rsp + 0xd0], rax
lea rdx, [rsp + 0xd0]
lea rcx, [rsp + 0x68]
call fcn.1400cfd38
nop
lea rax, vtable.CRSimpleIPCException.0
mov qword [rsp + 0x68], rax
lea rdx, [0x140189398]
lea rcx, [rsp + 0x68]
call fcn.1400d4788
mov byte [rbx + 0x10], 1
jmp 0x14005facc
lea rcx, [rsp + 0x38]
call fcn.1400cfdb0
nop
lea rax, vtable.CRSimpleIPCException.0
mov qword [rsp + 0x38], rax
lea rax, vtable.CRSimpleIPCExceptionDisconnected.0
mov qword [rsp + 0x38], rax
lea rdx, [0x140189350]
lea rcx, [rsp + 0x38]
call fcn.1400d4788
cmp byte [rbx + 0x10], r14b
jne 0x14005fb14
mov rsi, qword [rbx + 0x50]
sub rsi, qword [rbx + 0x48]
mov edx, dword [rsp + 0xc8]
add rdx, rsi
lea rcx, [rbx + 0x48]
call fcn.140033a20
mov rcx, qword [rbx + 0x48]
mov r8d, dword [rsp + 0xc8]
add rcx, rsi
mov rdx, qword [rbx + 0x60]
call fcn.1400cc8e0
mov rcx, qword [rbx + 0x38]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
mov sil, 1
jmp 0x14005fb17
xor sil, sil
mov rcx, rbx
call fcn.14005fe50
movzx edi, al
mov rcx, rbx
call fcn.140060350
or dil, sil
je 0x14005fb34
jmp 0x14005f9e6
mov r9d, 0x7530
xor r8d, r8d
lea rdx, [rsp + 0x50]
lea ecx, [r8 + 3]
call qword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
test eax, eax
jne 0x14005fb62
mov rcx, qword [rbx + 0x128]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
jmp 0x14005f9e6
cmp eax, 3
jae 0x14005fb79
mov rcx, rbx
call fcn.14005fcf0
mov rcx, rbx
call fcn.140060190
jmp 0x14005fb8f
cmp eax, 0x102
jne 0x14005fb9c
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14005fb8f
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, rbx
call fcn.140060350
jmp 0x14005f9e6
lea rcx, [rsp + 0x88]
call fcn.1400cfdb0
nop
lea rax, vtable.CRSimpleIPCException.0
mov qword [rsp + 0x88], rax
lea rdx, [0x140189398]
lea rcx, [rsp + 0x88]
call fcn.1400d4788
mov r8d, dword [0x1401c6d80]
lea ecx, [r8 + 1]
imul ecx, r8d
mov eax, 0x6bca1af3
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x13
sub ecx, edx
cmp ecx, 8
jne 0x14005fc91
mov dword [rsp + 0x30], r14d
test r8d, r8d
je 0x14005fc91
inc r14d
mov dword [rsp + 0x30], r14d
mov eax, r8d
and eax, 0x80000001
jge 0x14005fc22
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x14005fc39
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
mov dword [0x1401c6d80], eax
jmp 0x14005fc48
lea r8d, [r8*2 + 1]
mov dword [0x1401c6d80], r8d
mov eax, 0x55555556
imul r8d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
mov ecx, r8d
sub ecx, eax
je 0x14005fc6c
sub ecx, 2
je 0x14005fc77
dec ecx
je 0x14005fc81
jmp 0x14005fc8c
add r8d, 2
mov dword [0x1401c6d80], r8d
inc r8d
mov dword [0x1401c6d80], r8d
add r8d, 2
mov dword [0x1401c6d80], r8d
jmp 0x14005fc00
mov rbx, qword [rsp + 0xd8]
add rsp, 0xa0
pop r14
pop rdi
pop rsi
ret