Function at 0x40550d
Capabilities:
Get common file path

Disassembly:
sub esp, 0x340
mov eax, dword [0x427040]
push ebx
push esi
push edi
mov edi, dword [esp + 0x350]
mov esi, 0x429bc0
push esi
push edi
mov dword [esp + 0x14], eax
call dword [sym.imp.USER32.dll_CharToOemA]
xor ebx, ebx
cmp byte [0x43275c], bl
push esi
je 0x405545
push str.Deleting_from___s__n_n
jmp 0x40554a
push str.Updating_archive___s__n_n
call fcn.00416ccd
mov eax, dword [0x432884]
pop ecx
pop ecx
mov ecx, dword [0x432744]
add ecx, eax
add ecx, dword [0x429544]
mov dword [0x432728], ecx
jne 0x40557b
push str.Nothing_to_do._n
call fcn.00416ccd
jmp 0x40563f
push 6
push edi
call fcn.00416045
cmp eax, 0xffffffff
pop ecx
pop ecx
jne 0x40559c
push 0x40
mov ecx, str.The_archive_file_hasnt_read_and_write_access__check_read_only_attribute_._MsCab_cant_modify_such_archives.
pop edx
call fcn.004011a2
jmp 0x405640
mov ecx, edi
call fcn.004028ee
test eax, eax
jne 0x4055b0
push 0x10
mov ecx, str.This_is_not_a_valid_CAB_archive.
jmp 0x405591
cmp dword [0x432860], ebx
je 0x4055df
mov edx, 0x124
mov ecx, str.Do_you_really_want_to_modify_SFX_CAB_archive_
call fcn.004011a2
cmp eax, 6
jne 0x405640
cmp byte [0x429814], bl
jne 0x4055df
push edi
call fcn.0040528b
test eax, eax
pop ecx
jne 0x405640
cmp byte [0x429814], 8
jne 0x4055ee
mov byte [0x429814], bl
lea eax, [esp + 0x28]
push edi
push eax
call fcn.00401295
pop ecx
pop ecx
lea eax, [esp + 0x14a]
push eax
push ebx
push 0x423430
lea eax, [esp + 0x256]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
test eax, eax
je 0x405640
lea eax, [esp + 0x14a]
push 0x5c
push eax
call fcn.00415070
mov esi, eax
cmp esi, ebx
pop ecx
pop ecx
jne 0x405648
lea eax, [esp + 0x14a]
push eax
call fcn.0041730b
pop ecx
push 2
pop eax
jmp 0x405bca
cmp byte [0x429814], bl
je 0x405663
lea eax, [esp + 0x14a]
push eax
call fcn.0041cba1
pop ecx
mov dword [0x43289c], eax
push ebp
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
inc esi
lea eax, [esp + 0x152]
push esi
push eax
call fcn.00416990
push ebx
lea eax, [esp + 0x3c]
push eax
push 0x404c41
push 0x404c16
push 0x404ba1
push 0x404b6c
push 0x404b1a
push 0x4049d6
push 0x40491e
push fcn.00416768
push 0x4025b4
lea eax, [esp + 0x58]
push 0x404c38
push eax
call fcn.0040a16a
add esp, 0x40
cmp eax, ebx
mov dword [esp + 0x14], eax
je 0x405b8e
cmp byte [0x43275c], bl
mov edi, 0x432880
jne 0x40571d
push edi
call fcn.0040371b
mov esi, 0x432740
push esi
call fcn.0040371b
mov ecx, dword [0x432884]
mov edx, dword [0x432744]
mov eax, dword [0x429544]
add edx, ecx
add edx, eax
push esi
mov dword [0x4297f8], eax
mov dword [0x432728], edx
call fcn.00403a18
add esp, 0xc
test eax, eax
jne 0x405b84
jmp 0x405729
mov dword [0x4297f8], ebx
mov dword [0x432728], ebx
push edi
call fcn.00403a18
test eax, eax
pop ecx
jne 0x405b84
push dword [esp + 0x354]
push 0x429980
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [0x429674], 1
jg 0x40575e
mov al, byte [0x427040]
and al, 0xf
cmp al, 3
jne 0x405763
call fcn.004040cb
cmp byte [0x429674], 1
jle 0x405793
mov eax, dword [0x432750]
add eax, dword [0x432890]
mov ecx, dword [0x432754]
adc ecx, dword [0x432894]
mov dword [0x429520], eax
mov dword [0x429524], ecx
call fcn.00404eb0
mov al, byte [0x427040]
and al, 0xf
cmp al, 3
jne 0x4057bc
cmp dword [0x432894], ebx
jg 0x4057bc
jl 0x4057b4
cmp dword [0x432890], 0x98
jae 0x4057bc
mov dword [esp + 0x10], 1
cmp byte [0x43275c], bl
push ebx
sete al
push ebx
push 0x40460a
mov byte [0x43272e], al
call fcn.0041727a
add esp, 0xc
cmp byte [0x43275c], bl
mov ebp, 0x40543b
mov edi, 0x40547c
jne 0x4058cb
jmp 0x405804
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp byte [0x429815], bl
jne 0x405a49
cmp byte [0x4296cc], 3
jne 0x4057f1
cmp dword [0x429544], ebx
jle 0x4058b0
mov esi, 0x429540
cmp byte [0x429674], 1
jle 0x40583a
mov eax, dword [0x429540]
inc dword [0x432898]
push dword [eax]
call fcn.00405006
pop ecx
push dword [esp + 0x10]
mov eax, dword [0x429540]
mov ecx, dword [eax]
push 0x405486
push ebp
push edi
push ebx
call fcn.00402add
push eax
mov eax, dword [0x429540]
push dword [eax]
push dword [esp + 0x30]
call fcn.00409fff
add esp, 0x20
test eax, eax
je 0x405a42
cmp byte [0x4297e8], bl
je 0x40589b
mov eax, dword [0x429540]
push dword [eax]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [0x429540]
mov ecx, dword [ecx]
test byte [eax + ecx + 6], 0x80
jne 0x40589b
push ebx
push esi
call fcn.00402e6b
jmp 0x4058a2
push ebx
push esi
call fcn.00402db0
cmp dword [0x429544], ebx
pop ecx
pop ecx
jg 0x40581e
mov byte [0x4296cc], bl
jmp 0x4058cb
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp byte [0x429815], bl
jne 0x405a49
cmp byte [0x4296cc], 1
jne 0x4058b8
cmp byte [0x429bc0], bl
je 0x405a91
mov ecx, 0x429bc0
call fcn.00402add
cmp byte [0x429821], bl
mov dword [0x4329e0], eax
je 0x405926
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, eax
mov eax, dword [0x429558]
add ecx, eax
cmp ecx, 0x100
jge 0x405a42
push dword [0x4329e0]
lea eax, [eax + 0x429aa0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
test byte [0x429bb3], 2
mov byte [0x4296cc], 2
jne 0x405958
mov eax, dword [0x429830]
mov edx, dword [0x429840]
xor ecx, ecx
xor esi, esi
add eax, edx
adc ecx, esi
mov dword [esp + 0x1c], ecx
js 0x40596e
jg 0x405958
cmp eax, 0x7fff0000
jbe 0x40596e
push ebp
push edi
push dword [esp + 0x1c]
call fcn.0040a10f
add esp, 0xc
test eax, eax
je 0x405a42
cmp byte [0x429674], 1
jle 0x405988
inc dword [0x432898]
push 0x429bc0
call fcn.00405006
pop ecx
cmp byte [0x429408], bl
je 0x405a0e
mov cl, byte [0x429bb3]
cmp cl, 4
mov eax, dword [0x429830]
jge 0x4059ae
sub dword [0x432890], eax
sbb dword [0x432894], ebx
jmp 0x4059ba
sub dword [0x432750], eax
sbb dword [0x432754], ebx
mov eax, dword [0x427040]
mov dword [esp + 0x10], eax
and al, 0xf
cmp al, 3
mov dword [0x429830], ebx
mov byte [0x429408], bl
jne 0x405a0e
cmp cl, 2
jge 0x4059f0
cmp dword [0x432894], ebx
jg 0x405a0e
jl 0x405a06
cmp dword [0x432890], 0x98
jmp 0x405a04
cmp dword [0x432754], ebx
jg 0x405a0e
jl 0x405a06
cmp dword [0x432750], 0x98
jae 0x405a0e
mov dword [esp + 0x10], 1
cmp byte [0x429821], bl
mov eax, 0x429aa0
jne 0x405a20
mov eax, dword [0x4329e0]
push dword [esp + 0x10]
push 0x405486
push ebp
push edi
push ebx
push eax
push 0x429bc0
push dword [esp + 0x30]
call fcn.00409fff
add esp, 0x20
test eax, eax
jne 0x405a6f
mov byte [0x429815], 1
cmp byte [0x429674], 1
jle 0x405b7c
call fcn.00405184
jmp 0x405b7c
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp byte [0x429815], bl
jne 0x405a49
cmp byte [0x4296cc], 3
jne 0x405a60
test byte [0x429bb3], 2
je 0x4058b0
add byte [0x429bb3], 2
jmp 0x4058b0
mov eax, dword [0x432884]
mov ecx, dword [0x432744]
add ecx, eax
add ecx, dword [0x429544]
test ecx, ecx
jg 0x405a49
push ebp
push edi
push ebx
push dword [esp + 0x20]
call fcn.0040a0c0
add esp, 0x10
test eax, eax
je 0x405a49
cmp byte [0x429674], 1
jle 0x405ad2
call fcn.00405184
jmp 0x405ad2
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x4329d4], ebx
je 0x405acb
push dword [esp + 0x14]
call fcn.0040a131
cmp eax, 1
pop ecx
jne 0x405b8e
lea eax, [esp + 0x14e]
push eax
lea eax, [esp + 0x252]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push eax
push 0x429980
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
test byte [0x429bb3], 4
mov eax, dword [0x429668]
jne 0x405b24
cmp eax, 0xffff
jle 0x405b36
push eax
push dword [0x429838]
call fcn.00401c2b
test eax, eax
pop ecx
pop ecx
jne 0x405b8e
push dword [esp + 0x354]
call fcn.0041730b
test eax, eax
pop ecx
jne 0x405b8e
push dword [esp + 0x354]
lea eax, [esp + 0x252]
push eax
call fcn.0041771d
cmp byte [0x429814], bl
pop ecx
pop ecx
je 0x405b71
push dword [0x43289c]
call fcn.00416768
pop ecx
xor eax, eax
jmp 0x405bc9
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x4329d4], ebx
je 0x405b75
push dword [esp + 0x14]
call fcn.0040a131
pop ecx
lea eax, [esp + 0x14e]
push eax
lea eax, [esp + 0x252]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [esp + 0x24e]
push eax
call fcn.0041730b
cmp byte [0x429814], bl
pop ecx
je 0x405bc6
push dword [0x43289c]
call fcn.00416768
pop ecx
push 2
pop eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x340
ret