Function at 0x412dc7
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
push 0x64
push 0x422c10
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x4a92a8
push 0x422c10
call fcn.0041a84c
add esp, 8
push 1
push 0x3000
call fcn.0041addb
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x412e2c
push 5
call fcn.004054a2
add esp, 4
push 0x2002019
call fcn.00405434
add esp, 4
mov eax, 0xffffffff
jmp 0x4134bd
push 0x422ce8
mov eax, dword [ebp - 8]
push eax
push 0x422c10
call fcn.004134c2
add esp, 0xc
cmp eax, 0xffffffff
jne 0x412e6e
push 0x2002019
call fcn.00405434
add esp, 4
mov eax, dword [ebp - 8]
push eax
call fcn.0041a905
add esp, 4
mov eax, 0xffffffff
jmp 0x4134bd
push 0x422c74
mov ax, word [0x422ce8]
push eax
mov eax, dword [ebp - 8]
push eax
push str._386Enh_
call fcn.00410fe5
add esp, 0x10
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x412ec8
push 0x80002
call fcn.004054a2
add esp, 4
push 0x2002019
call fcn.00405434
add esp, 4
mov eax, dword [ebp - 8]
push eax
call fcn.0041a905
add esp, 4
mov eax, 0xffffffff
jmp 0x4134bd
push 0x422c76
xor eax, eax
mov ax, word [0x422ce8]
xor ecx, ecx
mov cx, word [0x422c74]
sub eax, ecx
push eax
mov eax, dword [ebp - 0x10]
push eax
push str.hasp.386
call fcn.00410fe5
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x412f11
mov eax, dword [ebp + 8]
mov dword [eax + 0x118], 1
jmp 0x412f36
mov eax, dword [ebp + 8]
mov dword [eax + 0x118], 0
mov eax, dword [ebp - 8]
push eax
call fcn.0041a905
add esp, 4
call fcn.004054db
xor eax, eax
jmp 0x4134bd
push 0x422c74
mov ax, word [0x422ce8]
push eax
mov eax, dword [ebp - 8]
push eax
push 0x4a92cc
call fcn.00410fe5
add esp, 0x10
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x412f80
push 0x422c74
mov ax, word [0x422ce8]
push eax
mov eax, dword [ebp - 8]
push eax
push str._haspdd_
call fcn.00410fe5
add esp, 0x10
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x412fdf
push 0x4a92e0
mov eax, dword [ebp + 8]
push eax
call fcn.0041a850
add esp, 8
push 0x4a92e8
mov eax, dword [ebp + 8]
add eax, 0x80
push eax
call fcn.0041a850
add esp, 8
push 0x4a92f0
mov eax, dword [ebp + 8]
add eax, 0x98
push eax
call fcn.0041a850
add esp, 8
mov eax, dword [ebp - 8]
push eax
call fcn.0041a905
add esp, 4
call fcn.004054db
xor eax, eax
jmp 0x4134bd
push 0x422db0
xor eax, eax
mov ax, word [0x422ce8]
xor ecx, ecx
mov cx, word [0x422c74]
sub eax, ecx
push eax
mov eax, dword [ebp - 0x10]
inc eax
push eax
push 0x4a92f8
call fcn.00410fe5
add esp, 0x10
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x413026
mov ax, word [0x422db0]
mov word [ebp - 4], ax
jmp 0x41303d
xor eax, eax
mov ax, word [0x422ce8]
xor ecx, ecx
mov cx, word [0x422c74]
sub eax, ecx
mov word [ebp - 4], ax
push 0x422c76
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4a92fc
call fcn.00410fe5
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x413100
mov word [ebp - 0xc], 0
push 0x4a9304
call fcn.0041a7d8
add esp, 4
mov ecx, dword [ebp - 0xc]
and ecx, 0xffff
add eax, ecx
mov ecx, dword [ebp - 0x14]
mov al, byte [eax + ecx + 1]
mov ecx, dword [ebp - 0xc]
and ecx, 0xffff
mov edx, dword [ebp + 8]
mov byte [ecx + edx], al
inc word [ebp - 0xc]
mov eax, dword [ebp - 0xc]
and eax, 0xffff
mov ecx, dword [ebp + 8]
movsx eax, byte [eax + ecx - 1]
movsx ecx, byte [0x4a8d70]
cmp eax, ecx
je 0x4130eb
push str.Version
call fcn.0041a7d8
add esp, 4
mov ecx, dword [ebp - 0xc]
and ecx, 0xffff
add eax, ecx
add eax, dword [ebp - 0x14]
inc eax
xor ecx, ecx
mov cx, word [0x422ce8]
add ecx, dword [ebp - 8]
cmp eax, ecx
jbe 0x41306a
mov eax, dword [ebp - 0xc]
and eax, 0xffff
mov ecx, dword [ebp + 8]
mov byte [eax + ecx - 1], 0
jmp 0x413111
push 0x4a9314
mov eax, dword [ebp + 8]
push eax
call fcn.0041a850
add esp, 8
push 0x422c76
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4a931c
call fcn.00410fe5
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x4131d8
mov word [ebp - 0xc], 0
push 0x4a9324
call fcn.0041a7d8
add esp, 4
mov ecx, dword [ebp - 0xc]
and ecx, 0xffff
add eax, ecx
mov ecx, dword [ebp - 0x14]
mov al, byte [eax + ecx + 1]
mov ecx, dword [ebp - 0xc]
and ecx, 0xffff
mov edx, dword [ebp + 8]
mov byte [ecx + edx + 0x80], al
inc word [ebp - 0xc]
mov eax, dword [ebp - 0xc]
and eax, 0xffff
mov ecx, dword [ebp + 8]
movsx eax, byte [eax + ecx + 0x7f]
movsx ecx, byte [0x4a8d70]
cmp eax, ecx
je 0x4131c3
push str.Date
call fcn.0041a7d8
add esp, 4
mov ecx, dword [ebp - 0xc]
and ecx, 0xffff
add eax, ecx
add eax, dword [ebp - 0x14]
inc eax
xor ecx, ecx
mov cx, word [0x422ce8]
add ecx, dword [ebp - 8]
cmp eax, ecx
jbe 0x41313e
mov eax, dword [ebp - 0xc]
and eax, 0xffff
mov ecx, dword [ebp + 8]
mov byte [eax + ecx + 0x7f], 0
jmp 0x4131ee
push 0x4a9334
mov eax, dword [ebp + 8]
add eax, 0x80
push eax
call fcn.0041a850
add esp, 8
push 0x422c76
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4a933c
call fcn.00410fe5
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x4132bb
mov word [ebp - 0xc], 0
push 0x4a934c
call fcn.0041a7d8
add esp, 4
mov ecx, dword [ebp - 0xc]
and ecx, 0xffff
add eax, ecx
mov ecx, dword [ebp - 0x14]
mov al, byte [eax + ecx + 1]
mov ecx, dword [ebp - 0xc]
and ecx, 0xffff
mov edx, dword [ebp + 8]
mov byte [ecx + edx + 0x98], al
inc word [ebp - 0xc]
mov eax, dword [ebp - 0xc]
and eax, 0xffff
mov ecx, dword [ebp + 8]
movsx eax, byte [eax + ecx + 0x97]
movsx ecx, byte [0x4a8d70]
cmp eax, ecx
je 0x4132a3
push 0x4a935c
call fcn.0041a7d8
add esp, 4
mov ecx, dword [ebp - 0xc]
and ecx, 0xffff
add eax, ecx
add eax, dword [ebp - 0x14]
inc eax
xor ecx, ecx
mov cx, word [0x422ce8]
add ecx, dword [ebp - 8]
cmp eax, ecx
jbe 0x41321b
mov eax, dword [ebp - 0xc]
and eax, 0xffff
mov ecx, dword [ebp + 8]
mov byte [eax + ecx + 0x97], 0
jmp 0x4132d1
push str.Unknown
mov eax, dword [ebp + 8]
add eax, 0x98
push eax
call fcn.0041a850
add esp, 8
push 0x422c76
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4a9374
call fcn.00410fe5
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x413382
push 0x4a9384
call fcn.0041a7d8
add esp, 4
mov ecx, dword [ebp - 0x14]
mov al, byte [ecx + eax + 1]
mov byte [0x422cea], al
mov byte [0x422ceb], 0
push 0x4a9394
push 0x422cea
call fcn.0041b7f8
add esp, 8
test eax, eax
jne 0x413344
mov eax, dword [ebp + 8]
mov dword [eax + 0x94], 1
jmp 0x41337d
push 0x4a9398
push 0x422cea
call fcn.0041b7f8
add esp, 8
test eax, eax
jne 0x413370
mov eax, dword [ebp + 8]
mov dword [eax + 0x94], 2
jmp 0x41337d
mov eax, dword [ebp + 8]
mov dword [eax + 0x94], 0xffffffff
jmp 0x41338f
mov eax, dword [ebp + 8]
mov dword [eax + 0x94], 0xffffffff
push 0x422c76
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4a939c
call fcn.00410fe5
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x413498
push 0x4a93a8
call fcn.0041a7d8
add esp, 4
mov ecx, dword [ebp - 0x14]
mov al, byte [ecx + eax + 1]
mov byte [0x422cea], al
mov byte [0x422ceb], 0
push str.NEBA
push 0x422cea
call fcn.0041b7f8
add esp, 8
test eax, eax
jne 0x413402
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a0], 1
jmp 0x413493
push 0x4a93b8
push 0x422cea
call fcn.0041b7f8
add esp, 8
test eax, eax
jne 0x41342e
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a0], 2
jmp 0x413493
push 0x4a93bc
push 0x422cea
call fcn.0041b7f8
add esp, 8
test eax, eax
jne 0x41345a
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a0], 4
jmp 0x413493
push 0x4a93c0
push 0x422cea
call fcn.0041b7f8
add esp, 8
test eax, eax
jne 0x413486
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a0], 8
jmp 0x413493
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a0], 0xffffffff
jmp 0x4134a5
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a0], 0xffffffff
mov eax, dword [ebp - 8]
push eax
call fcn.0041a905
add esp, 4
call fcn.004054db
xor eax, eax
jmp 0x4134bd
pop edi
pop esi
pop ebx
leave
ret