Function at 0x14002fa3c
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rbx, rdx
mov rdi, rcx
call fcn.14002f4d8
mov rdx, rbx
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp 0x14002f5cc
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
cmp qword [rcx], 0
mov rdi, rdx
mov rbx, rcx
jne 0x14002f5f7
mov ecx, 0x50
call fcn.1400e0348
mov rcx, rax
call fcn.14002e168
mov qword [rbx], rax
mov rdx, rdi
mov rcx, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp 0x14002fa3c
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x68
xor ebx, ebx
lea r13, [rcx + 8]
mov byte [r13], bl
mov r14d, ebx
mov qword [rcx + 0x208], rbx
mov r12, rdx
mov rbp, rcx
call fcn.140003f5c
test rax, rax
je 0x14002fab8
call fcn.140003f5c
mov rcx, rax
mov rdx, qword [rax]
call qword [rdx + 0x1a8]
test rax, rax
je 0x14002fab8
call fcn.140003f5c
mov rcx, rax
mov rdx, qword [rax]
call qword [rdx + 0x1a8]
xor r9d, r9d
lea r8, [0x1401223d4]
mov rdx, r12
mov rcx, rax
mov r14, rax
mov r10, qword [rax]
call qword [r10 + 0x78]
jmp 0x14002fac7
lea rdx, [0x1401223d4]
mov rcx, r12
call fcn.1400b2a34
mov rsi, rax
test rax, rax
jne 0x14002faf5
call fcn.1400e01dc
lea r8, [0x140127ca0]
mov qword [rsp + 0x20], r12
mov edx, 0x200
mov rcx, r13
mov r9d, dword [rax]
call fcn.140026bd4
jmp 0x14002fe3b
test r14, r14
je 0x14002fb3c
mov rax, qword [r14]
mov r9d, 2
xor r8d, r8d
mov rdx, rsi
mov rcx, r14
call qword [rax + 0x98]
mov rax, qword [r14]
mov rdx, rsi
mov rcx, r14
call qword [rax + 0xa0]
mov r10, qword [r14]
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
mov rcx, r14
mov r15d, eax
call qword [r10 + 0x98]
jmp 0x14002fb62
xor edx, edx
mov rcx, rsi
lea r8d, [rdx + 2]
call fcn.1400e32d8
mov rcx, rsi
call fcn.1400e3950
xor r8d, r8d
xor edx, edx
mov rcx, rsi
mov r15d, eax
call fcn.1400e32d8
lea eax, [r15 + 3]
mov ecx, eax
mov dword [rsp + 0xb0], eax
call fcn.1400e0348
mov rdi, rax
test rax, rax
jne 0x14002fb98
mov r9, r12
lea r8, [0x140127cc8]
mov edx, 0x200
mov rcx, r13
call fcn.140026bd4
jmp 0x14002fcf0
mov r13d, r15d
mov r12d, 1
test r14, r14
je 0x14002fbd1
mov rax, qword [r14]
mov r9d, r13d
mov r8d, r12d
mov qword [rsp + 0x20], rsi
mov rdx, rdi
mov rcx, r14
call qword [rax + 0x80]
mov rax, qword [r14]
mov rdx, rsi
mov rcx, r14
call qword [rax + 0xa8]
jmp 0x14002fbea
mov r9, rsi
mov r8, r13
mov rdx, r12
mov rcx, rdi
call fcn.1400e2ef8
mov rcx, rsi
call fcn.1400b2b48
lea eax, [r15 + 1]
mov byte [rdi + r13], bl
mov byte [rax + rdi], bl
mov rsi, rbx
mov dword [rsp + 0xc0], eax
mov qword [rsp + 0xc8], rax
lea eax, [r15 + 2]
mov byte [rax + rdi], bl
cmp byte [rdi], 0x80
jne 0x14002fc3a
mov eax, dword [rsp + 0xb0]
lea rdx, [rsp + 0x40]
mov rcx, rbp
mov dword [rsp + 0x48], eax
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x4c], rbx
call fcn.14003008c
jmp 0x14002fe3d
mov rcx, qword [rsp + 0xb8]
mov r8d, r15d
mov rdx, rdi
call fcn.140030f58
test eax, eax
je 0x14002fce8
mov rcx, rdi
call fcn.140031090
test eax, eax
je 0x14002fca5
shr r13, 1
mov eax, 0xfffe
mov r15, rdi
mov word [rdi + r13*2], bx
cmp word [rdi], ax
jne 0x14002fc98
lea rdx, [rdi + 2]
cmp word [rdx], bx
je 0x14002fc98
mov r8, r12
mov cl, byte [rdx]
add r8, r12
mov al, byte [rdx + 1]
mov byte [rdx], al
mov byte [rdx + 1], cl
lea rdx, [rdi + r8*2]
cmp word [rdx], bx
jne 0x14002fc82
mov eax, 0x20
mov word [rdi], ax
mov eax, r12d
jmp 0x14002fd20
mov rcx, qword [rsp + 0xc8]
add rcx, rcx
call fcn.1400e0348
mov r15, rax
test rax, rax
je 0x14002fce8
mov r9d, dword [rsp + 0xc0]
mov r8, rdi
mov dword [rsp + 0x28], r9d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rax
call qword [fcn.140120510]
test eax, eax
jne 0x14002fd16
mov rcx, r15
call fcn.1400e0334
mov rcx, rdi
call fcn.1400e0334
test rsi, rsi
je 0x14002fe3b
test r14, r14
je 0x14002fe33
mov rax, qword [r14]
mov rdx, rsi
mov rcx, r14
call qword [rax + 0xa8]
jmp 0x14002fe3b
mov rcx, rdi
call fcn.1400e0334
mov eax, ebx
mov dword [rbp + 0x218], eax
mov rdi, r15
movzx eax, word [r15]
jmp 0x14002fd49
movzx eax, ax
lea rcx, [0x140127180]
and eax, 0x7f
test byte [rax + rcx], r12b
je 0x14002fd4e
add rdi, 2
movzx eax, word [rdi]
test ax, ax
jne 0x14002fd2f
cmp word [rdi], bx
jne 0x14002fd6a
lea rax, [0x140127ce0]
mov qword [rbp + 0x208], rdi
mov qword [rbp + 0x210], rax
jmp 0x14002fd8c
call qword [fcn.140120550]
mov rcx, qword [rbp]
mov r8, rbp
mov rdx, rdi
call fcn.14002e79c
call qword [fcn.140120550]
mov rdi, qword [rbp + 0x208]
test rdi, rdi
je 0x14002fdfe
sub rdi, r15
mov edx, r12d
sar rdi, 1
mov ecx, r12d
movsxd r8, edi
test edi, edi
jle 0x14002fdc3
cmp word [r15 + rbx*2], 0xa
lea eax, [rcx + 1]
mov ecx, r12d
cmovne ecx, eax
lea eax, [rdx + 1]
cmovne eax, edx
add rbx, r12
mov edx, eax
cmp rbx, r8
jl 0x14002fda4
mov rax, qword [rbp + 0x210]
lea r8, [0x140127cf8]
mov r9, qword [rsp + 0xb8]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], ecx
lea rcx, [rbp + 8]
mov dword [rsp + 0x20], edx
mov edx, 0x200
call fcn.140026bd4
mov rcx, r15
call fcn.1400e0334
jmp 0x14002fe3b
lea rcx, [rbp + 0x220]
mov qword [rsp + 0xb0], r15
mov rdx, qword [rcx + 8]
cmp qword [rcx + 0x10], rdx
je 0x14002fe21
mov qword [rdx], r15
add qword [rcx + 8], 8
jmp 0x14002fe2e
lea r8, [rsp + 0xb0]
call fcn.140030360
mov eax, r12d
jmp 0x14002fe3d
mov rcx, rsi
call fcn.1400b2b48
xor eax, eax
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret