Function at 0x479500
Capabilities:
Get common file path

Disassembly:
sub rsp, 0x7c8
mov qword [rsp + 0x7c0], rbx
mov qword [rsp + 0x7b8], rbp
mov qword [rsp + 0x7b0], rsi
mov qword [rsp + 0x7a8], rdi
mov qword [rsp + 0x7a0], r12
mov qword [rsp + 0x798], r13
mov r13, rcx
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov rax, qword [0x004dfd00]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x30], rax
xor ebp, ebp
xor ebx, ebx
xor esi, esi
call fcn.0047fa10
test eax, eax
jne 0x4799ff
call fcn.004545a0
test eax, eax
je 0x4795ee
xor r8d, r8d
lea rdx, str.CSetupHSF::UninstallTurboCom_n
lea rcx, [rsp + 0x390]
call fcn.00486850
movabs rdx, 0x203a5952544e45
mov qword [rsp + 0x70], rdx
lea rdi, [rsp + 0x70]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
lea rdx, [rsp + 0x390]
xor ecx, ecx
nop
nop
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
inc rcx
test al, al
jne 0x4795c0
call fcn.004546e0
mov rcx, rax
call fcn.004545b0
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x70]
call fcn.004548a0
mov r8, 0xffffffff80000002
lea rdx, str.SystemCurrentControlSetControlCommAlias
lea rcx, [rsp + 0x590]
call fcn.00465d20
lea rdx, [rsp + 0x598]
lea rcx, [rsp + 0x590]
call fcn.00464960
test eax, eax
je 0x479987
mov edx, 0x104
lea rcx, [rsp + 0x170]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea rdx, str._system.ini
lea rcx, [rsp + 0x40]
call fcn.0049b290
mov rdi, rax
lea rdx, [rsp + 0x170]
lea rcx, [rsp + 0x50]
call fcn.0049b290
nop
mov r8, rdi
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.0049b804
nop
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.0049b31c
nop
lea rcx, [rsp + 0x48]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x50]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x40]
call fcn.0049b1dc
lea rdx, str._system.new
lea rcx, [rsp + 0x48]
call fcn.0049b290
mov rdi, rax
lea rdx, [rsp + 0x170]
lea rcx, [rsp + 0x50]
call fcn.0049b290
nop
mov r8, rdi
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.0049b804
nop
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.0049b31c
nop
lea rcx, [rsp + 0x40]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x50]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x48]
call fcn.0049b1dc
lea rdx, str._system.bak
lea rcx, [rsp + 0x48]
call fcn.0049b290
mov rdi, rax
lea rdx, [rsp + 0x170]
lea rcx, [rsp + 0x50]
call fcn.0049b290
nop
mov r8, rdi
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.0049b804
nop
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.0049b31c
nop
lea rcx, [rsp + 0x40]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x50]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x48]
call fcn.0049b1dc
lea rdx, [0x004add50]
mov rcx, qword [rsp + 0x38]
call fcn.00487690
mov r12, rax
test rax, rax
je 0x479987
lea rdx, [0x004aed0c]
mov rcx, qword [rsp + 0x58]
call fcn.00487690
mov rdi, rax
test rax, rax
je 0x4798a8
mov r8, r12
mov edx, 0x103
lea rcx, [rsp + 0x280]
call fcn.00487510
test rax, rax
je 0x4798a0
lea rdx, [rsp + 0x280]
lea rcx, [rsp + 0x30]
call fcn.0049b398
lea rcx, [rsp + 0x30]
call fcn.0049b664
test ebp, ebp
jne 0x479802
lea rdx, str._386ENH_
lea rcx, [rsp + 0x30]
call fcn.0049a400
cmp eax, 0xffffffff
je 0x47986b
mov ebp, 1
mov ebx, ebp
jmp 0x47986b
test ebx, ebx
je 0x47986b
mov dl, 0x5b
lea rcx, [rsp + 0x30]
call fcn.0049bafc
test eax, eax
jne 0x479822
xor ebx, ebx
test esi, esi
je 0x4798a0
jmp 0x47986b
lea rdx, str.DEVICE
lea rcx, [rsp + 0x30]
call fcn.0049a400
cmp eax, 0xffffffff
je 0x47986b
lea rdx, str.TURBOVCD.VXD
lea rcx, [rsp + 0x30]
call fcn.0049a400
cmp eax, 0xffffffff
jne 0x479864
lea rdx, str.COMBUFF
lea rcx, [rsp + 0x30]
call fcn.0049a400
cmp eax, 0xffffffff
je 0x47986b
mov esi, 1
jmp 0x479882
lea r8, [rsp + 0x280]
lea rdx, [0x004add98]
mov rcx, rdi
call fcn.00488310
mov r8, r12
mov edx, 0x103
lea rcx, [rsp + 0x280]
call fcn.00487510
test rax, rax
jne 0x4797c3
mov rcx, rdi
call fcn.004874a0
mov rcx, r12
call fcn.004874a0
test esi, esi
je 0x479987
mov r9, qword [rsp + 0x38]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
xor r9d, r9d
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x38]
mov rcx, r13
call fcn.004232e0
xor r9d, r9d
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x58]
mov rcx, r13
call fcn.004232e0
xor r8d, r8d
mov rdx, qword [rsp + 0x58]
mov rcx, r13
call fcn.004230e0
mov rdx, 0xffffffff80000002
lea rcx, [rsp + 0x390]
call fcn.004646c0
mov dword [rsp + 0x20], 1
xor r9d, r9d
mov r8d, 1
lea rdx, str.SystemCurrentControlSetControlCommAlias
lea rcx, [rsp + 0x390]
call fcn.00464cc0
mov dword [rsp + 0x20], 1
xor r9d, r9d
mov r8d, 1
lea rdx, str.SystemCurrentControlSetServicesVxDTURBOVBF
lea rcx, [rsp + 0x390]
call fcn.00464cc0
mov dword [rsp + 0x20], 1
xor r9d, r9d
mov r8d, 1
lea rdx, str.SystemCurrentControlSetServicesVxDTURBOVCD
lea rcx, [rsp + 0x390]
call fcn.00464cc0
call fcn.004545a0
test eax, eax
je 0x4799ff
xor r8d, r8d
lea rdx, str.CSetupHSF::UninstallTurboCom_n
lea rcx, [rsp + 0x390]
call fcn.00486850
movabs rdx, 0x20203a54495845
mov qword [rsp + 0x70], rdx
lea rdi, [rsp + 0x70]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
lea rdx, [rsp + 0x390]
xor ecx, ecx
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
inc rcx
test al, al
jne 0x4799d0
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x70]
call fcn.004548a0
call fcn.004546e0
mov rcx, rax
call fcn.004545c0
nop
lea rcx, [rsp + 0x30]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x60]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x58]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x38]
call fcn.0049b1dc
mov rbx, qword [rsp + 0x7c0]
mov rbp, qword [rsp + 0x7b8]
mov rsi, qword [rsp + 0x7b0]
mov rdi, qword [rsp + 0x7a8]
mov r12, qword [rsp + 0x7a0]
mov r13, qword [rsp + 0x798]
add rsp, 0x7c8
ret