Function at 0x140016ee0
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
push rsi
push r12
sub rsp, 0x3a8
mov rax, qword [0x140030020]
xor rax, rsp
mov qword [rsp + 0x380], rax
mov r12, rdx
mov rsi, rcx
test rdx, rdx
jne 0x140016f12
mov eax, 0x80004003
jmp 0x14001755b
cmp dword [rcx + 0x48], 0
mov qword [rsp + 0x3d0], rbx
jne 0x140016f2a
mov eax, 0x80004005
jmp 0x140017553
mov rcx, qword [rdx]
mov qword [rsp + 0x398], rdi
mov qword [rsp + 0x390], r13
test rcx, rcx
je 0x140016f56
call qword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x140016f56
mov rcx, qword [r12]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
xor r13d, r13d
lea rdi, [rsi + 0xd8]
mov qword [rsp + 0x3a0], rbp
mov qword [r12], r13
mov rcx, qword [rdi]
mov ebx, r13d
test rcx, rcx
je 0x140016f85
call qword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
test eax, eax
jne 0x14001751b
xor edx, edx
lea rax, [rsp + 0x30]
lea r9, [0x140025808]
lea rcx, [0x1400235c0]
lea r8d, [rdx + 1]
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x20], rax
call qword [sym.imp.ole32.dll_CoCreateInstance]
mov rcx, qword [rsp + 0x30]
mov edx, dword [rsi + 0x48]
lea r9, [rsp + 0x38]
mov rax, qword [rcx]
lea r8, [0x1400235a0]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx]
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x140016fe2
mov qword [rsp + 0x30], r13
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x40], r13
lea r8, [rsp + 0x40]
mov rax, qword [rcx]
lea rdx, [0x1400257d8]
call qword [rax]
mov rcx, qword [rsp + 0x40]
mov rdx, rdi
mov rax, qword [rcx]
call qword [rax + QueryPathOfRegTypeLib]
mov ebx, eax
test eax, eax
jns 0x140017049
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x14001702f
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x14001703f
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov eax, 0x80004005
jmp 0x14001753b
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rbp, qword [rdi]
lea rax, [rsp + 0x278]
mov qword [rsp + 0x270], rax
test rbp, rbp
jne 0x14001707c
mov rcx, r13
mov qword [rsp + 0x270], rcx
jmp 0x140017189
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
add esi, 1
jns 0x140017097
mov ecx, 0x80070057
call fcn.140002460
int3
mov rcx, qword [rsp + 0x270]
lea rax, [rsp + 0x278]
cmp rcx, rax
je 0x1400170f5
cmp esi, 0x80
jle 0x1400170dd
movsxd rdx, esi
mov r8d, 2
call qword [sym.imp.MSVCR90.dll__recalloc]
test rax, rax
jne 0x1400170d3
mov ecx, 0x8007000e
call fcn.140002460
int3
mov qword [rsp + 0x270], rax
jmp 0x140017113
call qword [sym.imp.MSVCR90.dll_free]
lea rax, [rsp + 0x278]
mov qword [rsp + 0x270], rax
jmp 0x140017133
cmp esi, 0x80
jle 0x140017123
movsxd rcx, esi
mov edx, 2
call qword [sym.imp.MSVCR90.dll_calloc]
mov qword [rsp + 0x270], rax
test rax, rax
jne 0x140017133
mov ecx, 0x8007000e
call fcn.140002460
int3
lea rax, [rsp + 0x278]
mov qword [rsp + 0x270], rax
movsxd rdx, esi
mov r8, rbp
mov rcx, rax
add rdx, rdx
mov r9, rdx
call qword [sym.imp.MSVCR90.dll_memcpy_s]
test eax, eax
je 0x140017181
cmp eax, 0xc
je 0x140017176
cmp eax, 0x16
je 0x14001716b
cmp eax, 0x22
je 0x14001716b
cmp eax, 0x50
je 0x140017181
mov ecx, 0x80004005
call fcn.140002460
int3
mov ecx, 0x80070057
call fcn.140002460
int3
mov ecx, 0x8007000e
call fcn.140002460
int3
mov rcx, qword [rsp + 0x270]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1400174cf
test al, 0x10
je 0x1400174cf
test al, 1
jne 0x1400174cf
lea rcx, str.WebServices
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rdx, str.WebServices
mov rcx, rdi
mov r8d, eax
call fcn.14000c020
test eax, eax
jns 0x1400171d3
mov ecx, eax
call fcn.140002460
int3
mov rbp, qword [rdi]
lea rax, [rsp + 0x168]
mov qword [rsp + 0x160], rax
test rbp, rbp
jne 0x1400171fb
mov rcx, r13
mov qword [rsp + 0x160], rcx
jmp 0x140017308
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
add esi, 1
jns 0x140017216
mov ecx, 0x80070057
call fcn.140002460
int3
mov rcx, qword [rsp + 0x160]
lea rax, [rsp + 0x168]
cmp rcx, rax
je 0x140017274
cmp esi, 0x80
jle 0x14001725c
movsxd rdx, esi
mov r8d, 2
call qword [sym.imp.MSVCR90.dll__recalloc]
test rax, rax
jne 0x140017252
mov ecx, 0x8007000e
call fcn.140002460
int3
mov qword [rsp + 0x160], rax
jmp 0x140017292
call qword [sym.imp.MSVCR90.dll_free]
lea rax, [rsp + 0x168]
mov qword [rsp + 0x160], rax
jmp 0x1400172b2
cmp esi, 0x80
jle 0x1400172a2
movsxd rcx, esi
mov edx, 2
call qword [sym.imp.MSVCR90.dll_calloc]
mov qword [rsp + 0x160], rax
test rax, rax
jne 0x1400172b2
mov ecx, 0x8007000e
call fcn.140002460
int3
lea rax, [rsp + 0x168]
mov qword [rsp + 0x160], rax
movsxd rdx, esi
mov r8, rbp
mov rcx, rax
add rdx, rdx
mov r9, rdx
call qword [sym.imp.MSVCR90.dll_memcpy_s]
test eax, eax
je 0x140017300
cmp eax, 0xc
je 0x1400172f5
cmp eax, 0x16
je 0x1400172ea
cmp eax, 0x22
je 0x1400172ea
cmp eax, 0x50
je 0x140017300
mov ecx, 0x80004005
call fcn.140002460
int3
mov ecx, 0x80070057
call fcn.140002460
int3
mov ecx, 0x8007000e
call fcn.140002460
int3
mov rcx, qword [rsp + 0x160]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x14001745c
mov rbp, qword [rdi]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x50], rax
test rbp, rbp
jne 0x140017336
mov rcx, r13
mov qword [rsp + 0x50], rcx
jmp 0x140017428
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
add esi, 1
jns 0x140017351
mov ecx, 0x80070057
call fcn.140002460
int3
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x58]
cmp rcx, rax
je 0x1400173a0
cmp esi, 0x80
jle 0x14001738e
movsxd rdx, esi
mov r8d, 2
call qword [sym.imp.MSVCR90.dll__recalloc]
test rax, rax
jne 0x140017387
mov ecx, 0x8007000e
call fcn.140002460
int3
mov qword [rsp + 0x50], rax
jmp 0x1400173bb
call qword [sym.imp.MSVCR90.dll_free]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x50], rax
jmp 0x1400173d5
cmp esi, 0x80
jle 0x1400173cb
movsxd rcx, esi
mov edx, 2
call qword [sym.imp.MSVCR90.dll_calloc]
mov qword [rsp + 0x50], rax
test rax, rax
jne 0x1400173d5
mov ecx, 0x8007000e
call fcn.140002460
int3
lea rax, [rsp + 0x58]
mov qword [rsp + 0x50], rax
movsxd rdx, esi
mov r8, rbp
mov rcx, rax
add rdx, rdx
mov r9, rdx
call qword [sym.imp.MSVCR90.dll_memcpy_s]
test eax, eax
je 0x140017423
cmp eax, 0xc
je 0x140017418
cmp eax, 0x16
je 0x14001740d
cmp eax, 0x22
je 0x14001740d
cmp eax, 0x50
je 0x140017423
mov ecx, 0x80004005
call fcn.140002460
int3
mov ecx, 0x80070057
call fcn.140002460
int3
mov ecx, 0x8007000e
call fcn.140002460
int3
mov rcx, qword [rsp + 0x50]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x140017445
mov rcx, qword [rdi]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rdi], r13
mov ebx, 0x80004005
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x58]
cmp rcx, rax
je 0x140017475
call qword [sym.imp.MSVCR90.dll_free]
jmp 0x140017475
test al, 0x10
je 0x140017464
test al, 1
je 0x140017475
mov rcx, qword [rdi]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rdi], r13
mov ebx, 0x80004005
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400174b2
call qword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
test eax, eax
je 0x1400174b2
lea rcx, str.WSCommCntrData.xml
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rdx, str.WSCommCntrData.xml
mov rcx, rdi
mov r8d, eax
call fcn.14000c020
test eax, eax
jns 0x1400174b2
mov ecx, eax
call fcn.140002460
int3
mov rcx, qword [rsp + 0x160]
lea rax, [rsp + 0x168]
cmp rcx, rax
je 0x1400174e0
call qword [sym.imp.MSVCR90.dll_free]
jmp 0x1400174e0
mov rcx, qword [rdi]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rdi], r13
mov ebx, 0x80004005
mov rcx, qword [rsp + 0x270]
lea rax, [rsp + 0x278]
cmp rcx, rax
je 0x1400174fb
call qword [sym.imp.MSVCR90.dll_free]
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x14001750b
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x14001751b
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rcx, qword [rdi]
test rcx, rcx
je 0x140017539
call qword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
test eax, eax
je 0x140017539
mov rcx, rdi
call fcn.140002480
mov qword [r12], rax
mov eax, ebx
mov rbp, qword [rsp + 0x3a0]
mov rdi, qword [rsp + 0x398]
mov r13, qword [rsp + 0x390]
mov rbx, qword [rsp + 0x3d0]
mov rcx, qword [rsp + 0x380]
xor rcx, rsp
call fcn.14001fb00
add rsp, 0x3a8
pop r12
pop rsi
ret