Function at 0x41a600
Capabilities:
Get common file path

Disassembly:
mov eax, 0x2ab8
call fcn.0044f450
mov eax, dword [0x47f038]
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.004412c0
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 0x409a30
test al, al
je 0x41aec4
push edi
jmp 0x41a660
lea ecx, [esp + 0x1ac4]
push ecx
push ebx
push ebp
push str.__s___d____s__n
call fcn.004412c0
mov edx, dword [esi + 8]
add esp, 0x10
cmp byte [edx + 0x1e89], 0
je 0x41a68f
mov ecx, esi
call fcn.00416fc0
jmp 0x41aea2
mov ecx, dword [esi + 4]
lea eax, [esp + 0x14ac]
push eax
push 0
push ebx
push ebp
call 0x409d80
lea ecx, [esp + 0x46c]
push ecx
mov ecx, dword [esi + 4]
push 1
push ebx
push ebp
call 0x409d80
mov ecx, dword [esi + 4]
lea edx, [esp + 0x109c]
push edx
push 2
push ebx
push ebp
call 0x409d80
mov ecx, dword [esi + 4]
lea eax, [esp + 0x87c]
push eax
push 3
push ebx
push ebp
call 0x409d80
push 0x468088
push str.034_
lea ecx, [esp + 0x884]
push ecx
mov ecx, dword [esi + 0xc]
call fcn.004459c0
lea edx, [esp + 0x87c]
push edx
mov ecx, esi
call fcn.00417110
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [esp + 0x14ac]
push eax
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
lea ecx, [esp + 0x26c]
push 0x464ad0
push ecx
call edi
lea edx, [esp + 0x274]
push edx
push str.____wszMyAppKey____s__n
call fcn.004412c0
lea eax, [esp + 0x14c4]
push eax
push str.____wszAppKeyName____s__n
call fcn.004412c0
lea ecx, [esp + 0x48c]
push ecx
push str.____wszValueName____s__n
call fcn.004412c0
lea edx, [esp + 0x10c4]
push edx
push str.____wszValueType____s__n
call fcn.004412c0
lea eax, [esp + 0x8ac]
push eax
push str.____wszValue____s__n
call fcn.004412c0
add esp, 0x38
push str.OVERRIDE:
lea ecx, [esp + 0x470]
push ecx
mov ecx, dword [esi + 0xc]
call fcn.004453e0
test eax, eax
je 0x41ad85
push str.____OVERRIDE_n
call fcn.004412c0
lea edx, [esp + 0x470]
push 0x3a
push edx
call fcn.0044e95c
mov edi, eax
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0xeaa]
push ecx
mov word [esp + 0xeac], ax
call fcn.0044e1b0
add esp, 0x18
test edi, edi
je 0x41a802
add edi, 2
je 0x41a802
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 0x41a7f3
lea edx, [esp + 0xe94]
push edx
push str.____wszValueNameToOverride____s__n
call fcn.004412c0
add esp, 8
lea eax, [esp + 0xe94]
push eax
push 0xffffffffffffffff
push 0xc
mov ecx, esi
call fcn.00416eb0
lea ecx, [esp + 0xe94]
push str.DisplayVersion
push ecx
call fcn.0044e882
add esp, 8
test eax, eax
jne 0x41ad76
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0xa8e]
push eax
mov word [esp + 0xa90], dx
call fcn.0044e1b0
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.0044e1b0
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 0x41a8b0
lea edx, [esp + 0x674]
push edx
push str.____wszExePath____s__n
call fcn.004412c0
mov ecx, dword [esi + 0xc]
add esp, 8
push str..zip
lea eax, [esp + 0x678]
push eax
call fcn.004453e0
test eax, eax
je 0x41aad5
push str.ZIP_file..._n
call fcn.004412c0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x16c2]
push edx
mov word [esp + 0x16c4], cx
call fcn.0044e1b0
add esp, 0x10
lea eax, [esp + 0x16b4]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x41aad5
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x12ae]
push edx
mov word [esp + 0x12b0], cx
call fcn.0044e1b0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0xca2]
push ecx
mov word [esp + 0xca4], ax
call fcn.0044e1b0
lea edx, [esp + 0x68c]
push 0x7c
push edx
call fcn.0044e936
add esp, 0x20
test eax, eax
je 0x41a9d3
xor ecx, ecx
mov word [eax], cx
jmp 0x41a9a0
movzx edx, word [esp + ecx + 0x674]
mov word [esp + ecx + 0x12a4], dx
add ecx, 2
test dx, dx
jne 0x41a9a0
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 0x41a9c4
mov ecx, dword [esi + 0xc]
push 0
lea edx, [esp + 0x12a8]
push edx
call fcn.004454a0
test al, al
je 0x41aad5
lea eax, [esp + 0xc8c]
push eax
lea ecx, [esp + 0x16b8]
push ecx
lea edx, [esp + 0x18c4]
push 0x46d744
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.004412c0
lea edx, [esp + 0x12c0]
push 0
push edx
call fcn.004402f0
mov ebx, eax
lea eax, [esp + 0xcb0]
push eax
push str.tszFileName___s__n
mov dword [esp + 0x48], 0
call fcn.004412c0
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x4c]
push edx
push 1
lea eax, [esp + 0xcc4]
push eax
push ebx
call fcn.0043dd50
add esp, 0x40
test eax, eax
jne 0x41aac8
mov ecx, dword [esp + 0x1c]
push ecx
lea edx, [esp + 0x34]
push edx
push str.ze.name___s__at_index__d_n
call fcn.004412c0
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x18c8]
push eax
push ecx
push ebx
call fcn.00440380
push eax
push str._nRet1__d_n
call fcn.004412c0
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 0x41aab0
push ebx
call fcn.004403a0
mov ebx, dword [esp + 0x14]
add esp, 4
lea edx, [esp + 0x674]
push edx
push str.____wszExePath____s__n
call fcn.004412c0
lea eax, [esp + 0x10a4]
push str.PRODUCTVERSION
push eax
call fcn.0044e882
add esp, 0x10
test eax, eax
jne 0x41abc0
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esi + 0xc]
lea edx, [esp + 0x678]
push edx
call fcn.00449200
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.004412c0
add esp, 0x14
lea eax, [esp + 0xa84]
push eax
lea ecx, [esp + 0x678]
push ecx
mov ecx, dword [esi + 0xc]
call fcn.00448d50
lea edx, [esp + 0xa84]
push edx
push str.GetProductDisplayVersion___s__n
call fcn.004412c0
add esp, 8
cmp word [esp + 0xa84], 0
jne 0x41abbc
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.0044e882
add esp, 8
test eax, eax
jne 0x41ac82
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x880]
push ecx
mov ecx, dword [esi + 0xc]
call fcn.004486b0
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.004412c0
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.004412c0
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.0044d960
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.0044d8a0
push 0x20006
movzx eax, di
push eax
push str.VersionMajor
lea ecx, [esp + 0x298]
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044d8a0
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.0044d8a0
add esp, 0x50
push 0x20006
push ebp
push str.VersionBuild
lea ecx, [esp + 0x270]
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044d8a0
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.0044d8a0
mov ebp, dword [esp + 0x50]
add esp, 0x28
lea ecx, [esp + 0xe94]
push ecx
push 0
jmp 0x41ae99
lea edx, [esp + 0x46c]
push edx
push 0xffffffffffffffff
push 0xc
mov ecx, esi
call fcn.00416eb0
lea eax, [esp + 0x14ac]
push eax
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
lea ecx, [esp + 0x26c]
push 0x464ad0
push ecx
call edi
lea edx, [esp + 0x274]
push edx
push str.____wszMyAppKey____s__n
call fcn.004412c0
lea eax, [esp + 0x10b4]
push str.REG_SZ
push eax
call fcn.0044e882
add esp, 0x20
test eax, eax
jne 0x41ae31
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.0044d960
add esp, 0x14
test eax, eax
je 0x41ae19
lea ecx, [esp + 0x46c]
push ecx
push 0
jmp 0x41ae28
lea edx, [esp + 0x46c]
push edx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xc
mov ecx, esi
call fcn.00416eb0
lea eax, [esp + 0x109c]
push str.REG_DWORD
push eax
call fcn.0044e882
add esp, 8
test eax, eax
jne 0x41aea2
lea ecx, [esp + 0x87c]
push ecx
call fcn.0044e92b
push 0x20006
push eax
lea edx, [esp + 0x478]
push edx
lea eax, [esp + 0x274]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044d8a0
add esp, 0x18
test eax, eax
je 0x41ae8a
lea ecx, [esp + 0x46c]
push ecx
push 0
jmp 0x41ae99
lea edx, [esp + 0x46c]
push edx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xc
mov ecx, esi
call fcn.00416eb0
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 0x409a30
test al, al
jne 0x41a660
pop edi
mov ecx, dword [esp + 0x2ac0]
pop esi
pop ebp
pop ebx
xor ecx, esp
xor eax, eax
call fcn.0044e1a0
add esp, 0x2ab8
ret 4