Function at 0x477fa0
Capabilities:
Get common file path
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56908d
mov eax, dword fs:[0]
push eax
mov eax, 0x6fa0
call fcn.00528110
mov eax, dword [0x5c5ebc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ecx, 0x5ca1e0
call fcn.0041dca0
xor eax, eax
mov word [ebp - 0x224], ax
push 0x208
push 0
lea ecx, [ebp - 0x222]
push ecx
call fcn.005281f0
add esp, 0xc
push 0x105
lea edx, [ebp - 0x224]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x5c
lea eax, [ebp - 0x224]
push eax
call fcn.004111d0
add esp, 8
xor ecx, ecx
mov word [eax], cx
xor edx, edx
mov word [ebp - 0x2444], dx
push 0x208
push 0
lea eax, [ebp - 0x2442]
push eax
call fcn.005281f0
add esp, 0xc
lea ecx, [ebp - 0x224]
push ecx
push 0x5822c8
lea edx, [ebp - 0x2444]
push edx
call fcn.00527b98
add esp, 0xc
xor eax, eax
mov word [ebp - 0x5c54], ax
push 0x7fe
push 0
lea ecx, [ebp - 0x5c52]
push ecx
call fcn.005281f0
add esp, 0xc
xor edx, edx
mov word [ebp - 0x5454], dx
push 0x800
push 0
lea eax, [ebp - 0x5452]
push eax
call fcn.005281f0
add esp, 0xc
lea ecx, [ebp - 0x2444]
push ecx
push 0x400
lea edx, [ebp - 0x5454]
push edx
push 0x5822e8
push 0x5822ec
push 0x5822fc
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor eax, eax
mov word [ebp - 0x6534], ax
push 0x800
push 0
lea ecx, [ebp - 0x6532]
push ecx
call fcn.005281f0
add esp, 0xc
lea edx, [ebp - 0x2444]
push edx
push 0x400
lea eax, [ebp - 0x6534]
push eax
push 0x58230c
push 0x582310
push 0x582324
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push 0x582334
lea ecx, [ebp - 0x5454]
push ecx
call dword [sym.imp.SHLWAPI.dll_StrTrimW]
push 0x582338
lea edx, [ebp - 0x6534]
push edx
call dword [sym.imp.SHLWAPI.dll_StrTrimW]
lea ecx, [ebp - 0x2234]
call fcn.00415d60
mov dword [ebp - 4], 0
push 0x5c9fc0
lea eax, [ebp - 0x2234]
push eax
lea ecx, [ebp - 0x6534]
push ecx
lea edx, [ebp - 0x5454]
push edx
call fcn.00476a10
add esp, 0x10
mov dword [ebp - 0x5c58], eax
lea ecx, [ebp - 0x2234]
call fcn.00415f90
test eax, eax
je 0x478199
cmp dword [ebp + 8], 0
je 0x478199
lea ecx, [ebp - 0x2234]
call fcn.00415f60
push eax
push 0
push 0
push 0
mov ecx, 0x5fa618
call fcn.004d8160
cmp dword [ebp + 0xc], 0
je 0x4781d0
cmp dword [ebp + 0x10], 0
je 0x4781d0
lea ecx, [ebp - 0x2234]
call fcn.00415f90
test eax, eax
je 0x4781d0
mov eax, dword [ebp + 0x10]
push eax
lea ecx, [ebp - 0x2234]
call fcn.00415f60
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0052a496
add esp, 0xc
push 0x58233c
call fcn.00528324
add esp, 4
push eax
push str.Bondevik
lea edx, [ebp - 0x6534]
push edx
call fcn.0052f26c
add esp, 0xc
test eax, eax
nop
nop
mov dword [0x5c9fc0], 1
cmp dword [0x5c9fc0], 0
je 0x47837f
movzx eax, word [ebp - 0x652a]
cmp eax, 0x30
jne 0x47837f
xor ecx, ecx
mov word [ebp - 0x651c], cx
xor edx, edx
mov word [ebp - 0x6754], dx
push 0x208
push 0
lea eax, [ebp - 0x6752]
push eax
call fcn.005281f0
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x6754]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push str.Win.ini
lea edx, [ebp - 0x6754]
push edx
call fcn.00528296
add esp, 8
lea eax, [ebp - 0x6754]
push eax
push 0
lea ecx, [ebp - 0x6534]
push ecx
push 0x582378
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x6764], eax
lea edx, [ebp - 0x6544]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
push 0xffffffffffffffff
lea eax, [ebp - 0x6544]
push eax
lea ecx, [ebp - 0x675c]
call fcn.0046e5f0
lea ecx, [ebp - 0x675c]
call fcn.0043a410
mov esi, eax
imul esi, esi, 0x16d
lea ecx, [ebp - 0x675c]
call fcn.00478d30
imul eax, eax, 0x1e
add esi, eax
lea ecx, [ebp - 0x675c]
call fcn.00455a70
add esi, eax
mov dword [ebp - 0x6760], esi
cmp dword [ebp - 0x6764], 0
jne 0x478348
xor ecx, ecx
mov word [ebp - 0x6f64], cx
push 0x7fe
push 0
lea edx, [ebp - 0x6f62]
push edx
call fcn.005281f0
add esp, 0xc
mov eax, dword [ebp - 0x6760]
push eax
push 0x582388
lea ecx, [ebp - 0x6f64]
push ecx
call fcn.00527b98
add esp, 0xc
lea edx, [ebp - 0x6754]
push edx
lea eax, [ebp - 0x6f64]
push eax
lea ecx, [ebp - 0x6534]
push ecx
push str.Product
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
jmp 0x47837f
mov edx, dword [ebp - 0x6760]
sub edx, dword [ebp - 0x6764]
js 0x478375
mov esi, dword [ebp - 0x6760]
sub esi, dword [ebp - 0x6764]
lea eax, [ebp - 0x6520]
push eax
call fcn.00527fd0
add esp, 4
cmp esi, eax
jl 0x47837f
mov dword [0x5c9fc0], 0
xor ecx, ecx
mov word [ebp - 0x5d2c], cx
push 0xc6
push 0
lea edx, [ebp - 0x5d2a]
push edx
call fcn.005281f0
add esp, 0xc
mov eax, 0x43
mov word [ebp - 0x5d2c], ax
mov ecx, 0x43
mov word [ebp - 0x5d2a], cx
mov edx, 0x50
mov word [ebp - 0x5d28], dx
mov eax, 0x72
mov word [ebp - 0x5d26], ax
mov ecx, 0x6f
mov word [ebp - 0x5d24], cx
mov edx, 0x78
mov word [ebp - 0x5d22], dx
mov eax, 0x79
mov word [ebp - 0x5d20], ax
xor ecx, ecx
mov word [ebp - 0x5d1e], cx
push 0x5823a0
lea edx, [ebp - 0x5d2c]
push edx
call fcn.00528296
add esp, 8
mov eax, dword [0x5823a4]
mov dword [ebp - 0x444c], eax
mov ecx, dword [0x5823a8]
mov dword [ebp - 0x4448], ecx
push 0x1ffa
push 0
lea edx, [ebp - 0x4444]
push edx
call fcn.005281f0
add esp, 0xc
lea eax, [ebp - 0x444c]
push eax
lea ecx, [ebp - 0x5d2c]
push ecx
call fcn.00528296
add esp, 8
xor edx, edx
mov word [ebp - 0x4c4c], dx
push 0x7fe
push 0
lea eax, [ebp - 0x4c4a]
push eax
call fcn.005281f0
add esp, 0xc
xor ecx, ecx
mov word [ebp - 0x222c], cx
push 0x2000
push 0
lea edx, [ebp - 0x222a]
push edx
call fcn.005281f0
add esp, 0xc
cmp dword [0x5c9fc0], 0
je 0x4784f8
push 0x5823ac
lea eax, [ebp - 0x6f68]
push eax
call fcn.00499930
add esp, 8
mov dword [ebp - 0x6f88], eax
mov ecx, dword [ebp - 0x6f88]
call fcn.00415f60
push eax
lea ecx, [ebp - 0x222c]
push ecx
call fcn.005282c4
add esp, 8
lea ecx, [ebp - 0x6f68]
call fcn.00415e20
lea edx, [ebp - 0x5d2c]
push edx
lea eax, [ebp - 0x222c]
push eax
lea ecx, [ebp - 0x5c54]
push ecx
call fcn.00527b98
add esp, 0xc
jmp 0x478555
push str._s__Unregistered_
lea edx, [ebp - 0x6f6c]
push edx
call fcn.00499930
add esp, 8
mov dword [ebp - 0x6f8c], eax
mov ecx, dword [ebp - 0x6f8c]
call fcn.00415f60
push eax
lea eax, [ebp - 0x222c]
push eax
call fcn.005282c4
add esp, 8
lea ecx, [ebp - 0x6f6c]
call fcn.00415e20
lea ecx, [ebp - 0x5d2c]
push ecx
lea edx, [ebp - 0x222c]
push edx
lea eax, [ebp - 0x5c54]
push eax
call fcn.00527b98
add esp, 0xc
lea ecx, [ebp - 0x5c64]
call fcn.004154c0
lea ecx, [ebp - 0x2230]
call fcn.00415d60
mov byte [ebp - 4], 1
push str.09:37:39
push str.Oct_13_2016
push str._s__s
lea ecx, [ebp - 0x2230]
push ecx
call fcn.004171c0
add esp, 0x10
push 0x409
push 0
lea ecx, [ebp - 0x2230]
call fcn.00415f60
push eax
lea ecx, [ebp - 0x5c64]
call fcn.0043b980
push str._Build__Y_m_d
lea edx, [ebp - 0x6f70]
push edx
lea ecx, [ebp - 0x5c64]
call fcn.0043baa0
mov dword [ebp - 0x6f90], eax
mov eax, dword [ebp - 0x6f90]
mov dword [ebp - 0x6f94], eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x6f94]
push ecx
lea ecx, [ebp - 0x2230]
call fcn.00415e40
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x6f70]
call fcn.00415e20
lea ecx, [ebp - 0x2230]
call fcn.00415f60
push eax
lea edx, [ebp - 0x5c54]
push edx
call fcn.00528296
add esp, 8
cmp dword [ebp + 8], 0
je 0x478756
lea eax, [ebp - 0x5c54]
push eax
push 0
push 0xc
push 0
mov ecx, 0x5fa618
call fcn.004d8160
cmp dword [ebp - 0x5c58], 0xffffffff
jne 0x478756
cmp dword [0x5c9fc0], 0
jne 0x478756
push 0x58242c
lea ecx, [ebp - 0x6f74]
push ecx
call fcn.0042d9b0
add esp, 4
mov dword [ebp - 0x6f98], eax
mov edx, dword [ebp - 0x6f98]
mov dword [ebp - 0x6f9c], edx
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x6f9c]
push eax
lea ecx, [ebp - 0x6f78]
push ecx
call fcn.00411930
add esp, 0xc
mov dword [ebp - 0x6fa0], eax
mov ecx, dword [ebp - 0x6fa0]
call fcn.00415f60
push eax
push 0x582448
push 0x58244c
push 0x58245c
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 0x6f78]
call fcn.00415e20
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x6f74]
call fcn.00415e20
push 0x58246c
lea edx, [ebp - 0x6f7c]
push edx
call fcn.0042d9b0
add esp, 4
mov dword [ebp - 0x6fa4], eax
mov eax, dword [ebp - 0x6fa4]
mov dword [ebp - 0x6fa8], eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x6fa8]
push ecx
lea edx, [ebp - 0x6f80]
push edx
call fcn.00411930
add esp, 0xc
mov dword [ebp - 0x6fac], eax
mov ecx, dword [ebp - 0x6fac]
call fcn.00415f60
push eax
push 0x582488
push 0x58248c
push 0x5824a0
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 0x6f80]
call fcn.00415e20
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x6f7c]
call fcn.00415e20
call fcn.0043c150
mov eax, dword [0x5c9fc0]
push eax
push 0
push 0x8066
push 0
mov ecx, 0x5fa618
call fcn.004d8160
mov ecx, 0x5ca1e0
call fcn.0043d640
mov ecx, dword [0x5c9fc0]
mov dword [ebp - 0x6f84], ecx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2230]
call fcn.00415e20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2234]
call fcn.00415e20
mov eax, dword [ebp - 0x6f84]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00527aad
mov esp, ebp
pop ebp
ret