Function at 0x447010
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47578b
mov eax, dword fs:[0]
push eax
sub esp, 0x628
mov eax, dword [0x4a4cf0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea eax, [ebp - 0x620]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
mov eax, dword [0x4a920c]
mov edi, 1
add eax, edi
mov dword [0x4a920c], eax
test eax, eax
jle 0x4472be
cmp byte [0x4a91f7], 0
jne 0x4472be
cmp byte [0x4a9210], 0
jne 0x4472be
cmp dword [0x4a9180], 0
mov byte [0x4a91f7], 1
mov dword [0x4a920c], 0
mov byte [0x4a9210], 1
jne 0x447296
call fcn.004164e0
cmp byte [0x4a67c7], 0
jne 0x4470da
push 0xffffffffffffffff
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x624], esp
push str.BgDay
mov byte [0x4a67c7], 1
call fcn.00414af0
mov ecx, dword [0x4a63f8]
call fcn.004018e0
cmp byte [0x4a9185], 0
jne 0x447154
push 0xffffffffffffffff
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x624], esp
push str.TopDayFrontBgA
mov byte [0x4a9185], 1
call fcn.00414af0
mov ecx, dword [0x4a63f8]
call fcn.004018e0
fild dword [0x49b058]
sub esp, 0x24
mov ecx, esp
fmul qword [0x47afd8]
fsub qword [0x48ce78]
fstp dword [ebp - 0x624]
fld dword [ebp - 0x624]
mov dword [ebp - 0x624], esp
fstp dword [esp + 0x20]
fldz
fstp dword [esp + 0x1c]
push str.TopDayFrontBgA
call fcn.00414af0
mov ecx, dword [0x4a63f8]
call fcn.00401d70
cmp byte [0x4a9187], 0
jne 0x4471fc
push 0xffffffffffffffff
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x624], esp
push str.BottomBgB
mov byte [0x4a9187], 1
call fcn.00414af0
mov ecx, dword [0x4a63f8]
call fcn.004018e0
fild dword [0x49b058]
sub esp, 0x24
mov ecx, esp
fsub qword [0x48ce70]
fstp dword [ebp - 0x624]
fld dword [ebp - 0x624]
mov dword [ebp - 0x624], esp
fstp dword [esp + 0x20]
fldz
fstp dword [esp + 0x1c]
push str.BottomBgB
call fcn.00414af0
mov ecx, dword [0x4a63f8]
call fcn.00401d70
fld1
sub esp, 0x24
fstp dword [esp + 0x20]
fld dword [0x48c2a8]
mov ecx, esp
fstp dword [esp + 0x1c]
mov dword [ebp - 0x624], esp
push str.BottomBgB
call fcn.00414af0
mov ecx, dword [0x4a63f8]
call fcn.00401e50
cmp byte [0x4a9189], 0
jne 0x447296
push 0xffffffffffffffff
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x624], esp
push str.uiGirlIdle
mov byte [0x4a9189], 1
call fcn.00414af0
mov ecx, dword [0x4a63f8]
call fcn.004018e0
fild dword [0x49b058]
sub esp, 0x24
mov ecx, esp
fsub qword [0x48ccf8]
fld qword [0x47afd8]
fmul st(1), st(0)
fxch st(1)
fstp dword [ebp - 0x624]
fld dword [ebp - 0x624]
fstp dword [esp + 0x20]
fild dword [0x49b054]
fsub qword [0x48ccf0]
fmulp st(1)
fstp dword [ebp - 0x624]
fld dword [ebp - 0x624]
mov dword [ebp - 0x624], esp
fstp dword [esp + 0x1c]
push str.uiGirlIdle
call fcn.00414af0
mov ecx, dword [0x4a63f8]
call fcn.00401d70
mov ecx, dword [0x4a6948]
push 0x48c
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
mov edx, dword [0x4a6948]
push 0
push 0x1e
push 0x48c
push edx
call dword [sym.imp.USER32.dll_SetTimer]
cmp byte [0x4a943a], 0
jne 0x447683
cmp byte [0x4a91f7], 0
je 0x447683
cmp byte [0x49c38e], 0
mov esi, dword [ebp - 0x614]
jne 0x44748c
mov eax, dword [0x4a6304]
cmp ax, si
ja 0x447369
mov ecx, dword [0x4a3b24]
mov edx, dword [0x4a9a2c]
cmp ecx, dword [0x4a675c]
jg 0x447325
cmp dword [edx + 0xa4], edi
jne 0x447325
movzx ebx, ax
movzx ecx, si
sub ecx, ebx
add dword [0x4a9294], ecx
add dword [0x4a6460], ecx
mov ecx, dword [0x4a3b20]
cmp ecx, dword [0x4a674c]
jg 0x447350
cmp dword [edx + 0xa4], 0
jne 0x447350
movzx ebx, ax
movzx ecx, si
sub ecx, ebx
add dword [0x4a9298], ecx
add dword [0x4a6464], ecx
movzx eax, ax
movzx ecx, si
sub eax, ecx
add dword [0x4a3bbc], eax
add dword [0x4a3bb8], eax
jmp 0x447413
mov edx, dword [0x4a3b24]
cmp edx, dword [0x4a675c]
mov edx, dword [0x4a9a2c]
jg 0x4473ad
cmp dword [edx + 0xa4], edi
jne 0x4473ad
movzx ebx, ax
movzx ecx, si
sub ecx, ebx
mov ebx, dword [0x4a9294]
lea ebx, [ebx + ecx + 0x3c]
mov dword [0x4a9294], ebx
mov ebx, dword [0x4a6460]
lea ecx, [ebx + ecx + 0x3c]
mov dword [0x4a6460], ecx
mov ecx, dword [0x4a3b20]
cmp ecx, dword [0x4a674c]
jg 0x4473ec
cmp dword [edx + 0xa4], 0
jne 0x4473ec
movzx ebx, ax
movzx ecx, si
sub ecx, ebx
mov ebx, dword [0x4a9298]
lea ebx, [ebx + ecx + 0x3c]
mov dword [0x4a9298], ebx
mov ebx, dword [0x4a6464]
lea ecx, [ebx + ecx + 0x3c]
mov dword [0x4a6464], ecx
movzx eax, ax
movzx ecx, si
sub eax, ecx
mov ecx, dword [0x4a3bbc]
lea ecx, [ecx + eax - 0x3c]
mov dword [0x4a3bbc], ecx
mov ecx, dword [0x4a3bb8]
lea eax, [ecx + eax - 0x3c]
mov dword [0x4a3bb8], eax
cmp dword [0x4a3bbc], 0
mov ebx, 0x168
jg 0x447455
mov eax, dword [0x4a929c]
mov ecx, dword [eax*4 + 0x4a6340]
xor edx, edx
inc eax
mov edi, 0xa
div edi
mov dword [0x4a3bbc], ebx
mov edi, 1
add dword [edx*4 + 0x4a6340], ecx
mov dword [0x4a929c], edx
mov edx, dword [0x4a9a2c]
cmp dword [0x4a3bb8], 0
jg 0x44748c
mov dword [0x4a3bb8], 0xe10
mov dword [0x4a929c], 0
mov dword [0x4a3bbc], ebx
cmp dword [edx + 0xa4], edi
jne 0x447487
call fcn.00409270
jmp 0x44748c
call fcn.004094c0
cmp byte [0x49b051], 0
mov ecx, dword [ebp - 0x620]
mov edx, dword [ebp - 0x61c]
mov eax, dword [ebp - 0x618]
mov dword [0x4a62f8], ecx
mov dword [0x4a62fc], edx
mov dword [0x4a6300], eax
mov dword [0x4a6304], esi
je 0x447683
xor ebx, ebx
cmp dword [0x4a3bd0], ebx
jl 0x4474d7
sub dword [0x4a3bd0], edi
jmp 0x447683
lea ecx, [ebp - 0x634]
push ecx
mov dword [0x4a3bd0], 3
call fcn.00446af0
add esp, 4
lea edx, [ebp - 0x610]
push edx
push 0x100
mov dword [ebp - 4], ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov ecx, dword [ebp - 0x630]
mov esi, dword [ebp - 0x634]
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
xor edi, edi
add eax, edx
je 0x447641
mov dword [ebp - 0x624], ebx
mov eax, dword [ebp - 0x624]
add eax, esi
cmp dword [eax + 0x14], 0x10
jb 0x447544
mov eax, dword [eax]
movsx edx, byte [eax]
push str.BK_Setup.exe
push 0x4903d4
push edx
lea eax, [ebp - 0x410]
push str._c_s_s
push eax
call fcn.00409630
lea ecx, [ebp - 0x410]
push 0x48c09c
push ecx
call fcn.0045cbc7
push edi
mov ebx, eax
call fcn.00446cd0
add esp, 0x20
mov esi, eax
sub eax, 0
je 0x4475b9
dec eax
je 0x4475a6
dec eax
je 0x447593
push str.Drive_not_ready_n
jmp 0x4475be
push str.DVD_tray_closed__media_present_n
push 0x100
lea eax, [ebp - 0x210]
push eax
jmp 0x4475ca
push str.DVD_tray_open_n
push 0x100
lea ecx, [ebp - 0x210]
push ecx
jmp 0x4475ca
push str.DVD_tray_closed__no_media_n
push 0x100
lea edx, [ebp - 0x210]
push edx
call fcn.0045c9ef
add esp, 0xc
test ebx, ebx
je 0x4475df
cmp esi, 2
je 0x44762b
test esi, esi
je 0x44762b
mov eax, dword [0x4b8084]
mov byte [eax + 0xf4], 1
test ebx, ebx
je 0x4475f8
push ebx
call fcn.0045ca7a
add esp, 4
mov ecx, dword [ebp - 0x630]
mov esi, dword [ebp - 0x634]
add dword [ebp - 0x624], 0x1c
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
inc edi
add ecx, edx
cmp edi, ecx
jb 0x447534
jmp 0x447641
mov edx, dword [0x4b8084]
push ebx
mov byte [edx + 0xf4], 0
call fcn.0045ca7a
add esp, 4
mov eax, dword [0x4b8084]
cmp byte [eax + 0xf4], 0
je 0x447678
mov ecx, dword [0x4a6948]
push 0x480
push ecx
mov byte [0x4a673c], 0
call dword [sym.imp.USER32.dll_KillTimer]
mov edx, dword [0x4a9700]
mov dword [edx + 0xa4], 0
lea ecx, [ebp - 0x634]
call fcn.00445d90
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0045bfe1
mov esp, ebp
pop ebp
ret