Function at 0x4a02f4
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x2a
push 0
push 0
dec ecx
jne 0x4a02fc
push ebx
push esi
push edi
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404a94
xor eax, eax
push ebp
push 0x4a068d
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x417894]
call fcn.004037e8
mov dword [ebp - 0x18], eax
mov dl, 1
mov eax, dword [0x417894]
call fcn.004037e8
mov esi, eax
lea edx, [ebp - 0x120]
mov eax, dword [ebp - 4]
call fcn.004a07a0
mov eax, dword [ebp - 0x120]
call fcn.004090f4
test al, al
je 0x4a03ac
lea edx, [ebp - 0x124]
mov eax, dword [ebp - 4]
call fcn.004a07a0
mov edx, dword [ebp - 0x124]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x128]
mov eax, dword [ebp - 4]
call fcn.004a07a0
mov ecx, dword [ebp - 0x128]
mov dl, 1
mov eax, dword [0x436300]
call fcn.004363b0
mov ebx, eax
mov ecx, dword [ebp - 0x18]
mov edx, 0x4a06a8
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0x40]
mov eax, ebx
call fcn.00403818
cmp byte [0x4a5cd0], 0
je 0x4a0425
lea edx, [ebp - 0x12c]
mov eax, dword [ebp - 4]
call fcn.004a0878
mov eax, dword [ebp - 0x12c]
call fcn.004090f4
test al, al
je 0x4a0425
lea edx, [ebp - 0x130]
mov eax, dword [ebp - 4]
call fcn.004a0878
mov edx, dword [ebp - 0x130]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x134]
mov eax, dword [ebp - 4]
call fcn.004a0878
mov ecx, dword [ebp - 0x134]
mov dl, 1
mov eax, dword [0x436300]
call fcn.004363b0
mov ebx, eax
mov ecx, dword [ebp - 0x18]
mov edx, 0x4a06a8
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0x40]
mov eax, ebx
call fcn.00403818
push 0xff
lea eax, [ebp - 0x11a]
push eax
call sub.KERNEL32.DLL_GetSystemDirectoryA
lea edx, [ebp - 0xc]
lea eax, [ebp - 0x11a]
call fcn.00409840
push 0xff
lea eax, [ebp - 0x11a]
push eax
call sub.KERNEL32.DLL_GetWindowsDirectoryA
lea edx, [ebp - 8]
lea eax, [ebp - 0x11a]
call fcn.00409840
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test ax, ax
jl 0x4a061d
inc eax
mov word [ebp - 0x1a], ax
xor ebx, ebx
lea ecx, [ebp - 0x13c]
movsx edx, bx
mov eax, dword [ebp - 0x18]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x13c]
lea edx, [ebp - 0x138]
call fcn.004094ac
mov eax, dword [ebp - 0x138]
lea edx, [ebp - 0x10]
call fcn.0040871c
mov eax, dword [ebp - 0x10]
mov edx, 0x4a06c4
call fcn.004049f0
je 0x4a04d9
mov eax, dword [ebp - 0x10]
mov edx, 0x4a06d4
call fcn.004049f0
je 0x4a04d9
mov eax, dword [ebp - 0x10]
mov edx, 0x4a06e4
call fcn.004049f0
jne 0x4a04e9
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 0xc]
call fcn.0040467c
jmp 0x4a05ab
mov eax, dword [ebp - 0x10]
mov edx, 0x4a06e4
call fcn.004049f0
jne 0x4a050d
lea eax, [ebp - 0x14]
mov ecx, 0x4a06f4
mov edx, dword [ebp - 0xc]
call fcn.004048f0
jmp 0x4a05ab
mov eax, dword [ebp - 0x10]
mov edx, 0x4a0708
call fcn.004049f0
je 0x4a052b
mov eax, dword [ebp - 0x10]
mov edx, 0x4a0718
call fcn.004049f0
jne 0x4a053d
lea eax, [ebp - 0x14]
mov ecx, 0x4a0728
mov edx, dword [ebp - 8]
call fcn.004048f0
jmp 0x4a05ab
mov eax, dword [ebp - 0x10]
mov edx, 0x4a0738
call fcn.004049f0
jne 0x4a055e
lea eax, [ebp - 0x14]
mov ecx, 0x4a0748
mov edx, dword [ebp - 0xc]
call fcn.004048f0
jmp 0x4a05ab
mov eax, dword [ebp - 0x10]
mov edx, 0x4a0768
call fcn.004049f0
jne 0x4a057f
lea eax, [ebp - 0x14]
mov ecx, 0x4a0778
mov edx, dword [ebp - 8]
call fcn.004048f0
jmp 0x4a05ab
mov eax, dword [ebp - 0x10]
mov edx, 0x4a0788
call fcn.004049f0
jne 0x4a05a0
lea eax, [ebp - 0x14]
mov ecx, 0x4a0798
mov edx, dword [ebp - 8]
call fcn.004048f0
jmp 0x4a05ab
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 0xc]
call fcn.0040467c
lea ecx, [ebp - 0x144]
movsx edx, bx
mov eax, dword [ebp - 0x18]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x144]
lea ecx, [ebp - 0x140]
mov eax, dword [ebp - 0x14]
call fcn.004a018c
mov edx, dword [ebp - 0x140]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x54]
inc eax
jne 0x4a0612
lea ecx, [ebp - 0x14c]
movsx edx, bx
mov eax, dword [ebp - 0x18]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x14c]
lea ecx, [ebp - 0x148]
mov eax, dword [ebp - 0x14]
call fcn.004a018c
mov edx, dword [ebp - 0x148]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x38]
inc ebx
dec word [ebp - 0x1a]
jne 0x4a047c
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x14]
mov ebx, eax
dec ebx
cmp bx, 0
jl 0x4a0658
lea ecx, [ebp - 0x150]
movsx edx, bx
mov eax, esi
mov edi, dword [eax]
call dword [edi + 0xc]
cmp dword [ebp - 0x150], 0
jne 0x4a0650
movsx edx, bx
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x48]
dec ebx
cmp bx, 0xffff
jne 0x4a062d
mov eax, dword [ebp - 0x18]
call fcn.00403818
mov ebx, esi
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a0694
lea eax, [ebp - 0x150]
mov edx, 0xd
call fcn.00404608
lea eax, [ebp - 0x14]
mov edx, 5
call fcn.00404608
ret