Function at 0x10005390
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x10026997
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x748
push ebx
push ebp
push esi
push edi
xor ebx, ebx
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0xfa]
mov word [esp + 0xf8], bx
mov word [esp + 0x300], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x302]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [0x10030f6c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x760], ebx
mov dword [esp + 0x18], eax
lea eax, [esp + 0xf8]
push 0x208
push eax
mov byte [esp + 0x768], 1
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea ecx, [esp + 0xf8]
push str._system32drivers
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push ebx
mov ecx, 0x1003410c
call fcn.1001f508
lea edx, [esp + 0xf8]
push eax
push edx
lea eax, [esp + 0x20]
push str._s1043_ASUSTeK__s.alu
push eax
call fcn.1001e7a9
mov ecx, dword [esp + 0x28]
push ecx
push str.EnumerateInstalledItem___sALUFile:__s
call fcn.10002680
push str.EnumerateInstalledItem___FindFirstFile...
call fcn.10002680
mov ecx, 0x32
xor eax, eax
lea edi, [esp + 0x4c]
add esp, 0x1c
rep stosd dword es:[edi], eax
mov eax, dword [0x10034130]
xor ebp, ebp
cmp eax, ebx
jle 0x100055b3
mov eax, dword [0x1003412c]
lea edx, [esp + 0x30]
push 0xc8
push edx
mov ecx, dword [eax + ebp*4]
push ecx
call fcn.10004850
add esp, 0xc
test eax, eax
je 0x100054ff
push 0x190
call fcn.1001f60c
mov edx, dword [0x1003412c]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyW]
add esp, 4
mov esi, eax
mov eax, dword [edx + ebp*4]
push eax
push esi
call edi
lea ecx, [esp + 0x30]
lea edx, [esi + 0xc8]
push ecx
push edx
call edi
mov edi, dword [0x10034db0]
cmp edi, edi
jl 0x100054eb
lea eax, [edi + 1]
push 0xffffffffffffffff
push eax
mov ecx, 0x10034da8
call fcn.1000ad50
mov ecx, dword [0x10034dac]
push esi
push str.EnumerateInstalledItem___m_aInstalledItem.Add_pInstalledItem_:__s
mov dword [ecx + edi*4], esi
jmp 0x1000559b
mov eax, dword [0x1003412c]
lea edx, [esp + 0x30]
push 0xc8
push edx
mov ecx, dword [eax + ebp*4]
push ecx
call fcn.10004640
add esp, 0xc
test eax, eax
je 0x1000558c
push 0x190
call fcn.1001f60c
mov esi, eax
mov ecx, 0x64
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
mov edx, dword [0x1003412c]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyW]
add esp, 4
mov eax, dword [edx + ebp*4]
push eax
push esi
call edi
lea ecx, [esp + 0x30]
lea ebx, [esi + 0xc8]
push ecx
push ebx
call edi
mov edi, dword [0x10034db0]
cmp edi, edi
jl 0x10005573
lea edx, [edi + 1]
push 0xffffffffffffffff
push edx
mov ecx, 0x10034da8
call fcn.1000ad50
mov eax, dword [0x10034dac]
push ebx
push esi
push str.EnumerateInstalledItem___GetAS2APVersion____s:__s
mov dword [eax + edi*4], esi
call fcn.10002680
add esp, 0xc
jmp 0x100055a3
mov ecx, dword [0x1003412c]
mov edx, dword [ecx + ebp*4]
push edx
push str.EnumerateInstalledItem___Get_no_version_for__s
call fcn.10002680
add esp, 8
mov eax, dword [0x10034130]
inc ebp
cmp ebp, eax
jl 0x10005482
xor ebx, ebx
lea eax, [esp + 0x508]
lea ecx, [esp + 0x18]
push eax
push ebx
call fcn.1001f508
mov esi, dword [sym.imp.KERNEL32.dll_FindFirstFileW]
push eax
call esi
cmp eax, 0xffffffff
jne 0x10005821
push str.EnumerateInstalledItem___do_once...
call fcn.10002680
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
lea ecx, [esp + 0xfc]
push ecx
lea edx, [esp + 0x308]
push str._s1043_ASUSTeK_.cab
push edx
call edi
add esp, 0x10
lea eax, [esp + 0x508]
lea ecx, [esp + 0x300]
push eax
push ecx
call esi
cmp eax, 0xffffffff
jne 0x10005755
lea edx, [esp + 0xf8]
lea eax, [esp + 0x300]
push edx
push str._s1043_ASUSTeK_.mrk
push eax
call edi
add esp, 0xc
lea ecx, [esp + 0x508]
lea edx, [esp + 0x300]
push ecx
push edx
call esi
cmp eax, 0xffffffff
je 0x10005746
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [0x10030f6c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x534]
lea ecx, [esp + 0x14]
push eax
mov byte [esp + 0x764], 4
call fcn.1001f2c0
push str..cab
push str..mrk
lea ecx, [esp + 0x1c]
call fcn.1001e132
lea edx, [esp + 0xf8]
lea eax, [esp + 0x1c]
mov ecx, dword [esp + 0x14]
push ecx
push edx
push str._s_s
push eax
call fcn.1001e7a9
add esp, 0x10
lea ecx, [esp + 0x20]
push str.http:__liveupdate01.asus.com_pub_ASUS_LiveUpdate_Patch_
call fcn.1001f2c0
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x24]
call fcn.1001f4f0
mov edx, dword [esp + 0x1c]
push edx
push str.EnumerateInstalledItem___DownloadFile:__s
call fcn.10002680
add esp, 8
lea ecx, [esp + 0x1c]
push ebx
push ebx
call fcn.1001f508
push eax
push ebx
lea ecx, [esp + 0x2c]
call fcn.1001f508
push eax
call sym.EzULIB.dll_DownloadFile
cmp eax, 5
jne 0x10005711
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x10]
push eax
call fcn.1001f270
lea ecx, [esp + 0x1c]
mov byte [esp + 0x760], 3
call fcn.1001f129
lea ecx, [esp + 0x20]
mov byte [esp + 0x760], 2
call fcn.1001f129
lea ecx, [esp + 0x14]
mov byte [esp + 0x760], 1
call fcn.1001f129
jmp 0x1000577e
push str.hFind
call fcn.10002680
add esp, 4
jmp 0x1000577e
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [esp + 0x534]
lea edx, [esp + 0xf8]
push ecx
push edx
lea eax, [esp + 0x18]
push str._s_s
push eax
call fcn.1001e7a9
add esp, 0x10
mov ecx, dword [esp + 0x10]
push ecx
push str.EnumerateInstalledItem___sHistoryFile:__s
call fcn.10002680
mov edx, dword [esp + 0x18]
add esp, 8
cmp dword [edx - 8], ebx
je 0x100057fa
push ecx
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x30], esp
push eax
call fcn.1001ee96
call fcn.10004b00
mov eax, dword [0x10034db0]
add esp, 4
xor esi, esi
cmp eax, ebx
jle 0x100057fa
mov ecx, dword [0x10034dac]
mov eax, dword [ecx + esi*4]
lea edx, [eax + 0xc8]
push edx
push eax
call fcn.10004440
mov eax, dword [0x10034dac]
mov eax, dword [eax + esi*4]
lea ecx, [eax + 0xc8]
push ecx
push eax
push str.EnumerateInstalledItem___SetAPVersion:__s___s
call fcn.10002680
mov eax, dword [0x10034db0]
add esp, 0x14
inc esi
cmp esi, eax
jl 0x100057bd
mov edx, dword [esp + 0x18]
push ebx
push 0x80
push 4
push ebx
push 1
push 0x40000000
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x10005821
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x10034db0]
xor esi, esi
cmp eax, ebx
jle 0x10005866
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
mov eax, dword [0x10034dac]
lea edi, [eax + esi*4]
call fcn.1000a920
mov ecx, dword [edi]
push eax
push ecx
call ebp
test eax, eax
je 0x10005855
mov eax, dword [0x10034db0]
inc esi
cmp esi, eax
jl 0x10005832
jmp 0x10005866
mov edx, dword [0x10034dac]
mov esi, dword [edx + esi*4]
cmp esi, ebx
jne 0x100059d9
push 0x190
call fcn.1001f60c
mov esi, eax
add esp, 4
mov dword [esp + 0x28], esi
call fcn.1000a920
push eax
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov edx, dword [0x10034db0]
mov ebx, edx
cmp ebx, edx
mov dword [esp + 0x2c], ebx
jl 0x100059ca
lea ebp, [ebx + 1]
xor esi, esi
cmp ebp, esi
jne 0x100058cc
mov eax, dword [0x10034dac]
cmp eax, esi
je 0x100058bb
push eax
call fcn.1001f635
add esp, 4
mov dword [0x10034dac], esi
mov dword [0x10034db4], esi
mov dword [0x10034db0], esi
jmp 0x100059ca
mov edi, dword [0x10034dac]
cmp edi, esi
jne 0x10005911
lea esi, [ebp*4]
push esi
call fcn.1001f60c
mov ecx, esi
mov edi, eax
mov edx, ecx
xor eax, eax
shr ecx, 2
mov dword [0x10034dac], edi
add esp, 4
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov dword [0x10034db4], ebp
mov dword [0x10034db0], ebp
jmp 0x100059ca
mov ecx, dword [0x10034db4]
cmp ebp, ecx
jg 0x10005935
cmp ebp, edx
jle 0x1000592a
mov ecx, ebp
lea edi, [edi + edx*4]
sub ecx, edx
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [0x10034db0], ebp
jmp 0x100059ca
mov eax, dword [0x10034db8]
cmp eax, esi
jne 0x10005961
mov eax, edx
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp eax, 4
jge 0x10005955
mov eax, 4
jmp 0x10005961
cmp eax, 0x400
jle 0x10005961
mov eax, 0x400
add eax, ecx
cmp ebp, eax
mov dword [esp + 0x24], eax
jl 0x1000596f
mov dword [esp + 0x24], ebp
mov eax, dword [esp + 0x24]
lea ecx, [eax*4]
push ecx
call fcn.1001f60c
mov ecx, dword [0x10034db0]
mov esi, dword [0x10034dac]
mov ebx, eax
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x10034db0]
mov ecx, ebp
sub ecx, eax
lea edi, [ebx + eax*4]
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [0x10034dac]
push eax
call fcn.1001f635
mov edx, dword [esp + 0x2c]
mov dword [0x10034dac], ebx
mov ebx, dword [esp + 0x34]
add esp, 8
mov dword [0x10034db0], ebp
mov dword [0x10034db4], edx
mov ecx, dword [0x10034dac]
mov eax, dword [esp + 0x28]
mov esi, eax
mov dword [ecx + ebx*4], eax
add esi, 0xc8
push 0xc8
push esi
call fcn.1000a920
push eax
call fcn.10004640
push esi
push str.ASUS_Easy_Update_Version_:__s
call fcn.10002680
add esp, 0x14
lea ecx, [esp + 0x18]
mov byte [esp + 0x760], 0
call fcn.1001f129
lea ecx, [esp + 0x10]
mov dword [esp + 0x760], 0xffffffff
call fcn.1001f129
mov ecx, dword [esp + 0x758]
pop edi
pop esi
pop ebp
mov eax, 1
mov dword fs:[0], ecx
pop ebx
add esp, 0x754
ret 8