Function at 0x1800c9ba0
Capabilities:
Read file on windows

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1c0]
sub rsp, 0x2c0
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x300], rbx
mov rax, qword [0x18020d020]
xor rax, rsp
mov qword [rbp + 0x1b0], rax
mov r13, r8
mov rbx, rdx
cmp qword [rdx + 0x10], 0
je 0x1800ca1a9
mov rcx, rdx
call fcn.1800868f0
test al, al
je 0x1800ca1a9
cmp qword [rbx + 0x18], 8
jb 0x1800c9c08
mov rbx, qword [rbx]
lea rdx, [0x1801b0af8]
mov rcx, rbx
call fcn.180170764
mov rsi, rax
test rax, rax
je 0x1800ca1a9
mov r12b, 1
xor r8d, r8d
xor edx, edx
mov rcx, rax
call fcn.18014d468
test eax, eax
jne 0x1800ca198
mov r9, rsi
lea edx, [rax + 1]
lea r8d, [rax + 0x4c]
lea rcx, [rsp + 0x50]
call fcn.18014d12c
cmp rax, 0x4c
jne 0x1800ca198
cmp dword [rsp + 0x50], eax
jne 0x1800ca198
mov eax, dword [rsp + 0x64]
mov r15d, eax
shr r15d, 7
and r15b, r12b
xor r14d, r14d
test r12b, al
je 0x1800c9e00
mov word [rsp + 0x20], r14w
mov r9, rsi
lea edx, [r14 + 2]
lea r8d, [r14 + 1]
lea rcx, [rsp + 0x20]
call fcn.18014d12c
cmp rax, 1
jne 0x1800ca198
movzx eax, word [rsp + 0x20]
test ax, ax
je 0x1800ca198
movzx ecx, ax
call fcn.18011e7f8
mov rdi, rax
movzx r8d, word [rsp + 0x20]
xor edx, edx
mov rcx, rax
call fcn.18013d270
movzx r8d, word [rsp + 0x20]
mov r9, rsi
lea edx, [r14 + 1]
mov rcx, rdi
call fcn.18014d12c
movzx ecx, word [rsp + 0x20]
cmp rax, rcx
je 0x1800c9d06
xor r12b, r12b
mov rcx, rdi
call fcn.18011e7a4
mov rcx, rsi
call fcn.18014cb7c
movzx eax, r12b
jmp 0x1800ca1ab
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp - 0x60]
call fcn.18013d270
lea rdx, [rbp - 0x60]
mov rcx, rdi
call qword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
test eax, eax
je 0x1800c9d43
lea rax, [rbp - 0x60]
mov r8, 0xffffffffffffffff
inc r8
cmp word [rax + r8*2], r14w
jne 0x1800c9d33
lea rdx, [rbp - 0x60]
jmp 0x1800c9d72
movzx ebx, word [rdi]
add rbx, rdi
mov edx, 0x1000
lea rcx, [rbx + 8]
call qword [sym.imp.KERNEL32.dll_IsBadStringPtrW]
test eax, eax
jne 0x1800c9d7a
mov r8, 0xffffffffffffffff
inc r8
cmp word [rbx + r8*2 + 8], r14w
jne 0x1800c9d63
lea rdx, [rbx + 8]
mov rcx, r13
call fcn.180003950
mov ebx, r14d
mov edx, r14d
mov eax, 3
movzx r8d, word [rsp + 0x20]
cmp ax, r8w
ja 0x1800c9df8
mov eax, edx
movzx r14d, word [rax + rdi]
add edx, 3
cmp byte [rax + rdi + 2], 0x61
jne 0x1800c9dde
movzx ecx, r8w
cmp edx, ecx
ja 0x1800c9df5
cmp byte [rdx + rdi], 0x80
jne 0x1800c9dde
add edx, 5
cmp edx, ecx
ja 0x1800c9df5
add rdx, rdi
mov r8, 0xffffffffffffffff
inc r8
cmp word [rdx + r8*2], 0
jne 0x1800c9dc1
lea rcx, [r13 + 0xc0]
call fcn.180003950
movzx r8d, word [rsp + 0x20]
movzx eax, r14w
add ebx, eax
mov edx, ebx
mov ecx, ebx
add rcx, 3
movzx eax, r8w
cmp rcx, rax
jbe 0x1800c9d91
xor r14d, r14d
mov rcx, rdi
call fcn.18011e7a4
mov rcx, rsi
call fcn.18015d040
mov ebx, eax
mov ecx, dword [rsp + 0x64]
test cl, 2
je 0x1800c9e4e
mov dword [rsp + 0x20], r14d
mov r9, rsi
mov edx, 4
lea r8d, [rdx - 3]
lea rcx, [rsp + 0x20]
call fcn.18014d12c
cmp rax, 1
jne 0x1800ca198
mov eax, dword [rsp + 0x20]
lea edx, [rax + rbx]
xor r8d, r8d
mov rcx, rsi
call fcn.18014d468
mov ecx, dword [rsp + 0x64]
test cl, 4
je 0x1800c9ef4
movzx r8d, r15b
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.1800ca200
mov rbx, rax
lea rdi, [r13 + 0x20]
cmp rdi, rax
je 0x1800c9e9a
mov rcx, rdi
call fcn.1800038d0
movups xmm0, xmmword [rbx]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rdi + 0x10], xmm1
mov qword [rbx + 0x10], r14
mov qword [rbx + 0x18], 7
mov word [rbx], r14w
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x1800c9edc
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800c9ed7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800ca1db
call fcn.18011e7a4
movdqa xmm0, xmmword [0x1801b2840]
movdqu xmmword [rsp + 0x40], xmm0
mov word [rsp + 0x30], r14w
mov ecx, dword [rsp + 0x64]
test cl, 8
je 0x1800c9f9a
movzx r8d, r15b
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.1800ca200
mov rbx, rax
lea rdi, [r13 + 0x40]
cmp rdi, rax
je 0x1800c9f40
mov rcx, rdi
call fcn.1800038d0
movups xmm0, xmmword [rbx]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rdi + 0x10], xmm1
mov qword [rbx + 0x10], r14
mov qword [rbx + 0x18], 7
mov word [rbx], r14w
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x1800c9f82
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800c9f7d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800ca1e1
call fcn.18011e7a4
movdqa xmm0, xmmword [0x1801b2840]
movdqu xmmword [rsp + 0x40], xmm0
mov word [rsp + 0x30], r14w
mov ecx, dword [rsp + 0x64]
test cl, 0x10
je 0x1800ca040
movzx r8d, r15b
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.1800ca200
mov rbx, rax
lea rdi, [r13 + 0x60]
cmp rdi, rax
je 0x1800c9fe6
mov rcx, rdi
call fcn.1800038d0
movups xmm0, xmmword [rbx]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rdi + 0x10], xmm1
mov qword [rbx + 0x10], r14
mov qword [rbx + 0x18], 7
mov word [rbx], r14w
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x1800ca028
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800ca023
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800ca1e7
call fcn.18011e7a4
movdqa xmm0, xmmword [0x1801b2840]
movdqu xmmword [rsp + 0x40], xmm0
mov word [rsp + 0x30], r14w
mov ecx, dword [rsp + 0x64]
test cl, 0x20
je 0x1800ca0e9
movzx r8d, r15b
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.1800ca200
mov rbx, rax
lea rdi, [r13 + 0x80]
cmp rdi, rax
je 0x1800ca08f
mov rcx, rdi
call fcn.1800038d0
movups xmm0, xmmword [rbx]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rdi + 0x10], xmm1
mov qword [rbx + 0x10], r14
mov qword [rbx + 0x18], 7
mov word [rbx], r14w
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x1800ca0d1
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800ca0cc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800ca1ed
call fcn.18011e7a4
movdqa xmm0, xmmword [0x1801b2840]
movdqu xmmword [rsp + 0x40], xmm0
mov word [rsp + 0x30], r14w
mov ecx, dword [rsp + 0x64]
test cl, 0x40
je 0x1800ca19b
movzx r8d, r15b
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.1800ca200
mov rbx, rax
lea rdi, [r13 + 0xa0]
cmp rdi, rax
je 0x1800ca138
mov rcx, rdi
call fcn.1800038d0
movups xmm0, xmmword [rbx]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rdi + 0x10], xmm1
mov qword [rbx + 0x10], r14
mov qword [rbx + 0x18], 7
mov word [rbx], r14w
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x1800ca176
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800ca171
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800ca1d5
call fcn.18011e7a4
movdqa xmm0, xmmword [0x1801b2840]
movdqu xmmword [rsp + 0x40], xmm0
mov word [rsp + 0x30], r14w
mov rcx, rsi
call fcn.18014cb7c
movzx eax, r12b
jmp 0x1800ca1ab
xor r12b, r12b
mov rcx, rsi
call fcn.18014cb7c
movzx eax, r12b
jmp 0x1800ca1ab
xor al, al
mov rcx, qword [rbp + 0x1b0]
xor rcx, rsp
call fcn.18011e360
mov rbx, qword [rsp + 0x300]
add rsp, 0x2c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.180146974
int3
call fcn.180146974
int3
call fcn.180146974
int3
call fcn.180146974
int3
call fcn.180146974
int3