Function at 0x14002af50
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 0x14002af71
mov ebp, dword [rbx + 0x58]
jmp 0x14002b50a
mov rsi, qword [rbx + 0x10]
mov r12, qword [rbx + 0x18]
movabs r15, 0x100000000
cmp rsi, r12
je 0x14002b321
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 0x14002af94
mov rcx, rdi
call fcn.140055adc
mov r14, rax
mov rcx, rax
xor edx, edx
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
mov qword [rsp + 0x38], 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 0x14002afce
sub r12, rsi
mov rsi, r12
sar rsi, 3
mov rcx, r12
add rcx, 8
mov rax, 0xffffffffffffffff
cmovb rcx, rax
mov byte [rdi], 0
test r12, r12
cmovs rcx, rax
call fcn.140055adc
mov qword [rax], rsi
mov qword [rsp + 0x60], rax
mov rcx, rax
add rcx, 8
mov r8, r12
and r8, 0xfffffffffffffff8
mov qword [rsp + 0x48], rcx
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov rcx, qword [rbx]
mov r14, qword [rbx + 8]
lea rdx, [0x1400a44f8]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__wfopen]
test rax, rax
je 0x14002b32c
mov rsi, rax
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 0x14002b367
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
test eax, eax
jle 0x14002b367
mov qword [rsp + 0x58], r14
mov r13d, eax
lea rcx, [r13 + 1]
call fcn.140055adc
mov r14, rax
mov rcx, rsi
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
mov qword [rsp + 0x40], rsi
jne 0x14002b350
mov edx, 1
mov rcx, r14
mov r8, r13
mov r9, rsi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
cmp rax, r13
jne 0x14002b350
shr r12, 3
mov byte [r14 + r13], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x34], 0
mov qword [rsp + 0x50], r14
mov r13, r14
mov rax, r13
movzx ecx, byte [r13]
cmp ecx, 0xa
je 0x14002b13e
cmp ecx, 0xd
je 0x14002b13e
test ecx, ecx
je 0x14002b33e
lea r15, [rax + 1]
mov r13, r15
mov edx, ecx
cmp dl, 0xa
je 0x14002b146
movzx edx, dl
cmp edx, 0xd
je 0x14002b146
mov dl, byte [r13]
inc r13
test dl, dl
jne 0x14002b121
xor r13d, r13d
jmp 0x14002b14d
inc rax
mov r13, rax
jmp 0x14002b0fe
mov byte [r13 - 1], 0
mov cl, byte [rax]
cmp cl, 0x23
je 0x14002b2bc
movzx edx, cl
cmp edx, 0x3b
je 0x14002b2bc
lea r8, [rax + 2]
lea r9, [rax + 3]
movzx edx, cl
cmp edx, 0x1f
jg 0x14002b179
cmp edx, 9
je 0x14002b17e
jmp 0x14002b18f
cmp edx, 0x20
jne 0x14002b199
mov cl, byte [r15]
inc r15
inc rax
inc r8
inc r9
jmp 0x14002b16a
test edx, edx
je 0x14002b2bc
jmp 0x14002b1e4
cmp edx, 0x5b
jne 0x14002b1e4
mov rdx, r8
mov rcx, r9
movzx r10d, byte [rax + 1]
inc rax
inc r8
inc r9
cmp r10d, 0x5d
je 0x14002b19e
test r10d, r10d
jne 0x14002b1ca
mov dword [rsp + 0x30], 0
jmp 0x14002b2bc
cmp r10b, 0x5d
je 0x14002b220
mov r10b, byte [rax + 1]
inc rax
inc rdx
inc rcx
test r10b, r10b
jne 0x14002b1ca
jmp 0x14002b23c
cmp byte [rsp + 0x30], 0
je 0x14002b2bc
dec r15
mov rbp, r15
cmp cl, 0x3d
jne 0x14002b202
mov cl, byte [rbp + 1]
inc rbp
jmp 0x14002b1f5
test cl, cl
je 0x14002b2bc
inc rbp
cmp cl, 0x3d
je 0x14002b27a
mov cl, byte [rbp]
inc rbp
test cl, cl
jne 0x14002b20d
xor ebp, ebp
jmp 0x14002b27e
mov byte [rax], 0
movzx eax, byte [rdx]
cmp eax, 9
je 0x14002b230
cmp eax, 0x20
jne 0x14002b238
inc rdx
inc rcx
jmp 0x14002b223
test eax, eax
jne 0x14002b260
mov rdx, qword [rsp + 0x58]
mov rcx, r15
test rdx, rdx
jne 0x14002b250
lea rdx, [0x1400a1a83]
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
sete al
mov dword [rsp + 0x30], eax
jmp 0x14002b2bc
cmp al, 9
je 0x14002b2c7
movzx eax, al
cmp eax, 0x20
je 0x14002b2c7
mov al, byte [rcx]
inc rcx
test al, al
jne 0x14002b260
jmp 0x14002b1bd
mov byte [rbp - 1], 0
mov rax, qword [rsp + 0x38]
cmp byte [rax], 0
je 0x14002b2bc
xor r14d, r14d
mov rsi, qword [rsp + 0x38]
mov rcx, r15
mov rdx, rsi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
je 0x14002b2b7
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 0x14002b290
jmp 0x14002b2bc
cmp r14d, r12d
jb 0x14002b2d0
test r13, r13
jne 0x14002b0fe
jmp 0x14002b33e
mov byte [rcx - 1], 0
jmp 0x14002b1bd
mov rcx, rbp
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
lea r15, [rax + 1]
mov rcx, r15
call fcn.140055adc
mov rsi, rax
mov rcx, rax
xor edx, edx
mov r8, r15
call sub.VCRUNTIME140.dll_memset
mov rax, qword [rsp + 0x48]
mov rcx, qword [rax + r14*8]
mov qword [rax + r14*8], rsi
test rcx, rcx
je 0x14002b30b
call fcn.140055ae4
mov rcx, rsi
mov rdx, rbp
call sub.api_ms_win_crt_string_l1_1_0.dll_strcpy
inc dword [rsp + 0x34]
mov al, 1
jmp 0x14002b25a
mov qword [rbx + 0x58], r15
xor ebp, ebp
jmp 0x14002b50a
add r15, 6
mov qword [rbx + 0x58], r15
mov ebp, 6
jmp 0x14002b4cb
xor eax, eax
cmp dword [rsp + 0x34], r12d
setne al
lea ebp, [rax + rax*4]
mov r14, qword [rsp + 0x50]
mov rcx, r14
call fcn.140055ae4
movabs r15, 0x100000000
mov rsi, qword [rsp + 0x40]
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov eax, ebp
or rax, r15
mov qword [rbx + 0x58], rax
test ebp, ebp
jne 0x14002b4cb
mov r14, qword [rbx + 0x28]
mov r12, qword [rbx + 0x30]
cmp r14, r12
je 0x14002b3ee
mov rax, qword [r14]
mov rcx, qword [rsp + 0x48]
mov r15, qword [rcx + rax*8]
test r15, r15
je 0x14002b3e8
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.140055adc
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 0x14002b3dd
call fcn.140055ae4
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 0x14002b389
mov r12, qword [rbx + 0x40]
mov rax, qword [rbx + 0x48]
mov qword [rsp + 0x40], rax
cmp r12, rax
je 0x14002b4c9
mov rsi, qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor ebp, ebp
mov rax, qword [r12]
mov rcx, qword [rsp + 0x48]
mov rbx, qword [rcx + rax*8]
test rbx, rbx
je 0x14002b4b8
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.140055adc
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 0x14002b48f
call fcn.140055ae4
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 + 0x40]
jne 0x14002b40d
jmp 0x14002b4cb
xor ebp, ebp
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rdi]
test rsi, rsi
je 0x14002b4f8
shl rsi, 3
mov rcx, qword [rdi + rsi]
mov qword [rdi + rsi], 0
test rcx, rcx
je 0x14002b4f2
call fcn.140055ae4
add rsi, 0xfffffffffffffff8
jne 0x14002b4dc
mov rcx, rdi
call fcn.140055ae4
mov rcx, qword [rsp + 0x38]
call fcn.140055ae4
mov eax, ebp
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret