Function at 0x402afc
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff4c
mov dword [ebp - 4], 0x3b
mov eax, dword [0x7f3684]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_GetCurrentDirectoryW
test eax, eax
jne 0x402b3f
sub dword [0x7e20c2], edx
mov dword [0x7e2029], edi
mov dword [0x7e20cd], ebx
mov dword [esp - 8], ecx
mov dword [esp - 0x18], eax
call fcn.004014e4
mov byte [ebp - 0xb1], 0
mov dword [ebp - 0xc], 0x19878
mov byte [ebp - 0xd], 0x58
mov al, byte [ebp - 0xd]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_IsDBCSLeadByteEx
mov word [0x7e2089], 0xe84
mov word [0x7e209f], 0x1823
lea esi, [0x7e20ae]
add dword [esi + 0x10], 1
inc byte [ebp - 0xb1]
cmp byte [ebp - 0xb1], 1
jne 0x402b4b
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_ConvertDefaultLocale
test eax, eax
jne 0x402bb7
mov word [0x7e2016], 0x38d8
lea edi, [0x7e2035]
mov dword [edi + 8], 0x9d
mov dword [0x7e2029], ecx
call fcn.00402198
dec edi
mov dword [0x7e20a7], esi
mov dword [0x7e20f5], edx
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_ConvertDefaultLocale
test eax, eax
jne 0x402c0f
mov dword [0x7e2109], edi
cmp word [0x7e20d4], 0
jge 0x402beb
add edx, 0x2c
jmp 0x402bf5
mov dword [0x7e2017], 0x159c0
mov dword [0x7e20a3], ecx
mov dword [0x7e2011], 0x17177
mov dword [0x7e20bb], 0x126d4
call fcn.00402198
mov dword [0x7e20ce], esi
mov byte [0x7e2031], 0x56
and ebx, 0xe0
mov dword [0x7e210a], ecx
mov dword [ebp - 0x1c], 0x1030a
mov byte [ebp - 0x1d], 0x72
mov al, byte [ebp - 0x1d]
push eax
mov eax, dword [ebp - 0x1c]
push eax
call sub.kernel32.dll_IsDBCSLeadByteEx
test eax, eax
jne 0x402c56
inc esi
and dword [0x7e2048], ebx
mov dword [0x7e2103], ecx
call fcn.00401ea0
call fcn.004014e4
mov dword [ebp - 0x24], 0x2f
mov eax, dword [0x7f3684]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x24]
push eax
call sub.kernel32.dll_GetCurrentDirectoryW
test eax, eax
jne 0x402c92
mov byte [0x7e20ed], 0x7b
xchg dword [0x7e2087], edi
mov ecx, 0x30
mov dword [0x7e2065], 0x17920
mov word [0x7e2014], 0x4b79
mov dword [0x7e2026], eax
mov word [0x7e2072], 0x2163
mov byte [0x7e2012], 0x75
cmp dword [0x7e2098], 0
jge 0x402cd9
mov byte [0x7e20ac], 0x50
mov ebx, dword [esp + 0x18]
mov dword [0x7e20a6], 0x10f82
mov dword [0x7e20bc], esi
mov dword [0x7e2028], ebx
and eax, dword [0x7e208a]
mov dword [0x7e203a], edx
mov word [0x7e205d], 0x6c2b
mov dword [0x7e20b9], edi
mov dword [ebp - 0x2c], 0x3f
mov eax, dword [0x7f3684]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x2c]
push eax
call sub.kernel32.dll_GetCurrentDirectoryW
test eax, eax
je 0x402d39
mov byte [0x7e2011], 0xb2
add dword [0x7e20eb], edx
mov dword [esp - 0x24], esi
sub edi, eax
mov dword [0x7e20a4], ebx
mov word [0x7e20e5], 0xa56b
mov word [0x7e2051], 0xe67f
mov dword [esp - 0x20], eax
cmp edi, 0xffffffff
je 0x402d66
mov dword [0x7e2063], 0x149dd
inc dword [0x7e206b]
jmp 0x402d6c
mov dword [0x7e20a8], ebx
mov ecx, 0x7e206e
push edx
mov eax, 0x7e20ca
call fcn.004014e4
mov ebx, 0x44
mov dword [0x7e2013], 0x11422
xchg dword [0x7e20d1], eax
lea ecx, [0x7e204d]
mov dword [ecx + 0x1c], eax
push esi
call fcn.004014e4
sub dword [0x7e208a], esi
mov dword [0x7e20f5], eax
mov dword [0x7e20df], 0x1306d
mov ecx, 0x1c1
mov dword [0x7e20bc], esi
mov dword [ebp - 0x34], 0x1cb15
mov dword [ebp - 0x38], 0x13936
mov eax, 0x4032fc
mov dword [ebp - 0x3c], eax
mov eax, 0x403320
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x34]
push eax
call sub.user32.dll_FindWindowExA
test eax, eax
jne 0x402e18
mov dword [0x7e203b], 0x104a5
mov dword [esp - 0x28], edi
mov dword [0x7e202d], eax
mov dword [0x7e2096], edx
and dword [0x7e20e0], esi
mov byte [ebp - 0xb1], 0
mov dword [0x7e20c2], eax
lea ecx, [0x7e2053]
add dword [ecx + 0x24], 0x79
mov dword [0x7e203c], esi
mov edx, eax
mov dword [esp - 8], ebx
mov dword [ebp - 0x44], 0xd
mov eax, dword [0x7f3684]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x44]
push eax
call sub.kernel32.dll_GetCurrentDirectoryW
test eax, eax
jne 0x402e6f
mov dword [0x7e20cb], eax
dec edx
xchg dword [0x7e2086], esi
mov byte [0x7e201a], 0xd7
inc byte [ebp - 0xb1]
cmp byte [ebp - 0xb1], 3
jne 0x402e1f
mov dword [0x7e2023], 0x11d59
mov dword [0x7e20a2], edx
xchg dword [0x7e20e7], eax
mov eax, dword [ebp - 0x4c]
push eax
call sub.kernel32.dll_ConvertDefaultLocale
test eax, eax
jne 0x402ecb
test ebx, ebx
jne 0x402eb3
and dword [0x7e2025], esi
mov dword [0x7e2040], ecx
jmp 0x402ebf
mov dword [0x7e20d8], ebx
dec dword [0x7e20e0]
mov dword [0x7e206f], esi
add dword [0x7e20ae], ebx
mov dword [ebp - 0x50], 0x1380b
mov dword [ebp - 0x54], 0x1a548
mov eax, 0x40333c
mov dword [ebp - 0x58], eax
mov eax, 0x403348
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
push eax
mov eax, dword [ebp - 0x58]
push eax
mov eax, dword [ebp - 0x54]
push eax
mov eax, dword [ebp - 0x50]
push eax
call sub.user32.dll_FindWindowExA
test eax, eax
jne 0x402f16
mov edi, edx
and dword [0x7e20d5], ecx
mov dword [0x7e205b], 0x10a37
sub edi, ebx
mov dword [esp - 0x18], esi
mov edx, 0x121
mov dword [0x7e2074], ebx
mov dword [ebp - 0x60], 0x104d2
mov byte [ebp - 0x61], 0xbf
mov al, byte [ebp - 0x61]
push eax
mov eax, dword [ebp - 0x60]
push eax
call sub.kernel32.dll_IsDBCSLeadByteEx
mov ecx, 0x170
mov dword [0x7e20a6], edi
cmp edx, 0xffffffff
je 0x402f60
mov dword [0x7e2018], ebx
mov byte [0x7e207e], 0x8d
and dword [0x7e20c5], eax
and ecx, dword [0x7e20a2]
xchg dword [0x7e20a1], eax
mov dword [0x7e20d9], 0x162c5
mov dword [0x7e2096], ebx
and dword [0x7e2013], esi
mov ebx, 0x10e
mov dword [0x7e2059], 0x15a09
mov dword [0x7e2097], 0x123d9
mov dword [ebp - 0x68], 0x2e
mov eax, dword [0x7f3684]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x68]
push eax
call sub.kernel32.dll_GetCurrentDirectoryW
test eax, eax
jne 0x402fd3
xchg dword [0x7e20b2], eax
mov dword [0x7e205f], esi
xchg dword [0x7e206c], eax
mov dword [0x7e20d4], ebx
call fcn.00401ea0
mov dword [ebp - 0x70], 0x1e9bf
mov byte [ebp - 0x71], 0xa0
mov al, byte [ebp - 0x71]
push eax
mov eax, dword [ebp - 0x70]
push eax
call sub.kernel32.dll_IsDBCSLeadByteEx
test eax, eax
jne 0x403013
xchg dword [0x7e20fe], edi
mov word [0x7e203e], 0xbabe
mov dword [0x7e209e], 0x15198
mov dword [0x7e2059], edx
mov ebx, 0x44
mov dword [0x7e2013], 0x11422
xchg dword [0x7e20d1], eax
lea ecx, [0x7e204d]
mov dword [ecx + 0x1c], eax
mov ebx, 0x44
mov dword [0x7e2013], 0x11422
xchg dword [0x7e20d1], eax
lea ecx, [0x7e204d]
mov dword [ecx + 0x1c], eax
push ecx
push ebx
call fcn.004014e4
mov dword [ebp - 0x78], 0x1f65b
mov dword [ebp - 0x7c], 0x1efc5
mov eax, dword [ebp - 0x7c]
push eax
mov eax, dword [ebp - 0x78]
push eax
call sub.advapi32.dll_AreAllAccessesGranted
test eax, eax
jne 0x40309e
mov dword [0x7e20c7], esi
cmp dword [ebp + 8], edx
jge 0x40308e
and dword [0x7e20b5], eax
mov dword [0x7e20ac], edi
jmp 0x40309a
mov dword [0x7e2017], ebx
mov dword [0x7e20fb], edx
mov dword [esp - 0x1c], ebx
mov byte [0x7e2014], 0xba
mov dword [0x7e206e], 0x159a2
mov dword [0x7e2101], edx
mov dword [0x7e2068], 0x12cf7
mov dword [ebp - 0x80], 0x1354a
mov byte [ebp - 0x81], 0x59
mov al, byte [ebp - 0x81]
push eax
mov eax, dword [ebp - 0x80]
push eax
call sub.kernel32.dll_IsDBCSLeadByteEx
test eax, eax
jne 0x4030f5
mov dword [0x7e20ed], 0x136ce
xchg dword [esp - 0x10], edi
mov dword [0x7e2085], edx
call fcn.00401ea0
mov eax, dword [0x7e204b]
add dword [0x7e20b0], ebx
cmp ah, byte [ebp + 0xc]
jle 0x403128
mov dword [0x7e20bb], ecx
mov dword [0x7e203f], 0x12a76
and dword [0x7e2024], edi
mov ecx, 0x38
jmp 0x40313c
lea edi, [0x7e20b3]
mov dword [edi], 0xf3
mov edi, ecx
mov dword [0x7e205e], eax
mov dword [0x7e20ae], ebx
mov dword [ebp - 0x88], 0x15dbc
mov dword [ebp - 0x8c], 0x11f85
mov eax, 0x40335c
mov dword [ebp - 0x90], eax
mov eax, 0x403374
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x94]
push eax
mov eax, dword [ebp - 0x90]
push eax
mov eax, dword [ebp - 0x8c]
push eax
mov eax, dword [ebp - 0x88]
push eax
call sub.user32.dll_FindWindowExA
test eax, eax
je 0x4031a4
mov byte [0x7e2036], 0xb9
mov dword [0x7e20f8], edx
xchg dword [0x7e2103], ecx
mov dword [0x7e20fe], 0x118f9
mov dword [0x7e2050], eax
mov dword [0x7e208c], esi
and edi, 0x41
mov dword [0x7e20f9], esi
mov dword [0x7e20e7], 0x15fa8
mov edi, 0x12a
mov dword [0x7e2019], edx
mov eax, dword [ebp - 0x98]
push eax
call sub.kernel32.dll_ConvertDefaultLocale
test eax, eax
je 0x40320d
mov eax, dword [0x7e208e]
mov dword [0x7e2065], edi
mov word [0x7e2081], 0x7613
mov dword [0x7e2050], 0x14abc
mov dword [0x7e2096], ecx
call fcn.00402198
mov dword [ebp - 0x9c], 0xa
mov eax, dword [0x7f3684]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xa0]
push eax
mov eax, dword [ebp - 0x9c]
push eax
call sub.kernel32.dll_GetCurrentDirectoryW
test eax, eax
jne 0x40324c
mov dword [0x7e2039], esi
mov dword [esp - 0x1c], edx
mov dword [esp - 8], eax
call fcn.00401ea0
call fcn.004014e4
mov eax, 0x7e20ca
call fcn.004014e4
mov dword [ebp - 0xa4], 0x13310
mov dword [ebp - 0xa8], 0x1d874
mov eax, 0x403380
mov dword [ebp - 0xac], eax
mov eax, 0x403398
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0xb0]
push eax
mov eax, dword [ebp - 0xac]
push eax
mov eax, dword [ebp - 0xa8]
push eax
mov eax, dword [ebp - 0xa4]
push eax
call sub.user32.dll_FindWindowExA
test eax, eax
jne 0x4032f3
cmp byte [0x7e2061], 0
jge 0x4032c8
mov dword [0x7e2038], edx
mov dword [0x7e20d2], 0x14cd8
mov byte [0x7e2073], 0xdd
mov dword [0x7e2071], 0x1112d
mov byte [0x7e20c4], 0x8c
mov dword [0x7e2101], esi
mov dword [0x7e2047], edx
mov byte [0x7e2010], 0x51
call fcn.00401ea0
mov esp, ebp
pop ebp
ret