Function at 0x1005636
Capabilities:
Check if file exists
Get common file path
Get disk information
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x104
push ebx
push esi
push edi
push 0
push 0
mov esi, 0x1001444
push esi
call fcn.01002a34
mov edi, eax
lea eax, [edi + 1]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov ebx, eax
xor eax, eax
cmp ebx, eax
jne 0x1005688
push eax
push 0x10
push eax
push eax
push 0x4b5
push eax
call fcn.010038cc
call fcn.01003547
mov dword [0x100aa5c], eax
xor eax, eax
jmp 0x10058f9
push edi
push ebx
push esi
call fcn.01002a34
test eax, eax
jne 0x10056b7
push eax
push 0x10
push eax
push eax
push 0x4b1
push eax
call fcn.010038cc
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [0x100aa5c], 0x80070714
jmp 0x1005681
push 0x10013b4
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
xor edi, edi
inc edi
test eax, eax
jne 0x10056d0
mov dword [0x100b490], edi
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov al, byte [0x100b99e]
test al, al
je 0x100571b
cmp al, 0x5c
jne 0x10056f2
cmp byte [0x100b99f], al
jne 0x10056f2
xor esi, esi
xor eax, eax
jmp 0x10056f6
mov eax, edi
xor esi, esi
push eax
push esi
push 0x100b99e
call fcn.01004b1a
test eax, eax
jne 0x100576d
push esi
push 0x10
push esi
push esi
push 0x4be
push esi
call fcn.010038cc
jmp 0x1005681
xor eax, eax
cmp dword [0x100b884], eax
jne 0x10058db
cmp dword [0x100b490], eax
jne 0x10058db
mov esi, 0x100ac44
push esi
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
je 0x1005774
push 3
push edi
push esi
call fcn.01004b1a
test eax, eax
jne 0x100576d
push esi
call fcn.01001f6e
test eax, eax
jne 0x1005774
push edi
push edi
push esi
call fcn.01004b1a
test eax, eax
je 0x1005774
mov eax, edi
jmp 0x10058f9
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x1001484
lea eax, [ebp - 0x104]
push eax
call edi
jmp 0x100589a
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
mov ebx, eax
cmp ebx, 6
je 0x10057a0
cmp ebx, 3
jne 0x10057b2
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x10057eb
cmp ebx, 2
jne 0x10057e0
cmp byte [ebp - 0x104], 0x41
je 0x10057e0
cmp byte [ebp - 0x104], 0x42
je 0x10057e0
lea eax, [ebp - 0x104]
push eax
call fcn.01005e13
test eax, eax
je 0x10057e0
cmp eax, 0x19000
jae 0x10057eb
inc byte [ebp - 0x104]
jmp 0x100589a
xor ebx, ebx
push ebx
push 3
lea eax, [ebp - 0x104]
push eax
call fcn.01003f0d
test eax, eax
jne 0x1005823
lea eax, [ebp - 0x104]
push eax
call fcn.01001f6e
test eax, eax
jne 0x10057e0
push ebx
push 1
lea eax, [ebp - 0x104]
push eax
call fcn.01003f0d
test eax, eax
je 0x10057e0
lea eax, [ebp - 0x104]
push eax
call fcn.01001f6e
test eax, eax
je 0x1005845
push 0x104
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x1001474
lea eax, [ebp - 0x104]
push eax
call fcn.01005b32
lea eax, [ebp - 0x104]
push eax
call fcn.01001f4b
test eax, eax
jne 0x1005874
inc byte [ebp - 0x104]
and byte [ebp - 0x101], al
jmp 0x100589a
push 2
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea eax, [ebp - 0x104]
push eax
push esi
call edi
push ebx
push 1
push esi
call fcn.01004b1a
test eax, eax
jne 0x10058d6
cmp byte [ebp - 0x104], 0x5a
lea eax, [ebp - 0x104]
jle 0x100578d
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 4
push 3
lea eax, [ebp - 0x104]
push eax
call fcn.01003f0d
test eax, eax
jne 0x100577a
jmp 0x1005681
xor eax, eax
inc eax
jmp 0x10058f9
push eax
push eax
push 0x1004e56
push eax
push 0x7d2
push dword [0x100b4a4]
call int.01004161
neg eax
sbb eax, eax
neg eax
pop edi
pop esi
pop ebx
leave
ret