Function at 0x18012e1f0
Capabilities:
Get thread local storage value
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rsi
push rdi
push r14
sub rsp, 0x70
mov eax, r8d
mov r14, rdx
mov rsi, rcx
and eax, 0xfff00000
cmp eax, 0x10300000
jne 0x18012e228
and r8d, 0xfffff
bts r8d, 0x1c
mov rcx, qword [rcx + 0x10]
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x60], rbp
mov qword [rsp + 0x58], r12
lea rdx, [rsp + 0x38]
or r9d, 0xffffffff
mov qword [rsp + 0x50], r13
mov dword [rsp + 0x20], 0xffffffff
mov qword [rsp + 0x48], r15
call fcn.18019f4b0
mov edi, eax
test eax, eax
js 0x18012e730
mov r12, qword [rsp + 0x38]
mov r13d, dword [r12 + 0x20]
mov dword [rsp + 0x30], r13d
test r13d, r13d
jne 0x18012e296
cmp dword [r12 + 0x10], r13d
jne 0x18012e296
xor ebp, ebp
mov dword [r12 + 0x78], ebp
mov dword [r12 + 0x10], ebp
mov dword [r12 + 0x20], ebp
jmp 0x18012e72e
mov ebx, dword [r12 + 0x78]
mov eax, ebx
and eax, 0xf0000000
cmp eax, 0xa0000000
jne 0x18012e2cd
mov eax, ebx
and eax, 0xfff00000
cmp eax, 0xa1300000
je 0x18012e2c6
cmp eax, 0xa1400000
je 0x18012e2c6
and ebx, 0xfffff
jmp 0x18012e2ef
mov ebx, 1
jmp 0x18012e2ef
mov eax, ebx
and eax, 0xfff00000
cmp eax, 0x68700000
je 0x18012e2ea
cmp eax, 0x68800000
je 0x18012e2ea
and ebx, 0xfffff
jmp 0x18012e2ef
mov ebx, dword [r12 + 0x10]
mov rdx, qword [rsp + 0xb0]
mov rcx, qword [r12 + 0x18]
xor ebp, ebp
cmp ebx, dword [r12 + 0x10]
cmova ebx, ebp
lea rdi, [rbx*8]
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov rdx, qword [rsp + 0xb8]
test rdx, rdx
je 0x18012e334
mov rax, qword [r12 + 0x18]
mov r8, rdi
lea rcx, [rdi + rax]
call sub.msvcrt.dll_memcpy
mov rdx, qword [rsp + 0xc0]
test rdx, rdx
je 0x18012e355
mov rax, qword [r12 + 0x18]
lea ecx, [rbx + rbx]
mov r8, rdi
lea rcx, [rax + rcx*8]
call sub.msvcrt.dll_memcpy
mov r8d, ebp
cmp dword [r12 + 0x10], ebp
jbe 0x18012e37d
mov rdx, rbp
mov rax, qword [r12 + 0x18]
inc r8d
add rdx, 8
mov rcx, qword [rax + rdx - 8]
inc dword [rcx + 0x3c]
cmp r8d, dword [r12 + 0x10]
jb 0x18012e362
mov rcx, qword [rsp + 0xc8]
mov edi, ebp
mov dword [rsp + 0xa0], ebp
mov eax, dword [rcx + 0x18]
mov dword [rsp + 0x38], eax
inc eax
mov dword [rcx + 0x18], eax
test r13d, r13d
je 0x18012e700
mov r13, qword [rsp + 0x90]
mov rcx, qword [rsp + 0xa8]
mov r15, rbp
movabs rdx, 0xfefefefefefefefe
mov r14, rbp
test rcx, rcx
je 0x18012e3de
mov rax, qword [r15 + rcx]
cmp rax, 0xffffffffffffffff
je 0x18012e3de
mov r14, rax
test rax, rax
je 0x18012e6d8
mov ecx, dword [0x18025e63c]
mov rsi, qword [rsi + 0x10]
test ecx, ecx
jns 0x18012e3f1
mov rcx, rbp
jmp 0x18012e404
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movabs rdx, 0xfefefefefefefefe
mov rcx, rax
cmp qword [rcx + 0x18], rbp
je 0x18012e42d
mov rbx, qword [rcx + 0x18]
test rbx, rbx
jne 0x18012e418
mov rbx, rbp
jmp 0x18012e444
mov rax, qword [rbx]
mov qword [rcx + 0x18], rax
test rax, rax
jne 0x18012e428
mov qword [rcx + 0x20], rbp
mov qword [rbx], rdx
jmp 0x18012e444
mov rcx, qword [rcx + 0x10]
mov edx, 0x188
mov r8d, 0x10
call fcn.180243b70
mov rbx, rax
test rbx, rbx
je 0x18012e53d
mov r8d, dword [rsp + 0x38]
mov rdx, qword [rsp + 0xc8]
mov r9d, edi
mov rcx, rbx
mov qword [rbx], rbp
mov qword [rbx + 8], rbp
mov qword [rbx + 0x78], rbp
mov qword [rbx + 0x80], rbp
mov qword [rbx + 0x88], rbp
mov qword [rbx + 0x90], rbp
mov dword [rbx + 0xa0], 0xffffffff
mov qword [rbx + 0xa8], 0xffffffffffffffff
mov qword [rbx + 0x40], rbp
call fcn.1801992b0
mov edi, eax
test eax, eax
js 0x18012e4ee
call fcn.18019c4f0
test al, al
je 0x18012e4b8
or qword [rbx + 0x98], 0x20000
mov rax, qword [rbx + 0xa8]
mov rcx, qword [rax + 0x10]
test cl, 0x10
je 0x18012e4d7
bt rcx, 0x15
jae 0x18012e4d7
or qword [rbx + 0x98], 0x10
mov eax, dword [rsi + 0x10]
mov edi, ebp
mov r13, rbx
mov dword [rbx + 0xa0], eax
inc dword [rsi + 0x10]
or dword [rsi + 0x28], 4
jmp 0x18012e542
call fcn.1801991c0
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x18012e502
mov rsi, rbp
jmp 0x18012e50b
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
mov edx, 0xfe
mov r8d, 0x188
mov rcx, rbx
call fcn.18024adb8
mov qword [rbx], rbp
mov rax, qword [rsi + 0x20]
test rax, rax
je 0x18012e533
mov qword [rax], rbx
mov qword [rsi + 0x20], rbx
jmp 0x18012e542
mov qword [rsi + 0x18], rbx
mov qword [rsi + 0x20], rbx
jmp 0x18012e542
mov edi, 0x8007000e
test edi, edi
js 0x18012e730
mov rsi, qword [rsp + 0x90]
mov edi, dword [rsp + 0xa0]
mov rcx, qword [rsp + 0xa8]
mov dword [r13 + 0xcc], edi
mov qword [r13 + 0x100], r12
mov rax, qword [rsi + 0x160]
mov qword [r13 + 0xd0], rax
movzx eax, byte [rsi + 0x168]
mov byte [r13 + 0xd8], al
mov rax, qword [r12 + 0x28]
mov qword [r15 + rax], r13
test rcx, rcx
je 0x18012e59d
mov qword [r15 + rcx], r13
test r14, r14
je 0x18012e60c
mov rax, qword [r14 + 0x108]
mov qword [r13 + 0x108], rax
mov eax, dword [r14 + 0x110]
mov dword [r13 + 0x110], eax
mov rax, qword [r14 + 0x128]
mov qword [r13 + 0x128], rax
mov eax, dword [r14 + 0x130]
mov dword [r13 + 0x130], eax
mov eax, dword [r14 + 0x134]
mov dword [r13 + 0x134], eax
mov eax, dword [r14 + 0x13c]
mov dword [r13 + 0x13c], eax
mov eax, dword [r14 + 0x48]
mov dword [r13 + 0x48], eax
mov eax, dword [r14 + 0xdc]
mov dword [r13 + 0xdc], eax
mov edx, dword [r13 + 0xdc]
cmp edx, 0xffffffff
je 0x18012e6a8
mov rax, qword [r12 + 0x28]
mov rcx, qword [rsi + 0x30]
mov r9, rdx
mov rax, qword [r15 + rax]
mov qword [rcx + rdx*8], rax
mov r8, qword [rsi + 0x470]
test r8, r8
je 0x18012e68c
mov rax, qword [r8 + 8]
mov ecx, edx
mov r10d, 1
and ecx, 0x3f
shr r9, 6
shl r10, cl
test qword [rax + r9*8], r10
jne 0x18012e696
inc dword [r8 + 0x14]
or qword [rax + r9*8], r10
mov eax, dword [r8 + 0x18]
cmp eax, 0xffffffff
je 0x18012e66d
cmp edx, eax
jae 0x18012e671
mov dword [r8 + 0x18], edx
mov eax, dword [r8 + 0x1c]
cmp eax, 0xffffffff
je 0x18012e67e
cmp edx, eax
jbe 0x18012e6a0
mov rcx, qword [rsp + 0xa8]
mov dword [r8 + 0x1c], edx
jmp 0x18012e6a8
mov rcx, qword [rsp + 0xa8]
jmp 0x18012e6a8
mov rcx, qword [rsp + 0xa8]
jmp 0x18012e6a8
mov rcx, qword [rsp + 0xa8]
mov eax, dword [rsp + 0xd0]
inc edi
add r15, 8
mov dword [r13 + 0xa4], eax
mov dword [rsp + 0xa0], edi
cmp edi, dword [rsp + 0x30]
jae 0x18012e6f3
movabs rdx, 0xfefefefefefefefe
jmp 0x18012e3c0
lea r9, [0x180044960]
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call fcn.180109730
mov eax, 0x80004005
jmp 0x18012e732
mov r13d, dword [rsp + 0x30]
mov r14, qword [rsp + 0x98]
mov r9, qword [r12 + 0x28]
mov r8d, r13d
mov rdx, r12
mov rcx, rsi
mov byte [rsp + 0x20], 1
call fcn.180107e20
mov edi, eax
test eax, eax
js 0x18012e730
mov qword [r12 + 0x70], r14
mov eax, dword [rsi + 0x17c]
mov dword [r12 + 0x68], eax
mov edi, ebp
mov eax, edi
mov r15, qword [rsp + 0x48]
mov r13, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x68]
add rsp, 0x70
pop r14
pop rdi
pop rsi
ret