Function at 0x14002be30
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rbx, rcx
cmp byte [rcx + 0x5c], 0
je 0x14002be51
mov ebp, dword [rbx + 0x58]
jmp 0x14002c3eb
mov rsi, qword [rbx + 0x10]
mov r12, qword [rbx + 0x18]
cmp rsi, r12
je 0x14002bf9b
mov edi, 1
mov r14, rsi
mov rcx, qword [r14]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add rdi, rax
inc rdi
add r14, 8
cmp r14, r12
jne 0x14002be6a
mov rcx, rdi
call fcn.140056c40
mov r14, rax
mov rcx, rax
xor edx, edx
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
mov qword [rsp + 0x40], r14
mov rdi, r14
mov r14, rsi
mov rdx, qword [r14]
mov rcx, rdi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcpy
mov rcx, qword [r14]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add rdi, rax
inc rdi
add r14, 8
cmp r14, r12
jne 0x14002bea4
mov byte [rdi], 0
sub r12, rsi
mov rsi, r12
sar rsi, 3
mov rcx, r12
add rcx, 8
mov rax, 0xffffffffffffffff
cmovb rcx, rax
movabs r14, 0x100000000
test r12, r12
cmovs rcx, rax
call fcn.140056c40
mov qword [rax], rsi
mov qword [rsp + 0x60], rax
mov rcx, rax
add rcx, 8
mov r8, r12
and r8, 0xfffffffffffffff8
mov qword [rsp + 0x50], rcx
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov rcx, qword [rbx]
mov rsi, qword [rbx + 8]
lea rdx, [0x1400a41a2]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__wfopen]
test rax, rax
je 0x14002bfb0
mov r15, rax
mov qword [rsp + 0x48], rsi
mov rcx, rax
xor edx, edx
mov r8d, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
mov ebp, 6
test eax, eax
jne 0x14002c248
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
test eax, eax
jle 0x14002c248
mov r13d, eax
lea rcx, [r13 + 1]
call fcn.140056c40
mov rsi, rax
mov rcx, r15
xor edx, edx
xor r8d, r8d
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
mov ebp, 6
test eax, eax
je 0x14002bfc2
mov rcx, rsi
jmp 0x14002c239
movabs rax, 0x100000000
mov qword [rbx + 0x58], rax
xor ebp, ebp
jmp 0x14002c3eb
add r14, 6
mov qword [rbx + 0x58], r14
mov ebp, 6
jmp 0x14002c3ac
mov edx, 1
mov rcx, rsi
mov r8, r13
mov r9, r15
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
cmp rax, r13
mov rcx, rsi
jne 0x14002c239
shr r12, 3
mov byte [rcx + r13], 0
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x3c], 0
mov qword [rsp + 0x58], rcx
mov rbp, rcx
mov rax, rbp
movzx ecx, byte [rbp]
cmp ecx, 0xa
je 0x14002c040
cmp ecx, 0xd
je 0x14002c040
test ecx, ecx
je 0x14002c227
lea r13, [rax + 1]
mov rbp, r13
mov edx, ecx
cmp dl, 0xa
je 0x14002c048
movzx edx, dl
cmp edx, 0xd
je 0x14002c048
mov dl, byte [rbp]
inc rbp
test dl, dl
jne 0x14002c025
xor ebp, ebp
jmp 0x14002c04e
inc rax
mov rbp, rax
jmp 0x14002c003
mov byte [rbp - 1], 0
mov cl, byte [rax]
cmp cl, 0x23
je 0x14002c1c7
movzx edx, cl
cmp edx, 0x3b
je 0x14002c1c7
lea rdx, [rax + 2]
add rax, 3
movzx r8d, cl
cmp r8d, 0x1f
jg 0x14002c07d
cmp r8d, 9
je 0x14002c083
jmp 0x14002c092
cmp r8d, 0x20
jne 0x14002c09d
mov cl, byte [r13]
inc r13
inc rdx
inc rax
jmp 0x14002c06b
test r8d, r8d
je 0x14002c1c7
jmp 0x14002c0bb
cmp r8d, 0x5b
jne 0x14002c0bb
mov rcx, r13
movzx r8d, byte [rcx]
cmp r8d, 0x5d
jne 0x14002c0dd
inc rcx
inc rdx
inc rax
jmp 0x14002c0a6
cmp byte [rsp + 0x38], 0
je 0x14002c1c7
lea rdi, [r13 - 1]
mov rax, rdi
cmp cl, 0x3d
jne 0x14002c109
mov cl, byte [rax + 1]
inc rax
inc r13
jmp 0x14002c0cd
test r8d, r8d
jne 0x14002c0ef
mov dword [rsp + 0x38], 0
jmp 0x14002c1c7
cmp r8b, 0x5d
je 0x14002c129
mov r8b, byte [rcx + 1]
inc rcx
inc rdx
inc rax
test r8b, r8b
jne 0x14002c0ef
jmp 0x14002c145
movzx eax, cl
test eax, eax
je 0x14002c1c7
cmp cl, 0x3d
je 0x14002c184
mov cl, byte [r13]
inc r13
test cl, cl
jne 0x14002c114
xor r13d, r13d
jmp 0x14002c189
mov byte [rcx], 0
movzx ecx, byte [rdx]
cmp ecx, 9
je 0x14002c139
cmp ecx, 0x20
jne 0x14002c141
inc rdx
inc rax
jmp 0x14002c12c
test ecx, ecx
jne 0x14002c169
mov rdx, qword [rsp + 0x48]
mov rcx, r13
test rdx, rdx
jne 0x14002c159
lea rdx, [0x1400a18a3]
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
sete al
mov dword [rsp + 0x38], eax
jmp 0x14002c1c7
cmp cl, 9
je 0x14002c1d2
movzx ecx, cl
cmp ecx, 0x20
je 0x14002c1d2
mov cl, byte [rax]
inc rax
test cl, cl
jne 0x14002c169
jmp 0x14002c0e2
mov byte [r13 - 1], 0
mov rax, qword [rsp + 0x40]
cmp byte [rax], 0
je 0x14002c1c7
xor r14d, r14d
mov rsi, qword [rsp + 0x40]
mov rcx, rdi
mov rdx, rsi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
je 0x14002c1c2
mov rcx, rsi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add rsi, rax
inc rsi
inc r14
cmp byte [rsi], 0
jne 0x14002c19b
jmp 0x14002c1c7
cmp r14d, r12d
jb 0x14002c1db
test rbp, rbp
jne 0x14002c003
jmp 0x14002c227
mov byte [rax - 1], 0
jmp 0x14002c0e2
mov rcx, r13
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
lea rdi, [rax + 1]
mov rcx, rdi
call fcn.140056c40
mov rsi, rax
mov rcx, rax
xor edx, edx
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
mov rax, qword [rsp + 0x50]
mov rcx, qword [rax + r14*8]
mov qword [rax + r14*8], rsi
test rcx, rcx
je 0x14002c216
call fcn.140056c84
mov rcx, rsi
mov rdx, r13
call sub.api_ms_win_crt_string_l1_1_0.dll_strcpy
inc dword [rsp + 0x3c]
jmp 0x14002c1c7
xor eax, eax
cmp dword [rsp + 0x3c], r12d
setne al
lea ebp, [rax + rax*4]
mov rcx, qword [rsp + 0x58]
call fcn.140056c84
movabs r14, 0x100000000
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov eax, ebp
or rax, r14
mov qword [rbx + 0x58], rax
test ebp, ebp
jne 0x14002c3ac
mov r14, qword [rbx + 0x28]
mov r12, qword [rbx + 0x30]
cmp r14, r12
je 0x14002c2cf
mov rax, qword [r14]
mov rcx, qword [rsp + 0x50]
mov r15, qword [rcx + rax*8]
test r15, r15
je 0x14002c2c9
mov rbp, qword [r14 + 8]
mov rcx, r15
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
lea r13, [rax + 1]
mov rcx, r13
call fcn.140056c40
mov rsi, rax
mov rcx, rax
xor edx, edx
mov r8, r13
call sub.VCRUNTIME140.dll_memset
mov rcx, qword [rbp]
mov qword [rbp], rsi
test rcx, rcx
je 0x14002c2be
call fcn.140056c84
mov rsi, qword [rbp]
mov rcx, rsi
mov rdx, r15
call sub.api_ms_win_crt_string_l1_1_0.dll_strcpy
add r14, 0x10
jmp 0x14002c26a
mov r12, qword [rbx + 0x40]
mov rax, qword [rbx + 0x48]
mov qword [rsp + 0x48], rax
cmp r12, rax
je 0x14002c3aa
mov rsi, qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor ebp, ebp
mov rax, qword [r12]
mov rcx, qword [rsp + 0x50]
mov rbx, qword [rcx + rax*8]
test rbx, rbx
je 0x14002c399
mov r14, qword [r12 + 8]
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov ecx, 0xfde9
xor edx, edx
mov r8, rbx
mov r9d, 0xffffffff
mov rdi, rsi
call rsi
mov r15d, eax
mov r13d, eax
add r13, r13
test eax, eax
mov rax, 0xffffffffffffffff
cmovs r13, rax
mov rcx, r13
call fcn.140056c40
mov rsi, rax
mov rcx, rax
xor edx, edx
mov r8, r13
call sub.VCRUNTIME140.dll_memset
mov rcx, qword [r14]
mov qword [r14], rsi
test rcx, rcx
je 0x14002c370
call fcn.140056c84
mov rsi, qword [r14]
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], rsi
mov ecx, 0xfde9
xor edx, edx
mov r8, rbx
mov r9d, 0xffffffff
mov rsi, rdi
call rdi
test eax, eax
mov eax, 0x10
cmovle ebp, eax
add r12, 0x10
cmp r12, qword [rsp + 0x48]
jne 0x14002c2ee
jmp 0x14002c3ac
xor ebp, ebp
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rdi]
test rsi, rsi
je 0x14002c3d9
shl rsi, 3
mov rcx, qword [rdi + rsi]
mov qword [rdi + rsi], 0
test rcx, rcx
je 0x14002c3d3
call fcn.140056c84
add rsi, 0xfffffffffffffff8
jne 0x14002c3bd
mov rcx, rdi
call fcn.140056c84
mov rcx, qword [rsp + 0x40]
call fcn.140056c84
mov eax, ebp
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret