Function at 0x40fee0
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x425b07
mov eax, dword fs:[0]
push eax
sub esp, 0x27c
mov eax, dword [0x4300a0]
xor eax, esp
mov dword [esp + 0x278], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4300a0]
xor eax, esp
push eax
lea eax, [esp + 0x290]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x2a0]
lea edi, [ebp + 0xc4]
push edi
mov ebx, str.MaLauncher.exe
lea esi, [esp + 0x6c]
call fcn.00411140
push edi
mov ebx, str.MaDiag.exe
lea esi, [esp + 0x54]
mov dword [esp + 0x2a0], 0
call fcn.00411140
add esp, 8
lea ecx, [esp + 0x84]
push ecx
push 0x42aa68
push 0
push 0
mov byte [esp + 0x2a8], 1
mov eax, dword [ebp + 4]
push 0x800b
push eax
call dword [sym.imp.SHELL32.dll_SHGetFolderPathAndSubDirW]
mov ebx, 8
test eax, eax
jl 0x4100f5
xor edx, edx
lea eax, [esp + 0x84]
mov word [esp + 0x18], dx
mov dword [esp + 0x2c], 7
mov dword [esp + 0x28], 0
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40ffb0
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x88]
lea esi, [esp + 0x18]
call fcn.00404d90
push 0xa
mov eax, 0x42aa7c
mov ecx, esi
mov byte [esp + 0x29c], 2
call fcn.00410e10
xor eax, eax
mov word [esp + 0x34], ax
lea eax, [esp + 0x84]
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x410007
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x88]
lea esi, [esp + 0x34]
call fcn.00404d90
push 0xe
mov eax, 0x42aa94
mov ecx, esi
mov byte [esp + 0x29c], 3
call fcn.00410e10
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x2c], ebx
jae 0x41004b
lea edx, [esp + 0x18]
cmp dword [edi + 0x18], ebx
jb 0x410055
mov ecx, dword [edi + 4]
jmp 0x410058
lea ecx, [edi + 4]
mov eax, dword [esp + 0x6c]
cmp dword [esp + 0x80], ebx
jae 0x410069
lea eax, [esp + 0x6c]
push 0x42aab4
push edx
push ecx
call fcn.0040f580
mov edx, dword [esp + 0x40]
add esp, 0xc
cmp dword [esp + 0x48], ebx
jae 0x410086
lea edx, [esp + 0x34]
cmp dword [edi + 0x18], ebx
jb 0x410090
mov ecx, dword [edi + 4]
jmp 0x410093
lea ecx, [edi + 4]
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x64], ebx
jae 0x4100a1
lea eax, [esp + 0x50]
push 0x42aac4
push edx
push ecx
call fcn.0040f580
add esp, 0xc
cmp dword [esp + 0x48], ebx
jb 0x4100c3
mov ecx, dword [esp + 0x34]
push ecx
call fcn.00412373
add esp, 4
xor edx, edx
mov byte [esp + 0x298], 1
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], dx
cmp dword [esp + 0x2c], ebx
jb 0x4100f5
mov eax, dword [esp + 0x18]
push eax
call fcn.00412373
add esp, 4
mov eax, dword [ebp + 4]
lea ecx, [esp + 0x84]
push ecx
push 0
push 0
push 0x8010
push eax
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jl 0x4101c4
xor edx, edx
lea eax, [esp + 0x84]
mov word [esp + 0x18], dx
mov dword [esp + 0x2c], 7
mov dword [esp + 0x28], 0
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x410140
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x88]
lea esi, [esp + 0x18]
call fcn.00404d90
push 0xa
mov eax, 0x42aa7c
mov ecx, esi
mov byte [esp + 0x29c], 4
call fcn.00410e10
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x2c], ebx
jae 0x410184
lea ecx, [esp + 0x18]
cmp dword [edi + 0x18], ebx
jb 0x41018e
mov edi, dword [edi + 4]
jmp 0x410191
add edi, 4
mov eax, dword [esp + 0x6c]
cmp dword [esp + 0x80], ebx
jae 0x4101a2
lea eax, [esp + 0x6c]
push 0x42aab4
push ecx
push edi
call fcn.0040f580
add esp, 0xc
cmp dword [esp + 0x2c], ebx
jb 0x4101c4
mov eax, dword [esp + 0x18]
push eax
call fcn.00412373
add esp, 4
cmp dword [esp + 0x64], ebx
jb 0x4101d7
mov ecx, dword [esp + 0x50]
push ecx
call fcn.00412373
add esp, 4
xor edx, edx
mov dword [esp + 0x64], 7
mov dword [esp + 0x60], 0
mov word [esp + 0x50], dx
cmp dword [esp + 0x80], ebx
jb 0x410204
mov eax, dword [esp + 0x6c]
push eax
call fcn.00412373
add esp, 4
mov ecx, dword [esp + 0x290]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x278]
xor ecx, esp
call fcn.0041237e
add esp, 0x288
ret 4