Function at 0x4028b9
Capabilities:
Get common file path

Disassembly:
push ebp
lea ebp, [esp - 0xbac]
sub esp, 0xc28
mov eax, dword [0x4161a0]
xor eax, ebp
mov dword [ebp + 0xba8], eax
mov eax, dword [ebp + 0xbb8]
push ebx
push esi
push edi
mov edi, dword [ebp + 0xbbc]
mov dword [ebp - 0x70], eax
push 0x400
lea eax, [ebp - 0x58]
push eax
xor ebx, ebx
push ebx
mov dword [ebp - 0x68], edi
call dword [0x412040]
push str.WinRAR.exe
lea eax, [ebp - 0x58]
push eax
call fcn.004035d9
push eax
call fcn.00405b30
pop ecx
pop ecx
lea eax, [ebp - 0x6c]
push eax
call dword [0x4121d0]
call fcn.0040355c
cmp eax, 6
lea eax, [ebp + 0x7a8]
push eax
setge byte [ebp - 0x59]
mov byte [ebp - 0x5a], bl
mov esi, str.WinRAR.lnk
call fcn.0040205d
cmp byte [ebp - 0x59], bl
je 0x40297a
lea eax, [ebp + 0x7a8]
push eax
call fcn.0040364c
lea eax, [ebp + 0x7a8]
push esi
push eax
call fcn.00405b40
pop ecx
pop ecx
lea eax, [ebp + 0x7a8]
push eax
call dword [0x4120a0]
test eax, eax
lea eax, [ebp + 0x7a8]
push eax
setne byte [ebp - 0x5a]
call fcn.00402096
lea eax, [ebp + 0x7a8]
push eax
call fcn.0040364c
lea eax, [ebp + 0x7a8]
push esi
push eax
call fcn.00405b40
mov eax, dword [ebp + 0xbb4]
pop ecx
pop ecx
cmp byte [eax + 0x14], bl
je 0x402a5f
cmp byte [ebp + 0xbc0], bl
je 0x4029c6
push ebx
lea eax, [ebp + 0x7a8]
push eax
call fcn.004017c5
test al, al
jne 0x4029c6
cmp byte [ebp - 0x5a], bl
je 0x402a6c
push ebx
push edi
mov edi, 0x13f9
push edi
call fcn.004046ec
push eax
lea eax, [ebp + 0x7a8]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00401f4c
test al, al
jne 0x402a6c
cmp byte [ebp - 0x59], bl
je 0x402a6c
cmp byte [ebp + 0xbc0], bl
je 0x402a6c
push ebx
lea eax, [ebp + 0x7a8]
push eax
call fcn.004017c5
test al, al
je 0x402a1b
lea eax, [ebp + 0x7a8]
push eax
call dword [0x4120a0]
test eax, eax
je 0x402a6c
lea eax, [ebp + 0x7a8]
push eax
call fcn.0040205d
lea eax, [ebp + 0x7a8]
push eax
call fcn.0040364c
lea eax, [ebp + 0x7a8]
push esi
push eax
call fcn.00405b40
pop ecx
pop ecx
push ebx
push dword [ebp - 0x68]
push edi
call fcn.004046ec
push eax
lea eax, [ebp + 0x7a8]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00401f4c
jmp 0x402a6c
lea eax, [ebp + 0x7a8]
push eax
call dword [0x4120a0]
lea eax, [ebp - 0x60]
push eax
xor eax, eax
cmp byte [ebp - 0x59], bl
sete al
dec eax
and eax, 0xb
add eax, 0xb
push eax
push ebx
call dword [0x4121cc]
mov edi, dword [0x4121c8]
lea eax, [ebp + 0x7a8]
push eax
push dword [ebp - 0x60]
call edi
mov eax, dword [ebp - 0x6c]
push dword [ebp - 0x60]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
lea eax, [ebp + 0x7a8]
push eax
call fcn.0040364c
lea eax, [ebp + 0x7a8]
push esi
push eax
call fcn.00405b40
mov eax, dword [ebp + 0xbb4]
pop ecx
pop ecx
cmp byte [eax + 0x15], bl
je 0x402b05
cmp byte [ebp + 0xbc0], bl
je 0x402ae4
push ebx
lea eax, [ebp + 0x7a8]
push eax
call fcn.004017c5
test al, al
je 0x402b12
push ebx
push dword [ebp - 0x68]
push 0x13f9
call fcn.004046ec
push eax
lea eax, [ebp + 0x7a8]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00401f4c
jmp 0x402b12
lea eax, [ebp + 0x7a8]
push eax
call dword [0x4120a0]
mov esi, 0x412558
push 0x13ee
mov dword [ebp - 0x7c], esi
call fcn.004046ec
push 0x13ef
mov dword [ebp - 0x78], eax
call fcn.004046ec
mov dword [ebp - 0x74], eax
lea eax, [ebp - 0x60]
push eax
push 2
push ebx
call dword [0x4121cc]
lea eax, [ebp + 0x7a8]
push eax
push dword [ebp - 0x60]
call edi
mov eax, dword [ebp - 0x6c]
push dword [ebp - 0x60]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
lea eax, [ebp + 0x7a8]
push eax
call fcn.0040364c
lea eax, [ebp + 0x7a8]
push esi
push eax
call fcn.00405b40
pop ecx
pop ecx
cmp byte [ebp + 0xbc0], bl
je 0x402b91
push ebx
lea eax, [ebp + 0x7a8]
push eax
call fcn.004017c5
test al, al
je 0x402c8c
mov eax, dword [ebp + 0xbb4]
cmp byte [eax + 0x16], bl
je 0x402c80
cmp dword [ebp - 0x70], ebx
je 0x402bb6
lea eax, [ebp + 0x7a8]
push eax
push dword [ebp - 0x70]
call fcn.00405b30
pop ecx
pop ecx
lea eax, [ebp + 0x7a8]
push eax
call fcn.004020cf
push ebx
lea eax, [ebp + 0x7a8]
push eax
call dword [0x412038]
mov dword [ebp - 0x64], ebx
mov eax, dword [ebp - 0x64]
mov eax, dword [eax*4 + 0x41613c]
cmp byte [eax], bl
je 0x402c71
lea eax, [ebp + 0x7a8]
push eax
lea eax, [ebp + 0x3a8]
push eax
call fcn.00405b30
pop ecx
pop ecx
lea eax, [ebp + 0x3a8]
push eax
call fcn.0040364c
mov eax, dword [ebp - 0x64]
push dword [ebp + eax*4 - 0x7c]
lea eax, [ebp + 0x3a8]
push eax
call fcn.00405b40
lea eax, [ebp + 0x3a8]
push str..lnk
push eax
call fcn.00405b40
mov eax, dword [ebp - 0x64]
add esp, 0x10
push dword [eax*4 + 0x41613c]
lea eax, [ebp - 0x58]
push eax
call fcn.004035d9
push eax
call fcn.00405b30
mov eax, dword [ebp - 0x64]
neg eax
pop ecx
sbb eax, eax
pop ecx
not eax
and eax, dword [ebp - 0x68]
push ebx
push eax
push 0x13f9
call fcn.004046ec
push eax
lea eax, [ebp + 0x3a8]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00401f4c
inc dword [ebp - 0x64]
cmp dword [ebp - 0x64], 3
jb 0x402bd3
jmp 0x402c8c
lea eax, [ebp + 0x7a8]
push eax
call fcn.004020cf
call fcn.0040355c
test eax, eax
je 0x402df5
lea eax, [ebp - 0x60]
push eax
push 0x17
push ebx
call dword [0x4121cc]
test eax, eax
jne 0x402df5
lea eax, [ebp + 0x7a8]
push eax
push dword [ebp - 0x60]
call edi
mov eax, dword [ebp - 0x6c]
push dword [ebp - 0x60]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
lea eax, [ebp + 0x7a8]
push eax
call fcn.0040364c
lea eax, [ebp + 0x7a8]
push esi
push eax
call fcn.00405b40
pop ecx
pop ecx
cmp byte [ebp + 0xbc0], bl
je 0x402cfe
push ebx
lea eax, [ebp + 0x7a8]
push eax
call fcn.004017c5
test al, al
je 0x402df5
mov eax, dword [ebp + 0xbb4]
cmp byte [eax + 0x16], bl
lea eax, [ebp + 0x7a8]
push eax
je 0x402df0
call fcn.004020cf
push ebx
lea eax, [ebp + 0x7a8]
push eax
call dword [0x412038]
cmp dword [ebp - 0x70], ebx
je 0x402d4e
push ebx
lea eax, [ebp + 0x7a8]
push eax
call fcn.004017c5
test al, al
je 0x402d4e
lea eax, [ebp + 0x7a8]
push eax
push dword [ebp - 0x70]
call fcn.00405b30
pop ecx
pop ecx
xor esi, esi
mov eax, dword [esi*4 + 0x41613c]
cmp byte [eax], bl
je 0x402de4
lea eax, [ebp + 0x7a8]
push eax
lea eax, [ebp + 0x3a8]
push eax
call fcn.00405b30
pop ecx
pop ecx
lea eax, [ebp + 0x3a8]
push eax
call fcn.0040364c
push dword [ebp + esi*4 - 0x7c]
lea eax, [ebp + 0x3a8]
push eax
call fcn.00405b40
lea eax, [ebp + 0x3a8]
push str..lnk
push eax
call fcn.00405b40
add esp, 0x10
push dword [esi*4 + 0x41613c]
lea eax, [ebp - 0x58]
push eax
call fcn.004035d9
push eax
call fcn.00405b30
mov eax, esi
neg eax
pop ecx
sbb eax, eax
pop ecx
not eax
and eax, dword [ebp - 0x68]
push ebx
push eax
push 0x13f9
call fcn.004046ec
push eax
lea eax, [ebp + 0x3a8]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00401f4c
inc esi
cmp esi, 3
jb 0x402d50
jmp 0x402df5
call fcn.004020cf
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp + 0xba8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00405fbe
add ebp, 0xbac
leave
ret 0x10