Function at 0x1000e4e50
Capabilities:
Get thread local storage value

Disassembly:
mov dword [rsp + 0x18], r8d
push rbp
push rsi
push r12
push r14
push r15
sub rsp, 0x50
xor r12d, r12d
mov ebp, r9d
mov r15, rdx
mov r14, rcx
lea rsi, [rcx + 0x40]
test rcx, rcx
jne 0x1000e4e79
mov esi, r12d
test byte [rcx + 0x5e0], 8
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x40], r13
jne 0x1000e4f42
mov ebx, dword [rcx + 0xa00]
mov rax, qword [rcx + 0x980]
and ebx, 1
mov qword [rsp + 0x88], rax
lock or dword [rsp], r12d
mov rax, qword [rcx + 0x940]
lea rdi, [rcx + 0x660]
mov qword [rsp + 0x80], rax
mov r13, qword [rsp + 0x80]
mov rax, qword [rsp + 0x88]
sub r13, rax
call fcn.100068bb0
test byte [rax + 0xbc], 2
jne 0x1000e4f42
test ebx, ebx
jne 0x1000e4f14
test byte [r14 + 0x140], 1
jne 0x1000e4f14
cmp dword [rdi + 0x94], 1
jne 0x1000e4f42
lea edx, [rbx + 1]
mov rcx, rdi
call fcn.100116940
mov dword [rdi + 4], r12d
jmp 0x1000e4f42
mov ebx, dword [rdi + 4]
mov eax, 0x400
mov r9, r13
inc ebx
mov edx, 1
mov rcx, rdi
cmp ebx, eax
mov qword [rsp + 0x20], 0xffffffffffffffff
cmova ebx, eax
mov r8d, ebx
call fcn.100116900
mov dword [rdi + 4], ebx
movzx eax, word [rsp + 0xa8]
movzx r9d, word [rsp + 0xa0]
mov ecx, dword [rsp + 0x90]
test r15, r15
mov word [rsp + 0x20], ax
cmovne rsi, r15
or ebp, 0x10
mov edx, ebp
mov r8, rsi
call fcn.100095bf0
mov r15, rax
test rax, rax
je 0x1000e513c
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x110]
mov rsi, rax
call fcn.100068a00
mov rbp, qword gs:[0x30]
mov rcx, rax
mov rbx, rax
add rbp, rax
call fcn.10006c530
test eax, eax
jne 0x1000e4fb9
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbp, rax
test rbp, rbp
je 0x1000e4fca
mov rbp, qword [rbp + 0xd8]
test rbp, rbp
jne 0x1000e5001
call fcn.100063d30
call fcn.100068a00
mov rbp, qword gs:[0x30]
mov rcx, rax
mov rbx, rax
add rbp, rax
call fcn.10006c530
test eax, eax
jne 0x1000e4ffa
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbp, rax
mov rbp, qword [rbp + 0xd8]
lea rcx, [rbp + 0x300]
call fcn.100065090
mov eax, dword [rsi + 0x40]
mov ecx, eax
xor ecx, 1
and ecx, eax
mov dword [rsi + 0x40], ecx
mov rdi, qword [rbp + 0x3a0]
mov rbx, qword [rbp + 0x2e8]
call fcn.10011b7d0
test eax, eax
je 0x1000e5043
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov r11, qword [rsp + 0x30]
jmp 0x1000e504b
mov r11, qword [0x7ffe0008]
cmp r11, rbx
jb 0x1000e5055
sub r11, rbx
jmp 0x1000e5058
mov r11, r12
lea rax, [r11 + rdi]
mov qword [rsi + 8], rax
cmp qword [rbp + 0x308], r12
je 0x1000e5093
rdtsc
shl rdx, 0x20
or rax, rdx
mov rcx, rax
mov rax, qword [rbp + 0x310]
cmp rcx, rax
jbe 0x1000e5086
sub rcx, rax
jmp 0x1000e5089
mov rcx, r12
mov r12, qword [rbp + 0x318]
add r12, rcx
mov qword [rsi + 0x10], r12
mov rax, qword [rbp + 0xc8]
mov qword [rsi + 0x28], rbp
mov qword [rsi + 0x18], rax
call fcn.100068a00
mov rbx, qword gs:[0x30]
mov rcx, rax
mov rdi, rax
add rbx, rax
call fcn.10006c530
test eax, eax
jne 0x1000e50d1
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
test rbx, rbx
je 0x1000e50e2
mov rcx, qword [rbx + 0xd8]
test rcx, rcx
jne 0x1000e5119
call fcn.100063d30
call fcn.100068a00
mov rbx, qword gs:[0x30]
mov rcx, rax
mov rdi, rax
add rbx, rax
call fcn.10006c530
test eax, eax
jne 0x1000e5112
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
mov rcx, qword [rbx + 0xd8]
mov eax, dword [rcx + 0x88]
mov dword [rsi + 4], eax
mov eax, dword [rcx + 0x8c]
mov dword [rsi + 0x20], eax
test byte [r14 + 0x5e0], 0x10
mov rax, r15
je 0x1000e513c
or dword [rsi + 0x40], 2
mov r13, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x98]
add rsp, 0x50
pop r15
pop r14
pop r12
pop rsi
pop rbp
ret