Function at 0x4945d0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x53cbf5
mov eax, dword fs:[0]
push eax
sub esp, 0x654
mov eax, dword [0x5954a0]
xor eax, ebp
mov dword [ebp - 0x4c], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x62c], ecx
xor eax, eax
mov word [ebp - 0x44c], ax
push 0x3fe
push 0
lea ecx, [ebp - 0x44a]
push ecx
call fcn.004f8090
add esp, 0xc
mov edx, dword [0x59a638]
mov eax, dword [edx - 0xc]
mov dword [ebp - 0x50c], eax
xor ecx, ecx
cmp dword [ebp - 0x50c], 0
sete cl
movzx edx, cl
test edx, edx
je 0x494669
push 1
push 0x1a
lea eax, [ebp - 0x44c]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push str.ESafeNet_Out_NewVersionCOCfg.XML
lea ecx, [ebp - 0x44c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
jmp 0x4946a3
push str.COCfg.XML
push 0x59a638
lea edx, [ebp - 0x464]
push edx
call fcn.0044e7e0
add esp, 0xc
mov eax, dword [ebp - 0x464]
push eax
lea ecx, [ebp - 0x44c]
push ecx
call fcn.004fb939
add esp, 8
lea ecx, [ebp - 0x464]
call fcn.0044f990
lea edx, [ebp - 0x44c]
push edx
call fcn.00494560
add esp, 4
movzx eax, al
test eax, eax
jne 0x4946c0
xor eax, eax
jmp 0x494d4b
lea ecx, [ebp - 0x44]
call fcn.00488090
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x44c]
push ecx
lea ecx, [ebp - 0x44]
call fcn.004884b0
test eax, eax
jne 0x494706
mov dword [ebp - 0x498], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x44]
call fcn.00488200
mov eax, dword [ebp - 0x498]
jmp 0x494d4b
push 1
push ecx
mov edx, esp
mov dword [ebp - 0x49c], esp
push edx
lea ecx, [ebp - 0x44]
call fcn.00488bd0
mov dword [ebp - 0x630], eax
lea ecx, [ebp - 0x2c]
call fcn.004852a0
mov dword [ebp - 0x634], eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c]
call fcn.00485be0
test eax, eax
jne 0x49476e
mov dword [ebp - 0x4a0], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call fcn.00485340
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x44]
call fcn.00488200
mov eax, dword [ebp - 0x4a0]
jmp 0x494d4b
push 1
push ecx
mov eax, esp
mov dword [ebp - 0x4a4], esp
push 0x553408
push eax
lea ecx, [ebp - 0x2c]
call fcn.00485e70
mov dword [ebp - 0x638], eax
lea ecx, [ebp - 0x38]
call fcn.004852a0
mov dword [ebp - 0x63c], eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x38]
call fcn.00485be0
test eax, eax
jne 0x4947e7
mov dword [ebp - 0x4a8], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x38]
call fcn.00485340
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call fcn.00485340
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x44]
call fcn.00488200
mov eax, dword [ebp - 0x4a8]
jmp 0x494d4b
lea ecx, [ebp - 0x45c]
call fcn.00485240
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x450]
call fcn.0044f320
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x62c]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x640], edx
cmp dword [ebp - 0x640], 0
je 0x494838
cmp dword [ebp - 0x640], 1
je 0x49487c
cmp dword [ebp - 0x640], 2
je 0x4948bd
jmp 0x4948fc
mov eax, str.ChineseSimp
test eax, eax
jne 0x49484d
mov dword [ebp - 0x520], 0
jmp 0x494860
push str.ChineseSimp
call fcn.004f810a
add esp, 4
mov dword [ebp - 0x520], eax
mov ecx, dword [ebp - 0x520]
push ecx
push str.ChineseSimp
lea ecx, [ebp - 0x450]
call fcn.0044fb50
jmp 0x4948fc
mov edx, str.English
test edx, edx
jne 0x494891
mov dword [ebp - 0x524], 0
jmp 0x4948a4
push str.English
call fcn.004f810a
add esp, 4
mov dword [ebp - 0x524], eax
mov eax, dword [ebp - 0x524]
push eax
push str.English
lea ecx, [ebp - 0x450]
call fcn.0044fb50
jmp 0x4948fc
mov ecx, str.Chinesetraditional
test ecx, ecx
jne 0x4948d2
mov dword [ebp - 0x528], 0
jmp 0x4948e5
push str.Chinesetraditional
call fcn.004f810a
add esp, 4
mov dword [ebp - 0x528], eax
mov edx, dword [ebp - 0x528]
push edx
push str.Chinesetraditional
lea ecx, [ebp - 0x450]
call fcn.0044fb50
lea ecx, [ebp - 0x45c]
call fcn.00485be0
test eax, eax
jne 0x494965
mov dword [ebp - 0x4ac], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x450]
call fcn.0044f990
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x45c]
call fcn.00485340
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x38]
call fcn.00485340
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call fcn.00485340
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x44]
call fcn.00488200
mov eax, dword [ebp - 0x4ac]
jmp 0x494d4b
push ecx
mov eax, esp
mov dword [ebp - 0x4b0], esp
push str.item
push eax
lea ecx, [ebp - 0x45c]
call fcn.0048a100
mov dword [ebp - 0x644], eax
lea ecx, [ebp - 0x1c]
call fcn.00489b50
mov dword [ebp - 0x648], eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1c]
call fcn.00489c70
test eax, eax
je 0x4949b0
lea ecx, [ebp - 0x1c]
call fcn.00489c20
cmp eax, 1
jge 0x494a16
mov dword [ebp - 0x4b4], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1c]
call fcn.00489be0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x450]
call fcn.0044f990
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x45c]
call fcn.00485340
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x38]
call fcn.00485340
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call fcn.00485340
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x44]
call fcn.00488200
mov eax, dword [ebp - 0x4b4]
jmp 0x494d4b
mov dword [ebp - 0x48], 3
lea ecx, [ebp - 0x1c]
call fcn.00489c20
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x3c]
call fcn.0044f320
mov byte [ebp - 4], 6
mov dword [ebp - 0x468], 0
jmp 0x494a4f
mov ecx, dword [ebp - 0x468]
add ecx, 1
mov dword [ebp - 0x468], ecx
mov edx, dword [ebp - 0x468]
cmp edx, dword [ebp - 0x14]
jge 0x494cd1
push 1
push ecx
mov eax, esp
mov dword [ebp - 0x4b8], esp
mov ecx, dword [ebp - 0x468]
push ecx
push eax
lea ecx, [ebp - 0x1c]
call fcn.00489e50
mov dword [ebp - 0x64c], eax
lea ecx, [ebp - 0x474]
call fcn.004852a0
mov dword [ebp - 0x650], eax
mov byte [ebp - 4], 7
push str.value
lea edx, [ebp - 0x4bc]
push edx
lea ecx, [ebp - 0x474]
call fcn.004853a0
mov dword [ebp - 0x654], eax
mov eax, dword [ebp - 0x654]
mov dword [ebp - 0x554], eax
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x554]
push ecx
lea ecx, [ebp - 0x3c]
call fcn.0044f9d0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x4bc]
call fcn.0044f990
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], 0
jne 0x494afa
mov dword [ebp - 0x658], 0
jmp 0x494bb8
mov eax, dword [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, 1
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0x3fffffff
jle 0x494b22
mov dword [ebp - 0x65c], 0
jmp 0x494bac
mov eax, dword [ebp - 0x10]
shl eax, 1
call fcn.004f86f0
mov dword [ebp - 0x560], esp
mov ecx, dword [ebp - 0x564]
mov dword [ebp - 0x65c], ecx
cmp dword [ebp - 0x560], 0
je 0x494b4d
cmp dword [ebp - 0x20], 0
jne 0x494b59
mov dword [ebp - 0x65c], 0
jmp 0x494bac
mov edx, dword [ebp - 0x560]
mov byte [edx], 0
push 0
push 0
mov eax, dword [ebp - 0x10]
shl eax, 1
push eax
mov ecx, dword [ebp - 0x560]
push ecx
push 0xffffffffffffffff
mov edx, dword [ebp - 0x20]
push edx
push 0
mov eax, dword [ebp - 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov dword [ebp - 0x55c], eax
cmp dword [ebp - 0x55c], 0
jne 0x494ba0
mov dword [ebp - 0x65c], 0
jmp 0x494bac
mov ecx, dword [ebp - 0x560]
mov dword [ebp - 0x65c], ecx
mov edx, dword [ebp - 0x65c]
mov dword [ebp - 0x658], edx
mov eax, dword [ebp - 0x658]
push eax
lea ecx, [ebp - 0x4d8]
call fcn.00411a10
mov dword [ebp - 0x660], eax
mov ecx, dword [ebp - 0x660]
mov dword [ebp - 0x58c], ecx
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x468]
mov dword [ebp - 0x494], edx
lea eax, [ebp - 0x490]
mov dword [ebp - 0x588], eax
push 0
push 0
mov ecx, dword [ebp - 0x588]
call fcn.004133d0
mov ecx, dword [0x5674f4]
push ecx
push 0
mov edx, dword [ebp - 0x58c]
push edx
mov ecx, dword [ebp - 0x588]
call fcn.004131e0
mov byte [ebp - 4], 0xb
push 0
push 1
lea ecx, [ebp - 0x4d8]
call fcn.004133d0
mov eax, dword [ebp - 0x494]
mov dword [ebp - 0x4f8], eax
lea ecx, [ebp - 0x4f4]
mov dword [ebp - 0x5a4], ecx
push 0
push 0
mov ecx, dword [ebp - 0x5a4]
call fcn.004133d0
mov edx, dword [0x5674f4]
push edx
push 0
lea eax, [ebp - 0x490]
push eax
mov ecx, dword [ebp - 0x5a4]
call fcn.004131e0
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x4f8]
push ecx
lea edx, [ebp - 0x504]
push edx
mov ecx, dword [ebp - 0x62c]
add ecx, 0xc
call fcn.00494f10
mov byte [ebp - 4], 0xb
push 0
push 1
lea ecx, [ebp - 0x4f4]
call fcn.004133d0
mov byte [ebp - 4], 7
push 0
push 1
lea ecx, [ebp - 0x490]
call fcn.004133d0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x474]
call fcn.00485340
jmp 0x494a40
mov eax, dword [ebp - 0x62c]
mov dword [eax + 8], 1
mov dword [ebp - 0x508], 1
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x3c]
call fcn.0044f990
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1c]
call fcn.00489be0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x450]
call fcn.0044f990
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x45c]
call fcn.00485340
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x38]
call fcn.00485340
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call fcn.00485340
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x44]
call fcn.00488200
mov eax, dword [ebp - 0x508]
lea esp, [ebp - 0x664]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x4c]
xor ecx, ebp
call fcn.004f8124
mov esp, ebp
pop ebp
ret