Function at 0x401000
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 4]
call fcn.004035a0
mov eax, dword [ebp - 4]
mov dword [eax], section..rdata
mov eax, dword [ebp - 4]
mov byte [eax + 8], 0
mov eax, dword [ebp - 4]
mov dword [eax + 0xc], 0xffffffff
mov eax, dword [ebp - 4]
mov byte [eax + 0x10], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x11], 0
mov ecx, dword [ebp - 4]
call fcn.004035c9
xor ecx, ecx
mov cl, al
test ecx, ecx
je 0x401055
jmp 0x4012b2
call fcn.00401c37
xor ecx, ecx
mov cl, al
test ecx, ecx
jne 0x401073
mov ecx, dword [ebp - 4]
call fcn.004035e5
jmp 0x4012b2
xor eax, eax
mov al, byte [ebp + 0xc]
mov dword [ebp - 8], eax
jmp 0x401149
push 0x100
mov eax, dword [ebp - 4]
add eax, 0x11
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
jne 0x4010b6
push 0
push str.FileLock::FileLock___Get_Windows_Directory_Failed_r_n
call fcn.0040372a
add esp, 8
mov ecx, dword [ebp - 4]
call fcn.004035e5
jmp 0x4012b2
mov eax, dword [ebp - 4]
add eax, 0x11
push eax
call fcn.00407760
add esp, 4
mov ecx, dword [ebp - 4]
movsx eax, byte [eax + ecx + 0x10]
cmp eax, 0x5c
je 0x40111e
mov eax, dword [ebp - 4]
add eax, 0x11
push eax
call fcn.00407760
add esp, 4
cmp eax, 0x100
jb 0x40110c
push 0
push 0x40e03c
call fcn.0040372a
add esp, 8
mov ecx, dword [ebp - 4]
call fcn.004035e5
jmp 0x4012b2
push 0x40e06c
mov eax, dword [ebp - 4]
add eax, 0x11
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
jmp 0x401162
push 0
push str.FileLock::FileLock___Invalid_inDirFlag_r_n
call fcn.0040372a
add esp, 8
mov ecx, dword [ebp - 4]
call fcn.004035e5
jmp 0x4012b2
cmp dword [ebp - 8], 1
je 0x401080
cmp dword [ebp - 8], 2
je 0x401162
jmp 0x401128
mov eax, dword [ebp - 4]
add eax, 0x11
push eax
call fcn.00407760
add esp, 4
mov ebx, eax
mov eax, dword [ebp + 8]
push eax
call fcn.00407760
add esp, 4
add ebx, eax
cmp ebx, 0x100
jb 0x4011a9
push 0
push str.FileLock::FileLock___pathAndFile_String_Limit_r_n
call fcn.0040372a
add esp, 8
mov ecx, dword [ebp - 4]
call fcn.004035e5
jmp 0x4012b2
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ebp - 4]
add eax, 0x11
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
xor eax, eax
mov al, byte [ebp + 0x10]
mov dword [ebp - 0xc], eax
jmp 0x401285
jmp 0x4012ad
mov ecx, dword [ebp - 4]
call fcn.00401695
xor ecx, ecx
mov cl, al
test ecx, ecx
jne 0x4011ed
mov ecx, dword [ebp - 4]
call fcn.004035e5
jmp 0x4012b2
jmp 0x4012ad
mov ecx, dword [ebp - 4]
call fcn.004016bf
xor ecx, ecx
mov cl, al
test ecx, ecx
jne 0x401213
mov ecx, dword [ebp - 4]
call fcn.004035e5
jmp 0x4012b2
jmp 0x4012ad
mov ecx, dword [ebp - 4]
call fcn.00401641
xor ecx, ecx
mov cl, al
test ecx, ecx
jne 0x401239
mov ecx, dword [ebp - 4]
call fcn.004035e5
jmp 0x4012b2
jmp 0x4012ad
mov ecx, dword [ebp - 4]
call fcn.0040166b
xor ecx, ecx
mov cl, al
test ecx, ecx
jne 0x40125f
mov ecx, dword [ebp - 4]
call fcn.004035e5
jmp 0x4012b2
jmp 0x4012ad
push 0
push str.FileLock::FileLock___Invalid_inOpenFlag_r_n
call fcn.0040372a
add esp, 8
mov ecx, dword [ebp - 4]
call fcn.004035e5
jmp 0x4012b2
cmp dword [ebp - 0xc], 4
ja case.default.0x401292
mov eax, dword [ebp - 0xc]
jmp dword [eax*4 + 0x401299]
jmp 0x4012b2
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret 0xc