Function at 0x466400
Capabilities:
Get common file path

Disassembly:
push ebp
lea ebp, [esp - 0x2c2c]
mov eax, 0x2c2c
call fcn.004fe1a0
push 0xffffffffffffffff
push 0x521760
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x5a4aa8]
xor eax, ebp
mov dword [ebp + 0x2c28], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, ecx
mov eax, dword [ebp + 0x2c34]
mov dword [ebp - 0x20], eax
mov edi, edx
xor ecx, ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 4], ecx
wait
cmp dword [ebx + 0x244c], ecx
je 0x466bc0
cmp edi, ecx
je 0x466bc0
cmp eax, ecx
je 0x466bc0
lea esi, [ebp]
call fcn.00495e90
mov byte [ebp - 4], 1
xor esi, esi
mov dword [ebp - 0x28], esi
push 0x535a4c
lea ecx, [ebp - 0x18]
call fcn.00405c00
mov byte [ebp - 4], 2
push esi
push esi
lea eax, [ebp]
push eax
mov ecx, edi
call fcn.00496410
test eax, eax
jne 0x466ae0
mov edi, dword [ebp - 0x20]
mov cl, byte [edi + 0xe04]
mov byte [ebp - 0x11], cl
push 0x800
push esi
lea edx, [ebp + 0x1a28]
push edx
call fcn.004fd670
push edi
push str.InstallingSetupSmartUpdate
push 0x535a74
lea edx, [ebp + 0x1a28]
call fcn.00404380
push esi
push str.comp_name
lea eax, [ebp + 0x1a28]
push eax
mov ecx, dword [ebx + 0x244c]
push ecx
mov ecx, edi
call fcn.00419c20
push esi
lea ecx, [edi + 0x200]
push str.display_name
lea edx, [ebp + 0x1a28]
push edx
mov eax, dword [ebx + 0x244c]
push eax
call fcn.00419c20
push esi
lea ecx, [edi + 0xa00]
push str.name
lea edx, [ebp + 0x1a28]
push edx
mov eax, dword [ebx + 0x244c]
push eax
call fcn.00419c20
add esp, 0x48
mov dword [ebp - 0x24], 0x2f
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x1c], esi
cmp byte [ebp - 0x11], 0
je 0x466567
push str.REGDATE
push str.Item
push 0x5352d4
lea ecx, [ebp - 0x18]
push ecx
jmp 0x46657a
push str.DATE
push str.ITEM
push 0x5352d4
lea edx, [ebp - 0x18]
push edx
call fcn.004081a0
add esp, 0x10
push 0x800
push esi
lea eax, [ebp + 0x2428]
push eax
call fcn.004fd670
add esp, 0xc
push esi
push 0x400
lea ecx, [ebp + 0x2428]
push ecx
mov edx, dword [ebp - 0x18]
lea ecx, [ebp]
call fcn.00496fe0
test eax, eax
jne 0x4667db
lea eax, [ebp + 0x2428]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x4665c0
sub eax, edx
sar eax, 1
je 0x4667db
push 0x200
push esi
lea edx, [ebp + 0x2228]
push edx
call fcn.004fd670
push 0xff
lea eax, [ebp + 0x2428]
push eax
push pe_nt_image_headers32
lea ecx, [ebp + 0x2228]
push ecx
call fcn.004fa71b
lea edx, [ebp - 0x2c]
push edx
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp + 0x2228]
push ecx
call fcn.004fa864
add esp, 0x28
mov esi, eax
test esi, esi
je 0x4667a0
push 0x200
push 0
lea edx, [ebp + 0x1828]
push edx
call fcn.004fd670
push 0xff
push esi
push pe_nt_image_headers32
lea eax, [ebp + 0x1828]
push eax
call fcn.004fa71b
lea ecx, [ebp - 0x2c]
push ecx
lea edx, [ebp - 0x24]
push edx
push 0
call fcn.004fa864
add esp, 0x28
mov esi, eax
test esi, esi
je 0x4667a0
push 0x200
push 0
lea eax, [ebp + 0x1428]
push eax
call fcn.004fd670
push 0xff
push esi
push pe_nt_image_headers32
lea ecx, [ebp + 0x1428]
push ecx
call fcn.004fa71b
lea edx, [ebp - 0x2c]
push edx
lea eax, [ebp - 0x24]
push eax
push 0
call fcn.004fa864
add esp, 0x28
mov esi, eax
test esi, esi
je 0x4667a0
push 0x200
push 0
lea ecx, [ebp + 0x1628]
push ecx
call fcn.004fd670
push 0xff
push esi
push pe_nt_image_headers32
lea edx, [ebp + 0x1628]
push edx
call fcn.004fa71b
lea edx, [ebp + 0x1828]
call fcn.00493fa0
mov esi, eax
mov dword [ebp - 0x34], esi
lea edx, [ebp + 0x1428]
call fcn.00493fa0
mov edi, eax
mov dword [ebp - 0x38], edi
lea edx, [ebp + 0x1628]
call fcn.00493fa0
mov dword [ebp - 0x1c], eax
mov word [ebp - 0x48], si
mov word [ebp - 0x46], di
mov word [ebp - 0x42], ax
push 0x200
push 0
lea eax, [ebp + 0x2228]
push eax
call fcn.004fd670
add esp, 0x28
push pe_nt_image_headers32
lea ecx, [ebp + 0x2228]
push ecx
push 0
lea edx, [ebp - 0x48]
push edx
push 1
push 0x400
call dword [sym.imp.KERNEL32.dll_GetDateFormatW]
test eax, eax
je 0x466783
push 0x800
push 0
lea eax, [ebp + 0x2428]
push eax
call fcn.004fd670
push 0x3ff
lea ecx, [ebp + 0x2228]
push ecx
push 0x400
lea edx, [ebp + 0x2428]
push edx
call fcn.004fa71b
add esp, 0x1c
jmp 0x46679d
push str.Fail_in_GetTimeFormat
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov edx, 0x649e50
call fcn.004917b0
add esp, 4
mov edi, dword [ebp - 0x20]
push 0
push str.date
lea eax, [ebp + 0x1a28]
push eax
mov ecx, dword [ebx + 0x244c]
push ecx
lea ecx, [ebp + 0x2428]
call fcn.00419c20
lea edx, [ebp + 0x2428]
push edx
push str.Set_Date_:___s_
mov ecx, 0x649e50
call fcn.004918f0
add esp, 0x18
xor esi, esi
cmp byte [ebp - 0x11], 0
je 0x4667f6
push str.Priority_str
push str.Item
push 0x5352d4
lea eax, [ebp - 0x18]
push eax
jmp 0x466809
push str.PRIORITY_STR
push str.ITEM
push 0x5352d4
lea ecx, [ebp - 0x18]
push ecx
call fcn.004081a0
add esp, 0x10
push 0x800
push esi
lea edx, [ebp + 0x2428]
push edx
call fcn.004fd670
add esp, 0xc
push esi
push 0x400
lea eax, [ebp + 0x2428]
push eax
mov edx, dword [ebp - 0x18]
lea ecx, [ebp]
call fcn.00496fe0
test eax, eax
jne 0x46687d
lea eax, [ebp + 0x2428]
lea edx, [eax + 2]
jmp 0x466850
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x466850
sub eax, edx
sar eax, 1
je 0x46687d
push esi
push str.priority_str
lea ecx, [ebp + 0x1a28]
push ecx
mov edx, dword [ebx + 0x244c]
push edx
lea ecx, [ebp + 0x2428]
jmp 0x466896
push esi
push str.priority_str
lea eax, [ebp + 0x1a28]
push eax
mov ecx, dword [ebx + 0x244c]
push ecx
mov ecx, str.Major
call fcn.00419c20
add esp, 0x10
cmp byte [ebp - 0x11], 0
je 0x4668b9
push str.Version
push str.Item
push 0x5352d4
lea edx, [ebp - 0x18]
push edx
jmp 0x4668cc
push str.VERSION
push str.ITEM
push 0x5352d4
lea eax, [ebp - 0x18]
push eax
call fcn.004081a0
add esp, 0x10
push 0x800
push esi
lea ecx, [ebp + 0x2428]
push ecx
call fcn.004fd670
add esp, 0xc
push esi
push 0x400
lea edx, [ebp + 0x2428]
push edx
mov edx, dword [ebp - 0x18]
lea ecx, [ebp]
call fcn.00496fe0
test eax, eax
jne 0x466927
push esi
push str.version
lea eax, [ebp + 0x1a28]
push eax
mov ecx, dword [ebx + 0x244c]
push ecx
lea ecx, [ebp + 0x2428]
call fcn.00419c20
add esp, 0x10
push 0x5597e0
cmp byte [ebp - 0x11], 0
je 0x466942
push str.Item
push 0x5352d4
lea edx, [ebp - 0x18]
push edx
jmp 0x466950
push str.ITEM
push 0x5352d4
lea eax, [ebp - 0x18]
push eax
call fcn.004081a0
add esp, 0x10
push 0x800
push esi
lea ecx, [ebp + 0x2428]
push ecx
call fcn.004fd670
add esp, 0xc
push esi
push 0x400
lea edx, [ebp + 0x2428]
push edx
mov edx, dword [ebp - 0x18]
lea ecx, [ebp]
call fcn.00496fe0
test eax, eax
jne 0x466a28
push esi
push str.binary_url
lea eax, [ebp + 0x1a28]
push eax
mov ecx, dword [ebx + 0x244c]
push ecx
lea ecx, [ebp + 0x2428]
call fcn.00419c20
add esp, 0x10
mov dword [ebp - 0x28], esi
lea edx, [ebp - 0x28]
push edx
lea edi, [ebp + 0x2428]
call fcn.004cb3b0
test eax, eax
jne 0x466ac9
push 0x800
push esi
mov eax, edi
push eax
call fcn.004fd670
mov ecx, dword [ebp - 0x28]
shr ecx, 0x14
mov dword [ebp - 0x1c], ecx
fild dword [ebp - 0x1c]
test ecx, ecx
jge 0x4669ed
fadd dword [0x5768e8]
add esp, 4
fstp qword [esp]
push str._.2f
lea edx, [ebp + 0x2428]
call fcn.00404380
push esi
push str.size
lea edx, [ebp + 0x1a28]
push edx
mov eax, dword [ebx + 0x244c]
push eax
lea ecx, [ebp + 0x2428]
call fcn.00419c20
add esp, 0x1c
mov edi, dword [ebp - 0x20]
push 0x800
push esi
lea eax, [ebp + 0xc28]
push eax
call fcn.004fd670
add esp, 0xc
lea ecx, [ebp + 0xc28]
push ecx
push 0x400
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x466b55
mov ecx, 0x536d5c
lea edx, [ebp + 0xc28]
call fcn.00494c80
push 0x800
push esi
cmp byte [edi + 0xe04], 0
je 0x466b03
lea edx, [ebp + 0x2428]
push edx
call fcn.004fd670
push str.FIRMWARE
lea eax, [ebp + 0xc28]
push eax
push 0x535a74
lea edx, [ebp + 0x2428]
call fcn.00404380
push esi
push str.binary_path
lea ecx, [ebp + 0x1a28]
push ecx
mov edx, dword [ebx + 0x244c]
push edx
lea ecx, [ebp + 0x2428]
call fcn.00419c20
add esp, 0x28
jmp 0x466b55
push esi
mov ecx, dword [ebx + 0x244c]
push ecx
lea edx, [ebp + 0x1a28]
push edx
call fcn.004925f0
add esp, 0xc
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x18]
call fcn.00406150
mov byte [ebp - 4], 0
lea ecx, [ebp]
call fcn.00495f20
mov eax, 0xd
wait
jmp 0x466b99
lea eax, [ebp + 0x2428]
push eax
call fcn.004fd670
push edi
lea ecx, [ebx + 0x2450]
push ecx
push str.SmartUpdate
lea edx, [ebp + 0xc28]
push edx
push str._s_s_s_s
lea edx, [ebp + 0x2428]
call fcn.00404380
push esi
push str.binary_path
lea eax, [ebp + 0x1a28]
push eax
mov ecx, dword [ebx + 0x244c]
push ecx
lea ecx, [ebp + 0x2428]
call fcn.00419c20
add esp, 0x30
push esi
push str.selected
lea edx, [ebp + 0x1a28]
push edx
mov eax, dword [ebx + 0x244c]
push eax
mov ecx, 0x53e22c
call fcn.00419c20
add esp, 0x10
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x18]
call fcn.00406150
mov byte [ebp - 4], 0
lea ecx, [ebp]
call fcn.00495f20
wait
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x2c28]
xor ecx, ebp
call fcn.004fa103
add ebp, 0x2c2c
mov esp, ebp
pop ebp
ret 4
mov eax, 0x57
wait
jmp 0x466b99