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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100782e0
mov eax, dword fs:[0]
push eax
sub esp, 0x60
mov eax, dword [0x10094080]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
cmp dword [esi + 0x14], 7
mov eax, esi
jbe 0x10017a35
mov eax, dword [esi]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x10017a48
shr eax, 4
test al, 1
jne 0x10017a5d
cmp dword [esi + 0x14], 7
mov eax, esi
jbe 0x10017a52
mov eax, dword [esi]
push 0
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
xorps xmm0, xmm0
movups xmmword [ebp - 0x30], xmm0
movq qword [ebp - 0x20], xmm0
mov byte [ebp - 0x28], 0
and dword [ebp - 0x28], 0xfffffeff
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 4], 4
lea ecx, [esi + 0x48]
mov byte [ebp - 4], 5
mov edx, dword [ecx + 0x10]
mov byte [ebp - 0x60], 4
or dword [ebp - 0x60], 0x100
cmp dword [ecx + 0x14], 0xf
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
jbe 0x10017ac2
mov ecx, dword [ecx]
call fcn.100365c0
mov dword [ebp - 0x68], eax
mov byte [ebp - 4], 8
lea eax, [ebp - 0x14]
mov ecx, dword [0x10096ce4]
push eax
mov dword [ebp - 0x14], 0x24
call fcn.10023260
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x10017af3
add ecx, dword [eax]
mov eax, dword [eax]
jmp 0x10017af5
add ecx, eax
push ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.100383f0
push eax
lea ecx, [ebp - 0x68]
call fcn.10037270
lea ecx, [ebp - 0x68]
call fcn.10037120
lea ecx, [esi + 0x60]
mov byte [ebp - 4], 9
mov edx, dword [ecx + 0x10]
mov byte [ebp - 0x60], 4
or dword [ebp - 0x60], 0x100
cmp dword [ecx + 0x14], 0xf
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
jbe 0x10017b42
mov ecx, dword [ecx]
call fcn.100365c0
mov dword [ebp - 0x68], eax
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x14]
mov ecx, dword [0x10096ce4]
push eax
mov dword [ebp - 0x14], 0x26
call fcn.10023260
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x10017b73
add ecx, dword [eax]
mov eax, dword [eax]
jmp 0x10017b75
add ecx, eax
push ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.100383f0
push eax
lea ecx, [ebp - 0x68]
call fcn.10037270
lea ecx, [ebp - 0x68]
call fcn.10037120
lea ecx, [esi + 0x78]
mov byte [ebp - 4], 0xd
mov edx, dword [ecx + 0x10]
mov byte [ebp - 0x60], 4
or dword [ebp - 0x60], 0x100
cmp dword [ecx + 0x14], 0xf
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
jbe 0x10017bc2
mov ecx, dword [ecx]
call fcn.100365c0
mov dword [ebp - 0x68], eax
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0x14]
mov ecx, dword [0x10096ce4]
push eax
mov dword [ebp - 0x14], 0x21
call fcn.10023260
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x10017bf3
add ecx, dword [eax]
mov eax, dword [eax]
jmp 0x10017bf5
add ecx, eax
push ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.100383f0
push eax
lea ecx, [ebp - 0x68]
call fcn.10037270
lea ecx, [ebp - 0x68]
call fcn.10037120
xorps xmm0, xmm0
movups xmmword [ebp - 0x50], xmm0
movups xmmword [ebp - 0x40], xmm0
mov dword [ebp - 0x50], vtable.Json::StreamWriterBuilder.0
mov byte [ebp - 0x40], 0
and dword [ebp - 0x40], 0xfffffeff
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x16
call fcn.1003c9b0
mov byte [ebp - 4], 0x17
lea eax, [ebp - 0x14]
mov ecx, dword [0x10096ce4]
push eax
mov dword [ebp - 0x14], 0x87
call fcn.10023260
mov byte [ebp - 4], 0x18
mov edx, dword [eax + 0x10]
mov byte [ebp - 0x60], 4
or dword [ebp - 0x60], 0x100
cmp dword [eax + 0x14], 0xf
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
jbe 0x10017c97
mov eax, dword [eax]
mov ecx, eax
call fcn.100365c0
mov dword [ebp - 0x68], eax
mov byte [ebp - 4], 0x1b
lea eax, [ebp - 0x18]
mov ecx, dword [0x10096ce4]
push eax
mov dword [ebp - 0x18], 0x68
call fcn.10023260
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x10017cca
add ecx, dword [eax]
mov eax, dword [eax]
jmp 0x10017ccc
add ecx, eax
push ecx
push eax
lea ecx, [ebp - 0x48]
call fcn.100383f0
push eax
lea ecx, [ebp - 0x68]
call fcn.10037270
lea ecx, [ebp - 0x68]
call fcn.10037120
mov byte [ebp - 4], 0x1c
xor edx, edx
mov byte [ebp - 0x60], 4
mov ecx, 0x10085a42
or dword [ebp - 0x60], 0x100
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
call fcn.100365c0
mov dword [ebp - 0x68], eax
mov byte [ebp - 4], 0x21
lea eax, [ebp - 0x18]
mov ecx, dword [0x10096ce4]
push eax
mov dword [ebp - 0x18], 0x7c
call fcn.10023260
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x10017d43
add ecx, dword [eax]
mov eax, dword [eax]
jmp 0x10017d45
add ecx, eax
push ecx
push eax
lea ecx, [ebp - 0x48]
call fcn.100383f0
push eax
lea ecx, [ebp - 0x68]
call fcn.10037270
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x17
call fcn.10037120
lea eax, [ebp - 0x30]
push eax
lea edx, [ebp - 0x50]
lea ecx, [ebp - 0x68]
call fcn.1003cca0
add esp, 4
lea ecx, [esi + 0x18]
mov byte [ebp - 4], 0x22
mov edx, eax
call fcn.10002a10
mov ecx, dword [ebp - 0x54]
cmp ecx, 0xf
jbe 0x10017db4
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10017daa
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10017dec
push ecx
push edx
call fcn.10052cc4
add esp, 8
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x50], vtable.Json::StreamWriterBuilder.0
call fcn.10037120
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x50], vtable.Json::StreamWriter::Factory.0
call fcn.10037120
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10052655
mov esp, ebp
pop ebp
ret
call fcn.1005bfa5
int3