Function at 0x14002bd40
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 0x14002bd61
mov ebp, dword [rbx + 0x58]
jmp 0x14002c2fb
mov rsi, qword [rbx + 0x10]
mov r12, qword [rbx + 0x18]
cmp rsi, r12
je 0x14002beab
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 0x14002bd7a
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 0x14002bdb4
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, [0x1400a41a0]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__wfopen]
test rax, rax
je 0x14002bec0
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 0x14002c158
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
test eax, eax
jle 0x14002c158
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 0x14002bed2
mov rcx, rsi
jmp 0x14002c149
movabs rax, 0x100000000
mov qword [rbx + 0x58], rax
xor ebp, ebp
jmp 0x14002c2fb
add r14, 6
mov qword [rbx + 0x58], r14
mov ebp, 6
jmp 0x14002c2bc
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 0x14002c149
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 0x14002bf50
cmp ecx, 0xd
je 0x14002bf50
test ecx, ecx
je 0x14002c137
lea r13, [rax + 1]
mov rbp, r13
mov edx, ecx
cmp dl, 0xa
je 0x14002bf58
movzx edx, dl
cmp edx, 0xd
je 0x14002bf58
mov dl, byte [rbp]
inc rbp
test dl, dl
jne 0x14002bf35
xor ebp, ebp
jmp 0x14002bf5e
inc rax
mov rbp, rax
jmp 0x14002bf13
mov byte [rbp - 1], 0
mov cl, byte [rax]
cmp cl, 0x23
je 0x14002c0d7
movzx edx, cl
cmp edx, 0x3b
je 0x14002c0d7
lea rdx, [rax + 2]
add rax, 3
movzx r8d, cl
cmp r8d, 0x1f
jg 0x14002bf8d
cmp r8d, 9
je 0x14002bf93
jmp 0x14002bfa2
cmp r8d, 0x20
jne 0x14002bfad
mov cl, byte [r13]
inc r13
inc rdx
inc rax
jmp 0x14002bf7b
test r8d, r8d
je 0x14002c0d7
jmp 0x14002bfcb
cmp r8d, 0x5b
jne 0x14002bfcb
mov rcx, r13
movzx r8d, byte [rcx]
cmp r8d, 0x5d
jne 0x14002bfed
inc rcx
inc rdx
inc rax
jmp 0x14002bfb6
cmp byte [rsp + 0x38], 0
je 0x14002c0d7
lea rdi, [r13 - 1]
mov rax, rdi
cmp cl, 0x3d
jne 0x14002c019
mov cl, byte [rax + 1]
inc rax
inc r13
jmp 0x14002bfdd
test r8d, r8d
jne 0x14002bfff
mov dword [rsp + 0x38], 0
jmp 0x14002c0d7
cmp r8b, 0x5d
je 0x14002c039
mov r8b, byte [rcx + 1]
inc rcx
inc rdx
inc rax
test r8b, r8b
jne 0x14002bfff
jmp 0x14002c055
movzx eax, cl
test eax, eax
je 0x14002c0d7
cmp cl, 0x3d
je 0x14002c094
mov cl, byte [r13]
inc r13
test cl, cl
jne 0x14002c024
xor r13d, r13d
jmp 0x14002c099
mov byte [rcx], 0
movzx ecx, byte [rdx]
cmp ecx, 9
je 0x14002c049
cmp ecx, 0x20
jne 0x14002c051
inc rdx
inc rax
jmp 0x14002c03c
test ecx, ecx
jne 0x14002c079
mov rdx, qword [rsp + 0x48]
mov rcx, r13
test rdx, rdx
jne 0x14002c069
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 0x14002c0d7
cmp cl, 9
je 0x14002c0e2
movzx ecx, cl
cmp ecx, 0x20
je 0x14002c0e2
mov cl, byte [rax]
inc rax
test cl, cl
jne 0x14002c079
jmp 0x14002bff2
mov byte [r13 - 1], 0
mov rax, qword [rsp + 0x40]
cmp byte [rax], 0
je 0x14002c0d7
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 0x14002c0d2
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 0x14002c0ab
jmp 0x14002c0d7
cmp r14d, r12d
jb 0x14002c0eb
test rbp, rbp
jne 0x14002bf13
jmp 0x14002c137
mov byte [rax - 1], 0
jmp 0x14002bff2
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 0x14002c126
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 0x14002c0d7
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 0x14002c2bc
mov r14, qword [rbx + 0x28]
mov r12, qword [rbx + 0x30]
cmp r14, r12
je 0x14002c1df
mov rax, qword [r14]
mov rcx, qword [rsp + 0x50]
mov r15, qword [rcx + rax*8]
test r15, r15
je 0x14002c1d9
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 0x14002c1ce
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 0x14002c17a
mov r12, qword [rbx + 0x40]
mov rax, qword [rbx + 0x48]
mov qword [rsp + 0x48], rax
cmp r12, rax
je 0x14002c2ba
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 0x14002c2a9
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 0x14002c280
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 0x14002c1fe
jmp 0x14002c2bc
xor ebp, ebp
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rdi]
test rsi, rsi
je 0x14002c2e9
shl rsi, 3
mov rcx, qword [rdi + rsi]
mov qword [rdi + rsi], 0
test rcx, rcx
je 0x14002c2e3
call fcn.140056c84
add rsi, 0xfffffffffffffff8
jne 0x14002c2cd
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