Function at 0x4254b1
Capabilities:
Check if file exists
Get disk information

Disassembly:
push 0x4d8
mov eax, 0x48d796
call fcn.0044c99a
mov esi, dword [ebp + 8]
mov eax, esi
mov dword [ebp - 0x284], esi
cmp dword [esi + 0x14], 8
jb 0x4254d3
mov eax, dword [esi]
lea ecx, [ebp - 0x1d4]
xor ebx, ebx
push ecx
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
jne 0x42578a
push 0xf
pop esi
push 7
push str.GPCUtil
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], esi
mov byte [ebp - 0x68], bl
call fcn.004035a0
lea eax, [ebp - 0x68]
mov dword [ebp - 4], ebx
push eax
call fcn.004442a8
and dword [ebp - 0x28], 0
mov ebx, eax
pop ecx
push 0xa
push str.folderPath
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x24], esi
mov byte [ebp - 0x38], 0
call fcn.004035a0
mov edi, dword [ebp - 0x284]
lea eax, [ebp - 0x80]
push 0
push edi
push eax
mov byte [ebp - 4], 1
call fcn.00444209
add esp, 0xc
push 0
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 2
push ecx
push eax
lea ecx, [ebp - 0x110]
call fcn.0043fb19
mov edi, eax
and dword [ebp - 0x40], 0
lea ecx, [ebp - 0x50]
push 0xe
push str.GetLastError__
mov byte [ebp - 4], 3
mov dword [ebp - 0x3c], esi
mov byte [ebp - 0x50], 0
call fcn.004035a0
mov byte [ebp - 4], 4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.00444349
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 5
push ecx
push eax
lea ecx, [ebp - 0xe0]
call fcn.0043fb19
mov esi, eax
xor eax, eax
mov byte [ebp - 4], 6
push eax
push 0x4ae71b
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], 0xf
mov byte [ebp - 0xb0], al
call fcn.004035a0
mov byte [ebp - 4], 7
push str.CFileSystem::IsFolderWritable__GetFileAttributesEx_failed
lea eax, [ebp - 0x180]
push eax
call fcn.00444448
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 8
push ecx
push eax
lea ecx, [ebp - 0x204]
call fcn.0043fb19
push edi
push esi
push eax
mov ecx, ebx
mov byte [ebp - 4], 9
call fcn.004449ba
lea ecx, [ebp - 0x1ec]
call fcn.00403060
lea ecx, [ebp - 0x204]
call fcn.00403060
lea ecx, [ebp - 0x180]
call fcn.00403060
mov eax, dword [ebp - 0x9c]
mov esi, 0x1000
cmp eax, 0x10
jb 0x42568d
mov ecx, dword [ebp - 0xb0]
inc eax
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x288], ecx
cmp eax, esi
jb 0x425684
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x288]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x284]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x288]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
and dword [ebp - 0xa0], 0
lea ecx, [ebp - 0xc8]
push 0xf
pop ebx
mov dword [ebp - 0x9c], ebx
mov byte [ebp - 0xb0], 0
call fcn.00403060
lea ecx, [ebp - 0xe0]
call fcn.00403060
lea ecx, [ebp - 0x98]
call fcn.00403060
mov eax, dword [ebp - 0x3c]
cmp eax, 0x10
jb 0x42570b
mov ecx, dword [ebp - 0x50]
inc eax
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x284], ecx
cmp eax, esi
jb 0x425702
lea eax, [ebp - 0x288]
push eax
lea eax, [ebp - 0x284]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x288]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x284]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
and dword [ebp - 0x40], 0
lea ecx, [ebp - 0xf8]
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 0x50], 0
call fcn.00403060
lea ecx, [ebp - 0x110]
call fcn.00403060
lea ecx, [ebp - 0x80]
call fcn.00403060
mov eax, dword [ebp - 0x24]
cmp eax, 0x10
jb 0x42577a
mov ecx, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x284], ecx
cmp eax, esi
jb 0x425771
lea eax, [ebp - 0x288]
push eax
lea eax, [ebp - 0x284]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x288]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x284]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
and dword [ebp - 0x28], 0
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x38], 0
jmp 0x425b10
test byte [ebp - 0x1d4], 0x10
jne 0x425860
push 0xf
mov dword [ebp - 0x58], ebx
lea ecx, [ebp - 0x68]
pop ebx
push 7
push str.GPCUtil
mov dword [ebp - 0x54], ebx
mov byte [ebp - 0x68], 0
call fcn.004035a0
lea eax, [ebp - 0x68]
mov dword [ebp - 4], 0xa
push eax
call fcn.004442a8
and dword [ebp - 0x40], 0
mov edi, eax
pop ecx
push 0xe
push str.GetLastError__
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 0x50], 0
call fcn.004035a0
mov byte [ebp - 4], 0xb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.00444349
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0xc
push ecx
push eax
lea ecx, [ebp - 0xe0]
call fcn.0043fb19
mov esi, eax
xor eax, eax
mov byte [ebp - 4], 0xd
push eax
push 0x4ae71b
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x38], al
call fcn.004035a0
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0xe
push str.CFileSystem::IsFolderWritable__dwFileAttributes___FILE_ATTRIBUTE_DIRECTORY
push eax
call fcn.00444448
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], bl
push ecx
push eax
lea ecx, [ebp - 0x110]
call fcn.0043fb19
mov byte [ebp - 4], 0x10
jmp 0x425a21
test dword [ebp - 0x1d4], 0x10000
je 0x425943
push 0xf
mov dword [ebp - 0x58], ebx
lea ecx, [ebp - 0x68]
pop ebx
push 7
push str.GPCUtil
mov dword [ebp - 0x54], ebx
mov byte [ebp - 0x68], 0
call fcn.004035a0
lea eax, [ebp - 0x68]
mov dword [ebp - 4], 0x11
push eax
call fcn.004442a8
and dword [ebp - 0x40], 0
mov edi, eax
pop ecx
push 0xe
push str.GetLastError__
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 0x50], 0
call fcn.004035a0
mov byte [ebp - 4], 0x12
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.00444349
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x13
push ecx
push eax
lea ecx, [ebp - 0xe0]
call fcn.0043fb19
mov esi, eax
xor eax, eax
mov byte [ebp - 4], 0x14
push eax
push 0x4ae71b
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x38], al
call fcn.004035a0
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0x15
push str.CFileSystem::IsFolderWritable__dwFileAttributes__FILE_ATTRIBUTE_VIRTUAL
push eax
call fcn.00444448
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x16
push ecx
push eax
lea ecx, [ebp - 0x110]
call fcn.0043fb19
push esi
push eax
mov ecx, edi
mov byte [ebp - 4], 0x17
call fcn.004449d1
jmp 0x425a2a
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x42594d
mov eax, dword [esi]
push eax
call dword [sym.imp.SHLWAPI.dll_PathGetDriveNumberW]
test eax, eax
jns 0x425b5a
push 0xf
mov dword [ebp - 0x58], ebx
lea ecx, [ebp - 0x68]
pop ebx
push 7
push str.GPCUtil
mov dword [ebp - 0x54], ebx
mov byte [ebp - 0x68], 0
call fcn.004035a0
lea eax, [ebp - 0x68]
mov dword [ebp - 4], 0x18
push eax
call fcn.004442a8
and dword [ebp - 0x40], 0
mov edi, eax
pop ecx
push 0xe
push str.GetLastError__
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 0x50], 0
call fcn.004035a0
mov byte [ebp - 4], 0x19
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.00444349
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x1a
push ecx
push eax
lea ecx, [ebp - 0xe0]
call fcn.0043fb19
mov esi, eax
xor eax, eax
mov byte [ebp - 4], 0x1b
push eax
push 0x4ae71b
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x38], al
call fcn.004035a0
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0x1c
push str.CFileSystem::IsFolderWritable__PathGetDriveNumber_failed
push eax
call fcn.00444448
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x1d
push ecx
push eax
lea ecx, [ebp - 0x110]
call fcn.0043fb19
mov byte [ebp - 4], 0x1e
push esi
push eax
mov ecx, edi
call fcn.004445a8
lea ecx, [ebp - 0xf8]
call fcn.00403060
lea ecx, [ebp - 0x110]
call fcn.00403060
lea ecx, [ebp - 0x80]
call fcn.00403060
mov eax, dword [ebp - 0x24]
mov esi, 0x1000
cmp eax, 0x10
jb 0x425a93
mov ecx, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x284], ecx
cmp eax, esi
jb 0x425a8a
lea eax, [ebp - 0x288]
push eax
lea eax, [ebp - 0x284]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x288]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x284]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
and dword [ebp - 0x28], 0
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x38], 0
call fcn.00403060
lea ecx, [ebp - 0xe0]
call fcn.00403060
lea ecx, [ebp - 0x98]
call fcn.00403060
mov eax, dword [ebp - 0x3c]
cmp eax, 0x10
jb 0x425b05
mov ecx, dword [ebp - 0x50]
inc eax
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x284], ecx
cmp eax, esi
jb 0x425afc
lea eax, [ebp - 0x288]
push eax
lea eax, [ebp - 0x284]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x288]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x284]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
and dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 0x50], 0
mov eax, dword [ebp - 0x54]
cmp eax, 0x10
jb 0x426964
mov ecx, dword [ebp - 0x68]
inc eax
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x284], ecx
cmp eax, esi
jb 0x4261ac
lea eax, [ebp - 0x288]
push eax
lea eax, [ebp - 0x284]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x288]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x284]
jmp 0x4261ac
push eax
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.SHLWAPI.dll_PathBuildRootW]
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
push 0xf
pop ebx
cmp eax, 3
je 0x425db1
cmp dword [ebp + 0xc], 0
je 0x425e8d
and dword [ebp - 0xa0], 0
lea ecx, [ebp - 0xb0]
push 7
push str.GPCUtil
mov dword [ebp - 0x9c], ebx
mov byte [ebp - 0xb0], 0
call fcn.004035a0
lea eax, [ebp - 0xb0]
mov dword [ebp - 4], 0x1f
push eax
call fcn.004442a8
and dword [ebp - 0x40], 0
mov edi, eax
pop ecx
push 0xa
push str.folderPath
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 0x50], 0
call fcn.004035a0
push 0
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0x20
push esi
push eax
call fcn.00444209
add esp, 0xc
push 0
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x21
push ecx
push eax
lea ecx, [ebp - 0xe0]
call fcn.0043fb19
mov esi, eax
xor eax, eax
mov byte [ebp - 4], 0x22
push eax
push 0x4ae71b
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x38], al
call fcn.004035a0
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0x23
push str.CFileSystem::IsFolderWritable__Path__not_in_fixed_drive_but_it_is_OK_for_TC
push eax
call fcn.00444448
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x24
push ecx
push eax
lea ecx, [ebp - 0x110]
call fcn.0043fb19
push esi
push eax
mov ecx, edi
mov byte [ebp - 4], 0x25
call fcn.004449d1
lea ecx, [ebp - 0xf8]
call fcn.00403060
lea ecx, [ebp - 0x110]
call fcn.00403060
lea ecx, [ebp - 0x80]
call fcn.00403060
mov eax, dword [ebp - 0x24]
cmp eax, 0x10
jb 0x425cc4
mov ecx, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x2a4], ecx
cmp eax, 0x1000
jb 0x425cbb
lea eax, [ebp - 0x288]
push eax
lea eax, [ebp - 0x2a4]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x288]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2a4]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
and dword [ebp - 0x28], 0
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x38], 0
call fcn.00403060
lea ecx, [ebp - 0xe0]
call fcn.00403060
lea ecx, [ebp - 0x98]
call fcn.00403060
mov eax, dword [ebp - 0x3c]
cmp eax, 0x10
jb 0x425d39
mov ecx, dword [ebp - 0x50]
inc eax
mov dword [ebp - 0x2a0], eax
mov dword [ebp - 0x29c], ecx
cmp eax, 0x1000
jb 0x425d30
lea eax, [ebp - 0x2a0]
push eax
lea eax, [ebp - 0x29c]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x2a0]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x29c]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
and dword [ebp - 0x40], 0
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 0x50], 0
cmp eax, 0x10
jb 0x425d97
mov ecx, dword [ebp - 0xb0]
inc eax
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x280], ecx
cmp eax, 0x1000
jb 0x425d8e
lea eax, [ebp - 0x27c]
push eax
lea eax, [ebp - 0x280]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x27c]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x280]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
and dword [ebp - 0xa0], 0
mov esi, dword [ebp - 0x284]
mov dword [ebp - 0x9c], ebx
mov byte [ebp - 0xb0], 0
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x425dbb
mov eax, dword [esi]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x425f55
and dword [ebp - 0x58], eax
lea ecx, [ebp - 0x68]
push 7
push str.GPCUtil
mov dword [ebp - 0x54], ebx
mov byte [ebp - 0x68], al
call fcn.004035a0
lea eax, [ebp - 0x68]
mov dword [ebp - 4], 0x2d
push eax
call fcn.004442a8
and dword [ebp - 0x40], 0
mov edi, eax
pop ecx
push 0xa
push str.folderPath
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 0x50], 0
call fcn.004035a0
push 0
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0x2e
push esi
push eax
call fcn.00444209
add esp, 0xc
push 0
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x2f
push ecx
push eax
lea ecx, [ebp - 0xe0]
call fcn.0043fb19
mov esi, eax
xor eax, eax
mov byte [ebp - 4], 0x30
push eax
push 0x4ae71b
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x38], al
call fcn.004035a0
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0x31
push str.CFileSystem::IsFolderWritable__Path_not_Exists
push eax
call fcn.00444448
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x32
push ecx
push eax
lea ecx, [ebp - 0x110]
call fcn.0043fb19
mov byte [ebp - 4], 0x33
jmp 0x42607c
and dword [ebp - 0x58], 0
lea ecx, [ebp - 0x68]
push 0xf
pop ebx
push 7
push str.GPCUtil
mov dword [ebp - 0x54], ebx
mov byte [ebp - 0x68], 0
call fcn.004035a0
lea eax, [ebp - 0x68]
mov dword [ebp - 4], 0x26
push eax
call fcn.004442a8
and dword [ebp - 0x40], 0
mov edi, eax
pop ecx
push 0xa
push str.folderPath
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 0x50], 0
call fcn.004035a0
push 0
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0x27
push esi
push eax
call fcn.00444209
add esp, 0xc
push 0
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x28
push ecx
push eax
lea ecx, [ebp - 0xe0]
call fcn.0043fb19
mov esi, eax
xor eax, eax
mov byte [ebp - 4], 0x29
push eax
push 0x4ae71b
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x38], al
call fcn.004035a0
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0x2a
push str.CFileSystem::IsFolderWritable__Path__not_in_fixed_drive
push eax
call fcn.00444448
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x2b
push ecx
push eax
lea ecx, [ebp - 0x110]
call fcn.0043fb19
mov byte [ebp - 4], 0x2c
jmp 0x42607c
lea eax, [ebp - 0x4e4]
push eax
call fcn.00412ffe
pop ecx
push 0x47
pop ecx
mov esi, eax
lea edi, [ebp - 0x3c8]
rep movsd dword es:[edi], dword [esi]
cmp dword [ebp - 0x3b8], 2
je 0x425f80
xor eax, eax
inc eax
jmp 0x426966
mov edi, dword [ebp - 0x284]
xor edx, edx
mov dword [ebp - 0x290], edx
mov eax, edi
cmp dword [edi + 0x14], 8
jb 0x425f98
mov eax, dword [edi]
lea ecx, [ebp - 0x290]
push ecx
push edx
push edx
push 7
push eax
call dword [sym.imp.ADVAPI32.dll_GetFileSecurityW]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
je 0x4261b9
and dword [ebp - 0x58], 0
lea ecx, [ebp - 0x68]
push 7
push str.GPCUtil
mov dword [ebp - 0x54], ebx
mov byte [ebp - 0x68], 0
call fcn.004035a0
lea eax, [ebp - 0x68]
mov dword [ebp - 4], 0x34
push eax
call fcn.004442a8
and dword [ebp - 0x40], 0
mov edi, eax
pop ecx
push 0xe
push str.GetLastError__
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 0x50], 0
call fcn.004035a0
mov byte [ebp - 4], 0x35
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.00444349
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x36
push ecx
push eax
lea ecx, [ebp - 0xe0]
call fcn.0043fb19
mov esi, eax
xor eax, eax
mov byte [ebp - 4], 0x37
push eax
push 0x4ae71b
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x38], al
call fcn.004035a0
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0x38
push str.CFileSystem::IsFolderWritable__first_GetFileSecurity
push eax
call fcn.00444448
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x39
push ecx
push eax
lea ecx, [ebp - 0x110]
call fcn.0043fb19
mov byte [ebp - 4], 0x3a
push esi
push eax
mov ecx, edi
call fcn.004445a8
lea ecx, [ebp - 0xf8]
call fcn.00403060
lea ecx, [ebp - 0x110]
call fcn.00403060
lea ecx, [ebp - 0x80]
call fcn.00403060
mov eax, dword [ebp - 0x24]
mov esi, 0x1000
cmp eax, 0x10
jb 0x4260ee
mov ecx, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x27c], ecx
cmp eax, esi
jb 0x4260e5
lea eax, [ebp - 0x280]
push eax
lea eax, [ebp - 0x27c]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x280]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x27c]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
and dword [ebp - 0x28], 0
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x38], 0
call fcn.00403060
lea ecx, [ebp - 0xe0]
call fcn.00403060
lea ecx, [ebp - 0x98]
call fcn.00403060
mov eax, dword [ebp - 0x3c]
cmp eax, 0x10
jb 0x426160
mov ecx, dword [ebp - 0x50]
inc eax
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x27c], ecx
cmp eax, esi
jb 0x426157
lea eax, [ebp - 0x280]
push eax
lea eax, [ebp - 0x27c]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x280]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x27c]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
and dword [ebp - 0x40], 0
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 0x50], 0
cmp eax, 0x10
jb 0x426964
mov ecx, dword [ebp - 0x68]
inc eax
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x27c], ecx
cmp eax, esi
jb 0x4261ac
lea eax, [ebp - 0x280]
push eax
lea eax, [ebp - 0x27c]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x280]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x27c]
push eax
push ecx
call fcn.0044c6c2
pop ecx
jmp 0x426963
push dword [ebp - 0x290]
call fcn.0046c4c1
mov dword [ebp - 0x284], eax
pop ecx
test eax, eax
je 0x426964
mov esi, dword [ebp - 0x290]
mov edx, eax
mov ecx, esi
test ecx, ecx
je 0x4261ea
mov byte [edx], 0
inc edx
sub ecx, 1
jne 0x4261e1
cmp dword [edi + 0x14], 8
jb 0x4261f2
mov edi, dword [edi]
lea ecx, [ebp - 0x290]
push ecx
push esi
push eax
push 7
push edi
call dword [sym.imp.ADVAPI32.dll_GetFileSecurityW]
test eax, eax
jne 0x42640b
and dword [ebp - 0x58], eax
lea ecx, [ebp - 0x68]
push 7
push str.GPCUtil
mov dword [ebp - 0x54], ebx
mov byte [ebp - 0x68], al
call fcn.004035a0
lea eax, [ebp - 0x68]
mov dword [ebp - 4], 0x3b
push eax
call fcn.004442a8
and dword [ebp - 0x40], 0
mov edi, eax
pop ecx
push 0xe
push str.GetLastError__
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 0x50], 0
call fcn.004035a0
mov byte [ebp - 4], 0x3c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.00444349
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x3d
push ecx
push eax
lea ecx, [ebp - 0xe0]
call fcn.0043fb19
mov esi, eax
xor eax, eax
mov byte [ebp - 4], 0x3e
push eax
push 0x4ae71b
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x38], al
call fcn.004035a0
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0x3f
push str.CFileSystem::IsFolderWritable__second_GetFileSecurity
push eax
call fcn.00444448
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x40
push ecx
push eax
lea ecx, [ebp - 0x110]
call fcn.0043fb19
push esi
push eax
mov ecx, edi
mov byte [ebp - 4], 0x41
call fcn.004445a8
lea ecx, [ebp - 0xf8]
call fcn.00403060
lea ecx, [ebp - 0x110]
call fcn.00403060
lea ecx, [ebp - 0x80]
call fcn.00403060
mov eax, dword [ebp - 0x24]
mov esi, 0x1000
cmp eax, 0x10
jb 0x42633f
mov ecx, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x27c], ecx
cmp eax, esi
jb 0x426336
lea eax, [ebp - 0x280]
push eax
lea eax, [ebp - 0x27c]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x280]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x27c]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
and dword [ebp - 0x28], 0
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x38], 0
call fcn.00403060
lea ecx, [ebp - 0xe0]
call fcn.00403060
lea ecx, [ebp - 0x98]
call fcn.00403060
mov eax, dword [ebp - 0x3c]
cmp eax, 0x10
jb 0x4263b1
mov ecx, dword [ebp - 0x50]
inc eax
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x27c], ecx
cmp eax, esi
jb 0x4263a8
lea eax, [ebp - 0x280]
push eax
lea eax, [ebp - 0x27c]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x280]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x27c]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
and dword [ebp - 0x40], 0
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 0x50], 0
cmp eax, 0x10
jb 0x426958
mov ecx, dword [ebp - 0x68]
inc eax
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x27c], ecx
cmp eax, esi
jb 0x4263fd
lea eax, [ebp - 0x280]
push eax
lea eax, [ebp - 0x27c]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x280]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x27c]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
jmp 0x426958
and dword [ebp - 0x294], 0
push 2
call dword [sym.imp.ADVAPI32.dll_ImpersonateSelf]
test eax, eax
je 0x42675a
lea eax, [ebp - 0x294]
push eax
push 0
push 0xa
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenThreadToken]
test eax, eax
je 0x42675a
push 0x10
mov dword [ebp - 0x298], 6
lea eax, [ebp - 0x168]
pop ecx
mov byte [eax], 0
inc eax
sub ecx, 1
jne 0x426455
lea eax, [ebp - 0x168]
mov dword [ebp - 0x164], 0x120116
push eax
lea eax, [ebp - 0x298]
push eax
call dword [sym.imp.ADVAPI32.dll_MapGenericMask]
and dword [ebp - 0x2a8], 0
lea eax, [ebp - 0x28c]
push eax
lea eax, [ebp - 0x2a8]
mov dword [ebp - 0x28c], 1
push eax
lea eax, [ebp - 0x2ac]
mov dword [ebp - 0x2ac], 0x14
push eax
lea eax, [ebp - 0x278]
push eax
lea eax, [ebp - 0x168]
push eax
push dword [ebp - 0x298]
push dword [ebp - 0x294]
push dword [ebp - 0x284]
call dword [sym.imp.ADVAPI32.dll_AccessCheck]
neg eax
sbb eax, eax
and dword [ebp - 0x28c], eax
jne 0x426731
and dword [ebp - 0x148], 0
lea ecx, [ebp - 0x158]
push 7
push str.GPCUtil
mov dword [ebp - 0x144], ebx
mov byte [ebp - 0x158], 0
call fcn.004035a0
lea eax, [ebp - 0x158]
mov dword [ebp - 4], 0x49
push eax
call fcn.004442a8
and dword [ebp - 0x118], 0
mov edi, eax
pop ecx
push 0xe
push str.GetLastError__
lea ecx, [ebp - 0x128]
mov dword [ebp - 0x114], ebx
mov byte [ebp - 0x128], 0
call fcn.004035a0
mov byte [ebp - 4], 0x4a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x1b0]
push eax
call fcn.00444349
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x128]
mov byte [ebp - 4], 0x4b
push ecx
push eax
lea ecx, [ebp - 0x264]
call fcn.0043fb19
mov esi, eax
xor eax, eax
mov byte [ebp - 4], 0x4c
push eax
push 0x4ae71b
lea ecx, [ebp - 0x140]
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], ebx
mov byte [ebp - 0x140], al
call fcn.004035a0
lea eax, [ebp - 0x198]
mov byte [ebp - 4], 0x4d
push str.CFileSystem::IsFolderWritable__AccessCheck_failed
push eax
call fcn.00444448
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x140]
mov byte [ebp - 4], 0x4e
push ecx
push eax
lea ecx, [ebp - 0x234]
call fcn.0043fb19
push esi
push eax
mov ecx, edi
mov byte [ebp - 4], 0x4f
call fcn.004445a8
lea ecx, [ebp - 0x21c]
call fcn.00403060
lea ecx, [ebp - 0x234]
call fcn.00403060
lea ecx, [ebp - 0x198]
call fcn.00403060
mov eax, dword [ebp - 0x12c]
mov esi, 0x1000
cmp eax, 0x10
jb 0x426650
mov ecx, dword [ebp - 0x140]
inc eax
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x27c], ecx
cmp eax, esi
jb 0x426647
lea eax, [ebp - 0x280]
push eax
lea eax, [ebp - 0x27c]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x280]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x27c]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
and dword [ebp - 0x130], 0
lea ecx, [ebp - 0x24c]
mov dword [ebp - 0x12c], ebx
mov byte [ebp - 0x140], 0
call fcn.00403060
lea ecx, [ebp - 0x264]
call fcn.00403060
lea ecx, [ebp - 0x1b0]
call fcn.00403060
mov eax, dword [ebp - 0x114]
cmp eax, 0x10
jb 0x4266d1
mov ecx, dword [ebp - 0x128]
inc eax
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x27c], ecx
cmp eax, esi
jb 0x4266c8
lea eax, [ebp - 0x280]
push eax
lea eax, [ebp - 0x27c]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x280]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x27c]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
and dword [ebp - 0x118], 0
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x114], ebx
mov byte [ebp - 0x128], 0
cmp eax, 0x10
jb 0x426731
mov ecx, dword [ebp - 0x158]
inc eax
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x27c], ecx
cmp eax, esi
jb 0x426728
lea eax, [ebp - 0x280]
push eax
lea eax, [ebp - 0x27c]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x280]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x27c]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
call dword [sym.imp.ADVAPI32.dll_RevertToSelf]
push dword [ebp - 0x284]
call fcn.00468327
pop ecx
push dword [ebp - 0x294]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x28c]
jmp 0x426966
and dword [ebp - 0x58], 0
lea ecx, [ebp - 0x68]
push 7
push str.GPCUtil
mov dword [ebp - 0x54], ebx
mov byte [ebp - 0x68], 0
call fcn.004035a0
lea eax, [ebp - 0x68]
mov dword [ebp - 4], 0x42
push eax
call fcn.004442a8
and dword [ebp - 0x40], 0
mov edi, eax
pop ecx
push 0xe
push str.GetLastError__
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 0x50], 0
call fcn.004035a0
mov byte [ebp - 4], 0x43
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.00444349
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x44
push ecx
push eax
lea ecx, [ebp - 0xe0]
call fcn.0043fb19
mov esi, eax
xor eax, eax
mov byte [ebp - 4], 0x45
push eax
push 0x4ae71b
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x38], al
call fcn.004035a0
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0x46
push str.CFileSystem::IsFolderWritable__ImpersonateSelf_err
push eax
call fcn.00444448
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x47
push ecx
push eax
lea ecx, [ebp - 0x110]
call fcn.0043fb19
push esi
push eax
mov ecx, edi
mov byte [ebp - 4], 0x48
call fcn.004445a8
lea ecx, [ebp - 0xf8]
call fcn.00403060
lea ecx, [ebp - 0x110]
call fcn.00403060
lea ecx, [ebp - 0x80]
call fcn.00403060
mov eax, dword [ebp - 0x24]
mov esi, 0x1000
cmp eax, 0x10
jb 0x42688f
mov ecx, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x27c], ecx
cmp eax, esi
jb 0x426886
lea eax, [ebp - 0x280]
push eax
lea eax, [ebp - 0x27c]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x280]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x27c]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
and dword [ebp - 0x28], 0
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x38], 0
call fcn.00403060
lea ecx, [ebp - 0xe0]
call fcn.00403060
lea ecx, [ebp - 0x98]
call fcn.00403060
mov eax, dword [ebp - 0x3c]
cmp eax, 0x10
jb 0x426901
mov ecx, dword [ebp - 0x50]
inc eax
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x27c], ecx
cmp eax, esi
jb 0x4268f8
lea eax, [ebp - 0x280]
push eax
lea eax, [ebp - 0x27c]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x280]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x27c]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
and dword [ebp - 0x40], 0
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 0x50], 0
cmp eax, 0x10
jb 0x426952
mov ecx, dword [ebp - 0x68]
inc eax
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x27c], ecx
cmp eax, esi
jb 0x426949
lea eax, [ebp - 0x280]
push eax
lea eax, [ebp - 0x27c]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x280]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x27c]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
call dword [sym.imp.ADVAPI32.dll_RevertToSelf]
push dword [ebp - 0x284]
call fcn.00468327
pop ecx
xor eax, eax
call fcn.0044c944
ret