Function at 0x405330
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xcf4
mov eax, dword [0x4f6fc0]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0xcec], 0
mov dword [ebp - 0xcd8], 0
mov al, byte [0x4f8336]
mov byte [ebp - 0x104], al
push 0xfe
push 0
lea ecx, [ebp - 0x103]
push ecx
call fcn.004b6780
add esp, 0xc
mov dl, byte [0x4f8337]
mov byte [ebp - 0x204], dl
push 0xfe
push 0
lea eax, [ebp - 0x203]
push eax
call fcn.004b6780
add esp, 0xc
mov cl, byte [0x4f8339]
mov byte [ebp - 0xcd4], cl
push 0x3e7
push 0
lea edx, [ebp - 0xcd3]
push edx
call fcn.004b6780
add esp, 0xc
mov al, byte [0x4f833d]
mov byte [ebp - 0x8ec], al
push 0x3e7
push 0
lea ecx, [ebp - 0x8eb]
push ecx
call fcn.004b6780
add esp, 0xc
mov dword [ebp - 0xce4], 0x4fcad8
mov dword [ebp - 0xce0], 0x4fcad8
mov dword [ebp - 0xcdc], 0
mov dl, byte [0x4f8340]
mov byte [ebp - 0x504], dl
push 0xfe
push 0
lea eax, [ebp - 0x503]
push eax
call fcn.004b6780
add esp, 0xc
call fcn.0049cfc0
mov dword [ebp - 0xce4], eax
mov ecx, dword [ebp - 0xce4]
push ecx
call fcn.0049cb30
add esp, 4
test eax, eax
je 0x405446
call fcn.0049cfc0
mov dword [ebp - 0xce0], eax
push str.UserRights
push 1
call fcn.004417b0
add esp, 8
mov edx, dword [ebp - 0xce0]
mov dword [ebp - 0xcdc], edx
mov eax, 1
imul eax, eax, 0
movsx ecx, byte [eax + 0x4f93d8]
test ecx, ecx
je 0x4054bb
push 0x4f93d8
call fcn.0042b620
add esp, 4
push eax
lea edx, [ebp - 0x504]
push edx
call fcn.004b5e60
add esp, 8
lea eax, [ebp - 0x504]
mov dword [ebp - 0xcdc], eax
mov ecx, dword [ebp - 0xcdc]
push ecx
call fcn.0042e130
add esp, 4
mov edx, dword [ebp - 0xcdc]
push edx
call fcn.00429ab0
add esp, 4
cmp dword [0x4f84a0], 0
jne 0x4054fc
cmp dword [0x4f84ac], 0
jne 0x4054fc
push 0x4d4b24
mov eax, dword [ebp - 0xcdc]
push eax
push 0x4d4b2c
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b6e08
add esp, 0x10
lea edx, [ebp - 0x104]
push edx
call fcn.00419870
add esp, 4
cmp dword [0x4f84a0], 1
jne 0x405531
push 0x4f93d8
call fcn.0042b620
add esp, 4
push eax
lea eax, [ebp - 0x104]
push eax
call fcn.004b5e60
add esp, 8
lea ecx, [ebp - 0x104]
push ecx
call fcn.00419870
add esp, 4
mov edx, 1
imul edx, edx, 0
movsx eax, byte [edx + 0x526a98]
test eax, eax
jne 0x405554
push 0xff
push 0x526a98
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov dword [ebp - 0xcd8], 1
jmp 0x40556f
mov ecx, dword [ebp - 0xcd8]
add ecx, 1
mov dword [ebp - 0xcd8], ecx
cmp dword [ebp - 0xcd8], 7
jg 0x4058d5
cmp dword [ebp - 0xcd8], 1
jne 0x4055aa
push 0x4d4b38
mov edx, dword [ebp - 0xcdc]
push edx
push 0x4d4b40
lea eax, [ebp - 0x104]
push eax
call fcn.004b6e08
add esp, 0x10
jmp 0x4056af
cmp dword [ebp - 0xcd8], 2
jne 0x4055ee
cmp dword [0x4f84a0], 1
je 0x4055c5
cmp dword [0x4f84ac], 1
jne 0x4055e4
push 0x4f93d8
call fcn.0042b620
add esp, 4
push eax
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b5e60
add esp, 8
jmp 0x4055e9
jmp 0x405560
jmp 0x4056af
cmp dword [ebp - 0xcd8], 3
jne 0x405601
jmp 0x405560
cmp dword [ebp - 0xcd8], 4
jne 0x405655
mov edx, dword [ebp - 0xce0]
push edx
mov eax, dword [ebp - 0xce4]
push eax
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x405629
jmp 0x405560
mov ecx, dword [ebp - 0xce0]
push ecx
push 0x4d4b7c
lea edx, [ebp - 0x104]
push edx
call fcn.004b6e08
add esp, 0xc
lea eax, [ebp - 0x104]
push eax
call fcn.0042e130
add esp, 4
jmp 0x4056af
cmp dword [ebp - 0xcd8], 5
jne 0x405665
jmp 0x405560
cmp dword [ebp - 0xcd8], 6
jne 0x405686
mov ecx, dword [ebp - 0xce4]
push ecx
lea edx, [ebp - 0x104]
push edx
call fcn.004b5e60
add esp, 8
jmp 0x4056af
cmp dword [ebp - 0xcd8], 7
jne 0x4056af
push 0x4d4ba0
mov eax, dword [ebp - 0xce0]
push eax
push 0x4d4ba8
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b6e08
add esp, 0x10
cmp dword [ebp - 0xcd8], 7
jne 0x4056d0
lea edx, [ebp - 0x104]
push edx
call fcn.00419490
add esp, 4
test eax, eax
jne 0x4056d0
jmp 0x405560
cmp dword [ebp - 0xcd8], 2
jne 0x4056e7
cmp dword [0x4d5da0], 0
jne 0x4056e7
jmp 0x405560
cmp dword [ebp - 0xcd8], 1
jne 0x405707
cmp dword [0x4f84a0], 1
jne 0x405707
cmp dword [0x4f84ac], 0
jne 0x405707
jmp 0x405560
lea eax, [ebp - 0x104]
push eax
mov ecx, dword [ebp - 0xcd8]
push ecx
push str.Check_Write_Privileges__d__s
lea edx, [ebp - 0x204]
push edx
call fcn.004b6e08
add esp, 0x10
lea eax, [ebp - 0x204]
push eax
push 0x4d4bd0
push 1
call fcn.004417b0
add esp, 0xc
push 0
lea ecx, [ebp - 0x104]
push ecx
call fcn.00418e80
add esp, 8
mov dword [ebp - 0xcec], eax
lea edx, [ebp - 0x104]
push edx
push 0x4d5dd0
push 0x4d4bd4
lea eax, [ebp - 0x204]
push eax
call fcn.004b6e08
add esp, 0x10
cmp dword [ebp - 0xcec], 1
jne 0x405821
mov ecx, 1
imul ecx, ecx, 0
movsx edx, byte [ebp + ecx - 0xcd4]
test edx, edx
je 0x4057ab
push 0x4d4bdc
lea eax, [ebp - 0xcd4]
push eax
call fcn.004b5e70
add esp, 8
lea ecx, [ebp - 0x204]
push ecx
lea edx, [ebp - 0xcd4]
push edx
call fcn.004b5e70
add esp, 8
cmp dword [ebp - 0xcd8], 5
jne 0x4057e0
push str.___Only_required_during_the_first_run_
lea eax, [ebp - 0xcd4]
push eax
call fcn.004b5e70
add esp, 8
jmp 0x40581c
cmp dword [ebp - 0xcd8], 6
jne 0x4057ff
push 0x4d4c08
lea ecx, [ebp - 0xcd4]
push ecx
call fcn.004b5e70
add esp, 8
jmp 0x40581c
cmp dword [ebp - 0xcd8], 7
jne 0x40581c
push 0x4d4c24
lea edx, [ebp - 0xcd4]
push edx
call fcn.004b5e70
add esp, 8
jmp 0x4058d0
mov eax, 1
imul eax, eax, 0
movsx ecx, byte [ebp + eax - 0x8ec]
test ecx, ecx
je 0x405849
push 0x4d4c38
lea edx, [ebp - 0x8ec]
push edx
call fcn.004b5e70
add esp, 8
lea eax, [ebp - 0x204]
push eax
lea ecx, [ebp - 0x8ec]
push ecx
call fcn.004b5e70
add esp, 8
cmp dword [ebp - 0xcd8], 5
jne 0x40587e
push str.___To_install_Speech_Recognition_
lea edx, [ebp - 0x8ec]
push edx
call fcn.004b5e70
add esp, 8
jmp 0x4058d0
cmp dword [ebp - 0xcd8], 6
jne 0x40589d
push str.___To_run_Setup__UpToDate_
lea eax, [ebp - 0x8ec]
push eax
call fcn.004b5e70
add esp, 8
jmp 0x4058d0
cmp dword [ebp - 0xcd8], 7
jne 0x4058bc
push str.___To_run_Setup_
lea ecx, [ebp - 0x8ec]
push ecx
call fcn.004b5e70
add esp, 8
jmp 0x4058d0
push str.___Create_Read_Write_Edit_Delete_Required_
lea edx, [ebp - 0x8ec]
push edx
call fcn.004b5e70
add esp, 8
jmp 0x405560
lea eax, [ebp - 0xcd4]
push eax
call fcn.004b5f60
add esp, 4
test eax, eax
je 0x405915
push str.Correct_User_Privileges:
push 1
mov ecx, dword [0x4f84c0]
push ecx
call fcn.00403ac0
add esp, 0xc
lea edx, [ebp - 0xcd4]
push edx
push 0
mov eax, dword [0x4f84c0]
push eax
call fcn.00403ac0
add esp, 0xc
lea ecx, [ebp - 0x8ec]
push ecx
call fcn.004b5f60
add esp, 4
test eax, eax
je 0x405956
push str.Incorrect_User_Privileges:_ERROR_
push 1
mov edx, dword [0x4f84c0]
push edx
call fcn.00403ac0
add esp, 0xc
lea eax, [ebp - 0x8ec]
push eax
push 0
mov ecx, dword [0x4f84c0]
push ecx
call fcn.00403ac0
add esp, 0xc
mov dl, byte [0x4f8349]
mov byte [ebp - 0x304], dl
push 0xfe
push 0
lea eax, [ebp - 0x303]
push eax
call fcn.004b6780
add esp, 0xc
mov cl, byte [0x4f834a]
mov byte [ebp - 0x404], cl
push 0xfe
push 0
lea edx, [ebp - 0x403]
push edx
call fcn.004b6780
add esp, 0xc
mov eax, 1
imul eax, eax, 0
mov dword [ebp - 0xcf4], eax
cmp dword [ebp - 0xcf4], 0xff
jae 0x4059b6
jmp 0x4059bb
call fcn.004b64ae
mov ecx, dword [ebp - 0xcf4]
mov byte [ebp + ecx - 0x204], 0
lea edx, [ebp - 0x404]
push edx
call fcn.0049d2c0
add esp, 4
lea eax, [ebp - 0x404]
push eax
call fcn.0042e130
add esp, 4
push 0x4d4d58
push 0x4d4d5c
push 0x4d4d60
lea ecx, [ebp - 0x404]
push ecx
push 0x4d4d6c
lea edx, [ebp - 0x304]
push edx
call fcn.004b6e08
add esp, 0x18
lea eax, [ebp - 0x304]
push eax
call fcn.00419490
add esp, 4
test eax, eax
jne 0x405ad7
mov ecx, 1
imul ecx, ecx, 0
mov dword [ebp - 0xcf0], ecx
cmp dword [ebp - 0xcf0], 0xff
jae 0x405a44
jmp 0x405a49
call fcn.004b64ae
mov edx, dword [ebp - 0xcf0]
mov byte [ebp + edx - 0x304], 0
call fcn.0049bcc0
cmp eax, 0xe
je 0x405a6b
call fcn.0049bcc0
cmp eax, 0xf
jne 0x405ad7
push 0x4d4ddc
push 0x4d4e0c
push 0x4d4e10
lea eax, [ebp - 0x404]
push eax
push str._s_sVirtualStore_sProgram_Files__x86__sDynEd
lea ecx, [ebp - 0x304]
push ecx
call fcn.004b6e08
add esp, 0x18
lea edx, [ebp - 0x304]
push edx
call fcn.00419490
add esp, 4
test eax, eax
jne 0x405ad7
mov eax, 1
imul eax, eax, 0
mov dword [ebp - 0xce8], eax
cmp dword [ebp - 0xce8], 0xff
jae 0x405ac4
jmp 0x405ac9
call fcn.004b64ae
mov ecx, dword [ebp - 0xce8]
mov byte [ebp + ecx - 0x304], 0
mov edx, 1
imul edx, edx, 0
movsx eax, byte [ebp + edx - 0x304]
test eax, eax
je 0x405b10
lea ecx, [ebp - 0x304]
push ecx
push 0x4d5dd0
push 0x4d4e6c
push str.Virtual_folders_should_be_deleted:__s_s_s
lea edx, [ebp - 0x204]
push edx
call fcn.004b6e08
add esp, 0x14
push 0x4d4ec8
push 0x4d4ee8
push 0x4d4eec
lea eax, [ebp - 0x404]
push eax
push str._s_sVirtualStore_sProgramData_sDynEd
lea ecx, [ebp - 0x304]
push ecx
call fcn.004b6e08
add esp, 0x18
lea edx, [ebp - 0x304]
push edx
call fcn.00419490
add esp, 4
cmp eax, 1
jne 0x405bab
mov eax, 1
imul eax, eax, 0
movsx ecx, byte [ebp + eax - 0x204]
test ecx, ecx
jne 0x405b76
push str.Virtual_folders_should_be_deleted:
lea edx, [ebp - 0x204]
push edx
call fcn.004b5e60
add esp, 8
lea eax, [ebp - 0x304]
push eax
push 0x4d5dd0
push 0x4d4f60
push 0x4d4f80
lea ecx, [ebp - 0x204]
push ecx
call fcn.004b5f60
add esp, 4
lea edx, [ebp + eax - 0x204]
push edx
call fcn.004b6e08
add esp, 0x14
mov eax, 1
imul eax, eax, 0
movsx ecx, byte [ebp + eax - 0x204]
test ecx, ecx
je 0x405bd6
lea edx, [ebp - 0x204]
push edx
push 1
mov eax, dword [0x4f84c0]
push eax
call fcn.00403ac0
add esp, 0xc
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004b6253
mov esp, ebp
pop ebp
ret