Function at 0x1400ffaf0
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
movapd xmmword [rsp + 0xc0], xmm8
movapd xmmword [rsp + 0xb0], xmm7
movapd xmmword [rsp + 0xa0], xmm6
mov esi, r8d
mov rdi, rdx
mov rbx, rcx
mov rax, qword [0x14022c040]
xor rax, rsp
mov qword [rsp + 0x98], rax
movapd xmm0, xmmword [0x1401fa990]
lea r14, [rsp + 0x50]
movapd xmmword [r14 + 0x30], xmm0
movapd xmmword [r14 + 0x20], xmm0
movapd xmmword [r14 + 0x10], xmm0
movapd xmmword [r14], xmm0
lea rdx, str.ReadAtCurrentPos
lea r8, str....._base_files_file_win.cc
lea r15, [rsp + 0x30]
mov rcx, r15
mov r9d, 0x5f
call fcn.1400d5a00
mov rcx, r14
mov rdx, r15
xor r8d, r8d
call fcn.1401000c0
test esi, esi
js 0x1400fffbe
lea r9, [rsp + 0x30]
mov dword [r9], 0xaaaaaaaa
mov rcx, qword [rbx]
mov qword [rsp + 0x20], 0
mov rdx, rdi
mov r8d, esi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1400fffdc
mov esi, dword [rsp + 0x30]
test esi, esi
js 0x1400fffd2
mov qword [rsp + 0x90], 0xb
mov al, byte [0x14023df8b]
test al, al
jne 0x1400ffff2
call fcn.140133b34
mov ebp, dword [rax]
call fcn.140133b34
mov dword [rax], 0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov r14, qword [rsp + 0x50]
test r14, r14
je 0x1400ffc9a
cmp qword [rsp + 0x58], 0
jne 0x1400ffc9a
cmp byte [r14 + 0x19], 1
jne 0x1400ffc9a
mov rbx, qword [r14 + 0x28]
add rbx, 0x68
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400ffe40
mov qword [r14 + 0x20], 0
cmp byte [r14 + 0x3b], 0
jne 0x1400ffc8a
mov rax, qword [r14 + 0x28]
cmp byte [r14 + 0x39], 1
je 0x1400ffe08
dec dword [rax + 0x130]
cmp byte [r14 + 0x19], 0
je 0x1400fffda
cmp byte [r14 + 0x18], 0
jne 0x1400ffc8a
mov rcx, qword [r14 + 0x28]
cmp byte [r14 + 0x3a], 1
je 0x140100019
dec dword [rcx + 0x134]
mov word [r14 + 0x39], 0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.140133b34
mov dword [rax], ebp
cmp byte [rsp + 0x88], 1
jne 0x1400ffcc4
mov rbx, qword [rsp + 0x80]
test rbx, rbx
jne 0x1400ffd62
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x1400ffcd6
mov rcx, qword [rsp + 0x68]
mov qword [rax], rcx
movabs rdi, 0xfffffffc00000000
mov rcx, qword [rsp + 0x58]
mov rax, rcx
and rax, rdi
cmp rax, qword [0x14022e648]
je 0x1400fffc8
mov qword [rsp + 0x58], 0
mov rcx, qword [rsp + 0x50]
and rdi, rcx
cmp rdi, qword [0x14022e648]
je 0x1400ffd2c
mov rcx, qword [rsp + 0x98]
xor rcx, rsp
cmp rcx, qword [0x14022c040]
je 0x1400ffd33
call fcn.1401363f0
int3
call fcn.140003910
jmp 0x1400ffd12
mov eax, esi
movaps xmm6, xmmword [rsp + 0xa0]
movaps xmm7, xmmword [rsp + 0xb0]
movaps xmm8, xmmword [rsp + 0xc0]
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [fcn.1401241a0]
lea rcx, [0x140124260]
cmp rax, rcx
jne 0x1400fffa5
lea rdi, [rsp + 0x30]
mov qword [rdi], 0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rdi]
movabs rcx, 0x8637bd05af6
cmp rax, rcx
jg 0x140100038
imul rax, rax, 0xf4240
cqo
idiv qword [0x14023e460]
mov qword [rsp + 0x90], rax
mov r15, qword [rsp + 0x78]
xor ecx, ecx
cmp rax, r15
setns cl
movabs r12, 0x7fffffffffffffff
add rcx, r12
mov r14, rax
sub r14, r15
cmovo r14, rcx
cmp r14, 0xf4240
jge 0x1400ffe5e
mov rdi, qword [rsp + 0x80]
test rdi, rdi
je 0x1400ffcc4
lock dec dword [rdi]
jne 0x1400ffcc4
jmp 0x140100023
mov rcx, qword [rax + 0x80]
mov rdx, qword [rax + 0x110]
dec rdx
mov qword [rax + 0x110], rdx
cmp rcx, qword [rax + 0x88]
je 0x1400ffe32
cmp qword [rax + 0x120], rdx
jae 0x1400ffe4e
mov word [rax + 0xb8], 0
jmp 0x1400ffc63
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1400ffc3f
movzx ecx, word [rcx + 0x10]
mov word [rax + 0xb8], cx
jmp 0x1400ffc63
mov ecx, 0x3938700
add rcx, qword [rbx + 0x1f0]
cmovo rcx, r12
cmp rcx, rax
jle 0x140100086
mov rax, qword [rbx + 0x1f0]
xor edx, edx
cmp r15, rax
setns dl
add rdx, r12
mov rcx, r15
sub rcx, rax
movabs rdi, 0x8000000000000001
cmovo rcx, rdx
lea rdx, [rcx + rdi]
cmp rdx, 2
jb 0x14010006d
cvtsi2sd xmm0, rcx
movsd xmm8, qword [0x14020a7d0]
divsd xmm0, xmm8
call fcn.140169850
xor r15d, r15d
movsd xmm6, qword [0x14020a7d8]
ucomisd xmm0, xmm6
mov eax, 0x7fffffff
cmovb eax, r15d
movsd xmm7, qword [0x14020a7e0]
ucomisd xmm7, xmm0
mov r12d, 0x7fffffff
maxsd xmm0, xmm6
cvttsd2si ebp, xmm0
cmovb ebp, eax
add rdi, r14
cmp rdi, 2
jae 0x1400fff0b
movsd xmm0, qword [0x14020a7e8]
jmp 0x1400fff18
xorps xmm0, xmm0
cvtsi2sd xmm0, r14
divsd xmm0, xmm8
call fcn.140169900
ucomisd xmm0, xmm6
cmovb r12d, r15d
ucomisd xmm7, xmm0
maxsd xmm0, xmm6
cvttsd2si r14d, xmm0
cmovb r14d, r12d
mov r15, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov r12, qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
add r14d, ebp
cmp r14d, 0x3c
mov r13d, 0x3c
cmovl r13d, r14d
lea rdi, [rbx + 8]
mov rcx, rdi
call r15
test al, al
je 0x14010005f
cmp ebp, r13d
jge 0x1400fff7f
movsxd rax, ebp
movsxd rcx, r13d
inc qword [rbx + rax*8 + 0x10]
inc rax
cmp rcx, rax
jne 0x1400fff72
mov rcx, rdi
call r12
cmp r14d, 0x3d
jl 0x1400ffde9
mov rbx, qword [rbx + 0x1f8]
sub r14d, r13d
xor ebp, ebp
test rbx, rbx
jne 0x1400fff44
jmp 0x1400ffde9
lea rdi, [rsp + 0x90]
mov rcx, rdi
call qword [0x14021e390]
mov rax, qword [rdi]
jmp 0x1400ffdbc
mov esi, 0xffffffff
jmp 0x1400ffbcd
call fcn.140003910
jmp 0x1400ffcf8
int3
ud2
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor esi, esi
cmp eax, 0x26
setne sil
neg esi
jmp 0x1400ffbcd
movzx ecx, al
lea r8, [rsp + 0x30]
mov qword [r8], 0
lea rdx, [rsp + 0x90]
mov r9d, 2
call fcn.1400b7bd0
jmp 0x1400ffbe7
call fcn.14019f050
jmp 0x1400ffc8a
mov rcx, rdi
call fcn.140010e70
mov rcx, rdi
call fcn.140133b2c
jmp 0x1400ffcc4
mov rcx, qword [0x14023e460]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x1400ffdb4
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1400fff67
xor ecx, ecx
cmp rax, r15
setg cl
lea rax, [0x14020a7c0]
movsd xmm0, qword [rax + rcx*8]
jmp 0x1400ffeb0
lea rdi, [rsp + 0x30]
mov rcx, rdi
mov rdx, rax
call fcn.140063d60
mov rdi, qword [rdi]
test rdi, rdi
je 0x1400ffe77
lock dec dword [rdi]
jne 0x1400ffe77
mov rcx, rdi
call fcn.140010e70
mov rcx, rdi
call fcn.140133b2c
jmp 0x1400ffe77