Function at 0x140007b0c
Capabilities:
Check if file exists
Get file attributes
Read file on windows

Disassembly:
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0xa0
lea rbp, [rsp + 0x40]
mov qword [rbp + 0x90], rbx
mov qword [rbp + 0x98], rsi
mov qword [rbp + 0xa0], rdi
mov rax, qword [0x14114d3f0]
xor rax, rbp
mov qword [rbp + 0x50], rax
mov ebx, r8d
mov r14, rdx
mov r13, rcx
xor edi, edi
mov r12d, edi
mov qword [rbp + 0x30], rdi
mov eax, 0x100
mov dword [rbp + 0xc], eax
mov ecx, eax
call fcn.14001d34c
mov rsi, rax
mov qword [rbp + 0x28], rax
mov r15d, edi
mov dword [rbp + 0x14], edi
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [rbp + 0x20], eax
cmp eax, 0xffffffff
je 0x140007ece
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x8000080
mov dword [rsp + 0x20], 3
xor r9d, r9d
lea edi, [r12 + 1]
mov r8d, edi
mov edx, 0x80000000
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r12, rax
mov qword [rbp + 0x30], rax
cmp rax, 0xffffffffffffffff
je 0x140007ed9
xor ecx, ecx
mov r15d, ecx
mov dword [rbp + 0x10], ecx
mov eax, 0x8000
call fcn.1401d87f0
sub rsp, rax
lea r14, [rsp + 0x40]
mov qword [rbp + 0x40], r14
mov qword [rsp + 0x20], rcx
lea r9, [rbp]
mov r8d, eax
mov rdx, r14
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_ReadFile]
xor r8d, r8d
test eax, eax
je 0x140007ed5
cmp ebx, 0xffffffff
jne 0x140007c59
mov ecx, r8d
mov r9b, 0xa
mov edx, dword [rbp]
mov dword [rbp + 0x18], ecx
cmp ecx, edx
jae 0x140007c30
mov eax, ecx
cmp byte [rax + r14], 0xd
je 0x140007c30
cmp byte [rax + r14], r9b
je 0x140007c30
add ecx, edi
jmp 0x140007c16
cmp r8d, edx
jne 0x140007c3a
mov ebx, r8d
jmp 0x140007c59
cmp byte [r14], r9b
jne 0x140007c43
mov ebx, edi
jmp 0x140007c59
lea eax, [rdx - 1]
cmp r8d, eax
jae 0x140007c54
cmp byte [r14 + 1], r9b
mov ebx, r8d
je 0x140007c59
mov ebx, 2
mov dword [r13 + 0x4c], ebx
movsxd rax, ebx
lea rcx, section..data
mov rax, qword [rcx + rax*8]
mov qword [rbp + 0x48], rax
lea rcx, [r13 + 0x58]
xor edx, edx
mov r8d, 0x1000
call fcn.140008a30
xor ebx, ebx
mov ecx, ebx
mov dword [rbp + 8], ebx
mov r14d, ebx
mov dword [rbp + 4], ebx
mov edx, dword [rbp]
cmp ecx, edx
jae 0x140007dfa
mov eax, ecx
mov r10, qword [rbp + 0x40]
movsx ebx, byte [rax + r10]
mov dword [rbp + 0x1c], ebx
add ecx, edi
mov dword [rbp + 8], ecx
cmp ecx, edx
jne 0x140007cde
cmp edx, 0x8000
jne 0x140007cde
xor ecx, ecx
mov qword [rsp + 0x20], rcx
lea r9, [rbp]
mov r8d, edx
mov rdx, r10
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_ReadFile]
xor ecx, ecx
test eax, eax
je 0x140007ed5
mov dword [rbp + 8], ecx
movsxd rax, r15d
mov byte [rax + rsi], bl
add r15d, edi
mov dword [rbp + 0x10], r15d
mov eax, dword [rbp + 0xc]
cmp r15d, eax
jne 0x140007d2c
add eax, 0x100
mov dword [rbp + 0xc], eax
mov dword [rbp + 0x38], eax
movsxd rcx, eax
call fcn.14001d34c
mov rbx, rax
movsxd r8, r15d
mov rdx, rsi
mov rcx, rax
call fcn.1401d9ab0
mov rdx, rdi
mov rcx, rsi
call fcn.14001f500
mov rsi, rbx
mov qword [rbp + 0x28], rbx
mov ebx, dword [rbp + 0x1c]
movsxd rax, r14d
mov rcx, qword [rbp + 0x48]
cmp bl, byte [rax + rcx]
jne 0x140007dea
add r14d, edi
mov dword [rbp + 4], r14d
movsxd rax, r14d
xor ebx, ebx
cmp byte [rax + rcx], bl
jne 0x140007df2
sub r15d, r14d
movsxd rax, r15d
mov byte [rax + rsi], bl
test rsi, rsi
je 0x140007dd0
mov rcx, rsi
call fcn.1401dd880
lea edx, [rdi + rax]
cmp edx, 0x3fffffff
jg 0x140007dd0
movsxd rax, edx
add rax, rax
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x140007d8b
movabs rcx, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1401d87f0
sub rsp, rcx
lea rbx, [rsp + 0x40]
xor eax, eax
test rbx, rbx
je 0x140007dd0
mov word [rbx], ax
mov dword [rsp + 0x28], edx
mov qword [rsp + 0x20], rbx
or r9d, 0xffffffff
mov r8, rsi
xor edx, edx
lea ecx, [rax + 3]
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
neg eax
sbb rdx, rdx
and rdx, rbx
xor ebx, ebx
jmp 0x140007dd3
mov rdx, rbx
or r9d, 0xffffffff
or r8d, r9d
mov rcx, r13
call fcn.14000747c
mov r15d, ebx
mov dword [rbp + 0x10], ebx
jmp 0x140007dec
xor ebx, ebx
mov dword [rbp + 4], ebx
mov r14d, ebx
mov ecx, dword [rbp + 8]
jmp 0x140007c8d
movsxd rax, r15d
mov byte [rax + rsi], bl
test rsi, rsi
je 0x140007e76
mov rcx, rsi
call fcn.1401dd880
lea edx, [rdi + rax]
cmp edx, 0x3fffffff
jg 0x140007e76
movsxd rax, edx
add rax, rax
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x140007e31
movabs rcx, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1401d87f0
sub rsp, rcx
lea rbx, [rsp + 0x40]
xor eax, eax
test rbx, rbx
je 0x140007e76
mov word [rbx], ax
mov dword [rsp + 0x28], edx
mov qword [rsp + 0x20], rbx
or r9d, 0xffffffff
mov r8, rsi
xor edx, edx
lea ecx, [rax + 3]
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
neg eax
sbb rdx, rdx
and rdx, rbx
xor ebx, ebx
jmp 0x140007e79
mov rdx, rbx
or r9d, 0xffffffff
or r8d, r9d
mov rcx, r13
call fcn.14000747c
mov dword [r13 + 0x40], edi
mov eax, dword [rbp + 0x20]
and eax, edi
mov dword [r13 + 0x44], eax
mov dword [r13 + 0x48], ebx
and qword [r13 + 0xb0], 0
mov dword [r13 + 0x54], 0x80000
and qword [r13 + 0xa8], 0
mov r15d, edi
or dword [rsp + 0x20], 0xffffffff
mov r9d, 0x1000
xor r8d, r8d
xor edx, edx
mov rcx, r13
call fcn.1400090dc
jmp 0x140007ed9
mov edi, 1
jmp 0x140007ed9
mov r15d, dword [rbp + 0x14]
test rsi, rsi
je 0x140007ee9
mov rdx, rdi
mov rcx, rsi
call fcn.14001f500
test r12, r12
je 0x140007ef7
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, r15d
mov rcx, qword [rbp + 0x50]
xor rcx, rbp
call fcn.1401d8860
mov rbx, qword [rbp + 0x90]
mov rsi, qword [rbp + 0x98]
mov rdi, qword [rbp + 0xa0]
lea rsp, [rbp + 0x60]
pop r15
pop r14
pop r13
pop r12
pop rbp
ret