Function at 0x401d00
Capabilities:
Get common file path

Disassembly:
sub esp, 0x108
mov eax, dword [0x4292b4]
xor eax, esp
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x110]
cmp eax, 0xd
push ebx
push ebp
mov ebp, dword [esp + 0x114]
push esi
mov esi, dword [esp + 0x120]
push edi
ja case.default.0x401d3c
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp dword [eax*4 + 0x4021d4]
call fcn.0040eda0
test eax, eax
je 0x401d55
lea eax, [esp + 0x10]
push eax
push 0x19
jmp 0x401d5c
lea ecx, [esp + 0x10]
push ecx
push 0x10
push 0
call fcn.0040e5f0
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
add esp, 0xc
cmp byte [esp + 0x128], 0
je 0x401d9c
lea edx, [esp + 0x10]
push edx
call fcn.0040e080
add esp, 4
push str.eptemp.___
lea eax, [esp + 0x14]
push eax
call edi
lea ecx, [esp + 0x10]
push ecx
call fcn.0040e080
add esp, 4
lea edx, [esp + 0x10]
push edx
call fcn.0040e080
add esp, 4
push esi
lea eax, [esp + 0x14]
push eax
call edi
lea eax, [esp + 0x10]
push eax
push ebp
call ebx
mov al, 1
jmp 0x4021b8
call fcn.0040eda0
test eax, eax
je 0x401dd2
lea ecx, [esp + 0x10]
push ecx
push 0x23
jmp 0x401dd9
lea edx, [esp + 0x10]
push edx
push 0x1a
push 0
call fcn.0040e5f0
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
add esp, 0xc
cmp byte [esp + 0x128], 0
je 0x401e19
lea eax, [esp + 0x10]
push eax
call fcn.0040e080
add esp, 4
push str.eptemp.___
lea ecx, [esp + 0x14]
push ecx
call edi
lea edx, [esp + 0x10]
push edx
call fcn.0040e080
add esp, 4
lea eax, [esp + 0x10]
push eax
call fcn.0040e080
add esp, 4
push esi
lea ecx, [esp + 0x14]
push ecx
call edi
lea eax, [esp + 0x10]
push eax
push ebp
call ebx
mov al, 1
jmp 0x4021b8
lea edx, [esp + 0x10]
push edx
push 0x1a
push 0
call fcn.0040e5f0
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
add esp, 0xc
cmp byte [esp + 0x128], 0
je 0x401e84
lea eax, [esp + 0x10]
push eax
call fcn.0040e080
add esp, 4
push str.eptemp.___
lea ecx, [esp + 0x14]
push ecx
call edi
lea edx, [esp + 0x10]
push edx
call fcn.0040e080
add esp, 4
lea eax, [esp + 0x10]
push eax
call fcn.0040e080
add esp, 4
push esi
lea ecx, [esp + 0x14]
push ecx
call edi
lea eax, [esp + 0x10]
push eax
push ebp
call ebx
mov al, 1
jmp 0x4021b8
lea edx, [esp + 0x10]
push edx
push 0x28
push 0
call fcn.0040e5f0
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
add esp, 0xc
cmp byte [esp + 0x128], 0
je 0x401eef
lea eax, [esp + 0x10]
push eax
call fcn.0040e080
add esp, 4
push str.eptemp.___
lea ecx, [esp + 0x14]
push ecx
call edi
lea edx, [esp + 0x10]
push edx
call fcn.0040e080
add esp, 4
lea eax, [esp + 0x10]
push eax
call fcn.0040e080
add esp, 4
push esi
lea ecx, [esp + 0x14]
push ecx
call edi
lea eax, [esp + 0x10]
push eax
push ebp
call ebx
mov al, 1
jmp 0x4021b8
lea edx, [esp + 0x10]
push edx
push 0x23
push 0
call fcn.0040e5f0
lea eax, [esp + 0x1c]
push eax
call fcn.0040e7b0
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
add esp, 0x10
cmp byte [esp + 0x128], 0
je 0x402195
lea ecx, [esp + 0x10]
push ecx
call fcn.0040e080
add esp, 4
push str.eptemp.___
lea edx, [esp + 0x14]
push edx
call edi
lea eax, [esp + 0x10]
push eax
call fcn.0040e080
add esp, 4
jmp 0x402195
lea eax, [esp + 0x10]
push eax
push 0x26
push 0
call fcn.0040e5f0
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
add esp, 0xc
cmp byte [esp + 0x128], 0
je 0x402195
lea ecx, [esp + 0x10]
push ecx
call fcn.0040e080
add esp, 4
push str.eptemp.___
lea edx, [esp + 0x14]
push edx
call edi
lea eax, [esp + 0x10]
push eax
call fcn.0040e080
add esp, 4
jmp 0x402195
push 0x104
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
cmp byte [esp + 0x128], 0
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
je 0x401e19
lea ecx, [esp + 0x10]
push ecx
call fcn.0040e080
add esp, 4
push str.eptemp.___
lea edx, [esp + 0x14]
push edx
call edi
jmp 0x401e19
push 0x104
lea edx, [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
cmp byte [esp + 0x128], 0
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
je 0x401d9c
lea eax, [esp + 0x10]
push eax
call fcn.0040e080
add esp, 4
push str.eptemp.___
lea ecx, [esp + 0x14]
push ecx
call edi
jmp 0x401d9c
lea ecx, [esp + 0x10]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea edx, [esp + 0x10]
push edx
call fcn.0040e080
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
jmp 0x402186
push 0x104
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
cmp byte [esp + 0x128], 0
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
mov byte [esp + 0x13], 0
je 0x401e19
lea ecx, [esp + 0x10]
push ecx
call fcn.0040e080
add esp, 4
push str.eptemp.___
lea edx, [esp + 0x14]
push edx
call edi
jmp 0x401e19
push 0x104
lea edx, [esp + 0x14]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [esp + 0x10]
push eax
call fcn.0040e030
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
add esp, 4
cmp byte [esp + 0x128], 0
mov byte [eax], 0
je 0x401da9
lea ecx, [esp + 0x10]
push ecx
call fcn.0040e080
add esp, 4
push str.eptemp.___
lea edx, [esp + 0x14]
push edx
call edi
jmp 0x401da9
push esi
lea ecx, [esp + 0x14]
push ecx
call ebx
lea eax, [esp + 0x10]
push eax
push ebp
call ebx
mov al, 1
jmp 0x4021b8
lea edx, [esp + 0x10]
push edx
push 0x10
push 0
call fcn.0040e5f0
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
add esp, 0xc
cmp byte [esp + 0x128], 0
je 0x401d9c
lea eax, [esp + 0x10]
push eax
call fcn.0040e080
add esp, 4
push str.eptemp.___
lea ecx, [esp + 0x14]
push ecx
call edi
jmp 0x401d9c
lea ecx, [esp + 0x10]
push ecx
push 5
push 0
call fcn.0040e5f0
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
add esp, 0xc
cmp byte [esp + 0x128], 0
je 0x402195
lea edx, [esp + 0x10]
push edx
call fcn.0040e080
add esp, 4
push str.eptemp.___
lea eax, [esp + 0x14]
push eax
call edi
lea ecx, [esp + 0x10]
push ecx
call fcn.0040e080
add esp, 4
push esi
lea edx, [esp + 0x14]
push edx
call edi
lea eax, [esp + 0x10]
push eax
push ebp
call ebx
mov al, 1
jmp 0x4021b8
xor al, al
mov ecx, dword [esp + 0x114]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0040ffc4
add esp, 0x108
ret