Function at 0x419570
Capabilities:
Get common file path

Disassembly:
mov eax, 0x2ab8
call fcn.0044bf30
mov eax, dword [0x47b038]
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.0043e2c0
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.004090a0
test al, al
je 0x419e34
push edi
jmp 0x4195d0
lea ecx, [esp + 0x1ac4]
push ecx
push ebx
push ebp
push str.__s___d____s__n
call fcn.0043e2c0
mov edx, dword [esi + 8]
add esp, 0x10
cmp byte [edx + 0x1e89], 0
je 0x4195ff
mov ecx, esi
call fcn.0040b1b0
jmp 0x419e12
mov ecx, dword [esi + 4]
lea eax, [esp + 0x14ac]
push eax
push 0
push ebx
push ebp
call fcn.004093f0
lea ecx, [esp + 0x46c]
push ecx
mov ecx, dword [esi + 4]
push 1
push ebx
push ebp
call fcn.004093f0
mov ecx, dword [esi + 4]
lea edx, [esp + 0x109c]
push edx
push 2
push ebx
push ebp
call fcn.004093f0
mov ecx, dword [esi + 4]
lea eax, [esp + 0x87c]
push eax
push 3
push ebx
push ebp
call fcn.004093f0
push 0x464b78
push str.034_
lea ecx, [esp + 0x884]
push ecx
mov ecx, dword [esi + 0xc]
call fcn.004426f0
lea edx, [esp + 0x87c]
push edx
mov ecx, esi
call fcn.004160e0
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [esp + 0x14ac]
push eax
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
lea ecx, [esp + 0x26c]
push 0x461a90
push ecx
call edi
lea edx, [esp + 0x274]
push edx
push str.____wszMyAppKey____s__n
call fcn.0043e2c0
lea eax, [esp + 0x14c4]
push eax
push str.____wszAppKeyName____s__n
call fcn.0043e2c0
lea ecx, [esp + 0x48c]
push ecx
push str.____wszValueName____s__n
call fcn.0043e2c0
lea edx, [esp + 0x10c4]
push edx
push str.____wszValueType____s__n
call fcn.0043e2c0
lea eax, [esp + 0x8ac]
push eax
push str.____wszValue____s__n
call fcn.0043e2c0
add esp, 0x38
push str.OVERRIDE:
lea ecx, [esp + 0x470]
push ecx
mov ecx, dword [esi + 0xc]
call fcn.00442110
test eax, eax
je 0x419cf5
push str.____OVERRIDE_n
call fcn.0043e2c0
lea edx, [esp + 0x470]
push 0x3a
push edx
call fcn.0044b43c
mov edi, eax
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0xeaa]
push ecx
mov word [esp + 0xeac], ax
call fcn.0044ac90
add esp, 0x18
test edi, edi
je 0x419772
add edi, 2
je 0x419772
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 0x419763
lea edx, [esp + 0xe94]
push edx
push str.____wszValueNameToOverride____s__n
call fcn.0043e2c0
add esp, 8
lea eax, [esp + 0xe94]
push eax
push 0xffffffffffffffff
push 0xc
mov ecx, esi
call fcn.00415ea0
lea ecx, [esp + 0xe94]
push str.DisplayVersion
push ecx
call fcn.0044b362
add esp, 8
test eax, eax
jne 0x419ce6
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0xa8e]
push eax
mov word [esp + 0xa90], dx
call fcn.0044ac90
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.0044ac90
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 0x419820
lea edx, [esp + 0x674]
push edx
push str.____wszExePath____s__n
call fcn.0043e2c0
mov ecx, dword [esi + 0xc]
add esp, 8
push str..zip
lea eax, [esp + 0x678]
push eax
call fcn.00442110
test eax, eax
je 0x419a45
push str.ZIP_file..._n
call fcn.0043e2c0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x16c2]
push edx
mov word [esp + 0x16c4], cx
call fcn.0044ac90
add esp, 0x10
lea eax, [esp + 0x16b4]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x419a45
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x12ae]
push edx
mov word [esp + 0x12b0], cx
call fcn.0044ac90
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0xca2]
push ecx
mov word [esp + 0xca4], ax
call fcn.0044ac90
lea edx, [esp + 0x68c]
push 0x7c
push edx
call fcn.0044b416
add esp, 0x20
test eax, eax
je 0x419943
xor ecx, ecx
mov word [eax], cx
jmp 0x419910
movzx edx, word [esp + ecx + 0x674]
mov word [esp + ecx + 0x12a4], dx
add ecx, 2
test dx, dx
jne 0x419910
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 0x419934
mov ecx, dword [esi + 0xc]
push 0
lea edx, [esp + 0x12a8]
push edx
call fcn.004421d0
test al, al
je 0x419a45
lea eax, [esp + 0xc8c]
push eax
lea ecx, [esp + 0x16b8]
push ecx
lea edx, [esp + 0x18c4]
push 0x46a12c
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.0043e2c0
lea edx, [esp + 0x12c0]
push 0
push edx
call fcn.0043d2f0
mov ebx, eax
lea eax, [esp + 0xcb0]
push eax
push str.tszFileName___s__n
mov dword [esp + 0x48], 0
call fcn.0043e2c0
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x4c]
push edx
push 1
lea eax, [esp + 0xcc4]
push eax
push ebx
call fcn.0043ad50
add esp, 0x40
test eax, eax
jne 0x419a38
mov ecx, dword [esp + 0x1c]
push ecx
lea edx, [esp + 0x34]
push edx
push str.ze.name___s__at_index__d_n
call fcn.0043e2c0
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x18c8]
push eax
push ecx
push ebx
call fcn.0043d380
push eax
push str._nRet1__d_n
call fcn.0043e2c0
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 0x419a20
push ebx
call fcn.0043d3a0
mov ebx, dword [esp + 0x14]
add esp, 4
lea edx, [esp + 0x674]
push edx
push str.____wszExePath____s__n
call fcn.0043e2c0
lea eax, [esp + 0x10a4]
push str.PRODUCTVERSION
push eax
call fcn.0044b362
add esp, 0x10
test eax, eax
jne 0x419b30
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esi + 0xc]
lea edx, [esp + 0x678]
push edx
call fcn.00445e30
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.0043e2c0
add esp, 0x14
lea eax, [esp + 0xa84]
push eax
lea ecx, [esp + 0x678]
push ecx
mov ecx, dword [esi + 0xc]
call fcn.00445980
lea edx, [esp + 0xa84]
push edx
push str.GetProductDisplayVersion___s__n
call fcn.0043e2c0
add esp, 8
cmp word [esp + 0xa84], 0
jne 0x419b2c
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.0044b362
add esp, 8
test eax, eax
jne 0x419bf2
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x880]
push ecx
mov ecx, dword [esi + 0xc]
call fcn.004452e0
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.0043e2c0
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.0043e2c0
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.0044a440
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.0044a380
push 0x20006
movzx eax, di
push eax
push str.VersionMajor
lea ecx, [esp + 0x298]
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044a380
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.0044a380
add esp, 0x50
push 0x20006
push ebp
push str.VersionBuild
lea ecx, [esp + 0x270]
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044a380
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.0044a380
mov ebp, dword [esp + 0x50]
add esp, 0x28
lea ecx, [esp + 0xe94]
push ecx
push 0
jmp 0x419e09
lea edx, [esp + 0x46c]
push edx
push 0xffffffffffffffff
push 0xc
mov ecx, esi
call fcn.00415ea0
lea eax, [esp + 0x14ac]
push eax
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
lea ecx, [esp + 0x26c]
push 0x461a90
push ecx
call edi
lea edx, [esp + 0x274]
push edx
push str.____wszMyAppKey____s__n
call fcn.0043e2c0
lea eax, [esp + 0x10b4]
push str.REG_SZ
push eax
call fcn.0044b362
add esp, 0x20
test eax, eax
jne 0x419da1
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.0044a440
add esp, 0x14
test eax, eax
je 0x419d89
lea ecx, [esp + 0x46c]
push ecx
push 0
jmp 0x419d98
lea edx, [esp + 0x46c]
push edx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xc
mov ecx, esi
call fcn.00415ea0
lea eax, [esp + 0x109c]
push str.REG_DWORD
push eax
call fcn.0044b362
add esp, 8
test eax, eax
jne 0x419e12
lea ecx, [esp + 0x87c]
push ecx
call fcn.0044b40b
push 0x20006
push eax
lea edx, [esp + 0x478]
push edx
lea eax, [esp + 0x274]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044a380
add esp, 0x18
test eax, eax
je 0x419dfa
lea ecx, [esp + 0x46c]
push ecx
push 0
jmp 0x419e09
lea edx, [esp + 0x46c]
push edx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xc
mov ecx, esi
call fcn.00415ea0
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.004090a0
test al, al
jne 0x4195d0
pop edi
mov ecx, dword [esp + 0x2ac0]
pop esi
pop ebp
pop ebx
xor ecx, esp
xor eax, eax
call fcn.0044ac80
add esp, 0x2ab8
ret 4