Function at 0x180002f7c
Capabilities:
Allocate thread local storage
Get disk information
Identify system language via api

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x40
xor r14d, r14d
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
mov esi, 0x1b
cmp ecx, 0x7a
je 0x180003274
lea ebp, [rsi + 0x30]
call qword [sym.imp.KERNEL32.dll_AreFileApisANSI]
mov eax, esi
cdq
idiv ebp
mov esi, eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
call fcn.180003418
movsx ebp, al
mov eax, esi
sub eax, ebp
cmp eax, 0x6d
jne 0x180003048
movsd xmm6, qword [0x18002fdc0]
lea edi, [rax - 0x3e]
lea ebx, [rax - 0x60]
movaps xmm0, xmm6
call fcn.180003418
xorps xmm0, xmm0
movsx ecx, al
cvtsi2ss xmm0, rdi
movd xmm6, ecx
cvtdq2pd xmm6, xmm6
call fcn.1800036bc
movsxd rdi, eax
imul ebx, edi
xorps xmm0, xmm0
movaps xmm1, xmm6
movsxd rax, ebx
imul rax, rdi
cvtsi2sd xmm0, rax
subsd xmm1, xmm0
cvttsd2si eax, xmm1
cmp eax, 0x30
je 0x180002fdf
cmp eax, 0xf
jge 0x180003043
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov ecx, 0x55
dec ecx
mov eax, 1
cdq
idiv ecx
cmp eax, 5
jge 0x180003034
mov eax, 0x11a0
cmp eax, 0x71
jle 0x1800030c9
mov cl, 0x31
call fcn.180002bf4
movsd xmm6, qword [0x18002fd48]
movsd xmm7, qword [0x18002fd40]
call qword [sym.imp.USER32.dll_IsWow64Message]
mulsd xmm7, xmm6
movaps xmm0, xmm6
mulsd xmm0, xmm6
cvttsd2si rax, xmm7
xorps xmm7, xmm7
movaps xmm6, xmm0
cvtsi2sd xmm7, rax
movaps xmm1, xmm7
divsd xmm1, xmm0
cvttsd2si eax, xmm1
cmp eax, 0x5e
jle 0x180003064
mov dword [rsp + 0x60], 0x3f800000
mov ebx, 0x4d
add ebx, ebx
movd xmm6, ebx
cvtdq2ps xmm6, xmm6
movaps xmm0, xmm6
call fcn.1800036bc
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm6, xmm0
cvttss2si eax, xmm6
cmp eax, 5
jl 0x1800030a2
jmp 0x1800030f5
movsd xmm0, qword [0x18002fd50]
call fcn.180003418
movsx ecx, al
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x18002fdd0]
mulsd xmm0, qword [0x18002feb0]
cvttsd2si eax, xmm0
cmp eax, 0xb
je 0x1800031bf
call qword [sym.imp.KERNEL32.dll_GetErrorMode]
mov eax, 0x43
imul eax, eax
cmp eax, 0x17
jl 0x180003109
cmp eax, 0x19
jl 0x180003140
mov ecx, 0x45
call fcn.180002f7c
xorps xmm2, xmm2
cvttsd2si rax, xmm0
cvtsi2sd xmm2, rax
movaps xmm1, xmm2
addsd xmm1, qword [0x18002fcf8]
subsd xmm2, xmm1
cvttsd2si eax, xmm2
cmp eax, 0x7e
je 0x180003152
call qword [sym.imp.KERNEL32.dll_SwitchToThread]
mov eax, 0x6c
jmp 0x180003155
mov eax, r14d
cmp eax, 8
jge 0x180003238
mov cl, 0x47
call fcn.180002bf4
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [0x18002fd38]
addsd xmm0, qword [0x18002fdc8]
cvttsd2si eax, xmm0
cmp eax, 3
jge 0x180003193
call qword [sym.imp.USER32.dll_GetForegroundWindow]
xor eax, eax
cqo
idiv r14
cmp eax, 0x61
je 0x1800031a3
call qword [sym.imp.KERNEL32.dll_GetThreadErrorMode]
jmp 0x180002fab
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov ecx, 0x42
call fcn.180002f7c
cvttsd2si eax, xmm0
movsx ecx, al
jmp 0x18000326b
movss xmm0, dword [0x18002fe4c]
call fcn.1800036bc
movss xmm6, dword [0x18002fe78]
jmp 0x1800031ea
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultUILanguage]
movaps xmm0, xmm6
subss xmm0, xmm6
movaps xmm6, xmm0
cvttss2si eax, xmm0
cmp eax, 0x51
jl 0x1800031d6
movsd xmm7, qword [0x18002fd60]
cmp eax, 0x72
je 0x180003238
movsd xmm6, qword [0x18002fd20]
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
movaps xmm0, xmm7
subsd xmm0, xmm6
xorps xmm6, xmm6
cvttsd2si rax, xmm0
cvtsi2sd xmm6, rax
movaps xmm1, xmm6
movaps xmm0, xmm6
subsd xmm1, xmm7
addsd xmm0, xmm1
movaps xmm7, xmm1
cvttsd2si eax, xmm0
cmp eax, 0x72
jne 0x180003204
call qword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movss xmm0, dword [0x18002fe20]
call fcn.1800036bc
movsd xmm1, qword [0x18002fe08]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
addsd xmm1, qword [0x18002fdf8]
cvttsd2si ecx, xmm1
cmp ecx, 0x7a
jne 0x180002fab
call qword [sym.imp.KERNEL32.dll_GetThreadUILanguage]
xorps xmm0, xmm0
call fcn.180003418
mov cl, 0x58
call fcn.180002bf4
xorps xmm6, xmm6
cvtsi2ss xmm6, rax
cvttss2si ecx, xmm6
call fcn.180002bf4
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
addss xmm0, xmm6
cvttss2si eax, xmm0
cmp eax, 0x7b
je 0x1800032b5
call qword [sym.imp.ole32.dll_CoUninitialize]
mov ebx, 0x67
call qword [sym.imp.USER32.dll_GetCapture]
imul rbx, rbx
cmp ebx, 0xc
jge 0x1800032ba
call qword [sym.imp.USER32.dll_GetKBCodePage]
mov cl, 0x45
call fcn.180002bf4
movsx ecx, al
mov ebx, 0x73
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
addss xmm0, dword [0x18002fca4]
cvttss2si eax, xmm0
cmp eax, 3
jge 0x180003312
call qword [sym.imp.KERNEL32.dll_GetLargePageMinimum]
movsd xmm0, qword [0x18002fd58]
call fcn.180003418
mov ecx, ebx
call fcn.180002f7c
jmp 0x180003335
call qword [sym.imp.KERNEL32.dll_IsSystemResumeAutomatic]
movsd xmm0, qword [0x18002fdc0]
call fcn.180003418
movsx ecx, al
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
call fcn.180003418
movss xmm6, dword [0x18002fe64]
call qword [sym.imp.USER32.dll_GetClipboardViewer]
movaps xmm0, xmm6
call fcn.1800036bc
movaps xmm0, xmm6
xorps xmm1, xmm1
subss xmm0, xmm6
movd xmm2, eax
cvtdq2pd xmm2, xmm2
cvtss2sd xmm1, xmm0
movaps xmm6, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
cmp eax, 2
jge 0x180003384
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
movsd xmm0, qword [0x18002fd40]
call fcn.180003418
movsd xmm2, qword [0x18002fd80]
mov eax, r14d
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movaps xmm0, xmm1
mulsd xmm0, xmm2
divsd xmm1, xmm0
movaps xmm2, xmm0
cvttsd2si eax, xmm1
cmp eax, 0x72
jg 0x18000338f
cmp eax, 0x5f
je 0x18000333d
cmp eax, 0x31
jl 0x1800033f3
movsd xmm0, qword [0x18002fde0]
call fcn.180003418
movsx ecx, al
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x18002fcb8]
cvttsd2si eax, xmm0
cmp eax, 0x78
jg 0x1800033eb
mov ecx, 0x79
call fcn.180002f7c
call qword [sym.imp.USER32.dll_GetClipboardSequenceNumber]
jmp 0x1800033eb
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
movaps xmm6, xmmword [rsp + 0x30]
movaps xmm7, xmmword [rsp + 0x20]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
add rsp, 0x40
pop r14
pop rdi
pop rsi
ret