Function at 0x140099350
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
mov rbx, rcx
mov rcx, qword [rcx]
movzx esi, r8w
mov rdi, rdx
call fcn.1401c2310
mov ebp, eax
cmp si, 4
jl 0x140099510
mov rcx, rbx
call fcn.140066b20
mov rcx, rbx
mov dword [rdi], eax
call fcn.140066da0
mov r9, qword [rbx]
lea rcx, [rdi + 4]
movzx edx, ax
mov r8d, 1
call fcn.1401c1e14
mov rcx, qword [rbx]
call fcn.1401c3f28
mov rcx, rbx
mov byte [rdi + 0x114], al
call fcn.140066b20
mov rcx, rbx
call fcn.140066b20
mov rcx, rbx
call fcn.140066b20
mov rcx, rbx
call fcn.140066b20
mov rcx, rbx
call fcn.140066b20
mov rcx, rbx
mov dword [rdi + 0x104], eax
call fcn.140066b20
mov rcx, rbx
mov dword [rdi + 0x108], eax
call fcn.140066b20
mov rcx, rbx
sub eax, dword [rdi + 0x104]
mov dword [rdi + 0x10c], eax
call fcn.140066b20
sub eax, dword [rdi + 0x108]
mov dword [rdi + 0x110], eax
mov rcx, qword [rbx]
call fcn.1401c3f28
mov byte [rdi + 0x115], al
mov rcx, qword [rbx]
call fcn.1401c3f28
mov byte [rdi + 0x116], al
mov rcx, qword [rbx]
call fcn.1401c3f28
mov byte [rdi + 0x117], al
mov rcx, qword [rbx]
call fcn.1401c3f28
mov byte [rdi + 0x118], al
mov rcx, qword [rbx]
call fcn.1401c3f28
mov rcx, rbx
mov byte [rdi + 0x119], al
call fcn.140066b20
mov rcx, rbx
call fcn.140066b20
mov rcx, rbx
call fcn.140066b20
mov rcx, rbx
call fcn.140066b20
mov rcx, rbx
call fcn.140066b20
mov rcx, rbx
call fcn.140066b20
mov rcx, rbx
call fcn.140066b20
mov rcx, rbx
call fcn.140066b20
mov rcx, qword [rbx]
call fcn.1401c3f28
mov byte [rdi + 0x11a], al
mov rcx, qword [rbx]
call fcn.1401c3f28
mov byte [rdi + 0x11b], al
mov rcx, qword [rbx]
call fcn.1401c3f28
mov rcx, rbx
mov byte [rdi + 0x11c], al
call fcn.140066da0
mov edx, 0x28
mov rcx, rbx
mov word [rdi + 0x11e], ax
call fcn.140066ff0
cmp si, 4
jge 0x14009953a
mov rcx, rbx
call fcn.140066da0
mov rcx, rbx
mov word [rdi + 0x120], ax
call fcn.140066da0
mov word [rdi + 0x122], ax
jmp 0x140099612
mov r9, qword [rbx]
lea rcx, [rdi + 4]
mov edx, 0x100
mov r8d, 1
call fcn.1401c1e14
test rax, rax
jne 0x1400993a9
mov eax, 4
jmp 0x140099624
mov rcx, qword [rbx]
call fcn.1401c2310
mov ecx, dword [rdi]
sub eax, ebp
cmp eax, ecx
jge 0x140099557
sub ecx, eax
movsxd rdx, ecx
mov rcx, rbx
call fcn.140066ff0
cmp si, 0xa
jl 0x1400995bc
mov r9, qword [rbx]
mov edx, 4
lea rcx, [rsp + 0x40]
lea r8d, [rdx - 3]
call fcn.1401c1e14
test rax, rax
je 0x140099624
cmp byte [rsp + 0x40], 0x7e
jne 0x1400995ad
cmp byte [rsp + 0x41], 0x42
jne 0x1400995ad
cmp byte [rsp + 0x42], 0x4b
jne 0x1400995ad
cmp byte [rsp + 0x43], 0
jne 0x1400995ad
mov rcx, rbx
call fcn.140066da0
mov rcx, rbx
call fcn.140066b20
movsxd rdx, eax
jmp 0x1400995b4
mov rdx, 0xfffffffffffffffc
mov rcx, rbx
call fcn.140066ff0
mov rcx, qword [rbx]
call fcn.1401c2310
mov rcx, rbx
mov ebp, eax
call fcn.140066b20
cmp byte [rdi + 0x114], 1
mov esi, eax
jne 0x140099612
mov rcx, rbx
call fcn.140066da0
mov rcx, rbx
mov word [rdi + 0x120], ax
call fcn.140066da0
mov word [rdi + 0x122], ax
mov rcx, qword [rbx]
call fcn.1401c2310
sub eax, ebp
cmp eax, esi
jge 0x140099612
sub esi, eax
mov rcx, rbx
movsxd rdx, esi
call fcn.140066ff0
mov rcx, qword [rbx]
call fcn.1401c1a94
neg eax
sbb ecx, ecx
and ecx, 4
movzx eax, cx
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret