Function at 0x404414
Capabilities:
Get common file path

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x40cef0
push 0x40c332
mov eax, dword fs:[0]
push eax
push ecx
push ecx
mov eax, 0x105c
call fcn.0040cc20
mov eax, dword [0x40e004]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x20], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xf6c], eax
xor ebx, ebx
mov dword [ebp - 0xf80], ebx
mov byte [ebp - 0x12c], bl
push 0x103
push ebx
lea eax, [ebp - 0x12b]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
xor eax, eax
mov word [ebp - 0x334], ax
mov esi, 0x206
push esi
push ebx
lea eax, [ebp - 0x332]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
xor eax, eax
mov word [ebp - 0x53c], ax
push esi
push ebx
lea eax, [ebp - 0x53a]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
xor eax, eax
mov word [ebp - 0x744], ax
push esi
push ebx
lea eax, [ebp - 0x742]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
xor eax, eax
mov word [ebp - 0x94c], ax
push esi
push ebx
lea eax, [ebp - 0x94a]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
xor eax, eax
mov word [ebp - 0xb54], ax
push esi
push ebx
lea eax, [ebp - 0xb52]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
xor eax, eax
mov word [ebp - 0xf64], ax
push esi
push ebx
lea eax, [ebp - 0xf62]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
xor eax, eax
mov word [ebp - 0xd5c], ax
push esi
push ebx
lea eax, [ebp - 0xd5a]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0xd5c]
mov dword [ebp - 0xf7c], eax
mov dword [ebp - 0xf68], 0x401804
mov esi, 0x4017b4
call fcn.00405fe0
test eax, eax
jne 0x404564
xor eax, eax
jmp 0x404b8d
call fcn.00403d19
test eax, eax
je 0x40457c
mov esi, 0x4017d4
mov dword [ebp - 0xf68], 0x401818
push 1
push esi
call dword [0x410ad4]
mov edi, eax
mov dword [ebp - 0xf74], edi
test edi, edi
jne 0x4045bf
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x4045bb
mov dword [ebp - 0xf68], 0x401804
push 1
push 0x4017b4
call dword [0x410ad4]
mov edi, eax
mov dword [ebp - 0xf74], edi
test edi, edi
je 0x40455d
inc dword [0x410aac]
xor eax, eax
mov esi, dword [0x410ab4]
test esi, esi
setne al
mov dword [ebp - 0xf78], eax
test eax, eax
je 0x404bab
mov dword [ebp - 0xf68], esi
mov dword [ebp - 0xf70], ebx
mov eax, dword [ebp - 0xf6c]
test eax, eax
je 0x404614
push eax
push 0x401880
push 0x104
lea eax, [ebp - 0x12c]
push eax
call fcn.00403bc5
add esp, 0x10
test eax, eax
jns 0x40463f
push 0xfa
lea eax, [ebp - 0x12c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
jne 0x40463f
push 0x401884
mov edx, 0x104
lea ecx, [ebp - 0x12c]
call fcn.00403a7a
mov dword [ebp - 4], ebx
lea eax, [ebp - 0x334]
mov dword [ebp - 0xff4], eax
mov dword [ebp - 0xff0], ebx
mov dword [ebp - 0xfec], ebx
mov dword [ebp - 0xfe8], ebx
lea eax, [ebp - 0x53c]
mov dword [ebp - 0x1024], eax
mov dword [ebp - 0x1020], ebx
mov dword [ebp - 0x101c], ebx
mov dword [ebp - 0x1018], ebx
lea eax, [ebp - 0x94c]
mov dword [ebp - 0x1044], eax
mov dword [ebp - 0x1040], ebx
mov dword [ebp - 0x103c], ebx
mov dword [ebp - 0x1038], ebx
lea eax, [ebp - 0x744]
mov dword [ebp - 0x105c], eax
mov dword [ebp - 0x1058], ebx
mov dword [ebp - 0x1054], ebx
mov dword [ebp - 0x1050], ebx
mov dword [ebp - 0x1074], 0x401888
mov dword [ebp - 0x1070], ebx
mov dword [ebp - 0x106c], ebx
mov dword [ebp - 0x1068], ebx
lea eax, [ebp - 0xb54]
mov dword [ebp - 0xfe4], eax
mov dword [ebp - 0xfe0], ebx
mov dword [ebp - 0xfdc], ebx
mov dword [ebp - 0xfd8], ebx
lea eax, [ebp - 0xf64]
mov dword [ebp - 0xfd4], eax
mov dword [ebp - 0xfd0], ebx
mov dword [ebp - 0xfcc], ebx
mov dword [ebp - 0xfc8], ebx
mov dword [ebp - 0xfa8], 0x401870
mov edx, 0x401838
mov dword [ebp - 0xfa4], edx
mov eax, 0x401840
mov dword [ebp - 0xfa0], eax
mov ecx, 0x401868
mov dword [ebp - 0xf9c], ecx
mov dword [ebp - 0xf98], 0x401878
mov dword [ebp - 0xf94], ebx
mov dword [ebp - 0xfc4], edx
mov dword [ebp - 0xfc0], eax
mov dword [ebp - 0xfbc], 0x401848
mov dword [ebp - 0xfb8], 0x401850
mov dword [ebp - 0xfb4], 0x401858
mov dword [ebp - 0xfb0], 0x401860
mov dword [ebp - 0xfac], ecx
mov dword [ebp - 0x1064], 0x401898
mov dword [ebp - 0x1060], 0x4018b0
mov dword [ebp - 0x104c], 0x4018e8
mov dword [ebp - 0x1048], 0x401900
mov dword [ebp - 0x1004], edx
mov eax, 0x4000000
mov dword [ebp - 0x1000], eax
xor ecx, ecx
inc ecx
mov dword [ebp - 0xffc], ecx
mov dword [ebp - 0xff8], ebx
mov dword [ebp - 0xf90], edx
mov dword [ebp - 0xf8c], 0x2000000
mov dword [ebp - 0xf88], ecx
mov dword [ebp - 0xf84], ebx
mov dword [ebp - 0x1014], edx
mov dword [ebp - 0x1010], 0x3000000
mov dword [ebp - 0x100c], ecx
mov dword [ebp - 0x1008], ecx
mov dword [ebp - 0x1034], edx
mov dword [ebp - 0x1030], eax
mov dword [ebp - 0x102c], ebx
mov dword [ebp - 0x1028], ebx
push 0x401930
lea eax, [ebp - 0x12c]
push eax
push 0x40194c
push 0x104
lea eax, [ebp - 0x334]
push eax
call fcn.00403c0c
add esp, 0x14
test eax, eax
js 0x404b7c
push 0x401958
lea eax, [ebp - 0x12c]
push eax
push 0x40194c
push 0x104
lea eax, [ebp - 0x53c]
push eax
call fcn.00403c0c
add esp, 0x14
test eax, eax
js 0x404b7c
push 0x401974
lea eax, [ebp - 0x12c]
push eax
push 0x40194c
push 0x104
lea eax, [ebp - 0x744]
push eax
call fcn.00403c0c
add esp, 0x14
test eax, eax
js 0x404b7c
push 0x401990
lea eax, [ebp - 0x12c]
push eax
push 0x40194c
push 0x104
lea eax, [ebp - 0xb54]
push eax
call fcn.00403c0c
add esp, 0x14
test eax, eax
js 0x404b7c
push 0x4019a8
lea eax, [ebp - 0x12c]
push eax
push 0x40194c
push 0x104
lea eax, [ebp - 0xf64]
push eax
call fcn.00403c0c
add esp, 0x14
test eax, eax
js 0x404b7c
push 0x4019c0
lea eax, [ebp - 0x12c]
push eax
push 0x40194c
push 0x104
lea eax, [ebp - 0x94c]
push eax
call fcn.00403c0c
add esp, 0x14
test eax, eax
js 0x404b7c
push 0x4019d4
lea eax, [ebp - 0x12c]
push eax
push 0x40194c
push 0x104
lea eax, [ebp - 0xd5c]
push eax
call fcn.00403c0c
add esp, 0x14
test eax, eax
js 0x404b7c
mov dword [0x410ab8], 1
test dword [0x410ab0], 0x1000000
jne 0x40498a
push 0x404359
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov dword [0x410aa8], eax
or dword [0x410ab0], 0x1000000
call fcn.004043ab
test eax, eax
je 0x404b7c
mov eax, dword [0x410ab0]
test eax, 0x1000
jne 0x4049e4
mov eax, dword [esi]
push ebx
lea ecx, [ebp - 0xff4]
push ecx
push 0x401a84
lea ecx, [ebp - 0xfa8]
push ecx
push 0x401ad4
lea ecx, [ebp - 0x1004]
push ecx
push 0x401aa4
push esi
call dword [eax]
test eax, eax
je 0x404b7c
mov eax, dword [0x410ab0]
or eax, 0x1000
mov dword [0x410ab0], eax
test eax, 0x2000
jne 0x404a2c
mov eax, dword [esi]
push ebx
lea ecx, [ebp - 0x1024]
push ecx
push 0x401a84
lea ecx, [ebp - 0xfa8]
push ecx
push 0x401ad4
lea ecx, [ebp - 0xf90]
push ecx
push 0x401aa4
push esi
call dword [eax]
test eax, eax
je 0x404b7c
mov eax, dword [0x410ab0]
or eax, 0x2000
mov dword [0x410ab0], eax
mov dword [0x410ab0], eax
test eax, 0x8000
jne 0x404a69
mov eax, dword [esi]
push ebx
push ebx
push ebx
lea ecx, [ebp - 0xfc4]
push ecx
push 0x401ae4
push ecx
push 0x401ac4
push esi
call dword [eax]
test eax, eax
je 0x404b7c
mov eax, dword [0x410ab0]
or eax, 0x8000
mov dword [0x410ab0], eax
test eax, 0x4000
jne 0x404ad2
mov eax, dword [esi]
push ebx
lea ecx, [ebp - 0xfe4]
push ecx
push 0x401a84
push ebx
push 0x401ab4
lea ecx, [ebp - 0xf90]
push ecx
push 0x401aa4
push esi
call dword [eax]
test eax, eax
je 0x404b7c
mov eax, dword [esi]
push ebx
lea ecx, [ebp - 0xfd4]
push ecx
push 0x401a84
push ebx
push 0x401ab4
lea ecx, [ebp - 0x1014]
push ecx
push 0x401aa4
push esi
call dword [eax]
test eax, eax
je 0x404b7c
or dword [0x410ab0], 0x4000
mov eax, dword [ebp - 0xf78]
test eax, eax
jne 0x404b15
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [0x410a98], eax
mov dword [0x410ab4], esi
push 0x104
push 0x4102c8
push ebx
call dword [0x410adc]
push 0x104
push str._unknown_
push ebx
call dword [0x410ad0]
mov eax, dword [ebp - 0xf78]
mov dword [ebp - 0xf70], 1
test eax, eax
jne 0x404b7c
mov eax, dword [esi]
push ebx
lea ecx, [ebp - 0xf7c]
push ecx
push 0x401a94
push esi
call dword [eax + 8]
test eax, eax
jne 0x404b7c
mov eax, dword [ebp + 4]
mov dword [ebp - 0xf6c], eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push dword [ebp - 0xf6c]
push 0x4017b4
push ecx
push 0x595
push ebx
push ecx
push 0x4019f0
push 0x67000000
call fcn.00403765
pop ecx
pop ecx
mov edx, 0x90000
mov ecx, eax
call fcn.00404ebc
mov dword [ebp - 4], 0xfffffffe
call fcn.00404bf7
mov eax, dword [0x410ab4]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x20]
xor ecx, ebp
call fcn.0040bf76
mov esp, ebp
pop ebp
ret 4
call fcn.004067d1
push ecx
mov ecx, dword [ebp - 0xf68]
call fcn.004082b9
mov esi, eax
mov dword [ebp - 0xf68], esi
test esi, esi
jne 0x4045e6
dec dword [0x410aac]
push edi
call dword [0x410abc]
push edi
call dword [0x410ac4]
jmp 0x40455d