Function at 0x14002aed0
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 0x14002aef1
mov ebp, dword [rbx + 0x58]
jmp 0x14002b48a
mov rsi, qword [rbx + 0x10]
mov r12, qword [rbx + 0x18]
movabs r15, 0x100000000
cmp rsi, r12
je 0x14002b2a1
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 0x14002af14
mov rcx, rdi
call fcn.140055a0c
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 0x14002af4e
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.140055a0c
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, [0x1400a44fc]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__wfopen]
test rax, rax
je 0x14002b2ac
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 0x14002b2e7
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
test eax, eax
jle 0x14002b2e7
mov qword [rsp + 0x58], r14
mov r13d, eax
lea rcx, [r13 + 1]
call fcn.140055a0c
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 0x14002b2d0
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 0x14002b2d0
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 0x14002b0be
cmp ecx, 0xd
je 0x14002b0be
test ecx, ecx
je 0x14002b2be
lea r15, [rax + 1]
mov r13, r15
mov edx, ecx
cmp dl, 0xa
je 0x14002b0c6
movzx edx, dl
cmp edx, 0xd
je 0x14002b0c6
mov dl, byte [r13]
inc r13
test dl, dl
jne 0x14002b0a1
xor r13d, r13d
jmp 0x14002b0cd
inc rax
mov r13, rax
jmp 0x14002b07e
mov byte [r13 - 1], 0
mov cl, byte [rax]
cmp cl, 0x23
je 0x14002b23c
movzx edx, cl
cmp edx, 0x3b
je 0x14002b23c
lea r8, [rax + 2]
lea r9, [rax + 3]
movzx edx, cl
cmp edx, 0x1f
jg 0x14002b0f9
cmp edx, 9
je 0x14002b0fe
jmp 0x14002b10f
cmp edx, 0x20
jne 0x14002b119
mov cl, byte [r15]
inc r15
inc rax
inc r8
inc r9
jmp 0x14002b0ea
test edx, edx
je 0x14002b23c
jmp 0x14002b164
cmp edx, 0x5b
jne 0x14002b164
mov rdx, r8
mov rcx, r9
movzx r10d, byte [rax + 1]
inc rax
inc r8
inc r9
cmp r10d, 0x5d
je 0x14002b11e
test r10d, r10d
jne 0x14002b14a
mov dword [rsp + 0x30], 0
jmp 0x14002b23c
cmp r10b, 0x5d
je 0x14002b1a0
mov r10b, byte [rax + 1]
inc rax
inc rdx
inc rcx
test r10b, r10b
jne 0x14002b14a
jmp 0x14002b1bc
cmp byte [rsp + 0x30], 0
je 0x14002b23c
dec r15
mov rbp, r15
cmp cl, 0x3d
jne 0x14002b182
mov cl, byte [rbp + 1]
inc rbp
jmp 0x14002b175
test cl, cl
je 0x14002b23c
inc rbp
cmp cl, 0x3d
je 0x14002b1fa
mov cl, byte [rbp]
inc rbp
test cl, cl
jne 0x14002b18d
xor ebp, ebp
jmp 0x14002b1fe
mov byte [rax], 0
movzx eax, byte [rdx]
cmp eax, 9
je 0x14002b1b0
cmp eax, 0x20
jne 0x14002b1b8
inc rdx
inc rcx
jmp 0x14002b1a3
test eax, eax
jne 0x14002b1e0
mov rdx, qword [rsp + 0x58]
mov rcx, r15
test rdx, rdx
jne 0x14002b1d0
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 0x14002b23c
cmp al, 9
je 0x14002b247
movzx eax, al
cmp eax, 0x20
je 0x14002b247
mov al, byte [rcx]
inc rcx
test al, al
jne 0x14002b1e0
jmp 0x14002b13d
mov byte [rbp - 1], 0
mov rax, qword [rsp + 0x38]
cmp byte [rax], 0
je 0x14002b23c
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 0x14002b237
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 0x14002b210
jmp 0x14002b23c
cmp r14d, r12d
jb 0x14002b250
test r13, r13
jne 0x14002b07e
jmp 0x14002b2be
mov byte [rcx - 1], 0
jmp 0x14002b13d
mov rcx, rbp
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
lea r15, [rax + 1]
mov rcx, r15
call fcn.140055a0c
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 0x14002b28b
call fcn.140055a14
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 0x14002b1da
mov qword [rbx + 0x58], r15
xor ebp, ebp
jmp 0x14002b48a
add r15, 6
mov qword [rbx + 0x58], r15
mov ebp, 6
jmp 0x14002b44b
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.140055a14
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 0x14002b44b
mov r14, qword [rbx + 0x28]
mov r12, qword [rbx + 0x30]
cmp r14, r12
je 0x14002b36e
mov rax, qword [r14]
mov rcx, qword [rsp + 0x48]
mov r15, qword [rcx + rax*8]
test r15, r15
je 0x14002b368
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.140055a0c
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 0x14002b35d
call fcn.140055a14
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 0x14002b309
mov r12, qword [rbx + 0x40]
mov rax, qword [rbx + 0x48]
mov qword [rsp + 0x40], rax
cmp r12, rax
je 0x14002b449
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 0x14002b438
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.140055a0c
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 0x14002b40f
call fcn.140055a14
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 0x14002b38d
jmp 0x14002b44b
xor ebp, ebp
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rdi]
test rsi, rsi
je 0x14002b478
shl rsi, 3
mov rcx, qword [rdi + rsi]
mov qword [rdi + rsi], 0
test rcx, rcx
je 0x14002b472
call fcn.140055a14
add rsi, 0xfffffffffffffff8
jne 0x14002b45c
mov rcx, rdi
call fcn.140055a14
mov rcx, qword [rsp + 0x38]
call fcn.140055a14
mov eax, ebp
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret