Function at 0x817688
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x2b
push 0
push 0
dec ecx
jne 0x817691
push ecx
xchg dword [ebp - 4], ecx
push ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov byte [ebp - 1], al
mov eax, dword [ebp - 8]
call fcn.0040573c
xor eax, eax
push ebp
push 0x817a89
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xd], 0
lea eax, [ebp - 0x28]
mov edx, 0x817aa4
call fcn.00405324
lea eax, [ebp - 0x20]
mov edx, 0x817ab4
call fcn.00405324
lea eax, [ebp - 0x14]
push eax
mov eax, dword [0x891d98]
call fcn.0040554c
mov ecx, eax
mov edx, 2
mov eax, dword [0x891d98]
call fcn.004057ac
mov edx, dword [ebp - 8]
mov eax, 0x817ac8
call fcn.00405890
test eax, eax
jle 0x817717
lea eax, [ebp - 0x28]
mov edx, 0x817adc
call fcn.00405324
mov edx, dword [ebp - 8]
mov eax, 0x817ae8
call fcn.00405890
test eax, eax
jle 0x817735
lea eax, [ebp - 0x28]
mov edx, 0x817afc
call fcn.00405324
mov edx, dword [ebp - 8]
mov eax, 0x817b0c
call fcn.00405890
test eax, eax
jle 0x817753
lea eax, [ebp - 0x28]
mov edx, 0x817b20
call fcn.00405324
mov edx, dword [ebp - 8]
mov eax, 0x817b30
call fcn.00405890
test eax, eax
jle 0x81778d
lea eax, [ebp - 0x24]
mov edx, 0x817b44
call fcn.00405324
mov edx, dword [ebp - 0x24]
mov eax, dword [0x1439ba8]
call fcn.00429c90
test al, al
je 0x81778d
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x24]
call fcn.00405324
lea edx, [ebp - 0x18]
mov eax, dword [ebp + 0xc]
call fcn.0060d694
mov edx, dword [ebp - 0x18]
mov eax, 0x817b5c
call fcn.00405890
test eax, eax
jle 0x81781f
lea eax, [ebp - 0x24]
mov edx, 0x817b68
call fcn.00405324
mov edx, dword [ebp - 0x24]
mov eax, dword [0x1439ba8]
call fcn.00429c90
test al, al
je 0x81781f
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x24]
call fcn.00405324
imul eax, dword [ebp + 0xc], 0x651
mov edx, dword [0x892c34]
cmp byte [edx + eax*2], 0
jne 0x81781f
mov eax, dword [0x8932ac]
mov edx, dword [ebp + 0xc]
cmp dword [eax + edx*4], 0x88b8
jge 0x81781f
lea eax, [ebp - 0x24]
mov edx, 0x817b7c
call fcn.00405324
mov edx, dword [ebp - 0x24]
mov eax, dword [0x1439ba8]
call fcn.00429c90
test al, al
je 0x81781f
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x24]
call fcn.00405324
push 0x104
lea eax, [ebp - 0x131]
push eax
call sub.kernel32.dll_GetWindowsDirectoryA
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x131]
call fcn.0040b6bc
lea edx, [ebp - 0x138]
mov eax, dword [ebp - 0x18]
call fcn.0040a048
mov eax, dword [ebp - 0x138]
push eax
mov al, byte [ebp - 1]
call fcn.00402cd8
mov edx, eax
lea eax, [ebp - 0x140]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x140]
lea eax, [ebp - 0x144]
call fcn.004032c4
mov edx, 0x817b88
lea eax, [ebp - 0x144]
mov cl, 2
call fcn.00403294
lea edx, [ebp - 0x144]
lea eax, [ebp - 0x13c]
call fcn.004054f0
mov eax, dword [ebp - 0x13c]
pop edx
call fcn.00405890
dec eax
jne 0x8178d5
lea eax, [ebp - 0x24]
mov edx, 0x817b94
call fcn.00405324
mov edx, dword [ebp - 0x24]
mov eax, dword [0x1439ba8]
call fcn.00429c90
test al, al
je 0x8178d5
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x24]
call fcn.00405324
push 0x817ba8
lea eax, [ebp - 0x148]
push eax
mov ecx, 0x817bb4
mov edx, dword [ebp - 0x20]
mov eax, dword [0x1439ba8]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0x148]
lea edx, [ebp - 0x2c]
call fcn.0040a048
mov eax, dword [ebp - 0x2c]
mov edx, 0x817ba8
call fcn.00405698
jne 0x8179d9
cmp byte [ebp + 8], 0
je 0x817928
lea eax, [ebp - 0x1c]
mov edx, 0x817bc4
call fcn.00405324
jmp 0x817938
lea ecx, [ebp - 0x1c]
mov edx, 2
mov eax, dword [ebp - 0xc]
call fcn.004c1708
push 0
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14c]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x28]
call fcn.00405598
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ebp - 0x20]
mov eax, dword [0x1439ba8]
mov ebx, dword [eax]
call dword [ebx]
cmp dword [ebp - 0x18], 0
jne 0x8179aa
mov eax, dword [ebp - 0x1c]
call fcn.0040554c
cmp eax, 2
jne 0x8179aa
lea eax, [ebp - 0x1c]
mov edx, 0x817bc4
call fcn.00405324
push 0
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x150]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x28]
call fcn.00405598
mov ecx, dword [ebp - 0x150]
mov edx, dword [ebp - 0x20]
mov eax, dword [0x1439ba8]
mov ebx, dword [eax]
call dword [ebx]
cmp dword [ebp - 0x18], 0
je 0x817a46
lea ecx, [ebp - 0x154]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
call fcn.004bdd94
mov edx, dword [ebp - 0x154]
mov al, byte [ebp - 1]
call fcn.00639824
mov byte [ebp - 0xd], 1
jmp 0x817a46
push 0
lea eax, [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x20]
mov eax, dword [0x1439ba8]
mov ebx, dword [eax]
call dword [ebx]
cmp dword [ebp - 0x18], 0
je 0x817a46
lea ecx, [ebp - 0x15c]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
call fcn.004bdd94
push dword [ebp - 0x15c]
push 0x817bd4
lea edx, [ebp - 0x160]
mov eax, dword [ebp - 0xc]
call fcn.0040a78c
push dword [ebp - 0x160]
lea eax, [ebp - 0x158]
mov edx, 3
call fcn.0040560c
mov edx, dword [ebp - 0x158]
mov al, byte [ebp - 1]
call fcn.00639824
mov byte [ebp - 0xd], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x817a90
lea eax, [ebp - 0x160]
mov edx, 7
call fcn.004052b0
lea eax, [ebp - 0x13c]
mov edx, 2
call fcn.004052b0
lea eax, [ebp - 0x2c]
mov edx, 7
call fcn.004052b0
lea eax, [ebp - 8]
call fcn.0040528c
ret