Function at 0x1000fb70
Capabilities:
Get common file path

Disassembly:
sub esp, 0x2d8
xor eax, eax
mov ecx, 0x11
push ebx
push esi
push edi
push ebp
mov edi, 0x10029100
rep stosd dword es:[edi], eax
mov edi, 0x100290b8
mov ecx, 0x11
rep stosd dword es:[edi], eax
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov ebx, eax
push 0x10
call fcn.1000ddc0
add esp, 4
mov ebp, eax
test ebx, 0x80000000
je 0x1000fbe2
push 0x10030024
cmp bl, 3
jne 0x1000fbce
push str.Win32s
call fcn.10010140
add esp, 8
push str.Win32s
jmp 0x1000fbf9
push str.Win9x
call fcn.10010140
add esp, 8
push str.Win9x
jmp 0x1000fbf9
push 0x10030024
push str.WinNT
call fcn.10010140
add esp, 8
push str.WinNT
push str.Platform
call fcn.10010140
add esp, 8
push 0x10030024
push str.Win32
call fcn.10010140
add esp, 8
mov eax, ebx
and eax, 0xff
mov edi, 0x10030028
push 0xa
push ebp
push eax
call fcn.100258e8
add esp, 0xc
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov ecx, 0xffffffff
mov edi, ebp
sub eax, eax
repne scasb al, byte es:[edi]
dec edi
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebp
mov ecx, 0xffffffff
sub eax, eax
push 0xa
repne scasb al, byte es:[edi]
not ecx
lea eax, [ebp + ecx - 1]
mov dword [esp + 0x18], eax
push eax
xor eax, eax
mov edi, 0x10030028
mov al, bh
push eax
call fcn.100258e8
add esp, 0xc
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, dword [esp + 0x14]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
dec edi
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x14]
mov ecx, 0xffffffff
sub eax, eax
push 0xa
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x18]
and ebx, 0x3fff0000
not ecx
shr ebx, 0x10
lea ecx, [eax + ecx - 1]
push ecx
push ebx
call fcn.100258e8
add esp, 0xc
push ebp
push str.WinVer
call fcn.10010140
lea eax, [esp + 0xe4]
add esp, 8
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
push 0xa
xor eax, eax
mov ax, word [esp + 0xe6]
push ebp
push eax
call fcn.100258e8
add esp, 0xc
push ebp
push 0x100303e0
call fcn.10010140
add esp, 8
xor eax, eax
mov ax, word [esp + 0xde]
push 0xa
push ebp
push eax
call fcn.100258e8
add esp, 0xc
push ebp
push str.Month
call fcn.10010140
add esp, 8
push 0xa
push ebp
mov eax, dword [esp + 0xe4]
and eax, 0xffff
push eax
call fcn.100258e8
add esp, 0xc
push ebp
push str.Year
call fcn.10010140
lea ecx, [esp + 0xe4]
add esp, 8
push 0x104
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea ecx, [esp + 0xdc]
push ecx
push str.WinDir
call fcn.10010140
lea eax, [esp + 0xe4]
add esp, 8
mov ebp, dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
push 0x104
push eax
call ebp
lea ecx, [esp + 0xdc]
push ecx
push str.SysDir
call fcn.10010140
lea eax, [esp + 0xe4]
add esp, 8
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea ecx, [esp + 0xdc]
push ecx
push str.TempDir
call fcn.10010140
lea eax, [esp + 0xe4]
add esp, 8
mov ecx, dword [0x1002f4c4]
push eax
push 0x1002be00
push ecx
call fcn.100155f0
lea ecx, [esp + 0xe8]
add esp, 0xc
push ecx
push str.TargetDir
call fcn.100100e0
add esp, 8
mov eax, dword [0x1002f384]
cmp eax, 0xffffffff
jle 0x1000fe48
lea ecx, [esp + 0xdc]
push ecx
push 0x1002be00
push eax
call fcn.100155f0
lea eax, [esp + 0xe8]
add esp, 0xc
push eax
push str.BackupDir
call fcn.100100e0
add esp, 8
mov esi, dword [0x1002b254]
dec esi
cmp esi, 0xffffffff
jle 0x1000feb2
lea eax, [esp + 0x10]
push eax
push 0x1002b250
push esi
call fcn.100155f0
lea eax, [esp + 0xe8]
mov ecx, dword [esp + 0x1c]
add esp, 0xc
dec esi
push eax
push 0x1002be00
push ecx
call fcn.100155f0
lea edx, [esp + 0x20]
add esp, 0xc
lea ecx, [esi + 2]
push ecx
push str.System_i
push edx
call fcn.100202ee
lea ecx, [esp + 0xe8]
lea edx, [esp + 0x20]
add esp, 0xc
push ecx
push edx
call fcn.100100e0
add esp, 8
cmp esi, 0xffffffff
jg 0x1000fe54
mov word [0x10030014], 1
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x2d8
ret