Function at 0x140002660
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x60]
sub rsp, 0x160
mov rax, qword [0x14001d010]
xor rax, rsp
mov qword [rbp + 0x50], rax
mov qword [rsp + 0x70], rdx
mov rbx, rcx
mov rcx, rdx
call fcn.140004ef0
cmp qword [rbx + 0x18], 8
jb 0x1400026a4
mov rbx, qword [rbx]
xor r14d, r14d
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x8000000
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r14 + 1]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
mov qword [rsp + 0x78], rax
cmp rax, 0xffffffffffffffff
je 0x140002afa
lea r9d, [r14 + 0x18]
lea r8, [rbp + 0x38]
lea edx, [r14 + 1]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileInformationByHandleEx]
mov ebx, r14d
test eax, eax
cmovne rbx, qword [rbp + 0x40]
je 0x140002aeb
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8, rbx
lea edx, [r14 + 8]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rsi, rax
mov qword [rbp - 0x80], rax
test rax, rax
je 0x140002af1
mov dword [rbp + 0x30], r14d
mov qword [rsp + 0x20], r14
lea r9, [rbp + 0x30]
mov r8d, ebx
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140002ad5
lea r12, [rsi + 3]
mov r9d, dword [rbp + 0x30]
add r9d, 0xfffffffd
xor ebx, ebx
mov qword [rsp + 0x40], rbx
mov dword [rsp + 0x48], ebx
mov r8, r12
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x40]
call fcn.1400019d0
test al, al
je 0x140002ad5
mov r15d, ebx
movsxd r13, dword [rsp + 0x48]
test r13, r13
je 0x140002aca
mov rcx, qword [rsp + 0x40]
nop dword [rax]
mov r14, r15
shl r14, 4
add r14, rcx
cmp dword [r14], 3
jne 0x140002ab5
movsxd rdx, dword [r14 + 4]
lea rcx, [r12 + rdx]
mov eax, dword [r14 + 8]
sub eax, edx
cmp eax, 0xf
jne 0x140002ab0
mov r8d, eax
lea rdx, str.ShortCutList_V2
call qword [sym.imp.msvcrt.dll_strncmp]
test eax, eax
jne 0x140002ab0
cmp dword [r14 + 0x10], 1
jne 0x140002ab0
mov rsi, rbx
mov ecx, dword [r14 + 0x1c]
test ecx, ecx
je 0x140002aa7
lea rdi, [r14 + 0x34]
cmp dword [rdi - 0x14], 3
jne 0x140002a93
cmp dword [rdi - 4], 3
jne 0x140002a93
movsxd rcx, dword [rdi]
mov eax, dword [rdi + 4]
sub eax, ecx
movsxd r8, eax
lea rdx, [r12 + rcx]
mov qword [rbp - 0x78], rbx
mov qword [rbp - 0x68], rbx
mov qword [rbp - 0x60], 0xf
mov byte [rbp - 0x78], 0
lea rcx, [rbp - 0x78]
call fcn.140005370
nop
lea rdx, [rbp - 0x78]
lea rcx, [rbp - 0x38]
call fcn.14000a140
mov rbx, rax
movsxd rdx, dword [rdi - 0x10]
mov ecx, dword [rdi - 0xc]
sub ecx, edx
movsxd r8, ecx
add rdx, r12
xor eax, eax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 0xf
mov byte [rsp + 0x50], al
lea rcx, [rsp + 0x50]
call fcn.140005370
nop
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x58]
call fcn.14000a140
nop
movups xmm0, xmmword [rax]
movaps xmmword [rbp - 0x10], xmm0
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rbp], xmm1
xor ecx, ecx
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], 7
mov word [rax], cx
movups xmm0, xmmword [rbx]
movaps xmmword [rbp + 0x10], xmm0
movups xmm1, xmmword [rbx + 0x10]
movaps xmmword [rbp + 0x20], xmm1
mov qword [rbx + 0x10], rcx
mov qword [rbx + 0x18], 7
mov word [rbx], cx
lea r8, [rbp - 0x10]
lea rdx, [rbp + 0x38]
mov rcx, qword [rsp + 0x70]
call fcn.140006780
nop
mov rdx, qword [rbp + 0x28]
cmp rdx, 8
jb 0x140002925
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002920
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002b27
call fcn.14000afec
mov rdx, qword [rbp + 8]
cmp rdx, 8
jb 0x140002966
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002960
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002b27
call fcn.14000afec
nop
mov rdx, qword [rbp - 0x40]
cmp rdx, 8
jb 0x1400029a6
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400029a1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002b2d
call fcn.14000afec
xor ebx, ebx
mov qword [rbp - 0x48], rbx
mov qword [rbp - 0x40], 7
mov word [rbp - 0x58], bx
mov rdx, qword [rsp + 0x68]
cmp rdx, 0x10
jb 0x1400029f5
inc rdx
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400029f0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002b33
call fcn.14000afec
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], 0xf
mov byte [rsp + 0x50], 0
mov rdx, qword [rbp - 0x20]
cmp rdx, 8
jb 0x140002a48
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002a43
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002b39
call fcn.14000afec
mov qword [rbp - 0x28], rbx
mov qword [rbp - 0x20], 7
mov word [rbp - 0x38], bx
mov rdx, qword [rbp - 0x60]
cmp rdx, 0x10
jb 0x140002a93
inc rdx
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002a8e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002b21
call fcn.14000afec
inc rsi
add rdi, 0x20
movsxd rcx, dword [r14 + 0x1c]
cmp rsi, rcx
jb 0x140002801
lea eax, [rcx + 1]
movsxd rcx, eax
add r15, rcx
mov rcx, qword [rsp + 0x40]
inc r15
cmp r15, r13
jb 0x1400027a0
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rbp - 0x80]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.msvcrt.dll_free]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8, rsi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x140002af1
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbp + 0x50]
xor rcx, rsp
call fcn.14000ac70
mov rbx, qword [rsp + 0x1b0]
add rsp, 0x160
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.14000ed30
nop
call fcn.14000ed30
nop
call fcn.14000ed30
nop
call fcn.14000ed30
nop
call fcn.14000ed30
int3