Function at 0x180002110
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r14
push rbp
lea rbp, [rsp - 0xe0]
sub rsp, 0x1e0
mov rax, qword [0x18006c060]
xor rax, rsp
mov qword [rbp + 0xd0], rax
xor esi, esi
mov qword [rbp - 0x30], rsi
mov qword [rbp - 0x20], rsi
mov qword [rbp - 0x18], 7
mov word [rbp - 0x30], si
lea rcx, [rbp - 0x30]
call fcn.180003090
test eax, eax
je 0x1800021d8
lea rcx, [rbp - 0x30]
cmp qword [rbp - 0x18], 8
cmovae rcx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x180002188
test al, 0x10
lea ebx, [rsi + 1]
je 0x18000218a
mov ebx, esi
mov rdx, qword [rbp - 0x18]
cmp rdx, 8
jb 0x1800021ca
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x30]
mov r8, rcx
cmp rdx, 0x1000
jb 0x1800021c5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub r8, rcx
add r8, 0xfffffffffffffff8
cmp r8, 0x1f
ja 0x180002e3f
call fcn.180019260
test ebx, ebx
je 0x180002218
mov eax, 1
jmp 0x180002e0d
mov rdx, qword [rbp - 0x18]
cmp rdx, 8
jb 0x180002218
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180002213
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002e3f
call fcn.180019260
call fcn.1800014e0
cmp eax, 1
jne 0x18000222c
mov eax, 2
jmp 0x180002e0d
mov ecx, 0x1000
call qword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x180002245
mov eax, 3
jmp 0x180002e0d
mov qword [rbp + 0x90], rsi
movdqa xmm0, xmmword [0x180064250]
movdqu xmmword [rbp + 0xa0], xmm0
mov word [rbp + 0x90], si
mov qword [rbp + 0x10], rsi
movdqu xmmword [rbp + 0x20], xmm0
mov word [rbp + 0x10], si
lea rcx, [0x18006f258]
call fcn.1800040c0
mov qword [rbp + 0xb0], rsi
mov qword [rbp + 0xc0], rsi
mov qword [rbp + 0xc8], 7
mov word [rbp + 0xb0], si
mov rbx, 0xffffffffffffffff
mov r8, rbx
nop word [rax + rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x1800022b0
mov rdx, rax
lea rcx, [rbp + 0xb0]
call fcn.1800045f0
nop
lea r14, [0x180000000]
cmp byte [0x18006d8c0], 0
je 0x180002396
mov rcx, rsi
movzx eax, byte [rcx + r14 + 0x6d8c2]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [rcx + r14 + 0x6d8c2], al
movzx eax, byte [rcx + r14 + 0x6d8c3]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [rcx + r14 + 0x6d8c3], al
movzx eax, byte [rcx + r14 + 0x6d8c4]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [rcx + r14 + 0x6d8c4], al
movzx eax, byte [rcx + r14 + 0x6d8c5]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [rcx + r14 + 0x6d8c5], al
movzx eax, byte [rcx + r14 + 0x6d8c6]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [rcx + r14 + 0x6d8c6], al
movzx eax, byte [rcx + r14 + 0x6d8c7]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [rcx + r14 + 0x6d8c7], al
add rcx, 6
cmp rcx, 0x197a
jl 0x1800022e2
mov byte [0x18006d8c0], 0
mov qword [rbp - 0x10], rsi
mov qword [rbp], rsi
mov qword [rbp + 8], 7
mov word [rbp - 0x10], si
lea rdx, [0x18006d8c2]
mov r8, rbx
inc r8
cmp word [rdx + r8*2], 0
jne 0x1800023b4
lea rcx, [rbp - 0x10]
call fcn.1800045f0
nop
cmp byte [0x18006f240], 0
je 0x1800024b9
movzx eax, byte [0x18006f242]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [0x18006f242], al
movzx eax, byte [0x18006f243]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [0x18006f243], al
movzx eax, byte [0x18006f244]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [0x18006f244], al
movzx eax, byte [0x18006f245]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [0x18006f245], al
movzx eax, byte [0x18006f246]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [0x18006f246], al
movzx eax, byte [0x18006f247]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [0x18006f247], al
movzx eax, byte [0x18006f248]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [0x18006f248], al
movzx eax, byte [0x18006f249]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [0x18006f249], al
movzx eax, byte [0x18006f24a]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [0x18006f24a], al
movzx eax, byte [0x18006f24b]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [0x18006f24b], al
mov byte [0x18006f240], 0
mov qword [rsp + 0x70], rsi
mov qword [rbp - 0x80], rsi
mov qword [rbp - 0x78], 7
mov word [rsp + 0x70], si
lea rdx, [0x18006f242]
mov r8, rbx
nop dword [rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x1800024e0
lea rcx, [rsp + 0x70]
call fcn.1800045f0
nop
lea rcx, [rsp + 0x20]
call fcn.180005a80
mov rdi, rax
cmp byte [0x18006f24c], 0
je 0x18000256b
movzx ecx, byte [0x18006f24e]
movzx ecx, byte [rcx + r14 + 0x4c2e0]
mov byte [0x18006f24e], cl
movzx ecx, byte [0x18006f24f]
movzx ecx, byte [rcx + r14 + 0x4c2e0]
mov byte [0x18006f24f], cl
movzx eax, byte [0x18006f250]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [0x18006f250], al
movzx eax, byte [0x18006f251]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [0x18006f251], al
mov byte [0x18006f24c], 0
mov qword [rbp - 0x30], rsi
mov qword [rbp - 0x20], rsi
mov qword [rbp - 0x18], 7
mov word [rbp - 0x30], si
lea rdx, [0x18006f24e]
mov r8, rbx
nop dword [rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x180002590
lea rcx, [rbp - 0x30]
call fcn.1800045f0
nop
mov r9, rdi
lea r8, [rbp - 0x30]
lea rcx, [rbp - 0x50]
call fcn.180004bc0
nop
lea r9, [rsp + 0x70]
lea r8, [rbp - 0x50]
lea rcx, [rbp - 0x70]
call fcn.180004bc0
nop
lea r9, [rbp - 0x10]
lea r8, [rbp - 0x70]
lea rcx, [rsp + 0x50]
call fcn.180004bc0
mov rdx, qword [rbp + 0xa8]
cmp rdx, 8
jb 0x180002621
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x90]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000261c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002e45
call fcn.180019260
movups xmm0, xmmword [rsp + 0x50]
movups xmmword [rbp + 0x90], xmm0
movups xmm1, xmmword [rsp + 0x60]
movups xmmword [rbp + 0xa0], xmm1
mov rdx, qword [rbp - 0x58]
cmp rdx, 8
jb 0x18000267a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180002674
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002e4b
call fcn.180019260
nop
mov rdx, qword [rbp - 0x38]
cmp rdx, 8
jb 0x1800026bb
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800026b5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002e51
call fcn.180019260
nop
mov rdx, qword [rbp - 0x18]
cmp rdx, 8
jb 0x1800026fc
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800026f6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002e57
call fcn.180019260
nop
mov rdx, qword [rsp + 0x38]
cmp rdx, 8
jb 0x18000273e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180002739
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002e5d
call fcn.180019260
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], 7
mov word [rsp + 0x20], si
mov rdx, qword [rbp - 0x78]
cmp rdx, 8
jb 0x180002793
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000278d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002e63
call fcn.180019260
nop
mov rdx, qword [rbp + 8]
cmp rdx, 8
jb 0x1800027d3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800027ce
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002e69
call fcn.180019260
cmp byte [0x18006cdc0], 0
je 0x180002897
mov rcx, rsi
movzx eax, byte [rcx + r14 + 0x6cdc2]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [rcx + r14 + 0x6cdc2], al
movzx eax, byte [rcx + r14 + 0x6cdc3]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [rcx + r14 + 0x6cdc3], al
movzx eax, byte [rcx + r14 + 0x6cdc4]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [rcx + r14 + 0x6cdc4], al
movzx eax, byte [rcx + r14 + 0x6cdc5]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [rcx + r14 + 0x6cdc5], al
movzx eax, byte [rcx + r14 + 0x6cdc6]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [rcx + r14 + 0x6cdc6], al
movzx eax, byte [rcx + r14 + 0x6cdc7]
movzx eax, byte [rax + r14 + 0x4c2e0]
mov byte [rcx + r14 + 0x6cdc7], al
add rcx, 6
cmp rcx, 0xaf8
jl 0x1800027e3
mov byte [0x18006cdc0], 0
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], 7
lea rdx, [0x18006cdc2]
mov r8, rbx
inc r8
cmp word [rdx + r8*2], 0
jne 0x1800028b4
lea rcx, [rsp + 0x20]
call fcn.1800045f0
mov rdx, qword [rbp + 0x28]
cmp rdx, 8
jb 0x180002909
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180002904
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002e87
call fcn.180019260
movups xmm0, xmmword [rsp + 0x20]
movups xmmword [rbp + 0x10], xmm0
movups xmm1, xmmword [rsp + 0x30]
movups xmmword [rbp + 0x20], xmm1
mov qword [rbp + 0x50], rsi
mov qword [rbp + 0x60], rsi
mov qword [rbp + 0x68], 7
mov word [rbp + 0x50], si
mov qword [rbp + 0x30], rsi
mov qword [rbp + 0x40], rsi
mov qword [rbp + 0x48], 7
mov word [rbp + 0x30], si
mov qword [rbp + 0x70], rsi
mov qword [rbp + 0x80], rsi
mov qword [rbp + 0x88], reloc.OLEAUT32.dll_SafeArrayDestroy
mov byte [rbp + 0x70], 0
lea r9, [rbp + 0x30]
lea r8, [rbp + 0x50]
lea rdx, [rbp + 0x70]
lea rcx, [rbp + 0x90]
call fcn.1800098a0
test eax, eax
je 0x180002983
mov ebx, 4
jmp 0x180002c3d
lea rax, [rsp + 0x50]
mov qword [rsp + 0x48], rax
lea rcx, [0x18006cd78]
call fcn.180003e50
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], 7
mov r8, rbx
nop
inc r8
cmp word [rax + r8*2], 0
jne 0x1800029b0
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.1800045f0
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x50]
call fcn.180005850
mov rdi, rax
lea rcx, [0x18006cdb0]
call fcn.1800034e0
mov qword [rbp - 0x10], rsi
mov qword [rbp], rsi
mov qword [rbp + 8], 7
mov r8, rbx
nop dword [rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x180002a00
mov rdx, rax
lea rcx, [rbp - 0x10]
call fcn.1800045f0
nop
mov r8, rdi
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0x10]
call fcn.18000da70
test eax, eax
je 0x180002a36
mov ebx, 5
jmp 0x180002c3d
lea rax, [rsp + 0x50]
mov qword [rsp + 0x40], rax
lea rdx, [rbp + 0xb0]
lea rcx, [rsp + 0x50]
call fcn.1800038d0
mov rdi, rax
lea rcx, [0x18006cd60]
call fcn.1800035b0
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], 7
mov r8, rbx
nop word [rax + rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x180002a80
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.1800045f0
nop
mov r8, rdi
lea rdx, [rsp + 0x20]
lea rcx, [rbp + 0x10]
call fcn.18000da70
test eax, eax
je 0x180002ab8
mov ebx, 6
jmp 0x180002c3d
lea rax, [rsp + 0x50]
mov qword [rsp + 0x40], rax
lea rdx, [rbp + 0x50]
lea rcx, [rsp + 0x50]
call fcn.1800038d0
mov rdi, rax
lea rcx, [0x18006cd48]
call fcn.1800032c0
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], 7
inc rbx
cmp word [rax + rbx*2], 0
jne 0x180002af2
mov r8, rbx
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.1800045f0
nop
mov r8, rdi
lea rdx, [rsp + 0x20]
lea rcx, [rbp + 0x10]
call fcn.18000da70
test eax, eax
je 0x180002b2c
mov ebx, 7
jmp 0x180002c3d
lea r8, [rbp + 0x30]
cmp qword [rbp + 0x48], 8
cmovae r8, qword [rbp + 0x30]
lea rdx, [rbp + 0x10]
cmp qword [rbp + 0x28], 8
cmovae rdx, qword [rbp + 0x10]
call fcn.180016950
test eax, eax
je 0x180002b5b
mov ebx, 8
jmp 0x180002c3d
mov qword [rbp - 0x10], rsi
mov qword [rbp], rsi
mov qword [rbp + 8], 7
mov word [rbp - 0x10], si
mov qword [rbp - 0x30], rsi
mov qword [rbp - 0x20], rsi
mov qword [rbp - 0x18], 7
mov word [rbp - 0x30], si
lea rcx, [rbp - 0x30]
call fcn.180003090
test eax, eax
je 0x180002bab
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x50]
call fcn.1800038d0
lea rdx, [rbp - 0x10]
mov rcx, rax
call fcn.180005b80
nop
mov rdx, qword [rbp - 0x18]
cmp rdx, 8
jb 0x180002beb
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180002be6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002e6f
call fcn.180019260
mov qword [rbp - 0x20], rsi
mov qword [rbp - 0x18], 7
mov word [rbp - 0x30], si
mov rdx, qword [rbp + 8]
cmp rdx, 8
jb 0x180002c3b
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180002c36
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002e75
call fcn.180019260
mov ebx, esi
mov rdx, qword [rbp + 0x88]
cmp rdx, 0x10
jb 0x180002c7b
inc rdx
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180002c76
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002e7b
call fcn.180019260
mov qword [rbp + 0x80], rsi
mov qword [rbp + 0x88], reloc.OLEAUT32.dll_SafeArrayDestroy
mov byte [rbp + 0x70], 0
mov rdx, qword [rbp + 0x48]
cmp rdx, 8
jb 0x180002cd1
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180002ccc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002e81
call fcn.180019260
mov qword [rbp + 0x40], rsi
mov qword [rbp + 0x48], 7
mov word [rbp + 0x30], si
mov rdx, qword [rbp + 0x68]
cmp rdx, 8
jb 0x180002d21
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180002d1c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002e87
call fcn.180019260
mov qword [rbp + 0x60], rsi
mov qword [rbp + 0x68], 7
mov word [rbp + 0x50], si
mov rdx, qword [rbp + 0xc8]
cmp rdx, 8
jb 0x180002d78
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0xb0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180002d72
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002e8d
call fcn.180019260
nop
mov rdx, qword [rbp + 0x28]
cmp rdx, 8
jb 0x180002db8
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180002db3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002e93
call fcn.180019260
movdqa xmm0, xmmword [0x180064250]
movdqu xmmword [rbp + 0x20], xmm0
mov word [rbp + 0x10], si
mov rdx, qword [rbp + 0xa8]
cmp rdx, 8
jb 0x180002e0b
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x90]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180002e06
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002e39
call fcn.180019260
mov eax, ebx
mov rcx, qword [rbp + 0xd0]
xor rcx, rsp
call fcn.180018ee0
lea r11, [rsp + 0x1e0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov r14, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
call fcn.18001f98c
int3
call fcn.18001f98c
nop
call fcn.18001f98c
nop
call fcn.18001f98c
nop
call fcn.18001f98c
nop
call fcn.18001f98c
nop
call fcn.18001f98c
nop
call fcn.18001f98c
nop
call fcn.18001f98c
nop
call fcn.18001f98c
nop
call fcn.18001f98c
nop
call fcn.18001f98c
nop
call fcn.18001f98c
nop
call fcn.18001f98c
nop
call fcn.18001f98c
nop
call fcn.18001f98c
int3