Function at 0x100134c0
Capabilities:
Get common file path

Disassembly:
mov eax, 0x31a4
call fcn.10126240
mov eax, dword [0x1017455c]
xor eax, esp
mov dword [esp + 0x319c], eax
mov eax, dword [esp + 0x31a8]
push ebx
push ebp
mov ebp, dword [esp + 0x31b4]
push esi
push edi
mov edi, ecx
xor ebx, ebx
push 0x3ff
lea ecx, [esp + 0x119d]
mov esi, edx
push ebx
push ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x3c], esi
mov dword [esp + 0x2c], 0x5000
mov byte [esp + 0x11a4], bl
call fcn.10116880
add esp, 0xc
push 0x3ff
lea edx, [esp + 0x29ad]
push ebx
push edx
mov byte [esp + 0x29b4], bl
call fcn.10116880
add esp, 0xc
push 0x3ff
lea eax, [esp + 0x99d]
push ebx
push eax
mov byte [esp + 0x9a4], bl
call fcn.10116880
add esp, 0xc
push 0x40f
lea ecx, [esp + 0x259d]
push ebx
push ecx
mov byte [esp + 0x25a4], bl
call fcn.10116880
add esp, 0xc
push 0x40f
lea edx, [esp + 0x18d]
push ebx
push edx
mov byte [esp + 0x194], bl
call fcn.10116880
add esp, 0xc
call fcn.10013180
mov dword [esp + 0x24], eax
cmp ebp, ebx
je 0x100135a9
mov byte [ebp], bl
cmp esi, ebx
je 0x100135af
mov byte [esi], bl
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x1001407a
cmp byte [eax], bl
je 0x1001407a
cmp edi, ebx
je 0x1001407a
cmp byte [edi], bl
je 0x1001407a
lea esi, [esp + 0x20]
call fcn.10013080
or esi, 0xffffffff
cmp dword [0x1018c998], esi
je 0x100135ef
cmp dword [0x101907ec], ebx
je 0x10013625
push 0x1018c998
push str.DWCheckFileSizeForIntegrity
mov ecx, str.SOFTWAREMicroWorld
mov edx, reloc.OLEAUT32.dll_SysReAllocString
call fcn.10031670
test al, al
jne 0x10013625
mov dword [0x1018c998], ebx
xor eax, eax
mov edi, str.DWCheckFileSizeForIntegrity
mov ebx, str.SOFTWAREMicroWorld
call fcn.10031430
xor ebx, ebx
cmp dword [0x1018c99c], esi
je 0x10013635
cmp dword [0x101907ec], ebx
je 0x1001363f
call fcn.100140b0
mov dword [0x1018c99c], eax
cmp dword [0x1018c9a0], esi
je 0x1001364f
cmp dword [0x101907ec], ebx
je 0x10013687
push 0x1018c9a0
push str.DWMinDiskSpaceRequiredMB
mov ecx, str.SOFTWAREMicroWorld
mov edx, reloc.OLEAUT32.dll_SysReAllocString
call fcn.10031670
test al, al
jne 0x10013687
mov eax, 0x1f4
mov edi, str.DWMinDiskSpaceRequiredMB
mov ebx, str.SOFTWAREMicroWorld
mov dword [0x1018c9a0], eax
call fcn.10031430
xor ebx, ebx
mov dword [0x101907ec], ebx
cmp dword [0x1018c99c], ebx
jne 0x100136b3
cmp ebp, ebx
je 0x1001408e
mov ecx, 7
mov esi, str.Error:_File_Backup_Is_Disabled
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp 0x1001408e
mov esi, dword [esp + 0x1c]
push esi
call sym.EncDec.dll_IsFileOnFixedDrive
test eax, eax
jne 0x100136dc
cmp ebp, ebx
je 0x1001408e
mov ecx, 8
mov esi, str.Error:_File_Not_on_Fixed_Drive.
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
jmp 0x1001408e
lea edx, [esp + 0x2598]
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
cmp cl, bl
jne 0x100136e7
push 0x410
lea ebx, [esp + 0x18c]
lea esi, [esp + 0x259c]
call fcn.10042910
add esp, 4
cmp byte [esp + 0x188], 0
jne 0x10013733
xor eax, eax
jmp 0x10013720
mov cl, byte [esp + eax + 0x2598]
mov byte [esp + eax + 0x188], cl
inc eax
test cl, cl
jne 0x10013720
lea eax, [esp + 0x188]
push eax
call fcn.10012e00
add esp, 4
test eax, eax
je 0x10013762
test ebp, ebp
je 0x1001408e
mov ecx, 9
mov esi, str.Error:_File_In_Backup_Exclude_List.
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
jmp 0x1001408e
lea ebx, [esp + 0x1198]
lea eax, [esp + 0x188]
call fcn.10057210
xor ebx, ebx
cmp byte [esp + 0x1198], bl
jne 0x100137a0
cmp ebp, ebx
je 0x1001408e
mov ecx, 6
mov esi, str.Error:_Extension_Missing
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x1001408e
lea ecx, [esp + 0x29a8]
push ecx
lea ecx, [esp + 0x18c]
call fcn.10045a10
add esp, 4
push 7
lea edx, [esp + 0x29ac]
push str.BACKUP.
push edx
call fcn.101109e4
add esp, 0xc
test eax, eax
jne 0x100137e7
cmp ebp, ebx
je 0x1001408e
lea ecx, [eax + 0xb]
mov esi, str.Error:_File_Is_Backup_Created_After_An_Update
jmp 0x10014088
push 0x140
lea eax, [esp + 0x4c]
push ebx
push eax
call fcn.10116880
add esp, 0xc
push 0x3ff
lea ecx, [esp + 0x199d]
push ebx
push ecx
mov byte [esp + 0x19a4], bl
call fcn.10116880
add esp, 0xc
push 0x3ff
lea edx, [esp + 0x1d9d]
push ebx
push edx
mov byte [esp + 0x1da4], bl
call fcn.10116880
add esp, 0xc
push 0x3ff
lea eax, [esp + 0x219d]
push ebx
push eax
mov byte [esp + 0x21a4], bl
call fcn.10116880
add esp, 0xc
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x19a0]
push eax
lea ecx, [esp + 0x194]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
push ecx
lea edx, [esp + 0x4c]
lea ebx, [esp + 0x21a8]
lea ecx, [esp + 0x1da8]
call fcn.10012830
mov ebp, eax
add esp, 0x10
mov dword [esp + 0x1c], ebp
test ebp, ebp
jne 0x10013939
lea esi, [esp + 0x188]
call fcn.10013110
test eax, eax
je 0x100138d9
cmp dword [esp + 0x14], ebp
je 0x1001408e
mov edi, dword [esp + 0x14]
mov ecx, 0x10
mov esi, str.Error:_File_possibly_a_temp_file_or_located_in_a_temporary_folder.
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp 0x1001408e
lea edi, [esp + 0x1198]
call fcn.10012110
test eax, eax
jne 0x10013939
mov edx, edi
push edx
lea eax, [esp + 0x159c]
push 0x1014a334
push eax
call fcn.1010d6a8
lea ecx, [esp + 0x15a4]
add esp, 0xc
push ecx
lea ecx, [esp + 0x18c]
call fcn.100122d0
add esp, 4
test eax, eax
jne 0x10013939
mov edi, dword [esp + 0x14]
test edi, edi
je 0x1001408e
mov ecx, 0xf
mov esi, str.Error:_File_Extension_Is_Not_Present_In_VR_and_BK.AVS_List.
rep movsd dword es:[edi], dword [esi]
jmp 0x1001408e
lea edi, [esp + 0x48]
lea ebx, [esp + 0x188]
mov dword [esp + 0x18], 0
call fcn.10065b20
cmp ebp, 1
jne 0x100139ff
cmp dword [esp + 0x44], 0
jne 0x100139ff
cmp dword [esp + 0x40], 0
jne 0x100139ff
cmp dword [esp + 0x38], 0
jne 0x100139ff
cmp dword [esp + 0x34], 0
jne 0x100139ff
mov esi, dword [esp + 0x50]
mov ebp, dword [esp + 0x60]
test esi, esi
jne 0x100139a3
cmp dword [esp + 0x4c], 0
jne 0x100139a3
test ebp, ebp
jne 0x100139a3
cmp dword [esp + 0x5c], ebp
je 0x100139fb
lea edx, [esp + 0x188]
push edx
lea eax, [esp + 0x59c]
push str.SOFTWAREMicroWorldFBackUp_s
push eax
call fcn.1010d6a8
add esp, 0xc
mov eax, esi
mov edi, str.ftCreate.dwHighDateTime
lea ebx, [esp + 0x598]
call fcn.10031430
mov eax, dword [esp + 0x4c]
mov edi, str.ftCreate.dwLowDateTime
call fcn.10031430
mov eax, ebp
mov edi, str.ftLastWrite.dwHighDateTime
call fcn.10031430
mov eax, dword [esp + 0x5c]
mov edi, str.ftLastWrite.dwLowDateTime
call fcn.10031430
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x68]
test eax, eax
jne 0x10013a15
lea ecx, [esp + 0x188]
call fcn.100447d0
test eax, eax
ja 0x10013a40
test ebp, ebp
jne 0x10013a40
mov edi, dword [esp + 0x14]
test edi, edi
je 0x10013a31
mov ecx, 7
mov esi, str.Error:_File_is_of_Zero_bytes.
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea ecx, [esp + 0x18]
push ecx
call fcn.100673f0
jmp 0x1001408e
mov ecx, dword [esp + 0x20]
test ecx, ecx
jbe 0x10013a80
shl ecx, 0xa
cmp eax, ecx
jbe 0x10013a80
test ebp, ebp
jne 0x10013a80
mov edi, dword [esp + 0x14]
test edi, edi
je 0x10013a69
mov ecx, 0xc
mov esi, str.Error:_File_is_more_than_permissible_backup_size.
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea edx, [esp + 0x18]
push edx
call fcn.100673f0
jmp 0x1001408e
push 0x3ff
lea eax, [esp + 0x59d]
push 0
push eax
mov byte [esp + 0x5a4], 0
call fcn.10116880
add esp, 0xc
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0x44]
push edx
push 0
push 0
lea eax, [esp + 0x9cc]
push eax
lea ecx, [esp + 0x1c0]
push ecx
call sym.EncDec.dll_GetVersionInformation
test eax, eax
jne 0x10013aff
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
call esi
push 0x400
mov edi, eax
lea esi, [esp + 0x59c]
call fcn.10049ce0
add esp, 4
cmp byte [esp + 0x998], 0
jne 0x10013b6b
cmp dword [0x1018c998], 0
jne 0x10013b6b
test ebp, ebp
jne 0x10013b6b
mov edi, dword [esp + 0x14]
test edi, edi
je 0x10013b5c
cmp byte [esp + 0x598], 0
je 0x10013b4d
lea edx, [esp + 0x598]
push edx
push str.Error:_Unable_to_get_Version_Information___s
push edi
call fcn.1010d6a8
add esp, 0xc
lea eax, [esp + 0x18]
push eax
call fcn.100673f0
jmp 0x1001408e
mov ecx, 0xb
mov esi, str.Error:_File_Does_Not_Have_Version_Information.
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
lea eax, [esp + 0x18]
push eax
call fcn.100673f0
jmp 0x1001408e
cmp dword [0x1019bb8c], 0
jne 0x10013b8a
mov esi, dword [esp + 0x2c]
call fcn.1005a120
mov esi, 1
mov dword [0x1019bb8c], esi
jmp 0x10013b8f
mov esi, 1
push 0x3ff
lea ecx, [esp + 0xd9d]
push 0
push ecx
mov byte [esp + 0xda4], 0
call fcn.10116880
add esp, 0xc
lea ecx, [esp + 0xd98]
lea edx, [esp + 0x188]
call fcn.10071550
test eax, eax
je 0x10013bcf
cmp byte [esp + 0xd98], 0
jne 0x10013c06
test ebp, ebp
je 0x10014057
lea eax, [esp + 0xd98]
lea ecx, [esp + 0x1998]
call fcn.10031890
test eax, eax
jne 0x10013d63
lea ecx, [esp + 0x18]
push ecx
call fcn.100673f0
mov eax, 2
jmp 0x10014090
test ebp, ebp
jne 0x10013bd7
cmp dword [esp + 0x24], ebp
jne 0x10013d23
cmp byte [0x1019bb90], 0
jne 0x10013cb8
push 0x104
push 0x1019bb90
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov ecx, 0x1019bb90
call fcn.10049c40
cmp byte [0x1019bb90], 0
mov eax, 0x1019bb90
je 0x10013c57
lea esp, [esp]
add eax, esi
cmp byte [eax], 0
jne 0x10013c50
sub eax, 0x1019bb90
mov dword [0x101a3c84], eax
call fcn.1004f190
test eax, eax
je 0x10013cb8
push 0x1019bb90
push 0x1019bc98
mov dword [0x1019bd9c], esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0
push str.SysWow64_
push str.System32_
push 0x1019bc98
call fcn.10047ed0
add esp, 0x10
cmp byte [0x1019bc98], 0
mov eax, 0x1019bc98
je 0x10013cae
add eax, esi
cmp byte [eax], 0
jne 0x10013ca7
sub eax, 0x1019bc98
mov dword [0x101a3c80], eax
mov edx, dword [0x101a3c84]
push edx
mov eax, 0x1019bb90
lea ecx, [esp + 0x18c]
call fcn.100318e0
add esp, 4
test eax, eax
je 0x10013d23
cmp dword [0x1019bd9c], esi
jne 0x10013cfd
mov eax, dword [0x101a3c80]
push eax
mov eax, 0x1019bc98
lea ecx, [esp + 0x18c]
call fcn.100318e0
add esp, 4
test eax, eax
je 0x10013d23
mov edi, dword [esp + 0x14]
test edi, edi
je 0x10013d14
mov ecx, 0xa
mov esi, str.Error:_File_NOT_part_of_Sys32_Folder_tree.
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
push ecx
call fcn.100673f0
jmp 0x1001408e
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0xd9c]
push eax
push ecx
lea edx, [esp + 0x194]
push edx
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x9a8]
call fcn.10012a90
mov esi, eax
add esp, 0x10
lea eax, [esp + 0x18]
push eax
call fcn.100673f0
mov eax, esi
jmp 0x10014090
xor ecx, ecx
xor ebx, ebx
xor eax, eax
xor ebp, ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ebp
cmp byte [esp + 0x1d98], cl
je 0x10013da8
lea edx, [esp + 0x20]
push edx
lea edi, [esp + 0x2c]
lea esi, [esp + 0x1d9c]
call fcn.1006adf0
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
add esp, 4
cmp byte [esp + 0x998], 0
je 0x10013dd6
lea eax, [esp + 0x1c]
push eax
lea edi, [esp + 0x28]
lea esi, [esp + 0x99c]
call fcn.1006adf0
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
add esp, 4
test ebx, ebx
jne 0x10013dde
test ecx, ecx
je 0x10013de8
mov dword [0x1018c998], 0
cmp ebx, ebp
jne 0x10013df0
cmp ecx, eax
je 0x10013e10
test ebp, ebp
jne 0x10013df8
test eax, eax
je 0x10013e10
cmp dword [0x1018c998], 0
je 0x10013ff1
cmp dword [esp + 0x3c], 0
je 0x10013ff1
lea ecx, [esp + 0x188]
push ecx
lea edx, [esp + 0x59c]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [esp + 0x598], 0
lea eax, [esp + 0x598]
je 0x10013e3d
inc eax
cmp byte [eax], 0
jne 0x10013e37
push 0
push 0
xor edx, edx
lea ecx, [esp + 0x5a0]
mov byte [eax - 1], 0x7e
call fcn.10044660
add esp, 8
test eax, eax
jne 0x10013ea0
mov edx, dword [esp + 0x30]
test edx, edx
je 0x10013e7a
lea eax, [esp + 0x598]
mov ecx, eax
sub edx, ecx
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x10013e70
mov edi, dword [esp + 0x14]
test edi, edi
je 0x10013e91
mov ecx, 0x10
mov esi, str.ErrorRestore:_File_already_present._Maybe_opened_by_another_thread
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
lea edx, [esp + 0x18]
push edx
call fcn.100673f0
jmp 0x1001408e
push 0
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x48]
push ecx
push 1
lea edx, [esp + 0x5a8]
push edx
lea eax, [esp + 0x21ac]
push eax
xor ecx, ecx
call fcn.1006b260
add esp, 0x18
cmp eax, 1
jne 0x10013fcd
push 0x3ff
lea ecx, [esp + 0x159d]
push 0
push ecx
mov byte [esp + 0x15a4], 0
call fcn.10116880
add esp, 0xc
lea ecx, [esp + 0x1598]
lea edx, [esp + 0x598]
call fcn.10071550
cmp eax, 1
jne 0x10013f61
lea eax, [esp + 0x1998]
lea ecx, [esp + 0x1598]
call fcn.10031890
test eax, eax
jne 0x10013f61
mov edx, dword [esp + 0x30]
test edx, edx
je 0x10013f3c
lea eax, [esp + 0x598]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x10013f32
mov edi, dword [esp + 0x14]
test edi, edi
je 0x10013f52
mov ecx, 0xd
mov esi, str.ErrorRestore:_Restore_will_happen_in_separate_thread.
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea edx, [esp + 0x18]
push edx
call fcn.100673f0
jmp 0x1001408e
lea eax, [esp + 0x2198]
call fcn.10033960
lea eax, [esp + 0x188]
push eax
lea ecx, [esp + 0x2dac]
push str.SOFTWAREMicroWorldFBackUp_s
push ecx
call fcn.1010d6a8
add esp, 0xc
lea edi, [esp + 0x2da8]
mov eax, reloc.OLEAUT32.dll_SysReAllocString
call fcn.10048ba0
mov edi, dword [esp + 0x14]
test edi, edi
je 0x10013fb2
mov ecx, 0xf
mov esi, str.ErrorRestore:_File_Not_Restored._Backup_file_may_be_corrupted.
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
lea eax, [esp + 0x598]
call fcn.10033960
lea edx, [esp + 0x18]
push edx
call fcn.100673f0
jmp 0x1001408e
mov edi, dword [esp + 0x14]
test edi, edi
je 0x10013fe2
mov ecx, 0xe
mov esi, str.ErrorRestore:_File_Not_Restored._MyEncryptFile___failed.
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
lea eax, [esp + 0x18]
push eax
call fcn.100673f0
jmp 0x1001408e
cmp ebp, ebx
ja 0x1001401e
jne 0x10013ffb
cmp eax, ecx
ja 0x1001401e
mov edi, dword [esp + 0x14]
test edi, edi
je 0x10014012
mov ecx, 0xc
mov esi, str.Error:_Current_file_version_lower_than_backup_one.
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
push ecx
call fcn.100673f0
jmp 0x1001408e
lea edx, [esp + 0x18]
push edx
call fcn.100673f0
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0xd9c]
push ecx
push edx
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x194]
push eax
lea ecx, [esp + 0x9a8]
call fcn.10012a90
add esp, 0x10
jmp 0x10014090
mov edi, dword [esp + 0x14]
test edi, edi
je 0x1001406e
mov ecx, 0xb
mov esi, str.Error:_Failed_To_Obtain_The_File_MD5_Checksum.
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
push ecx
call fcn.100673f0
jmp 0x1001408e
cmp ebp, ebx
je 0x1001408e
mov esi, str.Error:_Invalid_Function_Arguments
mov ecx, 8
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
xor eax, eax
mov ecx, dword [esp + 0x31ac]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1010d699
add esp, 0x31a4
ret