Function at 0x41c670
Capabilities:
Get common file path

Disassembly:
mov eax, 0x2ab8
call fcn.00454790
mov eax, dword [0x48807c]
xor eax, esp
mov dword [esp + 0x2ab4], eax
push ebx
push ebp
mov ebp, dword [esp + 0x2ac4]
push esi
push ebp
push str.ProcessSectionAddItemExtraARP_____s__n
mov esi, ecx
mov dword [esp + 0x2c], ebp
call fcn.004454c0
mov ecx, dword [esi + 4]
add esp, 8
xor ebx, ebx
push ebx
lea eax, [esp + 0x1ac4]
push eax
push ebx
push ebp
mov dword [esp + 0x1c], ebx
call fcn.00409a10
test al, al
je 0x41cf34
push edi
jmp 0x41c6d0
lea ecx, [esp + 0x1ac4]
push ecx
push ebx
push ebp
push str.__s___d____s__n
call fcn.004454c0
mov edx, dword [esi + 8]
add esp, 0x10
cmp byte [edx + 0x1e89], 0
je 0x41c6ff
mov ecx, esi
call fcn.0040bbb0
jmp 0x41cf12
mov ecx, dword [esi + 4]
lea eax, [esp + 0x14ac]
push eax
push 0
push ebx
push ebp
call fcn.00409d60
lea ecx, [esp + 0x46c]
push ecx
mov ecx, dword [esi + 4]
push 1
push ebx
push ebp
call fcn.00409d60
mov ecx, dword [esi + 4]
lea edx, [esp + 0x109c]
push edx
push 2
push ebx
push ebp
call fcn.00409d60
mov ecx, dword [esi + 4]
lea eax, [esp + 0x87c]
push eax
push 3
push ebx
push ebp
call fcn.00409d60
push 0x46e600
push str.034_
lea ecx, [esp + 0x884]
push ecx
mov ecx, dword [esi + 0xc]
call fcn.00449bc0
lea edx, [esp + 0x87c]
push edx
mov ecx, esi
call fcn.004190c0
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [esp + 0x14ac]
push eax
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
lea ecx, [esp + 0x26c]
push 0x46ab98
push ecx
call edi
lea edx, [esp + 0x274]
push edx
push str.____wszMyAppKey____s__n
call fcn.004454c0
lea eax, [esp + 0x14c4]
push eax
push str.____wszAppKeyName____s__n
call fcn.004454c0
lea ecx, [esp + 0x48c]
push ecx
push str.____wszValueName____s__n
call fcn.004454c0
lea edx, [esp + 0x10c4]
push edx
push str.____wszValueType____s__n
call fcn.004454c0
lea eax, [esp + 0x8ac]
push eax
push str.____wszValue____s__n
call fcn.004454c0
add esp, 0x38
push str.OVERRIDE:
lea ecx, [esp + 0x470]
push ecx
mov ecx, dword [esi + 0xc]
call fcn.004495e0
test eax, eax
je 0x41cdf5
push str.____OVERRIDE_n
call fcn.004454c0
lea edx, [esp + 0x470]
push 0x3a
push edx
call fcn.00453bad
mov edi, eax
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0xeaa]
push ecx
mov word [esp + 0xeac], ax
call fcn.00453450
add esp, 0x18
test edi, edi
je 0x41c872
add edi, 2
je 0x41c872
lea edx, [esp + 0xe94]
mov eax, edi
sub edx, edi
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x41c863
lea edx, [esp + 0xe94]
push edx
push str.____wszValueNameToOverride____s__n
call fcn.004454c0
add esp, 8
lea eax, [esp + 0xe94]
push eax
push 0xffffffffffffffff
push 0xc
mov ecx, esi
call fcn.00418e80
lea ecx, [esp + 0xe94]
push str.DisplayVersion
push ecx
call fcn.00453ad3
add esp, 8
test eax, eax
jne 0x41cde6
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0xa8e]
push eax
mov word [esp + 0xa90], dx
call fcn.00453450
xor ecx, ecx
xor eax, eax
push 0x206
mov word [esp + 0x26e], cx
mov dword [esp + 0x24], ecx
push eax
lea ecx, [esp + 0x68a]
xor edx, edx
xor edi, edi
push ecx
mov word [esp + 0x274], di
xor ebp, ebp
mov word [esp + 0x27a], dx
mov word [esp + 0x68c], ax
call fcn.00453450
add esp, 0x18
xor eax, eax
lea ebx, [ebx]
movzx ecx, word [esp + eax + 0x87c]
mov word [esp + eax + 0x674], cx
add eax, 2
test cx, cx
jne 0x41c920
lea edx, [esp + 0x674]
push edx
push str.____wszExePath____s__n
call fcn.004454c0
mov ecx, dword [esi + 0xc]
add esp, 8
push str..zip
lea eax, [esp + 0x678]
push eax
call fcn.004495e0
test eax, eax
je 0x41cb45
push str.ZIP_file..._n
call fcn.004454c0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x16c2]
push edx
mov word [esp + 0x16c4], cx
call fcn.00453450
add esp, 0x10
lea eax, [esp + 0x16b4]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x41cb45
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x12ae]
push edx
mov word [esp + 0x12b0], cx
call fcn.00453450
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0xca2]
push ecx
mov word [esp + 0xca4], ax
call fcn.00453450
lea edx, [esp + 0x68c]
push 0x7c
push edx
call fcn.00453b87
add esp, 0x20
test eax, eax
je 0x41ca43
xor ecx, ecx
mov word [eax], cx
jmp 0x41ca10
movzx edx, word [esp + ecx + 0x674]
mov word [esp + ecx + 0x12a4], dx
add ecx, 2
test dx, dx
jne 0x41ca10
add eax, 2
lea edx, [esp + 0xc8c]
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x41ca34
mov ecx, dword [esi + 0xc]
push 0
lea edx, [esp + 0x12a8]
push edx
call fcn.004496a0
test al, al
je 0x41cb45
lea eax, [esp + 0xc8c]
push eax
lea ecx, [esp + 0x16b8]
push ecx
lea edx, [esp + 0x18c4]
push 0x474b44
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [esp + 0x12b4]
push eax
lea ecx, [esp + 0xca0]
push ecx
push str.Start_extract_File_____s__from___s__n
call fcn.004454c0
lea edx, [esp + 0x12c0]
push 0
push edx
call fcn.00443e50
mov ebx, eax
lea eax, [esp + 0xcb0]
push eax
push str.tszFileName___s__n
mov dword [esp + 0x48], 0
call fcn.004454c0
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x4c]
push edx
push 1
lea eax, [esp + 0xcc4]
push eax
push ebx
call fcn.004418b0
add esp, 0x40
test eax, eax
jne 0x41cb38
mov ecx, dword [esp + 0x1c]
push ecx
lea edx, [esp + 0x34]
push edx
push str.ze.name___s__at_index__d_n
call fcn.004454c0
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x18c8]
push eax
push ecx
push ebx
call fcn.00443ee0
push eax
push str._nRet1__d_n
call fcn.004454c0
add esp, 0x20
xor eax, eax
lea ecx, [ecx]
movzx ecx, word [esp + eax + 0x18bc]
mov word [esp + eax + 0x674], cx
add eax, 2
test cx, cx
jne 0x41cb20
push ebx
call fcn.00443f00
mov ebx, dword [esp + 0x14]
add esp, 4
lea edx, [esp + 0x674]
push edx
push str.____wszExePath____s__n
call fcn.004454c0
lea eax, [esp + 0x10a4]
push str.PRODUCTVERSION
push eax
call fcn.00453ad3
add esp, 0x10
test eax, eax
jne 0x41cc30
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esi + 0xc]
lea edx, [esp + 0x678]
push edx
call fcn.0044d400
mov ecx, dword [esp + 0x14]
mov ebp, ecx
movzx ebx, cx
mov edi, eax
shr ebp, 0x10
mov word [esp + 0x262], cx
movzx ecx, bp
push ebx
mov word [esp + 0x262], ax
movzx eax, ax
shr edi, 0x10
push ecx
movzx edx, di
push eax
push edx
push str.PRODUCTVERSION___d__d__d__d__n
mov word [esp + 0x270], di
mov dword [esp + 0x2c], eax
call fcn.004454c0
add esp, 0x14
lea eax, [esp + 0xa84]
push eax
lea ecx, [esp + 0x678]
push ecx
mov ecx, dword [esi + 0xc]
call fcn.0044cf50
lea edx, [esp + 0xa84]
push edx
push str.GetProductDisplayVersion___s__n
call fcn.004454c0
add esp, 8
cmp word [esp + 0xa84], 0
jne 0x41cc2c
push ebx
movzx eax, bp
push eax
mov eax, dword [esp + 0x20]
push eax
movzx eax, di
push eax
lea ecx, [esp + 0xa94]
push str._d._d._d._d
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
mov ebx, dword [esp + 0x10]
lea edx, [esp + 0x109c]
push str.FILEVERSION
push edx
call fcn.00453ad3
add esp, 8
test eax, eax
jne 0x41ccf2
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x880]
push ecx
mov ecx, dword [esi + 0xc]
call fcn.0044c8b0
mov ecx, dword [esp + 0x14]
mov ebp, ecx
movzx ebx, cx
mov edi, eax
shr ebp, 0x10
mov word [esp + 0x262], cx
movzx ecx, bp
push ebx
mov word [esp + 0x262], ax
movzx eax, ax
shr edi, 0x10
push ecx
movzx edx, di
push eax
push edx
push str.FILEVERSION___d__d__d__d__n
mov word [esp + 0x270], di
mov dword [esp + 0x34], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], edx
call fcn.004454c0
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
push ebx
push edx
push eax
push ecx
push str.____Version____d___d___d___d_n
call fcn.004454c0
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x4c]
push ebx
push edx
push eax
push ecx
lea edx, [esp + 0xabc]
push str._d._d._d._d
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
mov ebx, dword [esp + 0x50]
add esp, 0x40
push 0x20006
lea eax, [esp + 0xa88]
push eax
push str.DisplayVersion
lea ecx, [esp + 0x270]
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00451b60
movzx dx, byte [esp + 0x270]
movzx ecx, byte [esp + 0x272]
shl dx, 8
movzx eax, dx
or eax, ecx
movzx ebp, bp
push 0x20006
shl eax, 0x10
or eax, ebp
push eax
push str.Version
lea edx, [esp + 0x284]
push edx
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00451aa0
push 0x20006
movzx eax, di
push eax
push str.VersionMajor
lea ecx, [esp + 0x298]
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00451aa0
movzx edx, word [esp + 0x29a]
push 0x20006
push edx
push str.VersionMinor
lea eax, [esp + 0x2ac]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00451aa0
add esp, 0x50
push 0x20006
push ebp
push str.VersionBuild
lea ecx, [esp + 0x270]
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00451aa0
movzx edx, word [esp + 0x276]
push 0x20006
push edx
push str.VersionRevision
lea eax, [esp + 0x284]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00451aa0
mov ebp, dword [esp + 0x50]
add esp, 0x28
lea ecx, [esp + 0xe94]
push ecx
push 0
jmp 0x41cf09
lea edx, [esp + 0x46c]
push edx
push 0xffffffffffffffff
push 0xc
mov ecx, esi
call fcn.00418e80
lea eax, [esp + 0x14ac]
push eax
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
lea ecx, [esp + 0x26c]
push 0x46ab98
push ecx
call edi
lea edx, [esp + 0x274]
push edx
push str.____wszMyAppKey____s__n
call fcn.004454c0
lea eax, [esp + 0x10b4]
push str.REG_SZ
push eax
call fcn.00453ad3
add esp, 0x20
test eax, eax
jne 0x41cea1
push 0x20006
lea ecx, [esp + 0x880]
push ecx
lea edx, [esp + 0x474]
push edx
lea eax, [esp + 0x270]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00451b60
add esp, 0x14
test eax, eax
je 0x41ce89
lea ecx, [esp + 0x46c]
push ecx
push 0
jmp 0x41ce98
lea edx, [esp + 0x46c]
push edx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xc
mov ecx, esi
call fcn.00418e80
lea eax, [esp + 0x109c]
push str.REG_DWORD
push eax
call fcn.00453ad3
add esp, 8
test eax, eax
jne 0x41cf12
lea ecx, [esp + 0x87c]
push ecx
call fcn.00453b7c
push 0x20006
push eax
lea edx, [esp + 0x478]
push edx
lea eax, [esp + 0x274]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00451aa0
add esp, 0x18
test eax, eax
je 0x41cefa
lea ecx, [esp + 0x46c]
push ecx
push 0
jmp 0x41cf09
lea edx, [esp + 0x46c]
push edx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xc
mov ecx, esi
call fcn.00418e80
mov ecx, dword [esi + 4]
push 0
lea eax, [esp + 0x1ac8]
push eax
inc ebx
push ebx
push ebp
mov dword [esp + 0x20], ebx
call fcn.00409a10
test al, al
jne 0x41c6d0
pop edi
mov ecx, dword [esp + 0x2ac0]
pop esi
pop ebp
pop ebx
xor ecx, esp
xor eax, eax
call fcn.00453432
add esp, 0x2ab8
ret 4