Function at 0x100141dc
Capabilities:
Get common file path

Disassembly:
push ebp
lea ebp, [esp - 0x190]
sub esp, 0x20c
mov eax, dword [0x1007ef24]
xor eax, ebp
mov dword [ebp + 0x18c], eax
push esi
mov esi, dword [ebp + 0x198]
mov eax, dword [esi]
cmp eax, 0xa
mov dword [ebp - 0x7c], esi
jae 0x1001420f
xor al, al
jmp 0x1001443a
mov ecx, dword [esi + 4]
push ebx
push edi
lea eax, [ecx + eax - 1]
mov cl, byte [eax]
mov ebx, 0x200
push ebx
mov byte [eax], 0
xor edi, edi
lea eax, [ebp - 0x74]
push edi
push eax
mov byte [ebp - 0x76], cl
mov byte [ebp - 0x75], 0
call fcn.10042a90
add esp, 0xc
cmp byte [0x10080b20], 0
je 0x1001424e
push ebx
lea eax, [ebp - 0x74]
push eax
push 0x10080b20
jmp 0x10014261
cmp byte [0x1008067c], 0
je 0x10014269
push ebx
lea eax, [ebp - 0x74]
push eax
push 0x1008067c
call fcn.10012bcd
add esp, 0xc
cmp byte [ebp - 0x74], 0
je 0x1001429a
lea eax, [ebp - 0x74]
push 0x2e
push eax
call fcn.100447f0
cmp eax, edi
pop ecx
pop ecx
je 0x10014283
mov byte [eax], 0
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x74]
push ecx
push eax
call fcn.10043620
test eax, eax
pop ecx
pop ecx
je 0x1001429a
mov byte [ebp - 0x75], 1
push ebx
lea eax, [ebp - 0x74]
push edi
push eax
call fcn.10042a90
add esp, 0xc
cmp byte [0x10081084], 0
lea eax, [ebp - 0x74]
je 0x100142be
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
jmp 0x100142c9
push edi
push 0x1a
push eax
push edi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
cmp byte [ebp - 0x74], 0
je 0x1001432d
lea edi, [ebp - 0x74]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x100142d3
mov esi, str.MyToolsHelp_
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea edi, [ebp - 0x74]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x100142e9
mov esi, str.cmssc.dll
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
cmp byte [ebp - 0x74], al
je 0x1001432d
lea eax, [ebp - 0x74]
push 0x2e
push eax
call fcn.100447f0
test eax, eax
pop ecx
pop ecx
je 0x10014313
mov byte [eax], 0
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x74]
push ecx
push eax
call fcn.10043620
test eax, eax
pop ecx
pop ecx
je 0x1001432d
mov byte [ebp - 0x75], 1
push ebx
lea eax, [ebp - 0x74]
push 0
push eax
call fcn.10042a90
add esp, 0xc
push ebx
lea eax, [ebp - 0x74]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
cmp byte [ebp - 0x74], 0
je 0x10014380
lea edi, [ebp - 0x74]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x10014351
mov esi, str._netfe32
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
cmp byte [ebp - 0x74], al
je 0x10014380
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x74]
push ecx
push eax
call fcn.10043620
test eax, eax
pop ecx
pop ecx
je 0x10014380
mov byte [ebp - 0x75], 1
push ebx
lea eax, [ebp - 0x74]
push 0
push eax
call fcn.10042a90
add esp, 0xc
push ebx
lea eax, [ebp - 0x74]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
cmp byte [ebp - 0x74], 0
je 0x100143d3
lea edi, [ebp - 0x74]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x100143a4
mov esi, str._netpt32
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
cmp byte [ebp - 0x74], al
je 0x100143d3
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x74]
push ecx
push eax
call fcn.10043620
test eax, eax
pop ecx
pop ecx
je 0x100143d3
mov byte [ebp - 0x75], 1
push ebx
lea eax, [ebp - 0x74]
push 0
push eax
call fcn.10042a90
add esp, 0xc
push ebx
lea eax, [ebp - 0x74]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
cmp byte [ebp - 0x74], 0
je 0x10014426
lea edi, [ebp - 0x74]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x100143f7
mov esi, str._netoe32
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
cmp byte [ebp - 0x74], al
je 0x10014426
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x74]
push ecx
push eax
call fcn.10043620
test eax, eax
pop ecx
pop ecx
je 0x10014426
mov byte [ebp - 0x75], 1
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov dl, byte [ebp - 0x76]
pop edi
mov byte [ecx + eax - 1], dl
mov al, byte [ebp - 0x75]
pop ebx
mov ecx, dword [ebp + 0x18c]
xor ecx, ebp
pop esi
call fcn.10042977
add ebp, 0x190
leave
ret