Function at 0x41f290
Capabilities:
Get common file path
Get program files directory
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x628
mov eax, dword [0x44d100]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x44db5c], 0
je 0x41f2d1
cmp dword [0x44df70], 0
je 0x41f2d1
cmp dword [0x44df74], 0
je 0x41f2d1
mov eax, 1
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0042bc6d
mov esp, ebp
pop ebp
ret
push ebx
push edi
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
xor ebx, ebx
push esi
nop dword [eax]
mov esi, 0xe
test ebx, ebx
jne 0x41f39b
push esi
lea eax, [ebp - 0x61c]
push str.SoftwareFujitsuATLASV_i.0EJ
push eax
call edi
add esp, 0xc
mov dword [ebp - 0x620], ebx
lea eax, [ebp - 0x620]
push eax
lea eax, [ebp - 0x61c]
push eax
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x41f4a3
lea eax, [ebp - 0x624]
mov dword [ebp - 0x624], 0x40e
push eax
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x628]
push eax
push ebx
push str.TRENV_EJ
push dword [ebp - 0x620]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0x620]
mov edi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
jne 0x41f49d
cmp dword [ebp - 0x628], 1
jne 0x41f49d
lea eax, [ebp - 0x414]
push 0x5c
push eax
call sub.msvcrt.dll_wcsrchr
add esp, 8
test eax, eax
je 0x41f49d
xor ecx, ecx
mov word [eax + 2], cx
jmp 0x41f3d1
lea eax, [ebp - 0x414]
push eax
push 0
push 0
push 0x26
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x41f4a3
push eax
lea eax, [ebp - 0x414]
push eax
call sub.msvcrt.dll_wcschr
push esi
push str.ATLAS_V_i_
push eax
call edi
add esp, 0x14
lea eax, [ebp - 0x414]
push 0
push eax
call sub.msvcrt.dll_wcschr
movups xmm0, xmmword [str.AtleCont.dll]
mov edi, eax
add esp, 8
lea eax, [ebp - 0x414]
movups xmmword [edi], xmm0
push 8
movq xmm0, qword [0x443ac4]
movq qword [edi + 0x10], xmm0
mov cx, word [0x443acc]
push 0
push eax
mov word [edi + 0x18], cx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
movups xmm0, xmmword [str.awdict.dll]
mov dword [0x44db5c], eax
push 8
movups xmmword [edi], xmm0
mov eax, dword [0x443ae0]
mov dword [edi + 0x10], eax
movzx eax, word [0x443ae4]
mov word [edi + 0x14], ax
lea eax, [ebp - 0x414]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
movups xmm0, xmmword [str.awuenv.dll]
mov dword [0x44df70], eax
push 8
movups xmmword [edi], xmm0
mov eax, dword [0x443af8]
mov dword [edi + 0x10], eax
movzx eax, word [0x443afc]
mov word [edi + 0x14], ax
lea eax, [ebp - 0x414]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
cmp dword [0x44db5c], 0
mov dword [0x44df74], eax
je 0x41f498
cmp dword [0x44df70], 0
je 0x41f498
test eax, eax
jne 0x41f4ca
call fcn.0041f510
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
dec esi
cmp esi, 0xd
jge 0x41f2e5
inc ebx
cmp ebx, 2
jl 0x41f2e0
pop esi
pop edi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0042bc6d
mov esp, ebp
pop ebp
ret
xor eax, eax
xor ecx, ecx
mov word [edi], ax
movzx eax, word [ebp + ecx - 0x414]
lea ecx, [ecx + 2]
mov word [ecx + 0x44db5e], ax
test ax, ax
jne 0x41f4d1
mov ecx, dword [ebp - 4]
mov eax, 1
mov dword [0x44e394], esi
xor ecx, ebp
pop esi
pop edi
pop ebx
call fcn.0042bc6d
mov esp, ebp
pop ebp
ret