Function at 0x4011a0
Capabilities:
Get common file path
Set registry value

Disassembly:
push 0xffffffffffffffff
push 0x402ba1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x4c0
push ebp
push esi
lea eax, [esp + 0x14]
push edi
push eax
push str.SoftwareAntiy_LabsAntiy_GhostBusters_4
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
lea ecx, [esp + 0xc]
call fcn.004029c8
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x1bc]
mov dword [esp + 0x4d4], 0
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x1bc]
push ecx
push 0x104
stosb byte es:[edi], al
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea edx, [esp + 0x1bc]
lea ecx, [esp + 0xc]
push edx
call fcn.004029c2
push 0x4040b4
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::TrimRight
push 0x4040b4
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::operator
mov eax, dword [esp + 0xc]
mov esi, dword [eax - 8]
lea ecx, [esi + 1]
push ecx
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
xor eax, eax
test esi, esi
jle 0x401264
mov edx, dword [esp + 0xc]
inc eax
cmp eax, esi
mov cl, byte [eax + edx - 1]
mov byte [eax + edi - 1], cl
jl 0x401253
push esi
push edi
mov byte [edi + esi], 0
mov eax, dword [esp + 0x20]
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push 1
push 0
push str.Install_Directory
push eax
call esi
push edi
mov ebp, eax
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x2c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x20], eax
mov eax, dword [str.yitna_sbal_4bga]
mov dword [esp + 0x24], ecx
mov ecx, dword [0x404094]
mov dword [esp + 0x28], edx
mov edx, dword [0x404098]
mov dword [esp + 0x3c], eax
mov eax, dword [0x40409c]
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], eax
call fcn.00401b90
lea ecx, [esp + 0x3c]
mov byte [esp + 0x4d4], 1
push ecx
push 0x80
push 0
lea ecx, [esp + 0x58]
call fcn.00402890
push 0
push 1
lea ecx, [esp + 0x54]
call fcn.00401d50
lea edx, [esp + 0x1c]
lea eax, [esp + 0x1c]
push edx
push 0x80
push eax
lea ecx, [esp + 0x58]
call fcn.00401e10
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x1c]
push 0x10
push ecx
push 3
push 0
push 0x40408c
push edx
call esi
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0x10]
call fcn.004019c0
push str.alffile
push str..alf
push 0x80000000
lea ecx, [esp + 0x1c]
mov byte [esp + 0x4e0], 2
call fcn.00401a40
test al, al
je 0x40141d
push str.Antiy_License_File
push str.alffile
push 0x80000000
lea ecx, [esp + 0x1c]
call fcn.00401a40
test al, al
je 0x40141d
mov esi, dword [esp + 0x14]
lea ecx, [esp + 0x3c8]
push 0x104
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea edx, [esp + 0x3c8]
lea eax, [esp + 0x2c4]
push edx
push str.__sAddKey.exe__0
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [esp + 0x2c4]
push ecx
push str.DefaultIcon
push esi
lea ecx, [esp + 0x1c]
call fcn.00401ae0
push str.open
push str.Shell
push esi
lea ecx, [esp + 0x1c]
call fcn.00401ae0
push 0
push str.open
lea ecx, [esp + 0x18]
call fcn.00401a90
push str.AddKey.exe__1
push str.command
lea ecx, [esp + 0x18]
call fcn.00401a90
xor edx, edx
lea ecx, [esp + 0x10]
test ebp, ebp
sete dl
mov esi, edx
mov byte [esp + 0x4d4], 1
call fcn.004019f0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x4d4], 0
call fcn.00401bc0
lea ecx, [esp + 0xc]
mov dword [esp + 0x4d4], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x4cc]
mov eax, esi
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
add esp, 0x4cc
ret