Function at 0x100088200
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xa8
mov qword [rbp + 7], 0xfffffffffffffffe
mov r14, rcx
mov ebx, 2
mov dword [rbp + 0x77], ebx
call fcn.10006adc0
mov rcx, qword [rax + 0x20]
xor r12d, r12d
test rcx, rcx
je 0x100088251
test byte [rcx + 0x590], 0x10
cmovne rcx, r12
add rcx, 0x398
call fcn.1000e0260
mov r13, rax
mov rcx, qword [r14 + 0x40]
add rcx, qword [r14 + 0x50]
add rcx, qword [r14 + 0x48]
cmp dword [0x100255a10], 1
jne 0x100088280
mov rax, qword [r14 + 0x68]
sub rax, qword [r14 + 0x60]
add rcx, rax
lea rax, [rcx + 1]
cqo
sub rax, rdx
sar rax, 1
cmp qword [r14 + 0x88], rax
jl 0x1000882b0
test byte [r14 + 0x4120], bl
je 0x1000882ab
mov rcx, r14
call fcn.1000846c0
test rax, rax
jg 0x1000882b0
mov eax, r12d
jmp 0x1000882b5
mov eax, 1
mov qword [rbp - 0x31], r12
test eax, eax
je 0x100088746
cmp qword [r14 + 0x70], 0
jle 0x10008832d
movzx ebx, word [r14 + 0x80]
call fcn.10006bea0
mov esi, eax
call fcn.10006add0
mov r15, rax
movzx edi, r12w
test esi, esi
je 0x10008832d
movzx r14d, si
nop dword [rax + rax]
movzx edx, bx
mov rcx, r15
call fcn.100082130
mov qword [rsp + 0x20], r12
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 1]
mov rcx, rax
call fcn.1000843b0
movzx ebx, bx
inc ebx
cmp ebx, r14d
jl 0x10008831f
mov ebx, r12d
inc di
movzx eax, di
cmp eax, esi
jb 0x1000882f0
mov r14, qword [rbp + 0x67]
movzx ebx, word [r14 + 0x80]
mov r9, r12
mov edx, r12d
movzx r10d, byte [0x10024cf64]
mov r8d, dword [0x10024cf60]
mov r11, qword [0x10024cf58]
cmp edx, r8d
jae 0x100088370
movzx ecx, r10b
mov eax, edx
shl eax, cl
mov ecx, eax
inc edx
add rcx, r11
je 0x100088370
movzx eax, bx
add r9, qword [rcx + rax*8]
jmp 0x100088351
mov rax, qword [r14 + 0x58]
inc rax
cqo
sub rax, rdx
sar rax, 1
mov r15, rax
mov rax, qword [r14 + 0x70]
inc rax
cqo
sub rax, rdx
sar rax, 1
sub r15, rax
sub r15, r9
mov rcx, r14
call fcn.100084680
mov rdi, rax
mov qword [rbp - 0x29], rax
test r13, r13
je 0x100088583
mov qword [rbp - 0x59], r12
mov qword [rbp - 0x51], r12
mov qword [rbp - 0x41], r12
mov dword [rbp - 0x39], r12d
mov qword [rbp - 0x49], r12
mov qword [rbp - 0x49], r13
mov rcx, r13
call fcn.100081e00
mov rdi, rax
mov qword [rbp - 0x59], rax
mov rcx, r13
call fcn.100081eb0
mov qword [rbp - 0x51], rax
mov rsi, rdi
test rdi, rdi
je 0x100088501
nop
mov rax, qword [rsi]
xor edx, edx
lea r8d, [rdx + 1]
mov rcx, rsi
call qword [rax + 0x18]
mov rbx, r12
test rdi, rdi
je 0x1000884f5
cmp rdi, qword [rbp - 0x51]
je 0x1000884c7
call fcn.100064800
mov edx, eax
xor eax, eax
lock cmpxchg dword [r13 + 0x10], edx
mov ecx, r12d
sete cl
test ecx, ecx
jne 0x100088437
lea rcx, [r13 + 0x10]
call fcn.100057bf0
mov rbx, qword [rsi + 0x10]
cmp rbx, r13
je 0x10008844b
test rbx, rbx
je 0x10008844b
add rbx, 0xfffffffffffffff8
jmp 0x10008844e
mov rbx, r12
test rbx, rbx
je 0x100088499
mov ecx, dword [rbx + 0x18]
test ecx, ecx
je 0x10008847d
nop word [rax + rax]
lea edx, [rcx + 1]
mov eax, ecx
lock cmpxchg dword [rbx + 0x18], edx
cmp ecx, eax
je 0x100088479
pause
mov ecx, dword [rbx + 0x18]
test ecx, ecx
jne 0x100088460
jmp 0x10008847d
test edx, edx
jne 0x100088499
mov rbx, qword [rbx + 0x10]
cmp rbx, r13
je 0x100088491
test rbx, rbx
je 0x100088491
add rbx, 0xfffffffffffffff8
jmp 0x100088494
mov rbx, r12
test rbx, rbx
jne 0x100088453
mov dword [r13 + 0x10], r12d
mov qword [rbp - 0x59], rbx
or eax, 0xffffffff
lock xadd dword [rsi + 0x18], eax
dec eax
jne 0x1000884f1
cmp qword [rsi + 0x10], 0
je 0x1000884bf
lea rcx, [rsi + 8]
call fcn.100081f60
jmp 0x1000884f1
mov rcx, rsi
mov rax, qword [rsi]
jmp 0x1000884ef
mov qword [rbp - 0x59], r12
lea rcx, [rdi + 8]
or eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
dec eax
jne 0x1000884f1
cmp qword [rcx + 8], rbx
je 0x1000884e8
call fcn.100081f60
jmp 0x1000884f1
add rcx, 0xfffffffffffffff8
mov rax, qword [rcx]
call qword [rax]
mov rdi, qword [rbp - 0x59]
mov rsi, rbx
test rbx, rbx
jne 0x1000883f0
test rdi, rdi
je 0x100088531
lea rcx, [rdi + 8]
or eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
dec eax
jne 0x10008852d
cmp qword [rcx + 8], 0
je 0x100088524
call fcn.100081f60
jmp 0x10008852d
add rcx, 0xfffffffffffffff8
mov rax, qword [rcx]
call qword [rax]
mov qword [rbp - 0x59], r12
mov rcx, qword [rbp - 0x51]
test rcx, rcx
je 0x100088565
add rcx, 8
or eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
dec eax
jne 0x100088561
cmp qword [rcx + 8], 0
je 0x100088558
call fcn.100081f60
jmp 0x100088561
add rcx, 0xfffffffffffffff8
mov rax, qword [rcx]
call qword [rax]
mov qword [rbp - 0x51], r12
mov qword [rbp - 0x49], r12
movzx r10d, byte [0x10024cf64]
mov r8d, dword [0x10024cf60]
mov r11, qword [0x10024cf58]
mov rdi, qword [rbp - 0x29]
movzx ebx, word [r14 + 0x80]
mov r9, r12
mov edx, r12d
cmp edx, r8d
jae 0x1000885b0
movzx ecx, r10b
mov eax, edx
shl eax, cl
mov ecx, eax
inc edx
add rcx, r11
je 0x1000885b0
movzx eax, bx
add r9, qword [rcx + rax*8]
jmp 0x100088591
mov rax, qword [r14 + 0x58]
inc rax
cqo
sub rax, rdx
sar rax, 1
mov rbx, rax
mov rax, qword [r14 + 0x70]
inc rax
cqo
sub rax, rdx
sar rax, 1
sub rbx, rax
sub rbx, r9
mov rcx, r14
call fcn.100084680
mov rsi, qword [rbp + 0x6f]
cmp rbx, qword [rsi]
jle 0x1000885fd
cmp dword [rsi + 8], 0
jne 0x100088737
cmp rbx, r15
jg 0x100088737
jmp 0x100088602
cmp rbx, r15
jg 0x10008860b
cmp rax, rdi
jge 0x10008873c
call fcn.100068a00
mov rdi, rax
mov rbx, qword gs:[0x30]
add rbx, rax
mov rcx, rax
call fcn.10006c530
test eax, eax
jne 0x100088636
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
test rbx, rbx
je 0x100088647
mov rcx, qword [rbx + 0xd8]
test rcx, rcx
jne 0x10008867e
call fcn.100063d30
call fcn.100068a00
mov rdi, rax
mov rbx, qword gs:[0x30]
add rbx, rax
mov rcx, rax
call fcn.10006c530
test eax, eax
jne 0x100088677
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
mov rcx, qword [rbx + 0xd8]
rdtsc
shl rdx, 0x20
or rax, rdx
mov r8, qword [rcx + 0x2f8]
cmp rax, r8
ja 0x1000886b8
mov rdx, r8
sub rdx, rax
mov rax, qword [rcx + 0x218]
cmp rdx, qword [rax + 0xab0]
jbe 0x1000886bd
movabs rax, 0x7fffffffffffffff
cmp r8, rax
je 0x1000886bd
call fcn.1000655c0
mov r9, qword [rbp - 0x31]
inc r9
mov qword [rbp - 0x31], r9
movabs rax, 0x624dd2f1a9fbe77
mul r9
mov rcx, r9
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 9
imul rcx, rcx, 0x3e8
cmp r9, rcx
jne 0x100088716
mov dword [rbp - 0x21], 0x400069
mov qword [rbp - 0x19], r12
mov qword [rbp - 9], r12
mov qword [rbp - 0x11], r12
mov qword [rbp - 1], r12
lea rdx, [rbp - 0x21]
mov ecx, 1
call fcn.100058870
mov rcx, r14
call fcn.100084790
test eax, eax
jne 0x1000882c1
mov rcx, r14
call fcn.1000847e0
test eax, eax
je 0x100088743
jmp 0x1000882c1
mov ebx, r12d
jmp 0x10008875c
mov ebx, 2
jmp 0x10008875c
mov ebx, dword [rbp + 0x77]
mov r11, qword [0x10024cf58]
mov r8d, dword [0x10024cf60]
movzx r10d, byte [0x10024cf64]
mov rcx, qword [r14 + 0x48]
add rcx, qword [r14 + 0x50]
add rcx, qword [r14 + 0x40]
cmp dword [0x100255a10], 1
jne 0x10008877c
mov rax, qword [r14 + 0x68]
sub rax, qword [r14 + 0x60]
add rcx, rax
lea rax, [rcx + 1]
cqo
sub rax, rdx
sar rax, 1
cmp qword [r14 + 0x88], rax
jl 0x1000887e4
test byte [r14 + 0x4120], 2
je 0x1000887dd
movzx r9d, word [r14 + 0x80]
mov edx, r12d
cmp edx, r8d
jae 0x1000887c6
movzx ecx, r10b
mov eax, edx
shl eax, cl
mov ecx, eax
inc edx
add rcx, r11
je 0x1000887c6
movzx eax, r9w
add r12, qword [rcx + rax*8]
jmp 0x1000887a6
mov rax, qword [r14 + 0x58]
inc rax
cqo
sub rax, rdx
sar rax, 1
sub rax, r12
test rax, rax
jg 0x1000887e4
mov eax, 2
jmp 0x1000887e6
mov eax, ebx
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret