Function at 0x17d5690
Capabilities:
Get file attributes
Get thread local storage value

Disassembly:
mov rax, rsp
mov byte [rax + 0x20], r9b
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x220
mov qword [rsp + 0x210], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
movzx r15d, r8b
movzx r14d, dl
mov r13, rcx
xor esi, esi
mov qword [rax - 0x58], rsi
mov rax, qword [0x039f1180]
mov ecx, dword [rax + 8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x17d56ec
lea rbx, [rax + 0x20]
mov qword [rsp + 0x78], rbx
jmp 0x17d56f4
mov rbx, rsi
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x1f0], rbx
mov rcx, qword [rbx + 0x30]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VarBstrFromCy]
mov qword [rsp + 0x1f8], rax
mov qword [rsp + 0x118], rsi
mov r12, rsi
mov qword [rsp + 0x110], rsi
mov qword [rsp + 0x1e8], 0xffffffffffffffff
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x80]
call fcn.0118c100
nop
mov edx, dword [reloc.OLEAUT32.dll_VariantInit]
and edx, 7
lea rax, [rdx + rdx*2]
lea rdi, [0x01173e98]
movzx ecx, byte [rdi + rax*2 + 5]
movzx eax, byte [rdi + rax*2 + 4]
add eax, ecx
cdqe
movabs r8, 0x7fffffffffffffff
mov rcx, r8
sub rcx, rax
shr rcx, 1
sub rcx, 1
mov eax, 0x104
cmp rcx, rax
jge 0x17d57d2
lea r8, [0x017d7560]
mov edx, 0xf49
lea rcx, [0x01580f90]
call fcn.017eea00
mov esi, eax
mov dword [rsp + 0x40], eax
lea rdi, [0x0104ef20]
mov qword [rsp + 0x80], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d7514
lea rax, [rdx + rdx*2]
movzx ecx, byte [rdi + rax*2 + 5]
movzx eax, byte [rdi + rax*2 + 4]
add ecx, eax
movsxd rdi, ecx
add rdi, 0x20a
mov rcx, qword [rbx + 0x30]
cmp rdi, r8
jae 0x17d7455
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + SafeArrayCopy]
test rax, rax
je 0x17d7455
mov rcx, qword [rbx + 0x28]
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xb0], rsi
mov qword [rsp + 0xb8], rdi
mov dword [rsp + 0x40], esi
lea rcx, [rsp + 0x48]
call fcn.0116a950
nop
mov r9, qword [rbx + 0x40]
xor r8d, r8d
lea rdx, [rsp + 0x98]
lea rcx, [rsp + 0x48]
call fcn.0118a2d0
mov esi, eax
mov dword [rsp + 0x40], eax
test eax, eax
jns 0x17d589d
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
lea rdi, [0x0104ef20]
mov qword [rsp + 0x80], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d7514
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0xd0]
call fcn.0118c100
nop
mov edx, dword [reloc.OLEAUT32.dll_VariantInit]
and edx, 7
lea rax, [rdx + rdx*2]
lea rdi, [0x01173e98]
movzx ecx, byte [rdi + rax*2 + 5]
movzx eax, byte [rdi + rax*2 + 4]
add eax, ecx
cdqe
movabs r8, 0x7fffffffffffffff
mov rcx, r8
sub rcx, rax
shr rcx, 1
sub rcx, 1
cmp rcx, 3
jge 0x17d5967
lea r8, [0x017d7560]
mov edx, 0xf4a
lea rcx, [0x01580f90]
call fcn.017eea00
mov esi, eax
mov dword [rsp + 0x40], eax
lea rdi, [0x0104ef20]
mov qword [rsp + 0xd0], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d7514
lea rax, [rdx + rdx*2]
movzx ecx, byte [rdi + rax*2 + 5]
movzx eax, byte [rdi + rax*2 + 4]
add ecx, eax
movsxd rdi, ecx
add rdi, 8
mov rcx, qword [rbx + 0x30]
cmp rdi, r8
jae 0x17d73cf
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + SafeArrayCopy]
test rax, rax
je 0x17d73cf
mov rcx, qword [rbx + 0x28]
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xf8], rax
xor eax, eax
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rdi
mov dword [rsp + 0x40], eax
lea rcx, [rsp + 0x50]
call fcn.0116a950
nop
mov r9, qword [rbx + 0x40]
xor r8d, r8d
lea rdx, [rsp + 0xe8]
lea rcx, [rsp + 0x50]
call fcn.0118a2d0
mov esi, eax
mov dword [rsp + 0x40], eax
test eax, eax
jns 0x17d5a5a
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
lea rdi, [0x0104ef20]
mov qword [rsp + 0xd0], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d7514
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x120]
call fcn.0118c100
nop
mov edx, dword [reloc.OLEAUT32.dll_VariantInit]
and edx, 7
lea rax, [rdx + rdx*2]
lea rdi, [0x01173e98]
movzx ecx, byte [rdi + rax*2 + 5]
movzx eax, byte [rdi + rax*2 + 4]
add eax, ecx
cdqe
movabs r8, 0x7fffffffffffffff
mov rcx, r8
sub rcx, rax
shr rcx, 1
sub rcx, 1
cmp rcx, 0x100
jge 0x17d5b54
lea r8, [0x017d7560]
mov edx, 0xf4b
lea rcx, [0x01580f90]
call fcn.017eea00
mov esi, eax
mov dword [rsp + 0x40], eax
lea rdi, [0x0104ef20]
mov qword [rsp + 0x120], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x138], rbx
lea rcx, [rsp + 0x120]
call fcn.0116d120
nop
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d7514
lea rax, [rdx + rdx*2]
movzx ecx, byte [rdi + rax*2 + 5]
movzx eax, byte [rdi + rax*2 + 4]
add ecx, eax
movsxd rdi, ecx
add rdi, 0x202
mov rcx, qword [rbx + 0x30]
cmp rdi, r8
jae 0x17d7320
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + SafeArrayCopy]
test rax, rax
je 0x17d7320
mov rcx, qword [rbx + 0x28]
mov qword [rsp + 0x140], rcx
mov qword [rsp + 0x148], rax
xor eax, eax
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], rdi
mov dword [rsp + 0x40], eax
lea rcx, [rsp + 0x58]
call fcn.0116a950
nop
mov r9, qword [rbx + 0x40]
xor r8d, r8d
lea rdx, [rsp + 0x138]
lea rcx, [rsp + 0x58]
call fcn.0118a2d0
mov esi, eax
mov dword [rsp + 0x40], eax
test eax, eax
jns 0x17d5c77
lea rcx, [rsp + 0x58]
call fcn.0116a920
nop
lea rdi, [0x0104ef20]
mov qword [rsp + 0x120], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x138], rbx
lea rcx, [rsp + 0x120]
call fcn.0116d120
nop
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d7514
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x160]
call fcn.0118c100
nop
mov edx, dword [reloc.OLEAUT32.dll_VariantInit]
and edx, 7
lea rax, [rdx + rdx*2]
lea rdi, [0x01173e98]
movzx ecx, byte [rdi + rax*2 + 5]
movzx eax, byte [rdi + rax*2 + 4]
add eax, ecx
cdqe
movabs r8, 0x7fffffffffffffff
mov rcx, r8
sub rcx, rax
shr rcx, 1
sub rcx, 1
cmp rcx, 0x100
jge 0x17d5d9a
lea r8, [0x017d7560]
mov edx, 0xf4c
lea rcx, [0x01580f90]
call fcn.017eea00
mov esi, eax
mov dword [rsp + 0x40], eax
lea rdi, [0x0104ef20]
mov qword [rsp + 0x160], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x178], rbx
lea rcx, [rsp + 0x160]
call fcn.0116d120
nop
lea rcx, [rsp + 0x58]
call fcn.0116a920
nop
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x138], rbx
lea rcx, [rsp + 0x120]
call fcn.0116d120
nop
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d7514
lea rax, [rdx + rdx*2]
movzx ecx, byte [rdi + rax*2 + 5]
movzx eax, byte [rdi + rax*2 + 4]
add ecx, eax
movsxd rdi, ecx
add rdi, 0x202
mov rcx, qword [rbx + 0x30]
cmp rdi, r8
jae 0x17d7248
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + SafeArrayCopy]
test rax, rax
je 0x17d7248
mov rcx, qword [rbx + 0x28]
mov qword [rsp + 0x180], rcx
mov qword [rsp + 0x188], rax
xor eax, eax
mov qword [rsp + 0x190], rax
mov qword [rsp + 0x198], rdi
mov dword [rsp + 0x40], eax
lea rcx, [rsp + 0x60]
call fcn.0116a950
nop
mov r9, qword [rbx + 0x40]
xor r8d, r8d
lea rdx, [rsp + 0x178]
lea rcx, [rsp + 0x60]
call fcn.0118a2d0
mov esi, eax
mov dword [rsp + 0x40], eax
test eax, eax
jns 0x17d5ee6
lea rcx, [rsp + 0x60]
call fcn.0116a920
nop
lea rdi, [0x0104ef20]
mov qword [rsp + 0x160], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x178], rbx
lea rcx, [rsp + 0x160]
call fcn.0116d120
nop
lea rcx, [rsp + 0x58]
call fcn.0116a920
nop
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x138], rbx
lea rcx, [rsp + 0x120]
call fcn.0116d120
nop
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d7514
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x1a0]
call fcn.0118c100
nop
mov edx, dword [reloc.OLEAUT32.dll_VariantInit]
and edx, 7
lea rax, [rdx + rdx*2]
lea rdi, [0x01173e98]
movzx ecx, byte [rdi + rax*2 + 5]
movzx eax, byte [rdi + rax*2 + 4]
add eax, ecx
cdqe
movabs r8, 0x7fffffffffffffff
mov rcx, r8
sub rcx, rax
shr rcx, 1
sub rcx, 1
cmp rcx, 0x100
jge 0x17d6032
lea r8, [0x017d7560]
mov edx, 0xf4d
lea rcx, [0x01580f90]
call fcn.017eea00
mov esi, eax
mov dword [rsp + 0x40], eax
lea rdi, [0x0104ef20]
mov qword [rsp + 0x1a0], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x1b8], rbx
lea rcx, [rsp + 0x1a0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x60]
call fcn.0116a920
nop
mov qword [rsp + 0x160], rdi
mov qword [rsp + 0x178], rbx
lea rcx, [rsp + 0x160]
call fcn.0116d120
nop
lea rcx, [rsp + 0x58]
call fcn.0116a920
nop
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x138], rbx
lea rcx, [rsp + 0x120]
call fcn.0116d120
nop
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d7514
lea rax, [rdx + rdx*2]
movzx ecx, byte [rdi + rax*2 + 5]
movzx eax, byte [rdi + rax*2 + 4]
add ecx, eax
movsxd rdi, ecx
add rdi, 0x202
mov rcx, qword [rbx + 0x30]
cmp rdi, r8
jae 0x17d7147
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + SafeArrayCopy]
test rax, rax
je 0x17d7147
mov rcx, qword [rbx + 0x28]
mov qword [rsp + 0x1c0], rcx
mov qword [rsp + 0x1c8], rax
xor eax, eax
mov qword [rsp + 0x1d0], rax
mov qword [rsp + 0x1d8], rdi
mov dword [rsp + 0x40], eax
lea rcx, [rsp + 0x68]
call fcn.0116a950
nop
mov r9, qword [rbx + 0x40]
xor r8d, r8d
lea rdx, [rsp + 0x1b8]
lea rcx, [rsp + 0x68]
call fcn.0118a2d0
mov esi, eax
mov dword [rsp + 0x40], eax
test eax, eax
jns 0x17d61a7
lea rcx, [rsp + 0x68]
call fcn.0116a920
nop
lea rdi, [0x0104ef20]
mov qword [rsp + 0x1a0], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x1b8], rbx
lea rcx, [rsp + 0x1a0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x60]
call fcn.0116a920
nop
mov qword [rsp + 0x160], rdi
mov qword [rsp + 0x178], rbx
lea rcx, [rsp + 0x160]
call fcn.0116d120
nop
lea rcx, [rsp + 0x58]
call fcn.0116a920
nop
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x138], rbx
lea rcx, [rsp + 0x120]
call fcn.0116d120
nop
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d7514
xor esi, esi
mov qword [rsp + 0x1e0], rsi
mov qword [rsp + 0x200], rsi
mov eax, 0x104
mov rdi, rax
mov qword [rsp + 0x208], rax
mov ebx, 3
mov qword [rsp + 0x1e0], rbx
test rbx, rbx
jle 0x17d7059
lea rcx, [rdi + 1]
mov rdx, qword [rsp + 0x78]
mov rdx, qword [rdx + 0x28]
call fcn.0179c730
mov rdx, rax
mov qword [rsp + 0x118], rax
test rax, rax
jne 0x17d630d
mov dword [rsp + 0xc0], esi
mov qword [rsp + 0x20], 0x1000000f
xor r9d, r9d
xor r8d, r8d
mov edx, esi
mov ecx, 0xc1030001
call fcn.0124e580
mov esi, eax
mov dword [rsp + 0x40], eax
lea rcx, [rsp + 0x68]
call fcn.0116a920
nop
lea rdi, [0x0104ef20]
mov qword [rsp + 0x1a0], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x1b8], rbx
lea rcx, [rsp + 0x1a0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x60]
call fcn.0116a920
nop
mov qword [rsp + 0x160], rdi
mov qword [rsp + 0x178], rbx
lea rcx, [rsp + 0x160]
call fcn.0116d120
nop
lea rcx, [rsp + 0x58]
call fcn.0116a920
nop
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x138], rbx
lea rcx, [rsp + 0x120]
call fcn.0116d120
nop
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d74df
mov rcx, qword [r13]
test rcx, rcx
je 0x17d6327
movzx eax, byte [rcx - 5]
test al, 0x40
jne 0x17d6322
test al, 0x20
je 0x17d632a
mov rcx, qword [rcx]
jmp 0x17d632a
mov rcx, rsi
lea r9, [rsp + 0x200]
mov r8, rdx
mov edx, edi
call qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
mov esi, eax
test eax, eax
jne 0x17d644f
mov dword [rsp + 0xc0], eax
mov qword [rsp + 0x20], 0x1000000f
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0xc1010000
call fcn.0124e580
mov esi, eax
mov dword [rsp + 0x40], eax
lea rcx, [rsp + 0x68]
call fcn.0116a920
nop
lea rdi, [0x0104ef20]
mov qword [rsp + 0x1a0], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x1b8], rbx
lea rcx, [rsp + 0x1a0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x60]
call fcn.0116a920
nop
mov qword [rsp + 0x160], rdi
mov qword [rsp + 0x178], rbx
lea rcx, [rsp + 0x160]
call fcn.0116d120
nop
lea rcx, [rsp + 0x58]
call fcn.0116a920
nop
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x138], rbx
lea rcx, [rsp + 0x120]
call fcn.0116d120
nop
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d74df
cmp rsi, rdi
jle 0x17d649b
mov rax, qword [rsp + 0x78]
mov rcx, qword [rax + 0x28]
mov rax, qword [rcx]
mov rdx, qword [rsp + 0x118]
call qword [rax + 0x28]
xor eax, eax
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x118], rax
mov rdi, rsi
mov qword [rsp + 0x208], rsi
sub rbx, 1
mov qword [rsp + 0x1e0], rbx
xor esi, esi
jmp 0x17d61d6
mov rdx, qword [rsp + 0x118]
test rdx, rdx
je 0x17d7059
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
mov r12, rcx
mov rbx, rcx
mov eax, 0x104
cmp rcx, rax
cmovl rbx, rax
mov qword [rsp + 0xc0], rbx
mov edi, 3
mov qword [rsp + 0x1e0], rdi
test rdi, rdi
jle 0x17d66a1
mov rax, qword [rsp + 0x78]
mov rdx, qword [rax + 0x28]
lea rcx, [rbx + 1]
call fcn.0179c730
mov qword [rsp + 0x110], rax
test rax, rax
jne 0x17d6622
mov dword [rsp + 0xc0], eax
mov qword [rsp + 0x20], 0x1000000f
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0xc1030001
call fcn.0124e580
mov esi, eax
mov dword [rsp + 0x40], eax
lea rcx, [rsp + 0x68]
call fcn.0116a920
nop
lea rdi, [0x0104ef20]
mov qword [rsp + 0x1a0], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x1b8], rbx
lea rcx, [rsp + 0x1a0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x60]
call fcn.0116a920
nop
mov qword [rsp + 0x160], rdi
mov qword [rsp + 0x178], rbx
lea rcx, [rsp + 0x160]
call fcn.0116d120
nop
lea rcx, [rsp + 0x58]
call fcn.0116a920
nop
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x138], rbx
lea rcx, [rsp + 0x120]
call fcn.0116d120
nop
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
mov r12, qword [rsp + 0x110]
jmp 0x17d74df
lea r9, [r12 + 1]
mov r8, qword [rsp + 0x118]
lea rdx, [rbx + 1]
mov rcx, rax
call qword [sym.imp.MSVCR80.dll_wcsncpy_s]
mov r8d, ebx
mov rdx, qword [rsp + 0x110]
mov rcx, qword [rsp + 0x118]
call qword [sym.imp.KERNEL32.dll_GetLongPathNameW]
mov esi, eax
cmp rsi, rbx
jle 0x17d66a1
mov rax, qword [rsp + 0x78]
mov rcx, qword [rax + 0x28]
mov rax, qword [rcx]
mov rdx, qword [rsp + 0x110]
call qword [rax + 0x28]
xor eax, eax
mov qword [rsp + 0x110], rax
mov qword [rsp + 0x110], rax
mov rbx, rsi
mov qword [rsp + 0xc0], rbx
sub rdi, 1
mov qword [rsp + 0x1e0], rdi
jmp 0x17d64e6
mov r12, qword [rsp + 0x110]
test r12, r12
jne 0x17d679b
mov esi, 1
mov dword [rsp + 0x40], esi
lea rcx, [rsp + 0x68]
call fcn.0116a920
nop
lea rdi, [0x0104ef20]
mov qword [rsp + 0x1a0], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x1b8], rbx
lea rcx, [rsp + 0x1a0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x60]
call fcn.0116a920
nop
mov qword [rsp + 0x160], rdi
mov qword [rsp + 0x178], rbx
lea rcx, [rsp + 0x160]
call fcn.0116d120
nop
lea rcx, [rsp + 0x58]
call fcn.0116a920
nop
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x138], rbx
lea rcx, [rsp + 0x120]
call fcn.0116d120
nop
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d74df
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r12
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0x1e8], 0xffffffffffffffff
test r14b, r14b
jne 0x17d6c5c
xor edi, edi
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x28], 3
mov qword [rsp + 0x20], rdi
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x1e8]
mov rcx, r12
call fcn.0132a150
mov esi, eax
mov dword [rsp + 0x40], eax
test eax, eax
jns 0x17d68e7
lea rcx, [rsp + 0x68]
call fcn.0116a920
nop
lea rdi, [0x0104ef20]
mov qword [rsp + 0x1a0], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x1b8], rbx
lea rcx, [rsp + 0x1a0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x60]
call fcn.0116a920
nop
mov qword [rsp + 0x160], rdi
mov qword [rsp + 0x178], rbx
lea rcx, [rsp + 0x160]
call fcn.0116d120
nop
lea rcx, [rsp + 0x58]
call fcn.0116a920
nop
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x138], rbx
lea rcx, [rsp + 0x120]
call fcn.0116d120
nop
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d74df
cmp qword [rsp + 0x1e8], 0xffffffffffffffff
jne 0x17d6e5b
test r15b, r15b
je 0x17d69e8
mov esi, 1
mov dword [rsp + 0x40], esi
lea rcx, [rsp + 0x68]
call fcn.0116a920
nop
lea rdi, [0x0104ef20]
mov qword [rsp + 0x1a0], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x1b8], rbx
lea rcx, [rsp + 0x1a0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x60]
call fcn.0116a920
nop
mov qword [rsp + 0x160], rdi
mov qword [rsp + 0x178], rbx
lea rcx, [rsp + 0x160]
call fcn.0116d120
nop
lea rcx, [rsp + 0x58]
call fcn.0116a920
nop
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x138], rbx
lea rcx, [rsp + 0x120]
call fcn.0116d120
nop
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d74df
lea rax, [rsp + 0x68]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x60]
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x50]
mov rcx, r12
call fcn.0122c660
mov esi, eax
mov dword [rsp + 0x40], eax
test eax, eax
jns 0x17d6af7
lea rcx, [rsp + 0x68]
call fcn.0116a920
nop
lea rdi, [0x0104ef20]
mov qword [rsp + 0x1a0], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x1b8], rbx
lea rcx, [rsp + 0x1a0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x60]
call fcn.0116a920
nop
mov qword [rsp + 0x160], rdi
mov qword [rsp + 0x178], rbx
lea rcx, [rsp + 0x160]
call fcn.0116d120
nop
lea rcx, [rsp + 0x58]
call fcn.0116a920
nop
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x138], rbx
lea rcx, [rsp + 0x120]
call fcn.0116d120
nop
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d74df
mov r8, qword [rsp + 0x58]
test r8, r8
je 0x17d6b13
movzx eax, byte [r8 - 5]
test al, 0x40
jne 0x17d6b0e
test al, 0x20
je 0x17d6b16
mov r8, qword [r8]
jmp 0x17d6b16
mov r8, rdi
mov rdx, qword [rsp + 0x50]
test rdx, rdx
je 0x17d6b31
movzx eax, byte [rdx - 5]
test al, 0x40
jne 0x17d6b2c
test al, 0x20
je 0x17d6b34
mov rdx, qword [rdx]
jmp 0x17d6b34
mov rdx, rdi
mov qword [rsp + 0x20], rdi
xor r9d, r9d
lea rcx, [rsp + 0x48]
call fcn.0122c810
mov esi, eax
mov dword [rsp + 0x40], eax
test eax, eax
jns 0x17d6c34
lea rcx, [rsp + 0x68]
call fcn.0116a920
nop
lea rdi, [0x0104ef20]
mov qword [rsp + 0x1a0], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x1b8], rbx
lea rcx, [rsp + 0x1a0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x60]
call fcn.0116a920
nop
mov qword [rsp + 0x160], rdi
mov qword [rsp + 0x178], rbx
lea rcx, [rsp + 0x160]
call fcn.0116d120
nop
lea rcx, [rsp + 0x58]
call fcn.0116a920
nop
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x138], rbx
lea rcx, [rsp + 0x120]
call fcn.0116d120
nop
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d74df
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x17d6c4f
movzx eax, byte [rcx - 5]
test al, 0x40
jne 0x17d6c4a
test al, 0x20
je 0x17d6c52
mov rcx, qword [rcx]
jmp 0x17d6c52
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov edx, eax
jmp 0x17d6c69
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov edx, eax
xor edi, edi
mov eax, 0xffffffff
cmp rdx, rax
jne 0x17d6d69
test r15b, r15b
je 0x17d6e5b
mov esi, 1
mov dword [rsp + 0x40], esi
lea rcx, [rsp + 0x68]
call fcn.0116a920
nop
lea rdi, [0x0104ef20]
mov qword [rsp + 0x1a0], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x1b8], rbx
lea rcx, [rsp + 0x1a0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x60]
call fcn.0116a920
nop
mov qword [rsp + 0x160], rdi
mov qword [rsp + 0x178], rbx
lea rcx, [rsp + 0x160]
call fcn.0116d120
nop
lea rcx, [rsp + 0x58]
call fcn.0116a920
nop
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x138], rbx
lea rcx, [rsp + 0x120]
call fcn.0116d120
nop
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d74df
test dl, 0x10
jne 0x17d6e5b
mov esi, 1
mov dword [rsp + 0x40], esi
lea rcx, [rsp + 0x68]
call fcn.0116a920
nop
lea rdi, [0x0104ef20]
mov qword [rsp + 0x1a0], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x1b8], rbx
lea rcx, [rsp + 0x1a0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x60]
call fcn.0116a920
nop
mov qword [rsp + 0x160], rdi
mov qword [rsp + 0x178], rbx
lea rcx, [rsp + 0x160]
call fcn.0116d120
nop
lea rcx, [rsp + 0x58]
call fcn.0116a920
nop
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x138], rbx
lea rcx, [rsp + 0x120]
call fcn.0116d120
nop
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d74df
cmp byte [rsp + 0x268], 0
je 0x17d6f73
mov r9d, 7
xor r8d, r8d
mov rdx, r12
mov rcx, r13
call fcn.0118a4d0
mov esi, eax
test eax, eax
jns 0x17d6e85
jmp 0x17d6e87
mov esi, edi
mov dword [rsp + 0x40], esi
test esi, esi
jns 0x17d6f73
lea rcx, [rsp + 0x68]
call fcn.0116a920
nop
lea rdi, [0x0104ef20]
mov qword [rsp + 0x1a0], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x1b8], rbx
lea rcx, [rsp + 0x1a0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x60]
call fcn.0116a920
nop
mov qword [rsp + 0x160], rdi
mov qword [rsp + 0x178], rbx
lea rcx, [rsp + 0x160]
call fcn.0116d120
nop
lea rcx, [rsp + 0x58]
call fcn.0116a920
nop
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x138], rbx
lea rcx, [rsp + 0x120]
call fcn.0116d120
nop
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d74df
mov esi, edi
mov dword [rsp + 0x40], edi
lea rcx, [rsp + 0x68]
call fcn.0116a920
nop
lea rdi, [0x0104ef20]
mov qword [rsp + 0x1a0], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x1b8], rbx
lea rcx, [rsp + 0x1a0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x60]
call fcn.0116a920
nop
mov qword [rsp + 0x160], rdi
mov qword [rsp + 0x178], rbx
lea rcx, [rsp + 0x160]
call fcn.0116d120
nop
lea rcx, [rsp + 0x58]
call fcn.0116a920
nop
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x138], rbx
lea rcx, [rsp + 0x120]
call fcn.0116d120
nop
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d74df
mov esi, 1
mov dword [rsp + 0x40], esi
lea rcx, [rsp + 0x68]
call fcn.0116a920
nop
lea rdi, [0x0104ef20]
mov qword [rsp + 0x1a0], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x1b8], rbx
lea rcx, [rsp + 0x1a0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x60]
call fcn.0116a920
nop
mov qword [rsp + 0x160], rdi
mov qword [rsp + 0x178], rbx
lea rcx, [rsp + 0x160]
call fcn.0116d120
nop
lea rcx, [rsp + 0x58]
call fcn.0116a920
nop
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x138], rbx
lea rcx, [rsp + 0x120]
call fcn.0116d120
nop
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
mov rdi, qword [rsp + 0x78]
jmp 0x17d7502
mov dword [rsp + 0xc0], 0
mov qword [rsp + 0x20], 0x1000000f
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0xc1030001
call fcn.0124e580
mov esi, eax
mov dword [rsp + 0x40], eax
lea rdi, [0x0104ef20]
mov qword [rsp + 0x1a0], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x1b8], rbx
lea rcx, [rsp + 0x1a0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x60]
call fcn.0116a920
nop
mov qword [rsp + 0x160], rdi
mov qword [rsp + 0x178], rbx
lea rcx, [rsp + 0x160]
call fcn.0116d120
nop
lea rcx, [rsp + 0x58]
call fcn.0116a920
nop
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x138], rbx
lea rcx, [rsp + 0x120]
call fcn.0116d120
nop
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d7514
mov dword [rsp + 0xc0], 0
mov qword [rsp + 0x20], 0x1000000f
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0xc1030001
call fcn.0124e580
mov esi, eax
mov dword [rsp + 0x40], eax
lea rdi, [0x0104ef20]
mov qword [rsp + 0x160], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x178], rbx
lea rcx, [rsp + 0x160]
call fcn.0116d120
nop
lea rcx, [rsp + 0x58]
call fcn.0116a920
nop
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x138], rbx
lea rcx, [rsp + 0x120]
call fcn.0116d120
nop
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d7514
mov dword [rsp + 0xc0], 0
mov qword [rsp + 0x20], 0x1000000f
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0xc1030001
call fcn.0124e580
mov esi, eax
mov dword [rsp + 0x40], eax
lea rdi, [0x0104ef20]
mov qword [rsp + 0x120], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x138], rbx
lea rcx, [rsp + 0x120]
call fcn.0116d120
nop
lea rcx, [rsp + 0x50]
call fcn.0116a920
nop
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d7514
mov dword [rsp + 0xc0], 0
mov qword [rsp + 0x20], 0x1000000f
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0xc1030001
call fcn.0124e580
mov esi, eax
mov dword [rsp + 0x40], eax
lea rdi, [0x0104ef20]
mov qword [rsp + 0xd0], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0xd0]
call fcn.0116d120
nop
lea rcx, [rsp + 0x48]
call fcn.0116a920
nop
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d7514
mov dword [rsp + 0xc0], esi
mov qword [rsp + 0x20], 0x1000000f
xor r9d, r9d
xor r8d, r8d
mov edx, esi
mov ecx, 0xc1030001
call fcn.0124e580
mov esi, eax
mov dword [rsp + 0x40], eax
lea rdi, [0x0104ef20]
mov qword [rsp + 0x80], rdi
lea rbx, [0x0109b930]
mov qword [rsp + 0x98], rbx
lea rcx, [rsp + 0x80]
call fcn.0116d120
nop
jmp 0x17d7514
mov rdx, qword [rsp + 0x118]
test rdx, rdx
je 0x17d74fd
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rdi + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x28]
jmp 0x17d7502
mov rdi, qword [rsp + 0x78]
test r12, r12
je 0x17d7514
mov rcx, qword [rdi + 0x28]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + 0x28]
mov rcx, qword [rsp + 0x1e8]
cmp rcx, 0xffffffffffffffff
je 0x17d7529
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov rax, qword [rsp + 0x78]
mov rcx, qword [rax + 0x30]
mov rax, qword [rcx]
mov rdx, qword [rsp + 0x1f8]
call qword [rax + 0x78]
mov eax, esi
lea r11, [rsp + 0x220]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret