Function at 0x416ea5
Capabilities:
Get common file path

Disassembly:
push 0x928
mov eax, 0x57eaba
call fcn.00552ddc
push 0xa
pop edi
lea eax, [ebp - 0x21c]
xor ebx, ebx
push eax
push 0x104
mov dword [ebp - 0x92c], ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
jne 0x416ee3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 3
pop eax
jmp 0x41737a
lea ecx, [ebp - 0x440]
call fcn.00404928
mov dword [ebp - 4], ebx
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x470]
call fcn.00403aa0
mov byte [ebp - 4], 1
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x458]
call fcn.00403aa0
push 2
pop eax
mov dword [ebp - 0x930], eax
mov byte [ebp - 4], al
mov esi, str._x64.msi
push esi
call fcn.00403b80
pop ecx
push eax
push esi
lea ecx, [ebp - 0x470]
call fcn.004051a0
lea ecx, [ebp - 0x440]
cmp ecx, eax
je 0x416f51
push 0xffffffffffffffff
push ebx
push eax
call fcn.00403d20
lea ecx, [ebp - 0x440]
call fcn.00403d10
mov esi, eax
cmp dword [esi + 0x14], 8
jb 0x416f68
mov eax, dword [esi]
jmp 0x416f6a
mov eax, esi
lea ecx, [ebp - 0x928]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x41703a
push 0
lea ecx, [ebp - 0x470]
call fcn.004042a0
lea eax, [ebp - 0x21c]
push eax
call fcn.00403b80
pop ecx
push eax
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x470]
call fcn.004051a0
push 0
lea ecx, [ebp - 0x440]
call fcn.004042a0
mov ebx, str._x86.msi
push ebx
call fcn.00403b80
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x470]
call fcn.004051a0
lea ecx, [ebp - 0x440]
cmp ecx, eax
je 0x416fea
push 0xffffffffffffffff
push 0
push eax
call fcn.00403d20
cmp dword [esi + 0x14], 8
jb 0x416ff2
mov esi, dword [esi]
lea eax, [ebp - 0x6d8]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x417347
mov esi, 0x5c9b48
push esi
call fcn.00403b80
pop ecx
push eax
push esi
lea ecx, [ebp - 0x458]
call fcn.004051a0
lea eax, [ebp - 0x6ac]
push eax
call fcn.00403b80
pop ecx
push eax
lea eax, [ebp - 0x6ac]
jmp 0x417067
mov esi, 0x5c9b48
push esi
call fcn.00403b80
pop ecx
push eax
push esi
lea ecx, [ebp - 0x458]
call fcn.004051a0
lea eax, [ebp - 0x8fc]
push eax
call fcn.00403b80
pop ecx
push eax
lea eax, [ebp - 0x8fc]
push eax
lea ecx, [ebp - 0x458]
call fcn.004051a0
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
push 0
push 2
mov dword [ebp - 0x934], 0x104
call dword [sym.imp.msi.dll_MsiSetPropertyW]
lea ecx, [ebp - 0x458]
call fcn.00403d10
cmp dword [eax + 0x14], 8
jb 0x4170a1
mov eax, dword [eax]
lea ecx, [ebp - 0x92c]
push ecx
push eax
call dword [sym.imp.msi.dll_MsiPreviewBillboardW]
test eax, eax
jne 0x417341
lea eax, [ebp - 0x934]
push eax
lea eax, [ebp - 0x428]
push eax
push str.DeviceGroup
push dword [ebp - 0x92c]
call dword [sym.imp.msi.dll_MsiGetSourcePathW]
test eax, eax
jne 0x41732c
lea eax, [ebp - 0x428]
push eax
lea ecx, [ebp - 0x488]
call fcn.00403aa0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x488]
call fcn.00403d10
cmp dword [eax + 0x14], 8
jb 0x417109
mov edx, dword [eax]
jmp 0x41710b
mov edx, eax
push 4
mov esi, str.InkPDL_PWP
pop ecx
mov bx, word [edx]
cmp bx, word [esi]
jne 0x417137
test bx, bx
je 0x417133
mov bx, word [edx + 2]
cmp bx, word [esi + 2]
jne 0x417137
add edx, ecx
add esi, ecx
test bx, bx
jne 0x417113
xor edx, edx
jmp 0x41713c
sbb edx, edx
or edx, 1
test edx, edx
jne 0x417147
push 6
jmp 0x4172dd
cmp dword [eax + 0x14], 8
jb 0x417151
mov edx, dword [eax]
jmp 0x417153
mov edx, eax
mov esi, str.InkPDL_PWE
mov bx, word [edx]
cmp bx, word [esi]
jne 0x41717c
test bx, bx
je 0x417178
mov bx, word [edx + 2]
cmp bx, word [esi + 2]
jne 0x41717c
add edx, ecx
add esi, ecx
test bx, bx
jne 0x417158
xor edx, edx
jmp 0x417181
sbb edx, edx
or edx, 1
test edx, edx
jne 0x41718c
push 7
jmp 0x4172dd
cmp dword [eax + 0x14], 8
jb 0x417196
mov edx, dword [eax]
jmp 0x417198
mov edx, eax
mov esi, 0x5cd788
mov bx, word [edx]
cmp bx, word [esi]
jne 0x4171c1
test bx, bx
je 0x4171bd
mov bx, word [edx + 2]
cmp bx, word [esi + 2]
jne 0x4171c1
add edx, ecx
add esi, ecx
test bx, bx
jne 0x41719d
xor edx, edx
jmp 0x4171c6
sbb edx, edx
or edx, 1
test edx, edx
jne 0x4171d1
push 5
jmp 0x4172dd
cmp dword [eax + 0x14], 8
jb 0x4171db
mov edx, dword [eax]
jmp 0x4171dd
mov edx, eax
mov esi, str.ScanJet
mov bx, word [edx]
cmp bx, word [esi]
jne 0x417206
test bx, bx
je 0x417202
mov bx, word [edx + 2]
cmp bx, word [esi + 2]
jne 0x417206
add edx, ecx
add esi, ecx
test bx, bx
jne 0x4171e2
xor edx, edx
jmp 0x41720b
sbb edx, edx
or edx, 1
test edx, edx
jne 0x417216
push 2
jmp 0x4172dd
cmp dword [eax + 0x14], 8
jb 0x417220
mov edx, dword [eax]
jmp 0x417222
mov edx, eax
mov esi, str.LaserJet
mov bx, word [edx]
cmp bx, word [esi]
jne 0x41724b
test bx, bx
je 0x417247
mov bx, word [edx + 2]
cmp bx, word [esi + 2]
jne 0x41724b
add edx, ecx
add esi, ecx
test bx, bx
jne 0x417227
xor edx, edx
jmp 0x417250
sbb edx, edx
or edx, 1
test edx, edx
jne 0x41725b
push 3
jmp 0x4172dd
cmp dword [eax + 0x14], 8
jb 0x417265
mov edx, dword [eax]
jmp 0x417267
mov edx, eax
mov esi, str.LaserPro
mov bx, word [edx]
cmp bx, word [esi]
jne 0x417290
test bx, bx
je 0x41728c
mov bx, word [edx + 2]
cmp bx, word [esi + 2]
jne 0x417290
add edx, ecx
add esi, ecx
test bx, bx
jne 0x41726c
xor edx, edx
jmp 0x417295
sbb edx, edx
or edx, 1
test edx, edx
jne 0x41729d
push 8
jmp 0x4172dd
cmp dword [eax + 0x14], 8
jb 0x4172a7
mov edx, dword [eax]
jmp 0x4172a9
mov edx, eax
mov esi, str.LaserEnt
mov bx, word [edx]
cmp bx, word [esi]
jne 0x4172d2
test bx, bx
je 0x4172ce
mov bx, word [edx + 2]
cmp bx, word [esi + 2]
jne 0x4172d2
add edx, ecx
add esi, ecx
test bx, bx
jne 0x4172ae
xor edx, edx
jmp 0x4172d7
sbb edx, edx
or edx, 1
test edx, edx
jne 0x4172e0
push 9
pop edi
jmp 0x41731d
cmp dword [eax + 0x14], 8
jb 0x4172e8
mov eax, dword [eax]
mov edx, str.TypeNotSet
mov si, word [eax]
cmp si, word [edx]
jne 0x417311
test si, si
je 0x41730d
mov si, word [eax + 2]
cmp si, word [edx + 2]
jne 0x417311
add eax, ecx
add edx, ecx
test si, si
jne 0x4172ed
xor eax, eax
jmp 0x417316
sbb eax, eax
or eax, 1
test eax, eax
cmove ecx, edi
mov edi, ecx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x488]
call fcn.00404340
cmp dword [ebp - 0x92c], 0
je 0x417341
push dword [ebp - 0x92c]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
mov dword [ebp - 0x930], edi
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x458]
call fcn.00404340
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x470]
call fcn.00404340
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x440]
call fcn.00404340
mov eax, dword [ebp - 0x930]
call fcn.00552d86
ret