Function at 0x401000
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1b84
call fcn.004026b0
mov eax, dword [0x40a020]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push edi
mov dword [ebp - 0x1b84], eax
xor eax, eax
mov edi, str.kernel32.dll
push edi
mov dword [ebp - 0x1b80], eax
mov dword [ebp - 0x1b70], eax
mov dword [ebp - 0x1b7c], eax
mov dword [ebp - 0x1b78], eax
mov dword [ebp - 0x1b74], eax
call esi
mov ebx, 0x104
test eax, eax
je 0x401084
push str.SetDefaultDllDirectories
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x401084
push 0x800
call eax
test eax, eax
je 0x401084
mov dword [ebp - 0x1b80], 1
jmp 0x4011ec
push edi
call esi
test eax, eax
je 0x4010a2
push str.SetDllDirectoryA
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4010a2
push 0x40721a
call eax
push ebx
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
lea ecx, [ebp - 0x108]
cmp byte [eax + ecx - 1], 0x5c
je 0x4010da
push 0x407218
mov eax, ecx
push eax
call esi
push ebx
lea eax, [ebp - 0x310]
push 0
push eax
call fcn.00402620
add esp, 0xc
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0x310]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push str.ntmarta.dll
lea eax, [ebp - 0x310]
push eax
call esi
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea eax, [ebp - 0x310]
push eax
call edi
push ebx
mov dword [ebp - 0x1b70], eax
lea eax, [ebp - 0x414]
push 0
push eax
call fcn.00402620
add esp, 0xc
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push str.PROPSYS.dll
lea eax, [ebp - 0x414]
push eax
call esi
lea eax, [ebp - 0x414]
push eax
call edi
push ebx
mov dword [ebp - 0x1b7c], eax
lea eax, [ebp - 0x518]
push 0
push eax
call fcn.00402620
add esp, 0xc
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0x518]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push str.Secur32.dll
lea eax, [ebp - 0x518]
push eax
call esi
lea eax, [ebp - 0x518]
push eax
call edi
push ebx
mov dword [ebp - 0x1b78], eax
lea eax, [ebp - 0x61c]
push 0
push eax
call fcn.00402620
add esp, 0xc
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0x61c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push str.api_ms_win_downlevel_advapi32_l2_1_0.dll
lea eax, [ebp - 0x61c]
push eax
call esi
lea eax, [ebp - 0x61c]
push eax
call edi
mov dword [ebp - 0x1b74], eax
xor edi, edi
push 0x7f02
push edi
mov dword [0x40ab80], edi
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
lea ecx, [ebp - 0x1b6c]
call fcn.004013f4
mov esi, 0x800
push esi
lea eax, [ebp - 0x1364]
push edi
push eax
call fcn.00402620
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
add esp, 0xc
push dword [ebp - 0x1b84]
call edi
cmp eax, esi
jge 0x40124d
push dword [ebp - 0x1b84]
lea eax, [ebp - 0x1364]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
xor esi, esi
push ebx
lea eax, [ebp - 0xb64]
push esi
push eax
mov dword [ebp - 0xa60], esi
call fcn.00402620
add esp, 0xc
xor ebx, ebx
cmp dword [0x40ab88], esi
jle 0x40132e
mov eax, dword [0x40ab8c]
push dword [eax + ebx*4]
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [ebp - 0x20c], 0x2f
jne 0x4012f8
mov al, byte [ebp - 0x20b]
cmp al, 0x54
je 0x4012c2
cmp al, 0x57
je 0x4012a8
cmp al, 0x74
je 0x4012c2
cmp al, 0x77
jne 0x4012f8
lea eax, [ebp - 0x20c]
push eax
call edi
cmp eax, 2
jne 0x4012f8
mov dword [ebp - 0xa60], 1
jmp 0x4012f8
lea eax, [ebp - 0x20c]
push eax
call edi
cmp eax, 3
jle 0x4012f8
cmp byte [ebp - 0x20a], 0x3a
jne 0x4012f8
cmp eax, 3
jle 0x4012f8
add eax, 0xfffffffd
push eax
lea eax, [ebp - 0x209]
push eax
lea eax, [ebp - 0xb64]
push eax
call fcn.004026e0
add esp, 0xc
push 0xffffffffffffffff
push str._DBG
push 0xffffffffffffffff
lea eax, [ebp - 0x20c]
push eax
push 1
push 0x7f
call dword [sym.imp.KERNEL32.dll_CompareStringA]
cmp eax, 2
jne 0x401321
mov dword [0x40ab80], 1
inc ebx
cmp ebx, dword [0x40ab88]
jl 0x401274
lea ecx, [ebp - 0x1b6c]
call fcn.00402277
mov edi, eax
lea eax, [edi - 0x32]
cmp eax, 0x31
ja 0x40135d
cmp dword [ebp - 0xa5c], 0
jne 0x40135d
push 0xfa
inc esi
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp esi, 5
jb 0x40132e
cmp dword [ebp - 0x1b80], 0
jne 0x4013af
cmp dword [ebp - 0x1b70], 0
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
je 0x40137d
push dword [ebp - 0x1b70]
call esi
xor ebx, ebx
cmp dword [ebp - 0x1b7c], ebx
je 0x40138f
push dword [ebp - 0x1b7c]
call esi
cmp dword [ebp - 0x1b78], ebx
je 0x40139f
push dword [ebp - 0x1b78]
call esi
cmp dword [ebp - 0x1b74], ebx
je 0x4013af
push dword [ebp - 0x1b74]
call esi
lea eax, [edi - 0x32]
cmp eax, 0x31
ja 0x4013d6
cmp dword [ebp - 0xa5c], 0
jne 0x4013d6
push 0x10
push str.Launcher_Error
lea eax, [ebp - 0x1b64]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp - 0x1b6c]
call fcn.00401456
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040269a
leave
ret 0x10