Function at 0x140001100
Capabilities:
Check os version
Get common file path
Link many functions at runtime

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x5e8
mov qword [rsp + 0x5c8], 0xfffffffffffffffe
mov rax, qword [0x140004018]
xor rax, rsp
mov qword [rsp + 0x5d0], rax
mov rax, qword [rsp + 0x5f0]
add rax, 0x64
test rax, rax
jne 0x140001158
mov rcx, qword [rsp + 0x5f0]
call fcn.1400010b0
test eax, eax
jne 0x140001158
xor eax, eax
jmp 0x140001710
mov dword [rsp + 0x180], 0x18
mov dword [rsp + 0x190], 1
mov qword [rsp + 0x188], 0
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 0
lea rcx, str.Ulib.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [rsp + 0xe0], rax
cmp qword [rsp + 0xe0], 0
je 0x140001360
mov qword [rsp + 0x580], 0
mov dword [rsp + 0x598], 0
jmp 0x1400011e3
mov eax, dword [rsp + 0x598]
add eax, 1
mov dword [rsp + 0x598], eax
movsxd rcx, dword [rsp + 0x598]
lea rax, str._Get_Standard_Output_Stream__YAPEAVSTREAM__XZ
cmp qword [rax + rcx*8], 0
je 0x14000122f
cmp qword [rsp + 0x580], 0
jne 0x14000122f
movsxd rax, dword [rsp + 0x598]
lea rdx, str._Get_Standard_Output_Stream__YAPEAVSTREAM__XZ
mov rdx, qword [rdx + rax*8]
mov rcx, qword [rsp + 0xe0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x580], rax
jmp 0x1400011d2
mov qword [rsp + 0x588], 0
mov dword [rsp + 0x59c], 0
jmp 0x140001259
mov eax, dword [rsp + 0x59c]
add eax, 1
mov dword [rsp + 0x59c], eax
movsxd rcx, dword [rsp + 0x59c]
lea rax, str._Get_Standard_Input_Stream__YAPEAVSTREAM__XZ
cmp qword [rax + rcx*8], 0
je 0x1400012a5
cmp qword [rsp + 0x588], 0
jne 0x1400012a5
movsxd rax, dword [rsp + 0x59c]
lea rdx, str._Get_Standard_Input_Stream__YAPEAVSTREAM__XZ
mov rdx, qword [rdx + rax*8]
mov rcx, qword [rsp + 0xe0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x588], rax
jmp 0x140001248
mov qword [rsp + 0x590], 0
mov dword [rsp + 0x5a0], 0
jmp 0x1400012cf
mov eax, dword [rsp + 0x5a0]
add eax, 1
mov dword [rsp + 0x5a0], eax
movsxd rcx, dword [rsp + 0x5a0]
lea rax, str._Get_Standard_Error_Stream__YAPEAVSTREAM__XZ
cmp qword [rax + rcx*8], 0
je 0x14000131b
cmp qword [rsp + 0x590], 0
jne 0x14000131b
movsxd rax, dword [rsp + 0x5a0]
lea rdx, str._Get_Standard_Error_Stream__YAPEAVSTREAM__XZ
mov rdx, qword [rdx + rax*8]
mov rcx, qword [rsp + 0xe0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x590], rax
jmp 0x1400012be
cmp qword [rsp + 0x580], 0
je 0x140001360
cmp qword [rsp + 0x588], 0
je 0x140001360
cmp qword [rsp + 0x590], 0
je 0x140001360
call qword [rsp + 0x580]
mov qword [rsp + 0x40], rax
call qword [rsp + 0x588]
mov qword [rsp + 0x30], rax
call qword [rsp + 0x590]
mov qword [rsp + 0x38], rax
cmp qword [rsp + 0x40], 0
je 0x140001378
cmp qword [rsp + 0x30], 0
je 0x140001378
cmp qword [rsp + 0x38], 0
jne 0x14000137f
xor eax, eax
jmp 0x140001710
mov edx, 0x104
lea rcx, [rsp + 0x3e0]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea r8, [rsp + 0x3e0]
lea rdx, str._scnvfat.dll
lea rcx, [rsp + 0x3e0]
call qword [sym.imp.USER32.dll_wsprintfA]
lea rcx, [rsp + 0x3e0]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [rsp + 0x330], rax
cmp qword [rsp + 0x330], 0
jne 0x1400013d7
xor eax, eax
jmp 0x140001710
lea rcx, [rsp + 0x4f0]
call qword [sym.imp.ulib.dll_public:_void___cdecl_DSTRING::constructor_void____ptr64]
nop
mov rdx, qword [rsp + 0x5f0]
add rdx, 0x64
mov r8d, 0xffffffff
lea rcx, [rsp + 0x4f0]
call qword [sym.imp.ulib.dll_public:_unsigned_char___cdecl_WSTRING::Initialize_unsigned_short_int_const____ptr64__unsigned_long_int____ptr64]
lea rcx, [rsp + 0x50]
call qword [sym.imp.ulib.dll_public:_void___cdecl_DSTRING::constructor_void____ptr64]
nop
mov r8d, 0xffffffff
lea rdx, str.NTFS
lea rcx, [rsp + 0x50]
call qword [sym.imp.ulib.dll_public:_unsigned_char___cdecl_WSTRING::Initialize_unsigned_short_int_const____ptr64__unsigned_long_int____ptr64]
lea rcx, [rsp + 0xf0]
call qword [sym.imp.ulib.dll_public:_void___cdecl_DSTRING::constructor_void____ptr64]
nop
mov r8d, 0xffffffff
lea rdx, [0x1400033c4]
lea rcx, [rsp + 0xf0]
call qword [sym.imp.ulib.dll_public:_unsigned_char___cdecl_WSTRING::Initialize_unsigned_short_int_const____ptr64__unsigned_long_int____ptr64]
lea rcx, [rsp + 0x1a0]
call qword [sym.imp.ulib.dll_public:_void___cdecl_STREAM_MESSAGE::constructor_void____ptr64]
nop
mov r9, qword [rsp + 0x38]
mov r8, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x1a0]
call qword [sym.imp.ulib.dll_public:_unsigned_char___cdecl_STREAM_MESSAGE::Initialize_class_STREAM____ptr64__class_STREAM____ptr64__class_STREAM____ptr64____ptr64]
mov dword [rsp + 0x340], 0x94
lea rcx, [rsp + 0x340]
call qword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [rsp + 0x344], 5
jne 0x140001586
cmp dword [rsp + 0x348], 0
jne 0x140001586
lea rdx, [0x1400033c8]
mov rcx, qword [rsp + 0x330]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x5a8], rax
cmp qword [rsp + 0x5a8], 0
jne 0x140001546
mov rcx, qword [rsp + 0x330]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [rsp + 0x330], 0
mov dword [rsp + 0x5bc], 0
lea rcx, [rsp + 0x1a0]
call qword [sym.imp.ulib.dll_public_virtual:_void___cdecl_STREAM_MESSAGE::destructor_void____ptr64]
nop
lea rcx, [rsp + 0xf0]
call qword [sym.imp.ulib.dll_public_virtual:_void___cdecl_DSTRING::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.ulib.dll_public_virtual:_void___cdecl_DSTRING::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x4f0]
call qword [sym.imp.ulib.dll_public_virtual:_void___cdecl_DSTRING::destructor_void____ptr64]
mov eax, dword [rsp + 0x5bc]
jmp 0x140001710
mov rax, qword [rsp + 0x5f8]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], 0
xor r9d, r9d
lea r8, [rsp + 0x1a0]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x4f0]
call qword [rsp + 0x5a8]
movzx eax, al
mov dword [rsp + 0x198], eax
jmp 0x1400016a9
lea rdx, str.ConvertFAT
mov rcx, qword [rsp + 0x330]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x5b0], rax
cmp qword [rsp + 0x5b0], 0
jne 0x140001617
mov rcx, qword [rsp + 0x330]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [rsp + 0x330], 0
mov dword [rsp + 0x5c0], 0
lea rcx, [rsp + 0x1a0]
call qword [sym.imp.ulib.dll_public_virtual:_void___cdecl_STREAM_MESSAGE::destructor_void____ptr64]
nop
lea rcx, [rsp + 0xf0]
call qword [sym.imp.ulib.dll_public_virtual:_void___cdecl_DSTRING::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.ulib.dll_public_virtual:_void___cdecl_DSTRING::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x4f0]
call qword [sym.imp.ulib.dll_public_virtual:_void___cdecl_DSTRING::destructor_void____ptr64]
mov eax, dword [rsp + 0x5c0]
jmp 0x140001710
mov dword [rsp + 0x5b8], 1
mov rax, qword [rsp + 0x5f0]
cmp dword [rax + 0xc8], 0
jne 0x140001644
mov eax, dword [rsp + 0x5b8]
or eax, 2
mov dword [rsp + 0x5b8], eax
mov rax, qword [rsp + 0x5f0]
cmp dword [rax + 0xcc], 0
je 0x140001666
mov eax, dword [rsp + 0x5b8]
or eax, 4
mov dword [rsp + 0x5b8], eax
mov rax, qword [rsp + 0x5f8]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x13
lea r9, [rsp + 0x1a0]
lea r8, [rsp + 0xf0]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x4f0]
call qword [rsp + 0x5b0]
movzx eax, al
mov dword [rsp + 0x198], eax
mov rcx, qword [rsp + 0x330]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [rsp + 0x330], 0
mov eax, dword [rsp + 0x198]
mov dword [rsp + 0x5c4], eax
lea rcx, [rsp + 0x1a0]
call qword [sym.imp.ulib.dll_public_virtual:_void___cdecl_STREAM_MESSAGE::destructor_void____ptr64]
nop
lea rcx, [rsp + 0xf0]
call qword [sym.imp.ulib.dll_public_virtual:_void___cdecl_DSTRING::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.ulib.dll_public_virtual:_void___cdecl_DSTRING::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x4f0]
call qword [sym.imp.ulib.dll_public_virtual:_void___cdecl_DSTRING::destructor_void____ptr64]
mov eax, dword [rsp + 0x5c4]
mov rcx, qword [rsp + 0x5d0]
xor rcx, rsp
call fcn.140001bb0
add rsp, 0x5e8
ret