Function at 0x10004660
Capabilities:
Check os version
Contain obfuscated stackstrings
Get common file path
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1002240a
mov eax, dword fs:[0]
push eax
mov eax, 0x10528
call fcn.1000e890
mov eax, dword [0x1002d1d0]
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
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x10508], edi
mov dword [ebp - 0x10510], eax
mov dword [ebp - 0x10504], 0
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp al, 6
jb 0x10004ae0
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], 0x680053
push eax
mov dword [ebp - 0x24], 0x6c0065
mov dword [ebp - 0x20], 0x33006c
mov dword [ebp - 0x1c], 0x2e0032
mov dword [ebp - 0x18], 0x6c0064
mov dword [ebp - 0x14], 0x6c
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
mov dword [ebp - 0x10518], edi
test edi, edi
je 0x10004f2a
movdqa xmm0, xmmword [str.SHGetKnownFolder]
lea eax, [ebp - 0x198]
push eax
push edi
movdqu xmmword [ebp - 0x198], xmm0
mov dword [ebp - 0x188], 0x68746150
mov byte [ebp - 0x184], 0
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1002eb98], eax
test eax, eax
je 0x10004ad4
lea ecx, [ebp - 0x1050c]
push ecx
push 0
push 0
push 0x10023900
call eax
test eax, eax
js 0x10004ad4
push 0xb0
lea eax, [ebp - 0x10500]
push 0
push eax
call fcn.1000e300
add esp, 0xc
lea ecx, [ebp - 0x10500]
push 1
push 3
call fcn.10002bc0
lea eax, [ebp - 0x180]
mov dword [ebp - 4], 0
push eax
push dword [ebp - 0x1050c]
lea eax, [ebp - 0x104f0]
mov dword [ebp - 0x180], 0x5c005c
push eax
mov dword [ebp - 0x17c], 0x44007b
mov ebx, 0x44
mov dword [ebp - 0x178], 0x300032
mov dword [ebp - 0x174], 0x300032
mov dword [ebp - 0x170], 0x340044
mov dword [ebp - 0x16c], 0x2d0037
mov dword [ebp - 0x168], 0x300037
mov dword [ebp - 0x164], 0x440037
mov dword [ebp - 0x160], 0x34002d
mov dword [ebp - 0x15c], 0x320045
mov dword [ebp - 0x158], 0x2d0036
mov dword [ebp - 0x154], 0x340042
mov dword [ebp - 0x150], 0x390044
mov dword [ebp - 0x14c], 0x37002d
mov dword [ebp - 0x148], 0x390033
mov dword [ebp - 0x144], 0x340043
mov dword [ebp - 0x140], 0x340046
mov dword [ebp - 0x13c], 0x320043
mov dword [ebp - 0x138], 0x390045
mov dword [ebp - 0x134], 0x7d0041
mov dword [ebp - 0x130], 0x5c005c
mov dword [ebp - 0x12c], 0x46007b
mov dword [ebp - 0x128], 0x430042
mov dword [ebp - 0x124], 0x360030
mov dword [ebp - 0x120], 0x320035
mov dword [ebp - 0x11c], 0x2d0043
mov dword [ebp - 0x118], 0x420037
mov dword [ebp - 0x114], 0x390032
mov dword [ebp - 0x110], 0x34002d
mov dword [ebp - 0x10c], 0x420046
mov dword [ebp - 0x108], 0x2d0036
mov dword [ebp - 0x104], 0x410038
mov dword [ebp - 0x100], 0x410044
mov dword [ebp - 0xfc], 0x39002d
mov dword [ebp - 0xf8], 0x460031
mov dword [ebp - 0xf4], 0x340035
mov dword [ebp - 0xf0], 0x320042
mov dword [ebp - 0xec], 0x370036
mov dword [ebp - 0xe8], 0x440041
mov dword [ebp - 0xe4], 0x7d0034
mov dword [ebp - 0xe0], 0x5c005c
mov dword [ebp - 0xdc], 0x2e0031
mov dword [ebp - 0xd8], 0x35
call fcn.10002120
add esp, 8
push eax
call fcn.10002120
add esp, 8
lea eax, [ebp - 0x10530]
lea ecx, [ebp - 0x10500]
push eax
call fcn.10006d50
cmp dword [eax + 0x14], 8
mov byte [ebp - 4], 1
mov dword [ebp - 0x10504], 1
jb 0x10004982
mov eax, dword [eax]
push ecx
mov ecx, esp
push eax
call fcn.10002960
call fcn.10006580
mov edi, dword [ebp - 0x10518]
add esp, 4
test eax, eax
je 0x100049ae
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x100049ae
xor bl, bl
jmp 0x100049b0
mov bl, 1
lea ecx, [ebp - 0x10530]
mov dword [ebp - 4], 0
call fcn.100031e0
test bl, bl
je 0x10004a9d
push dword [ebp - 0x10508]
lea eax, [ebp - 0x104f0]
push 0x10023500
push eax
call fcn.10001c70
add esp, 8
push eax
call fcn.10002490
add esp, 8
lea eax, [ebp - 0x10530]
lea ecx, [ebp - 0x10500]
push eax
call fcn.10006d50
cmp dword [eax + 0x14], 8
jb 0x10004a07
mov eax, dword [eax]
push 0
push 0x80
push 4
push 0
push 3
push 0xc0120089
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
lea ecx, [ebp - 0x10530]
mov esi, eax
call fcn.100031e0
cmp esi, 0xffffffff
je 0x10004a9d
push 0
push 0
push 0
push esi
mov dword [ebp - 0x10504], 0
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp - 0x10504]
push eax
push 0x10000
lea eax, [ebp - 0x103a0]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x10004a9d
mov eax, dword [ebp - 0x10504]
test eax, eax
je 0x10004a9d
push eax
lea eax, [ebp - 0x103a0]
push eax
lea ecx, [ebp - 0x10530]
call fcn.10002ac0
mov ecx, dword [ebp - 0x10510]
push eax
call fcn.10003530
lea ecx, [ebp - 0x10530]
call fcn.10001150
push dword [ebp - 0x1050c]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
lea ecx, [ebp - 0x10498]
mov dword [ebp - 4], 0xffffffff
call fcn.10003210
lea eax, [ebp - 0x10498]
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
push eax
call fcn.1000cdfa
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x10004f2a
lea eax, [ebp - 0x3a0]
push eax
push 0
push 0
push 0x1c
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x10004f2a
push 0xb0
lea eax, [ebp - 0x10450]
push 0
push eax
call fcn.1000e300
add esp, 0xc
mov dword [ebp - 0x10450], 0x100234f0
mov dword [ebp - 0x10440], 0x100234f8
push 0
lea eax, [ebp - 0x10438]
mov dword [ebp - 4], 2
xorps xmm0, xmm0
mov dword [ebp - 0x10504], 4
push eax
lea ecx, [ebp - 0x103e8]
mov dword [ebp - method.std::basic_istream_wchar_t__struct_std::char_traits_wchar_t__.virtual_0], vtable.std::basic_istream_wchar_t__struct_std::char_traits_wchar_t__.0
mov dword [ebp - 0x103ec], 0x50
movlpd qword [ebp - 0x10448], xmm0
call fcn.10006430
mov eax, dword [ebp - 0x10440]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__.virtual_0], vtable.std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__.0
mov eax, dword [ebp - 0x10440]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [ebp + ecx - 0x10444], eax
mov eax, dword [ebp - 0x10450]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_iostream_wchar_t__struct_std::char_traits_wchar_t__.virtual_0], vtable.std::basic_iostream_wchar_t__struct_std::char_traits_wchar_t__.0
mov eax, dword [ebp - 0x10450]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x20]
mov dword [ebp + ecx - 0x10454], eax
mov eax, dword [ebp - 0x10450]
mov dword [ebp - 4], 7
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_stringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.virtual_0], vtable.std::basic_stringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov eax, dword [ebp - 0x10450]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x10454], eax
lea ecx, [ebp - 0x10438]
call fcn.10002a30
mov dword [ebp - method.std::basic_stringbuf_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.virtual_0], vtable.std::basic_stringbuf_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov dword [ebp - 0x10400], 0
mov dword [ebp - 0x103fc], 0
mov dword [ebp - 4], 9
mov dword [ebp - 0xd4], 0x5c005c
mov dword [ebp - 0xd0], 0x44007b
mov dword [ebp - 0xcc], 0x300032
mov dword [ebp - 0xc8], 0x300032
mov dword [ebp - 0xc4], 0x340044
mov dword [ebp - 0xc0], 0x2d0037
mov dword [ebp - 0xbc], 0x300037
mov dword [ebp - 0xb8], 0x440037
mov dword [ebp - 0xb4], 0x34002d
mov dword [ebp - 0xb0], 0x320045
mov dword [ebp - 0xac], 0x2d0036
mov dword [ebp - 0xa8], 0x340042
mov dword [ebp - 0xa4], 0x390044
mov dword [ebp - 0xa0], 0x37002d
mov dword [ebp - 0x9c], 0x390033
mov dword [ebp - 0x98], 0x340043
mov dword [ebp - 0x94], 0x340046
mov dword [ebp - 0x90], 0x320043
mov dword [ebp - 0x8c], 0x390045
mov dword [ebp - 0x88], 0x7d0041
mov dword [ebp - 0x84], 0x5c005c
mov dword [ebp - 0x80], 0x46007b
mov dword [ebp - 0x7c], 0x430042
mov dword [ebp - 0x78], 0x360030
mov dword [ebp - 0x74], 0x320035
mov dword [ebp - 0x70], 0x2d0043
mov dword [ebp - 0x6c], 0x420037
mov dword [ebp - 0x68], 0x390032
mov dword [ebp - 0x64], 0x34002d
lea eax, [ebp - 0xd4]
mov dword [ebp - 0x60], 0x420046
push eax
lea eax, [ebp - 0x3a0]
mov dword [ebp - 0x5c], 0x2d0036
push eax
lea eax, [ebp - 0x10440]
mov dword [ebp - 0x58], 0x410038
push eax
mov ebx, 0x44
mov dword [ebp - 0x54], 0x410044
mov dword [ebp - 0x50], 0x39002d
mov dword [ebp - 0x4c], 0x460031
mov dword [ebp - 0x48], 0x340035
mov dword [ebp - 0x44], 0x320042
mov dword [ebp - 0x40], 0x370036
mov dword [ebp - 0x3c], 0x440041
mov dword [ebp - 0x38], 0x7d0034
mov dword [ebp - 0x34], 0x5c005c
mov dword [ebp - 0x30], 0x2e0031
mov dword [ebp - 0x2c], 0x35
call fcn.10002120
add esp, 8
push eax
call fcn.10002120
add esp, 8
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x10450]
push eax
call fcn.10006d50
cmp dword [eax + 0x14], 8
mov byte [ebp - 4], 0xa
mov dword [ebp - 0x10504], 6
jb 0x10004dd3
mov eax, dword [eax]
push ecx
mov ecx, esp
push eax
call fcn.10002960
call fcn.10006580
mov edi, dword [ebp - 0x10508]
add esp, 4
test eax, eax
je 0x10004dff
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x10004dff
xor bl, bl
jmp 0x10004e01
mov bl, 1
cmp dword [ebp - 0x14], 8
mov dword [ebp - 4], 9
jb 0x10004e19
push dword [ebp - 0x28]
call fcn.1000cf3b
add esp, 4
test bl, bl
je 0x10004eff
push edi
lea eax, [ebp - 0x10440]
push 0x10023500
push eax
call fcn.10001c70
add esp, 8
push eax
call fcn.10002490
add esp, 8
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x10450]
push eax
call fcn.10006d50
cmp dword [eax + 0x14], 8
jb 0x10004e56
mov eax, dword [eax]
push 0
push 0x80
push 4
push 0
push 3
push 0xc0120089
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp dword [ebp - 0x14], 8
mov esi, eax
jb 0x10004e82
push dword [ebp - 0x28]
call fcn.1000cf3b
add esp, 4
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
cmp esi, 0xffffffff
je 0x10004eff
push eax
push eax
push eax
push esi
mov dword [ebp - 0x10508], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp - 0x10508]
push eax
push 0x10000
lea eax, [ebp - 0x103a0]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x10004eff
mov eax, dword [ebp - 0x10508]
test eax, eax
je 0x10004eff
push eax
lea eax, [ebp - 0x103a0]
push eax
lea ecx, [ebp - 0x10530]
call fcn.10002ac0
mov ecx, dword [ebp - 0x10510]
push eax
call fcn.10003530
lea ecx, [ebp - 0x10530]
call fcn.10001150
lea ecx, [ebp - 0x103e8]
mov dword [ebp - 4], 0xffffffff
call fcn.10003210
lea eax, [ebp - 0x103e8]
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
push eax
call fcn.1000cdfa
add esp, 4
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.1000d844
mov esp, ebp
pop ebp
ret