Function at 0x1400902e0
Capabilities:
Read file on windows

Disassembly:
mov r11, rsp
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x70
mov rax, qword [0x140153558]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov rax, qword [rcx + 0x1850]
xor r13d, r13d
mov esi, r13d
mov rdi, rcx
mov r15d, r13d
mov r12d, r13d
cmp byte [rax + 0x7c], sil
je 0x140090876
test byte [rcx + 0x1810], 1
mov rax, qword [rcx + 0x1860]
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rbp
mov qword [r11 + 0x20], r14
mov r14, qword [rax + 0x78]
je 0x14009038c
mov rax, qword [rcx + 0x1838]
mov ebx, 1
mov ebp, r13d
cmp dword [rax + 0x28c], ebx
jl 0x14009038c
mov edx, ebx
mov rcx, rax
call fcn.140075a20
test eax, eax
je 0x14009037b
mov rcx, qword [rdi + 0x1838]
mov edx, ebx
call fcn.140075b90
inc ebp
mov r14, rax
cmp ebp, 1
je 0x1400903b6
mov rax, qword [rdi + 0x1838]
inc ebx
cmp ebx, dword [rax + 0x28c]
jle 0x140090355
test r14, r14
je 0x140090466
cmp byte [r14], sil
je 0x140090466
mov rcx, r14
call fcn.1400a7ce0
test eax, eax
je 0x1400903f1
lea r15, str._fileopen
jmp 0x140090469
lea r9, [rdi + 0x10]
lea r14, [0x140168d80]
mov rcx, r14
cmp byte [r9], sil
je 0x1400903e1
lea r8, str._s__s
mov qword [rsp + 0x20], rax
mov edx, 0x804
call fcn.14005ba90
jmp 0x14009039e
mov r8d, 0x804
mov rdx, rax
call fcn.14004dff0
jmp 0x14009039e
lea rdx, [rsp + 0x30]
mov rcx, r14
call fcn.1400423b0
test eax, eax
jne 0x14009046f
mov eax, 0x8000
test word [rsp + 0x36], ax
jne 0x140090417
lea r15, str.__3refresh
jmp 0x140090469
cmp dword [rsp + 0x44], esi
jne 0x140090426
lea r15, str._empty_file_
jmp 0x140090469
mov rcx, qword [rdi + 0x1818]
mov edx, 0x4c
call fcn.1400879c0
call fcn.140042ed0
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.14006f320
mov rsi, rax
test rax, rax
je 0x14009046f
mov rcx, qword [rdi + 0x1818]
xor edx, edx
call fcn.1400879c0
call fcn.140042ed0
jmp 0x140090469
mov r14, r13
mov r12d, 1
mov rax, qword [rdi + 0x1848]
mov rbp, qword [rsp + 0xb0]
mov rcx, qword [rax + 0x38]
test rcx, rcx
je 0x140090493
mov rax, qword [rcx]
call qword [rax]
mov rax, qword [rdi + 0x1848]
mov qword [rax + 0x38], r13
test r12d, r12d
jne 0x140090700
test r14, r14
je 0x1400904f0
lea rdx, [0x140101508]
mov rcx, r14
call fcn.140042140
lea r15, [rdi + 0x1010]
mov rbx, rax
test rax, rax
je 0x1400904f7
mov r9, rax
lea edx, [r12 + 1]
mov r8d, 0x7ff
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
movsxd rcx, eax
mov byte [rcx + rdi + 0x1010], r13b
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
jmp 0x1400904fa
lea r15, [rdi + 0x1010]
mov byte [r15], r13b
mov rcx, qword [rdi + 0x1818]
xor edx, edx
call fcn.1400879c0
call fcn.140042ed0
movzx ecx, byte [r15]
mov rbx, r15
test cl, cl
je 0x140090542
js 0x14009058f
movzx esi, cl
mov ecx, esi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isprint]
test eax, eax
jne 0x140090635
mov ecx, esi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
jne 0x140090635
cmp byte [rbx], r13b
jne 0x140090552
lea rax, [rdi + 0x1010]
cmp rbx, rax
jne 0x140090649
movzx eax, byte [r15]
mov rbx, r15
test al, al
je 0x14009064e
movzx ecx, al
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isprint]
test eax, eax
jne 0x14009057f
movzx ecx, byte [rbx]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
je 0x140090649
movzx eax, byte [rbx + 1]
inc rbx
test al, al
jne 0x140090561
jmp 0x14009064e
movzx eax, cl
and al, 0xe0
cmp al, 0xc0
jne 0x1400905ae
movzx eax, byte [rbx + 1]
test al, al
je 0x1400905a6
and al, 0xc0
cmp al, 0x80
jne 0x14009053d
inc rbx
jmp 0x140090635
movzx eax, cl
and al, 0xf0
cmp al, 0xe0
jne 0x1400905e8
movzx eax, byte [rbx + 1]
lea rcx, [rbx + 1]
test al, al
je 0x1400905cd
and al, 0xc0
cmp al, 0x80
jne 0x14009053d
movzx eax, byte [rcx + 1]
mov rbx, rcx
test al, al
je 0x1400905e2
and al, 0xc0
cmp al, 0x80
jne 0x14009053d
lea rbx, [rcx + 1]
jmp 0x140090635
and cl, 0xf8
cmp cl, 0xf0
jne 0x140090635
movzx eax, byte [rbx + 1]
lea rcx, [rbx + 1]
test al, al
je 0x140090606
and al, 0xc0
cmp al, 0x80
jne 0x14009053d
movzx eax, byte [rcx + 1]
mov rbx, rcx
test al, al
je 0x14009061b
and al, 0xc0
cmp al, 0x80
jne 0x14009053d
movzx eax, byte [rcx + 2]
lea rbx, [rcx + 1]
test al, al
je 0x140090631
and al, 0xc0
cmp al, 0x80
jne 0x14009053d
lea rbx, [rcx + 2]
movzx ecx, byte [rbx + 1]
inc rbx
test cl, cl
jne 0x140090518
jmp 0x140090542
cmp byte [rbx], r13b
jne 0x1400906c1
lea rax, [rdi + 0x1010]
cmp rbx, rax
je 0x1400906c1
mov rcx, qword [rdi + 0x1848]
mov eax, 0x66666667
imul dword [rcx + 0x2c]
mov ebx, edx
sar ebx, 3
mov eax, ebx
shr eax, 0x1f
add ebx, eax
cmp ebx, 6
jge 0x140090681
mov ebx, 6
jmp 0x14009068e
cmp ebx, dword [0x1401504c8]
cmovg ebx, dword [0x1401504c8]
mov rdx, r15
call fcn.140039e10
mov rax, qword [rdi + 0x1848]
mov dword [rax + 0x54], 0x55
mov rax, qword [rdi + 0x1848]
mov dword [rax + 0x4c], ebx
mov rax, qword [rdi + 0x1848]
mov dword [rax + 0x48], 4
jmp 0x14009085a
mov rcx, qword [rdi + 0x1848]
lea rax, [0x1401162a4]
test r14, r14
mov rdx, r13
cmovne rdx, rax
call fcn.140039e10
mov rax, qword [rdi + 0x1848]
mov edx, 0x4b
mov dword [rax + 0x54], 0x40
mov rax, qword [rdi + 0x1848]
mov dword [rax + 0x4c], edx
jmp 0x14009084f
test rsi, rsi
je 0x140090812
mov ecx, dword [rsi + 8]
test ecx, ecx
jle 0x1400907c2
mov r9d, dword [rsi + 0xc]
test r9d, r9d
jle 0x1400907c2
cmp dword [rsi + 0x10], r13d
jl 0x1400907c2
cmp dword [rsi + 0x18], r13d
jle 0x1400907c2
mov rax, qword [rdi + 0x1848]
mov r10d, dword [rax + 0x28]
mov r8d, dword [rax + 0x2c]
sub r10d, 0x14
sub r8d, 0x14
cmp ecx, r10d
jg 0x14009075c
cmp r9d, r8d
jg 0x14009075c
mov qword [rax + 0x38], rsi
jmp 0x1400907a1
mov eax, r9d
imul eax, r10d
cdq
idiv ecx
mov r11d, eax
cmp eax, r8d
jle 0x14009077e
imul ecx, r8d
mov r11d, r8d
mov eax, ecx
cdq
idiv r9d
mov r10d, eax
mov r9, qword [rsi]
mov r8d, r11d
mov edx, r10d
mov rcx, rsi
call qword [r9 + 0x18]
mov rcx, qword [rdi + 0x1848]
mov qword [rcx + 0x38], rax
mov rcx, rsi
mov rax, qword [rsi]
call qword [rax]
mov rax, qword [rdi + 0x1848]
xor edx, edx
mov dword [rax + 0x54], 0x40
mov rcx, qword [rdi + 0x1848]
call fcn.140039e10
jmp 0x14009085a
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
mov rcx, qword [rdi + 0x1848]
lea rdx, [0x14011d680]
call fcn.140039e10
mov rax, qword [rdi + 0x1848]
mov dword [rax + 0x54], 0x40
mov rax, qword [rdi + 0x1848]
mov dword [rax + 0x4c], 0x46
mov rax, qword [rdi + 0x1848]
mov dword [rax + 0x48], r13d
mov rcx, qword [rdi + 0x1848]
call fcn.140044980
jmp 0x14009085a
test r15, r15
je 0x14009085a
mov rcx, qword [rdi + 0x1848]
mov rdx, r15
call fcn.140039e10
mov rax, qword [rdi + 0x1848]
mov ecx, 0xc
mov edx, 0x4b
mov dword [rax + 0x54], 0x40
cmp byte [r15], 0x40
mov rax, qword [rdi + 0x1848]
cmove ecx, edx
mov dword [rax + 0x4c], ecx
mov rax, qword [rdi + 0x1848]
mov dword [rax + 0x48], r13d
mov rcx, qword [rdi + 0x1848]
call fcn.140044980
mov r14, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.1400fbfe0
add rsp, 0x70
pop r15
pop r13
pop r12
pop rdi
pop rsi
ret