Function at 0x140015810
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x20
test r8, r8
jle 0x14001584b
mov rsi, r8
mov rdi, rdx
mov rbx, rcx
cmp qword [rcx + 0x68], 0
je case.default.0x140015844
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r14
pop r15
jmp qword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsgetn_char____ptr64__long_long___int64_____ptr64]
xor esi, esi
jmp 0x140015949
mov rax, qword [rbx + 0x38]
mov rdx, qword [rax]
test rdx, rdx
je 0x1400158a5
mov rax, qword [rbx + 0x50]
movsxd r15, dword [rax]
test r15, r15
je 0x1400158a5
cmp r15, rsi
cmovae r15, rsi
mov rcx, rdi
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
add rdi, r15
mov r14, rsi
sub r14, r15
mov rax, qword [rbx + 0x50]
sub dword [rax], r15d
mov rax, qword [rbx + 0x38]
movsxd rcx, r15d
add qword [rax], rcx
cmp qword [rbx + 0x80], 0
jne 0x1400158b6
jmp 0x140015946
mov r14, rsi
cmp qword [rbx + 0x80], 0
je 0x140015946
mov rax, qword [rbx + 0x18]
lea rcx, [rbx + 0x70]
cmp qword [rax], rcx
jne 0x1400158e2
mov ecx, dword [rbx + 0x90]
mov rdx, qword [rbx + 0x88]
mov qword [rax], rdx
mov rax, qword [rbx + 0x38]
mov qword [rax], rdx
sub ecx, edx
mov rax, qword [rbx + 0x50]
mov dword [rax], ecx
mov r15, qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
nop dword [rax]
cmp r14, 0x1000
jb 0x140015921
mov r9, qword [rbx + 0x80]
mov edx, 1
mov r8d, 0xfff
mov rcx, rdi
call r15
add rdi, rax
sub r14, rax
cmp rax, 0xfff
je 0x1400158f0
jmp 0x140015946
test r14, r14
je 0x140015943
mov r9, qword [rbx + 0x80]
mov edx, 1
mov rcx, rdi
mov r8, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
sub r14, rax
jmp 0x140015946
xor r14d, r14d
sub rsi, r14
mov rax, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
movups xmm0, xmmword [rbx + 0x10]
mov rdx, qword [rbx + 0x18]
xor ecx, ecx
movabs rax, 0xcbf29ce484222325
movabs r9, 0x100000001b3
movaps xmmword [rsp + 0x40], xmm0
mov rbp, rax
test rdx, rdx
je 0x140084804
mov r8, qword [rsp + 0x40]
movzx eax, byte [rcx + r8]
inc rcx
xor rbp, rax
imul rbp, r9
cmp rcx, rdx
jb 0x1400847ec
mov r9, rbp
lea r8, [rbx + 0x10]
lea rdx, [rsp + 0x30]
mov rcx, r14
call 0x1401ec070
cmp qword [rsp + 0x38], 0
jne 0x140084a87
cmp qword [r14 + 0x10], r15
je 0x140084ac3
mov ecx, 0x20
call 0x1401e7625
movups xmm0, xmmword [rbx + 0x10]
mov r12, rax
xorps xmm1, xmm1
movups xmmword [rax + 0x10], xmm0
mov rcx, qword [r14 + 0x10]
add rcx, 1
movss xmm3, dword [r14]
mov rdx, qword [r14 + 0x38]
js 0x140084867
cvtsi2ss xmm1, rcx
jmp 0x14008487c
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
xorps xmm2, xmm2
test rdx, rdx
js 0x140084892
cvtsi2ss xmm2, rdx
jmp 0x1400848aa
mov rax, rdx
mov rcx, rdx
shr rcx, 1
and eax, 1
or rcx, rax
cvtsi2ss xmm2, rcx
addss xmm2, xmm2
movaps xmm0, xmm1
divss xmm0, xmm2
comiss xmm3, xmm0
jae 0x140084a23
divss xmm1, xmm3
cvttss2si ecx, xmm1
cmp ecx, 0x80000000
je 0x1400848f3
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm1
je 0x1400848f3
unpcklps xmm1, xmm1
movmskps eax, xmm1
and eax, 1
xor eax, 1
add ecx, eax
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
xor ecx, ecx
comiss xmm1, xmm6
jb case.0x140015844.0
subss xmm1, xmm6
comiss xmm1, xmm6
jae case.0x140015844.0
mov rcx, r13
cvttss2si rax, xmm1
add rax, rcx
mov ecx, 8
cmp rax, rcx
cmova rcx, rax
cmp rdx, rcx
jae 0x14008494c
cmp rdx, 0x200
jae 0x140084949
lea rdx, [rdx*8]
cmp rdx, rcx
jae 0x14008494c
mov rdx, rcx
mov rcx, r14
call 0x1401befcc
mov rax, qword [r14 + 0x30]
mov r15, qword [r14 + 0x18]
and rax, rbp
invalid
mov rcx, qword [r14 + 8]
add rax, rax
mov rsi, qword [r15 + rax*8 + 8]
cmp rsi, rcx
jne 0x14008497e
mov qword [rsp + 0x20], rcx
jmp 0x140084a05
movups xmm0, xmmword [r12 + 0x10]
mov r15, qword [r15 + rax*8]
movaps xmmword [rsp + 0x30], xmm0
mov r14, qword [rsp + 0x38]
mov r13, qword [rsp + 0x30]
insb byte [rdi], dx
and al, 0x30
cmp r14, qword [rsi + 0x18]
jne 0x1400849b8
mov rdx, qword [rsi + 0x10]
mov r8, r14
mov rcx, r13
call 0x1400f3c3b
test eax, eax
je 0x1400849ca
cmp rsi, r15
je 0x1400849ee
mov rsi, qword [rsi + 8]
jmp 0x140084997
mov rax, qword [rsi]
movabs r13, 0x8000000000000000
mov r14, qword [rsp + 0x90]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rsi
jmp 0x140084a0e
mov r14, qword [rsp + 0x90]
movabs r13, 0x8000000000000000
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x28], 0
movaps xmm0, xmmword [rsp + 0x20]
movabs r15, 0x7ffffffffffffff
movdqa xmmword [rsp + 0x30], xmm0
mov rdx, qword [rsp + 0x30]
mov r8, qword [rdx + 8]
inc qword [r14 + 0x10]
mov qword [r12], rdx
mov qword [r12 + 8], r8
mov qword [r8], r12
mov qword [rdx + 8], r12
mov rax, qword [r14 + 0x30]
mov rcx, qword [r14 + 0x18]
and rax, rbp
add rax, rax
mov r9, qword [rcx + rax*8]
cmp r9, qword [r14 + 8]
jne 0x140084a65
mov qword [rcx + rax*8], r12
jmp 0x140084a82
cmp r9, rdx
jne 0x140084a77
mov qword [rcx + rax*8], r12
jmp 0x140084a87
cmp qword [rcx + rax*8 + 8], r8
jne 0x140084a87
mov qword [rcx + rax*8 + 8], r12
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x1400847b8
mov r12, qword [rsp + 0xa8]
mov r13, qword [rsp + 0x68]
mov r15, qword [rsp + 0x60]
mov rsi, qword [rsp + 0xa0]
mov rbp, qword [rsp + 0x98]
movaps xmm6, xmmword [rsp + 0x50]
add rsp, 0x70
pop r14
pop rdi
pop rbx
ret
lea rcx, [0x1400d07cc]
call 0x140117fb8
add eax, 0xccaeb309
adc esp, eax
test rdx, rdx
je 0x140084b81
push rbx
sub rsp, 0x20
mov rcx, qword [rdx + 0x40]
mov rbx, rdx
mov qword [rsp + 0x30], rdi
xor edi, edi
test rcx, rcx
je 0x140084b2c
mov rdx, qword [rdx + 0x50]
push rdx
push rax
sub rdx, rcx
and rdx, 0xfffffffffffffff8
cmp rdx, 0x1000
jb 0x140084b1b
mov rcx, qword [rcx - 8]
add rdx, 0x27
call 0x1402dfcc7
mov qword [rbx + 0x40], rdi
mov qword [rbx + 0x48], rdi
mov qword [rbx + 0x50], rdi
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x140084b6a
mov rdx, qword [rbx + 0x38]
sub rdx, rcx
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x140084b59
mov rcx, qword [rcx - 8]
add rdx, 0x27
call 0x1402dfcc7
mov qword [rbx + 0x28], rdi
mov qword [rbx + 0x30], rdi
mov qword [rbx + 0x38], rdi
mov edx, 0x58
mov rcx, rbx
call 0x1402dfcc7
mov rdi, qword [rsp + 0x30]
add rsp, 0x20
pop rbx
ret