Function at 0x40b200
Capabilities:
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x7a677b
mov eax, dword fs:[0]
push eax
sub esp, 0x180
mov eax, dword [0x8a0204]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x148], ecx
call fcn.00406290
mov eax, dword [ebp - 0x148]
add eax, 0x30
mov dword [ebp - 0x150], eax
push str.bglayout
mov ecx, dword [ebp - 0x150]
call fcn.00461e60
mov ecx, dword [ebp - 0x148]
mov dword [ecx + 0x568], eax
mov edx, dword [ebp - 0x148]
add edx, 0x30
mov dword [ebp - 0x154], edx
push str.stepTabLayout
mov ecx, dword [ebp - 0x154]
call fcn.00461e60
mov ecx, dword [ebp - 0x148]
mov dword [ecx + 0x56c], eax
mov edx, dword [ebp - 0x148]
add edx, 0x30
mov dword [ebp - 0x158], edx
push str.textProgress
mov ecx, dword [ebp - 0x158]
call fcn.00461e60
mov ecx, dword [ebp - 0x148]
mov dword [ecx + 0x570], eax
mov edx, dword [ebp - 0x148]
add edx, 0x30
mov dword [ebp - 0x15c], edx
push str.BtnOneClick
mov ecx, dword [ebp - 0x15c]
call fcn.00461e60
mov ecx, dword [ebp - 0x148]
mov dword [ecx + 0x574], eax
mov edx, dword [ebp - 0x148]
add edx, 0x30
mov dword [ebp - 0x160], edx
push str.btnlicense
mov ecx, dword [ebp - 0x160]
call fcn.00461e60
mov ecx, dword [ebp - 0x148]
mov dword [ecx + 0x580], eax
mov edx, dword [ebp - 0x148]
add edx, 0x30
mov dword [ebp - 0x164], edx
push str.btnBrowser
mov ecx, dword [ebp - 0x164]
call fcn.00461e60
mov ecx, dword [ebp - 0x148]
mov dword [ecx + 0x578], eax
mov edx, dword [ebp - 0x148]
add edx, 0x30
mov dword [ebp - 0x168], edx
push str.BtnOverwrite
mov ecx, dword [ebp - 0x168]
call fcn.00461e60
mov ecx, dword [ebp - 0x148]
mov dword [ecx + 0x57c], eax
mov edx, dword [ebp - 0x148]
add edx, 0x30
mov dword [ebp - 0x16c], edx
push str.btnLanuch
mov ecx, dword [ebp - 0x16c]
call fcn.00461e60
mov ecx, dword [ebp - 0x148]
mov dword [ecx + 0x584], eax
mov edx, dword [ebp - 0x148]
add edx, 0x30
mov dword [ebp - 0x170], edx
push str.install
mov ecx, dword [ebp - 0x170]
call fcn.00461e60
mov ecx, dword [ebp - 0x148]
mov dword [ecx + 0x58c], eax
mov edx, dword [ebp - 0x148]
add edx, 0x30
mov dword [ebp - 0x174], edx
push str.Optlicense
mov ecx, dword [ebp - 0x174]
call fcn.00461e60
mov ecx, dword [ebp - 0x148]
mov dword [ecx + 0x588], eax
mov edx, dword [ebp - 0x148]
add edx, 0x30
mov dword [ebp - 0x178], edx
push str.pathedit
mov ecx, dword [ebp - 0x178]
call fcn.00461e60
mov ecx, dword [ebp - 0x148]
mov dword [ecx + 0x590], eax
mov ecx, dword [ebp - 0x148]
call fcn.0040abc0
movzx edx, al
test edx, edx
je 0x40b42e
mov eax, dword [ebp - 0x148]
mov byte [eax + 0x6b8], 1
mov ecx, dword [ebp - 0x148]
mov edx, dword [ecx + 0x58c]
mov dword [ebp - 0x17c], edx
push 0
mov ecx, dword [ebp - 0x17c]
call fcn.00472620
mov eax, dword [ebp - 0x148]
mov dword [eax + 0x594], 0
mov dword [ebp - 0x14c], 0
lea ecx, [ebp - 0x144]
call fcn.00403740
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x14c]
push ecx
push 0x26
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jne 0x40b53b
lea edx, [ebp - 0x114]
push edx
mov eax, dword [ebp - 0x14c]
push eax
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
mov dword [ebp - 0x18c], eax
mov ecx, dword [ebp - 0x14c]
push ecx
call dword [sym.imp.ole32.dll_CoTaskMemFree]
lea edx, [ebp - 0x114]
push edx
lea ecx, [ebp - 0x12c]
call fcn.00403610
mov byte [ebp - 4], 1
push str.dofun
lea ecx, [ebp - 0x12c]
call fcn.0040e6e0
mov eax, dword [ebp - 0x148]
mov ecx, dword [eax + 0x590]
mov dword [ebp - 0x184], ecx
mov edx, dword [ebp - 0x148]
mov eax, dword [edx + 0x590]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x2c]
mov dword [ebp - 0x188], edx
lea ecx, [ebp - 0x12c]
call fcn.00403470
mov dword [ebp - 0x180], eax
mov eax, dword [ebp - 0x180]
push eax
mov ecx, dword [ebp - 0x184]
call dword [ebp - 0x188]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x12c]
call fcn.00403560
call fcn.00406330
mov ecx, eax
call fcn.00401cb0
movzx ecx, al
test ecx, ecx
je 0x40b5a1
push 0x85ff74
call fcn.00409bd0
add esp, 4
movzx edx, al
test edx, edx
je 0x40b571
push 0x85ff80
call fcn.00409c80
add esp, 4
jmp 0x40b592
push 0x85ff8c
call fcn.00409bd0
add esp, 4
movzx eax, al
test eax, eax
je 0x40b592
push 0x85ff98
call fcn.00409c80
add esp, 4
push 1
mov ecx, dword [ebp - 0x148]
call fcn.0040bc30
jmp 0x40b5f2
push 0x85ffa4
call fcn.00409bd0
add esp, 4
movzx ecx, al
test ecx, ecx
je 0x40b5c4
push 0x85ffb0
call fcn.00409c80
add esp, 4
jmp 0x40b5e5
push 0x85ffbc
call fcn.00409bd0
add esp, 4
movzx edx, al
test edx, edx
je 0x40b5e5
push str.17play.exe
call fcn.00409c80
add esp, 4
push 0
mov ecx, dword [ebp - 0x148]
call fcn.0040bc30
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x144]
call fcn.00403560
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0075c173
mov esp, ebp
pop ebp
ret