Function at 0x180015120
Capabilities:
Allocate thread local storage
Get system information on windows

Disassembly:
mov qword ss:[rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x30
mov rsi, rcx
mov dword [rsp + 0x50], 0xc0000001
xor r14d, r14d
mov qword [0x1801528c8], r14
mov eax, 0xffffffff
xchg dword [0x1801528d0], eax
mov qword [rcx + 0x98], rdx
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x180152880], eax
cmp eax, 0xffffffff
jne 0x1800151cc
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, 0xe80f0000
lea rax, [0x180146040]
mov rcx, qword [0x180146040]
cmp rcx, rax
je 0x1800154bc
test byte ds:[rcx + 0x1c], 2
je 0x1800154bc
cmp byte [rcx + 0x19], 2
jb 0x1800154bc
lea edx, [r14 + 0x27]
mov r9d, ebx
lea r8, [0x180132018]
mov rcx, qword [rcx + 0x10]
call fcn.180012460
jmp 0x1800154bc
mov dword [0x180156f6c], eax
lea rcx, [0x180131590]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
nop
test rax, rax
jne 0x18001520b
lea rax, [0x180146040]
mov rcx, qword [0x180146040]
cmp rcx, rax
je 0x18001525d
test byte [rcx + 0x1c], 2
je 0x18001525d
cmp byte [rcx + 0x19], 1
jb 0x18001525d
mov edx, 0x28
jmp 0x18001524d
lea rdx, str.RtlGetLastWin32Error
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x180157168], rax
test rax, rax
jne 0x180015267
lea rax, [0x180146040]
mov rcx, qword [0x180146040]
cmp rcx, rax
je 0x18001525d
test byte ds:[rcx + 0x1c], 2
je 0x18001525d
cmp byte [rcx + 0x19], 1
jb 0x18001525d
mov edx, 0x29
lea r8, [0x180132018]
mov rcx, qword [rcx + 0x10]
call fcn.180011520
mov ebx, 0xe8040019
jmp 0x1800154bc
mov qword ss:[rsp + 0x28], r14
mov qword [rsp + 0x20], r14
xor r9d, r9d
xor edx, edx
lea ecx, [rdx + 2]
mov r8d, 0x400000
call qword [sym.imp.ntdll.dll_RtlCreateHeap]
mov qword [rsi + 0x90], rax
test rax, rax
jne 0x1800152d5
lea rax, [0x180146040]
mov rcx, qword [0x180146040]
cmp rcx, rax
je 0x1800152cc
test byte [rcx + 0x1c], 2
je 0x1800152cc
cmp byte [rcx + 0x19], 2
jb 0x1800152cc
mov edx, 0x2a
mov r9d, 0xc0000001
lea r8, [0x180132018]
mov rcx, qword [rcx + 0x10]
call fcn.180012460
mov ebx, dword [rsp + 0x50]
jmp 0x1800154bc
mov ecx, 1
mov eax, 0xffffffff
lock cmpxchg dword [0x1801528d0], ecx
je 0x1800152f0
mov ebx, 0xc0000510
jmp 0x180015301
lea rax, [0x1800142a0]
mov qword [0x1801528c8], rax
mov ebx, r14d
mov dword [rsp + 0x50], ebx
test ebx, ebx
jns 0x180015368
lea rax, [0x180146040]
mov rcx, qword [0x180146040]
nop word [rax + rax]
cmp rcx, rax
je 0x1800154bc
test byte [rcx + 0x1c], 2
je 0x1800154bc
cmp byte [rcx + 0x19], 2
jb 0x1800154bc
lfence
mov edx, 0x2b
mov r9d, ebx
lea r8, [0x180132018]
mov rcx, qword [0x180146040]
mov rcx, qword [rcx + 0x10]
call fcn.180012460
mov ebx, dword [rsp + 0x50]
jmp 0x1800154bc
mov rcx, rsi
call fcn.1800140e0
mov ebx, eax
mov dword [rsp + 0x50], eax
test eax, eax
jns 0x1800153d1
lea rax, [0x180146040]
mov rcx, qword [0x180146040]
cmp rcx, rax
je 0x1800154bc
test byte [rcx + 0x1c], 2
je 0x1800154bc
cmp byte ds:[rcx + 0x19], 2
jb 0x1800154bc
lfence
mov edx, 0x2c
mov ebx, dword [rsp + 0x50]
mov r9d, ebx
lea r8, [0x180132018]
mov rcx, qword [0x180146040]
mov rcx, qword [rcx + 0x10]
call fcn.180012460
jmp 0x1800154bc
lfence
lea rcx, [rsi + 8]
call qword [sym.imp.KERNEL32.dll_InitializeSRWLock]
mov qword [rsi + 0x10], r14
lea rax, [0x1800175a0]
mov qword [rsi + 0x18], rax
lea rax, [0x1800175c0]
mov qword [rsi + 0x20], rax
mov dword [rsi + 0x28], 0x54424323
mov byte [rsi + 0x30], 0
mov rdi, qword [rsi + 0x90]
lea rcx, [rsi + 0x58]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rcx, [0x180152710]
nop dword [rax + rax]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov qword [rsi + 0x88], rdi
lfence
lea rcx, [rsi + 0xa0]
mov dword [rsp + 0x20], 0xa
mov r9d, 0x15
lea r8, [0x180015080]
lea rdx, [0x180014fc0]
call fcn.18008a9d0
mov ebx, eax
mov dword [rsp + 0x50], eax
test eax, eax
jns 0x1800154ab
lea rax, [0x180146040]
mov rcx, qword [0x180146040]
cmp rcx, rax
je 0x1800154bc
test byte [rcx + 0x1c], 2
je 0x1800154bc
cmp byte [rcx + 0x19], 2
jb 0x1800154bc
lfence
mov edx, 0x2e
mov ebx, dword [rsp + 0x50]
mov r9d, ebx
lea r8, [0x180132018]
mov rcx, qword [0x180146040]
mov rcx, qword [rcx + 0x10]
call fcn.180012460
jmp 0x1800154bc
lea rax, [0x1800139a0]
mov qword [0x180157288], rax
mov ebx, r14d
mov eax, ebx
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x58]
add rsp, 0x30
pop r14
ret