Function at 0x415420
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5495a6
mov eax, dword fs:[0]
push eax
sub esp, 0xd74
mov eax, dword [0x5a83f8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xd44], ecx
xor eax, eax
mov word [ebp - 0x210], ax
push 0x1fe
push 0
lea ecx, [ebp - 0x20e]
push ecx
call fcn.004efc10
add esp, 0xc
push 0xff
lea edx, [ebp - 0x210]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea eax, [ebp - 0x210]
push eax
lea ecx, [ebp - 0xa40]
call fcn.00403f40
mov dword [ebp - 4], 0
lea ecx, [ebp - 0xd80]
call fcn.004180d0
mov byte [ebp - 4], 1
push 0x59d9f0
lea ecx, [ebp - 0xa70]
call fcn.00403f40
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xa70]
push ecx
lea edx, [ebp - 0xd80]
push edx
lea eax, [ebp - 0xa40]
push eax
call fcn.004037e0
add esp, 0xc
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xa70]
call fcn.00401c90
push 0x59d9f4
push 0
lea ecx, [ebp - 0xd80]
call fcn.00418050
push eax
lea ecx, [ebp - 0xb18]
push ecx
call fcn.004065e0
add esp, 0xc
mov dword [ebp - 0xd48], eax
mov edx, dword [ebp - 0xd48]
push edx
lea ecx, [ebp - 0xa40]
call fcn.00403d60
lea ecx, [ebp - 0xb18]
call fcn.00401c90
push 0x59da20
lea ecx, [ebp - 0xa40]
call fcn.00405910
push 0x59da3c
mov ecx, dword [ebp - 0xd44]
add ecx, 0x50
call fcn.004721d0
mov dword [ebp - 0xd30], eax
push 0xffffffffffffffff
lea ecx, [ebp - 0xa40]
call fcn.00401be0
push eax
lea ecx, [ebp - 0xb9c]
call fcn.00480f00
mov byte [ebp - 4], 3
lea eax, [ebp - 0xb9c]
push eax
mov ecx, dword [ebp - 0xd30]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xd30]
mov eax, dword [edx + 0x3c]
call eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xb9c]
call fcn.00481030
push 0xffffffffffffffff
lea ecx, [ebp - 0xa40]
call fcn.00401be0
push eax
lea ecx, [ebp - 0xc20]
call fcn.00480f00
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xc20]
push ecx
mov edx, dword [ebp - 0xd30]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xd30]
mov edx, dword [eax + 0xb0]
call edx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xc20]
call fcn.00481030
lea ecx, [ebp - 0xd29]
call fcn.00402050
mov byte [ebp - 4], 5
push 0x59da50
lea ecx, [ebp - 0xa88]
call fcn.00403f40
mov byte [ebp - 4], 6
push 1
lea eax, [ebp - 0xa88]
push eax
lea ecx, [ebp - 0xd29]
call fcn.00405780
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xa88]
call fcn.00401c90
lea ecx, [ebp - 0xa28]
call fcn.00401ce0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xa58]
call fcn.00401ce0
mov byte [ebp - 4], 8
mov dword [ebp - 0xd4c], 1
push 0x59da74
lea ecx, [ebp - 0xab8]
call fcn.00403f40
mov byte [ebp - 4], 9
push 0x59da98
lea ecx, [ebp - 0xaa0]
call fcn.00403f40
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0xa28]
push ecx
lea edx, [ebp - 0xd4c]
push edx
lea eax, [ebp - 0xab8]
push eax
lea ecx, [ebp - 0xaa0]
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00405f90
add esp, 0x14
mov byte [ebp - 0xd31], al
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xaa0]
call fcn.00401c90
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xab8]
call fcn.00401c90
movzx edx, byte [ebp - 0xd31]
test edx, edx
je 0x4158fd
lea ecx, [ebp - 0xd74]
call fcn.004180d0
mov byte [ebp - 4], 0xb
push 0x59db10
lea ecx, [ebp - 0xad0]
call fcn.00403f40
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0xad0]
push eax
lea ecx, [ebp - 0xd74]
push ecx
lea edx, [ebp - 0xa28]
push edx
call fcn.004037e0
add esp, 0xc
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xad0]
call fcn.00401c90
lea ecx, [ebp - 0xd74]
call fcn.00404de0
cmp eax, 1
jbe 0x415751
push 1
lea ecx, [ebp - 0xd74]
call fcn.00418050
push eax
lea ecx, [ebp - 0xa28]
call fcn.00401c20
lea ecx, [ebp - 0xd68]
call fcn.004180d0
mov byte [ebp - 4], 0xd
push 0x59da94
lea ecx, [ebp - 0xae8]
call fcn.00403f40
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0xae8]
push eax
lea ecx, [ebp - 0xd68]
push ecx
lea edx, [ebp - 0xa28]
push edx
call fcn.004037e0
add esp, 0xc
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xae8]
call fcn.00401c90
lea ecx, [ebp - 0xd68]
call fcn.00404de0
sub eax, 1
push eax
lea ecx, [ebp - 0xd68]
call fcn.00418050
push eax
lea ecx, [ebp - 0xb00]
call fcn.00404020
mov byte [ebp - 4], 0xf
xor eax, eax
mov word [ebp - 0xa10], ax
push 0x7fe
push 0
lea ecx, [ebp - 0xa0e]
push ecx
call fcn.004efc10
add esp, 0xc
lea ecx, [ebp - 0xa28]
call fcn.00401be0
mov dword [ebp - 0xd38], eax
mov edx, dword [ebp - 0xd38]
add edx, 2
mov dword [ebp - 0xd50], edx
mov eax, dword [ebp - 0xd38]
mov cx, word [eax]
mov word [ebp - 0xd3e], cx
add dword [ebp - 0xd38], 2
cmp word [ebp - 0xd3e], 0
jne 0x415809
mov edx, dword [ebp - 0xd38]
sub edx, dword [ebp - 0xd50]
sar edx, 1
mov dword [ebp - 0xd58], edx
lea ecx, [ebp - 0xb00]
call fcn.00401be0
mov dword [ebp - 0xd3c], eax
mov eax, dword [ebp - 0xd3c]
add eax, 2
mov dword [ebp - 0xd54], eax
mov ecx, dword [ebp - 0xd3c]
mov dx, word [ecx]
mov word [ebp - 0xd40], dx
add dword [ebp - 0xd3c], 2
cmp word [ebp - 0xd40], 0
jne 0x41585e
mov eax, dword [ebp - 0xd3c]
sub eax, dword [ebp - 0xd54]
sar eax, 1
mov dword [ebp - 0xd5c], eax
mov ecx, dword [ebp - 0xd58]
sub ecx, dword [ebp - 0xd5c]
sub ecx, 1
push ecx
lea ecx, [ebp - 0xa28]
call fcn.00401be0
push eax
lea edx, [ebp - 0xa10]
push edx
call fcn.004fcb5f
add esp, 0xc
lea eax, [ebp - 0xa10]
push eax
lea ecx, [ebp - 0xa58]
call fcn.00406480
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xb00]
call fcn.00401c90
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xd68]
call fcn.00418090
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xd74]
call fcn.00418090
push 0x59db18
lea ecx, [ebp - 0xa58]
push ecx
call fcn.00418320
add esp, 8
movzx edx, al
test edx, edx
je 0x4159ab
push 0xffffffffffffffff
lea ecx, [ebp - 0xa58]
call fcn.00401be0
push eax
lea ecx, [ebp - 0xca4]
call fcn.00480f00
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0xca4]
push eax
mov ecx, dword [ebp - 0xd30]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xd30]
mov eax, dword [edx + 0x3c]
call eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xca4]
call fcn.00481030
push 0xffffffffffffffff
lea ecx, [ebp - 0xa58]
call fcn.00401be0
push eax
lea ecx, [ebp - 0xd28]
call fcn.00480f00
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0xd28]
push ecx
mov edx, dword [ebp - 0xd30]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xd30]
mov edx, dword [eax + 0xb0]
call edx
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xd28]
call fcn.00481030
movzx eax, byte [0x5aac7c]
test eax, eax
je 0x4159c5
push 1
push 0
mov ecx, dword [ebp - 0xd44]
call fcn.0047bb50
mov ecx, dword [ebp - 0xd44]
call fcn.004167b0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xa58]
call fcn.00401c90
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xa28]
call fcn.00401c90
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xd29]
call fcn.004013c0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xd80]
call fcn.00418090
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa40]
call fcn.00401c90
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0046ec22
mov esp, ebp
pop ebp
ret 8