Function at 0x14001cc80
Capabilities:
Read file on windows

Disassembly:
push rbp
push rsi
push r14
sub rsp, 0x30
mov rsi, r8
mov r14, rdx
mov rbp, rcx
test r8, r8
jg 0x14001cca2
xor eax, eax
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
cmp qword [rcx + 0x68], 0
je case.default.0x14001ccb1
add rsp, 0x30
pop r14
pop rsi
pop rbp
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]
mov qword [rsp + 0x28], rbx
mov rbx, rsi
mov qword [rsp + 0x20], rdi
call qword [sym.imp.MSVCP140.dll_protected:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Gnavail_void_const___ptr64]
test rax, rax
je 0x14001cd02
cmp rax, rsi
mov rdi, rsi
mov rcx, rbp
cmovb rdi, rax
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::gptr_void_const___ptr64]
mov r8, rdi
mov rcx, r14
mov rdx, rax
call sub.VCRUNTIME140.dll_memcpy
mov edx, edi
mov rcx, rbp
add r14, rdi
sub rbx, rdi
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::gbump_int____ptr64]
cmp qword [rbp + 0x80], 0
mov rdi, rbx
je 0x14001cd71
mov rcx, rbp
call fcn.14000f5c0
cmp rbx, 0xfff
jbe 0x14001cd51
mov r9, qword [rbp + 0x80]
mov edx, 1
mov r8d, 0xfff
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
sub rbx, rax
add r14, rax
mov rdi, rbx
cmp rax, 0xfff
jne 0x14001cd8a
cmp rbx, rax
ja 0x14001cd20
test rdi, rdi
je 0x14001cd71
mov r9, qword [rbp + 0x80]
mov r8, rbx
mov edx, 1
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
sub rdi, rax
sub rsi, rdi
mov rbx, qword [rsp + 0x28]
mov rax, rsi
mov rdi, qword [rsp + 0x20]
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
sub rsi, rbx
jmp 0x14001cd74
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x3e30]
mov dword [rax + 0x3e38], ecx
mov rax, qword [rsp + 0x30]
mov dword [rax + 0xe4], 0
mov edx, 4
mov rcx, qword [rsp + 0x30]
call 0x1400754d0
mov dword [rsp + 0x40], 0
jmp 0x140089925
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 0x48b0]
cmp dword [rsp + 0x40], eax
and al, 0x40
je 0x1400899b3
mov rax, qword [rsp + 0x30]
add rax, 0x48b0
mov qword [rsp + 0x90], rax
mov edx, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x90]
call 0x140065990
mov rax, qword [rax]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
add rax, 0x78
mov rcx, rax
call 0x1400758b0
mov eax, 8
imul rax, rax, 0
mov rcx, qword [rsp + 0x60]
cmp qword [rcx + rax + 0x38], 0
je 0x1400899ae
mov rcx, qword [rsp + 0x60]
call 0x14007ab00
mov ecx, reloc.WS2_32.dll_recv
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x60]
lea rcx, [rdx + rcx + 0x78]
mov rdx, rax
call 0x14006db90
jmp 0x14008991b
movzx eax, byte [rsp + 0x39]
test eax, eax
je 0x1400899c1
call 0x140089ed0
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4a48], 0
je 0x140089a02
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4a48]
mov eax, dword [rax + 0x14]
and eax, 0x2000
test eax, eax
jne 0x140089a02
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4a48]
mov rax, qword [rax + 0x378]
mov qword [rsp + 0x78], rax
jmp 0x140089a0b
mov qword [rsp + 0x78], 0
mov eax, 8
imul rax, rax, 0
mov rcx, qword [rsp + 0x78]
mov qword [rsp + rax + 0x68], rcx
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4a48], 0
je 0x140089a43
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4a58]
mov qword [rsp + 0x80], rax
jmp 0x140089a4f
mov qword [rsp + 0x80], 0
mov eax, 8
imul rax, rax, 1
mov rcx, qword [rsp + 0x80]
mov qword [rsp + rax + 0x68], rcx
mov dword [rsp + 0x44], 0
jmp 0x140089a79
mov eax, dword [rsp + 0x44]
inc eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 0x3e78]
cmp dword [rsp + 0x44], eax
je 0x140089b15
mov rax, qword [rsp + 0x30]
add rax, 0x3e78
mov qword [rsp + 0x98], rax
mov edx, dword [rsp + 0x44]
mov rcx, qword [rsp + 0x98]
call 0x140065990
mov rax, qword [rax]
mov qword [rsp + 0x58], rax
mov rcx, qword [rsp + 0x58]
call 0x140080530
movzx eax, al
test eax, eax
je 0x140089b10
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 0x14]
and eax, 0x1000000
test eax, eax
jne 0x140089b10
mov eax, 8
imul rax, rax, 0
mov rax, qword [rsp + rax + 0x68]
push 0x24443948
pop rax
je 0x140089b10
mov eax, 8
imul rax, rax, 1
mov rax, qword [rsp + rax + 0x68]
push 0x24443948
pop rax
je 0x140089b10
mov rcx, qword [rsp + 0x58]
call 0x14006e690
jmp 0x140089a6f
mov dword [rsp + 0x3c], 0
jmp 0x140089b29
mov eax, dword [rsp + 0x3c]
inc eax
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 2
jge 0x140089b64
movsxd rax, dword [rsp + 0x3c]
cmp qword [rsp + rax*8 + 0x68], 0
je 0x140089b62
movsxd rax, dword [rsp + 0x3c]
mov rcx, qword [rsp + rax*8 + 0x68]
call 0x140080530
movzx eax, al
test eax, eax
je 0x140089b62
movsxd rax, dword [rsp + 0x3c]
mov rcx, qword [rsp + rax*8 + 0x68]
call 0x14006e690
jmp 0x140089b1f
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x58]
test eax, eax
je 0x140089bc8
movzx eax, byte [rsp + 0x39]
test eax, eax
je 0x140089bc8
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4c08], 0xffffffff
je 0x140089bc8
mov dword [rsp + 0x28], 0x30000000
mov dword [rsp + 0x20], 0xff000000
mov r9d, 0xffffffff
mov rax, qword [rsp + 0x30]
mov r8d, dword [rax + 0x4c08]
mov rax, qword [rsp + 0x30]
movss xmm1, dword [rax + 0x3894]
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0xe00]
call 0x14008a5d0
mov rax, qword [rsp + 0x30]
mov dword [rax + 0xe0], 0
mov rax, qword [rsp + 0x30]
mov dword [rax + 0xdc], 0
mov dword [rsp + 0x48], 0
jmp 0x140089bfa
mov eax, dword [rsp + 0x48]
inc eax
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 0x48b0]
cmp dword [rsp + 0x48], eax
jge 0x140089cff
mov rax, qword [rsp + 0x30]
add rax, 0x48b0
mov qword [rsp + 0xa0], rax
mov edx, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa0]
call 0x140065990
mov rax, qword [rax]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x50]
add rax, 0x78
mov rcx, rax
call 0x14007a350
mov eax, 8
imul rax, rax, 1
mov rcx, qword [rsp + 0x50]
cmp qword [rcx + rax + 0x38], 0
je 0x140089c87
mov rcx, qword [rsp + 0x50]
call 0x14007b270
mov ecx, reloc.WS2_32.dll_recv
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x50]
lea rcx, [rdx + rcx + 0x78]
or r15b, byte [rax + 0x48]
mov edx, eax
call 0x14006db90
mov eax, reloc.WS2_32.dll_recv
imul rax, rax, 0
mov rcx, qword [rsp + 0x50]
lea rax, [rcx + rax + 0x78]
mov rdx, rax
mov rcx, qword [rsp + 0x50]
call 0x14008f7a0
mov rax, qword [rsp + 0x50]
add rax, 0x48
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 0xdc]
mov rcx, qword [rsp + 0x88]
add eax, dword [rcx + 0xc]
mov rcx, qword [rsp + 0x30]
mov dword [rcx + 0xdc], eax
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 0xe0]
mov rcx, qword [rsp + 0x88]
add eax, dword [rcx + 8]
mov rcx, qword [rsp + 0x30]
mov dword [rcx + 0xe0], eax
jmp 0x140089bf0
mov edx, 5
mov rcx, qword [rsp + 0x30]
call 0x1400754d0
add rsp, 0xb8
ret