Function at 0x100088a80
Capabilities:
Get thread local storage value

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
call fcn.100068bb0
mov rcx, rbx
test byte [rax + 0xc4], 0x80
je 0x100084834
add rsp, 0x20
pop rbx
jmp 0x100088800
add rsp, 0x20
pop rbx
jmp 0x100088a80
push rsi
sub rsp, 0x60
cmp dword [0x100255a10], 1
mov rsi, rcx
jne 0x10008881a
xor eax, eax
add rsp, 0x60
pop rsi
ret
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], rbp
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x50], r13
mov r13d, dword [rcx + 0x4120]
shr r13d, 1
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x40], r15
not r13d
and r13d, 1
shl r13, 0xa
call fcn.1000684d0
xor ebp, ebp
cmp dword [rax], 1
jne 0x1000888bd
movzx ebx, word [rsi + 0x80]
call fcn.10006bea0
mov r14d, eax
call fcn.10006add0
movzx edi, bp
mov r12, rax
test r14d, r14d
je 0x1000888bd
movzx r15d, r14w
movzx edx, bx
mov rcx, r12
call fcn.100082130
xor r9d, r9d
xor r8d, r8d
or rdx, 0xffffffffffffffff
mov rcx, rax
mov qword [rsp + 0x20], rbp
call fcn.1000843b0
movzx ebx, bx
inc ebx
cmp ebx, r15d
jl 0x1000888b2
mov ebx, ebp
inc di
movzx eax, di
cmp eax, r14d
jb 0x100088884
mov rcx, qword [rsi + 0x50]
add rcx, qword [rsi + 0x48]
add rcx, qword [rsi + 0x40]
cmp dword [0x100255a10], 1
jne 0x1000888dd
mov rax, qword [rsi + 0x68]
sub rax, qword [rsi + 0x60]
add rcx, rax
lea rax, [rcx + 1]
cqo
sub rax, rdx
sar rax, 1
cmp qword [rsi + 0x88], rax
jl 0x100088910
test byte [rsi + 0x4120], 2
je 0x100088995
mov rcx, rsi
call fcn.1000846c0
test rax, rax
jle 0x100088995
cmp qword [rsi + 0x70], rbp
jle 0x100088995
movzx ebx, word [rsi + 0x80]
call fcn.10006bea0
mov r14d, eax
call fcn.10006add0
movzx edi, bp
mov r12, rax
test r14d, r14d
je 0x100088979
movzx r15d, r14w
nop dword [rax]
movzx edx, bx
mov rcx, r12
call fcn.100082130
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 1]
mov rcx, rax
mov qword [rsp + 0x20], rbp
call fcn.1000843b0
movzx ebx, bx
inc ebx
cmp ebx, r15d
jl 0x10008896e
mov ebx, ebp
inc di
movzx eax, di
cmp eax, r14d
jb 0x100088940
mov rcx, rsi
call fcn.100084790
test eax, eax
jne 0x100088910
mov rcx, rsi
call fcn.1000847e0
test eax, eax
jne 0x100088910
mov r15, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
mov r12, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x80]
mov qword [rsp + 0x30], r13
mov r13, qword [rsp + 0x50]
mov dword [rsp + 0x38], 1
mov ebx, ebp
mov ecx, ebx
test ebx, ebx
je 0x1000889fe
dec ecx
je 0x1000889ef
lea r8, [0x1004df0e8]
lea rdx, [0x1004df0f0]
mov r9d, 0x1767
mov ecx, 1
mov qword [rsp + 0x20], rbp
call fcn.1001522c0
jmp 0x100088a0d
lea rdx, [rsp + 0x30]
mov rcx, rsi
call fcn.100088200
jmp 0x100088a0b
lea rdx, [rsp + 0x30]
mov rcx, rsi
call fcn.100087c50
mov ebx, eax
cmp ebx, 2
jne 0x1000889c0
mov rcx, qword [rsi + 0x50]
mov rbx, qword [rsp + 0x70]
add rcx, qword [rsi + 0x48]
add rcx, qword [rsi + 0x40]
cmp dword [0x100255a10], 1
jne 0x100088a37
mov rax, qword [rsi + 0x68]
sub rax, qword [rsi + 0x60]
add rcx, rax
lea rax, [rcx + 1]
cqo
sub rax, rdx
sar rax, 1
cmp qword [rsi + 0x88], rax
jl 0x100088a62
test byte [rsi + 0x4120], 2
je 0x100088a67
mov rcx, rsi
call fcn.1000846c0
test rax, rax
jle 0x100088a67
mov ebp, 1
mov eax, ebp
mov rbp, qword [rsp + 0x78]
add rsp, 0x60
pop rsi
ret
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x58]
sub rsp, 0x130
mov qword [rbp + 8], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x10022f440]
xor rax, rsp
mov qword [rbp + 0x20], rax
mov r15, rcx
mov qword [rbp - 0x78], rcx
cmp dword [0x100255a10], 1
jne 0x100088ad0
xor eax, eax
jmp 0x100089194
mov ecx, 1
call fcn.100068350
mov qword [rbp - 0x30], rax
mov ecx, dword [rax + 0xc]
mov dword [rbp - 0x70], ecx
mov dword [rsp + 0x68], ecx
mov r8, qword [rax]
lea rdx, [rsp + 0x68]
mov rcx, rax
call qword [r8 + 0x10]
mov r13, rax
mov qword [rbp - 0x80], rax
mov r12d, 1
mov dword [rsp + 0x60], r12d
movzx ebx, word [r15 + 0x80]
mov word [rsp + 0x74], bx
call fcn.10006adc0
mov rcx, qword [rax + 0x20]
xor edi, edi
test rcx, rcx
je 0x100088b31
test byte [rcx + 0x590], 0x10
cmovne rcx, rdi
add rcx, 0x398
call fcn.1000e0260
mov qword [rbp - 0x38], rax
movzx ebx, bx
mov dword [rsp + 0x70], ebx
mov ecx, ebx
call fcn.10006bde0
mov rcx, qword [rax + 8]
mov qword [rbp + 0x10], rcx
mov rcx, qword [rax + 0x10]
mov qword [rbp + 0x18], rcx
call fcn.1000684d0
cmp dword [rax], r12d
jne 0x100088bd6
movzx ebx, word [r15 + 0x80]
call fcn.10006bea0
mov esi, eax
call fcn.10006add0
mov r15, rax
test esi, esi
je 0x100088bce
movzx r14d, si
nop dword [rax + rax]
movzx edx, bx
mov rcx, r15
call fcn.100082130
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
or rdx, 0xffffffffffffffff
mov rcx, rax
call fcn.1000843b0
movzx ebx, bx
inc ebx
cmp ebx, r14d
jl 0x100088bc2
xor ebx, ebx
inc di
movzx eax, di
cmp eax, esi
jb 0x100088b90
xor edi, edi
mov ebx, dword [rsp + 0x70]
mov r15, qword [rbp - 0x78]
cmp dword [r13 + 0x30], 0
jne 0x100088be4
mov dword [rsp + 0x6c], r12d
jmp 0x100088bf2
mov ecx, ebx
call fcn.10006bde0
mov eax, dword [rax + 0x18]
mov dword [rsp + 0x6c], eax
mov dword [rsp + 0x64], edi
xor edx, edx
lea rcx, [rbp + 0x10]
call fcn.1000f2a60
mov dword [rsp + 0x78], eax
mov qword [rbp - 0x40], rdi
mov rax, qword [r15 + 0x40]
add rax, qword [r15 + 0x50]
add rax, qword [r15 + 0x48]
cmp dword [0x100255a10], r12d
jne 0x100088c29
mov rcx, qword [r15 + 0x68]
sub rcx, qword [r15 + 0x60]
add rax, rcx
inc rax
cqo
sub rax, rdx
sar rax, 1
cmp qword [r15 + 0x88], rax
jl 0x100088c5c
test byte [r15 + 0x4120], 2
je 0x10008918e
mov rcx, r15
call fcn.1000846c0
test rax, rax
jle 0x10008918e
mov r14d, 1
cmp qword [r15 + 0x70], 0
jle 0x100088cf9
movzx ebx, word [r15 + 0x80]
call fcn.10006bea0
mov esi, eax
call fcn.10006add0
mov r15, rax
test esi, esi
je 0x100088ccc
movzx r14d, si
xor r13d, r13d
nop
movzx edx, bx
mov rcx, r15
call fcn.100082130
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
mov rdx, r12
mov rcx, rax
call fcn.1000843b0
movzx ebx, bx
inc ebx
cmp ebx, r14d
jl 0x100088cbe
mov ebx, r13d
inc di
movzx eax, di
cmp eax, esi
jb 0x100088c90
mov r13, qword [rbp - 0x80]
mov r15, qword [rbp - 0x78]
mov rcx, r15
call fcn.100084790
test eax, eax
jne 0x100088ce8
mov rcx, r15
call fcn.1000847e0
test eax, eax
je 0x100088cef
xor edi, edi
jmp 0x100088c5c
xor eax, eax
mov r14d, eax
jmp 0x100089191
mov esi, dword [rsp + 0x64]
nop dword [rax]
cmp qword [r15 + 0x70], 0
jle 0x100088d7c
movzx ebx, word [r15 + 0x80]
call fcn.10006bea0
mov esi, eax
call fcn.10006add0
mov r12, rax
test esi, esi
je 0x100088d71
movzx r15d, si
xor r13d, r13d
nop dword [rax]
movzx edx, bx
mov rcx, r12
call fcn.100082130
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 1]
mov rcx, rax
call fcn.1000843b0
movzx ebx, bx
inc ebx
cmp ebx, r15d
jl 0x100088d5f
mov ebx, r13d
inc di
movzx eax, di
cmp eax, esi
jb 0x100088d30
mov r13, qword [rbp - 0x80]
mov r15, qword [rbp - 0x78]
xor edi, edi
mov esi, dword [rsp + 0x64]
mov r12d, dword [rsp + 0x60]
test r13, r13
je 0x100088e0a
mov dword [rsp + 0x50], 1
mov dword [rsp + 0x48], edi
lea rax, [rbp - 0x28]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rdi
mov ebx, dword [rsp + 0x78]
mov dword [rsp + 0x30], ebx
movzx eax, word [rsp + 0x74]
mov word [rsp + 0x28], ax
mov dword [rsp + 0x20], 4
mov r9d, 0x3000
mov r8, qword [r13 + 0x18]
xor edx, edx
mov rcx, r13
call fcn.10007a440
test rax, rax
je 0x100088e0a
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 1
mov rcx, qword [rbp - 0x28]
mov qword [rsp + 0x20], rcx
mov r9d, 0xc000
mov r8, qword [r13 + 0x18]
mov rdx, rax
mov rcx, r13
call fcn.10007aae0
inc r12d
mov dword [rsp + 0x60], r12d
jmp 0x100089060
cmp dword [rsp + 0x68], 0
jne 0x100088ffe
test r12d, r12d
je 0x100089191
xor r13d, r13d
mov qword [rbp - 0x68], r13
mov qword [rbp - 0x60], r13
mov qword [rbp - 0x50], r13
mov dword [rbp - 0x48], r13d
mov qword [rbp - 0x58], r13
mov r14, qword [rbp - 0x38]
mov qword [rbp - 0x58], r14
mov rcx, r14
call fcn.100081e00
mov rdi, rax
mov qword [rbp - 0x68], rax
mov rcx, r14
call fcn.100081eb0
mov qword [rbp - 0x60], rax
mov rsi, rdi
test rdi, rdi
je 0x100088f81
nop word [rax + rax]
mov r9, qword [rsi]
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call qword [r9 + 0x18]
mov rbx, r13
test rdi, rdi
je 0x100088f75
cmp rdi, qword [rbp - 0x60]
je 0x100088f47
call fcn.100064800
mov edx, eax
xor eax, eax
lock cmpxchg dword [r14 + 0x10], edx
mov ecx, r13d
sete cl
test ecx, ecx
jne 0x100088eb7
lea rcx, [r14 + 0x10]
call fcn.100057bf0
mov rbx, qword [rsi + 0x10]
cmp rbx, r14
je 0x100088ecb
test rbx, rbx
je 0x100088ecb
add rbx, 0xfffffffffffffff8
jmp 0x100088ece
mov rbx, r13
test rbx, rbx
je 0x100088f19
mov ecx, dword [rbx + 0x18]
test ecx, ecx
je 0x100088efd
nop word [rax + rax]
lea edx, [rcx + 1]
mov eax, ecx
lock cmpxchg dword [rbx + 0x18], edx
cmp ecx, eax
je 0x100088ef9
pause
mov ecx, dword [rbx + 0x18]
test ecx, ecx
jne 0x100088ee0
jmp 0x100088efd
test edx, edx
jne 0x100088f19
mov rbx, qword [rbx + 0x10]
cmp rbx, r14
je 0x100088f11
test rbx, rbx
je 0x100088f11
add rbx, 0xfffffffffffffff8
jmp 0x100088f14
mov rbx, r13
test rbx, rbx
jne 0x100088ed3
mov dword [r14 + 0x10], r13d
mov qword [rbp - 0x68], rbx
or eax, 0xffffffff
lock xadd dword [rsi + 0x18], eax
dec eax
jne 0x100088f71
cmp qword [rsi + 0x10], 0
je 0x100088f3f
lea rcx, [rsi + 8]
call fcn.100081f60
jmp 0x100088f71
mov rcx, rsi
mov rax, qword [rsi]
jmp 0x100088f6f
mov qword [rbp - 0x68], r13
lea rcx, [rdi + 8]
or eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
dec eax
jne 0x100088f71
cmp qword [rcx + 8], rbx
je 0x100088f68
call fcn.100081f60
jmp 0x100088f71
add rcx, 0xfffffffffffffff8
mov rax, qword [rcx]
call qword [rax]
mov rdi, qword [rbp - 0x68]
mov rsi, rbx
test rbx, rbx
jne 0x100088e70
mov eax, dword [rbp - 0x70]
mov dword [rsp + 0x68], eax
mov r12d, r13d
mov dword [rsp + 0x60], r13d
test rdi, rdi
je 0x100088fc0
lea rcx, [rdi + 8]
or eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
dec eax
jne 0x100088fbc
cmp qword [rcx + 8], 0
je 0x100088fb3
call fcn.100081f60
jmp 0x100088fbc
add rcx, 0xfffffffffffffff8
mov rax, qword [rcx]
call qword [rax]
mov qword [rbp - 0x68], r13
mov rcx, qword [rbp - 0x60]
test rcx, rcx
je 0x100088ff4
add rcx, 8
or eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
dec eax
jne 0x100088ff0
cmp qword [rcx + 8], 0
je 0x100088fe7
call fcn.100081f60
jmp 0x100088ff0
add rcx, 0xfffffffffffffff8
mov rax, qword [rcx]
call qword [rax]
mov qword [rbp - 0x60], r13
mov qword [rbp - 0x58], r13
mov esi, dword [rsp + 0x64]
jmp 0x10008900e
inc esi
mov dword [rsp + 0x64], esi
cmp esi, dword [rsp + 0x6c]
jae 0x10008900e
mov edx, esi
jmp 0x100089053
mov rcx, qword [rbp - 0x30]
mov rax, qword [rcx]
lea rdx, [rsp + 0x68]
call qword [rax + 0x10]
mov r13, rax
mov qword [rbp - 0x80], rax
test rax, rax
je 0x100089060
cmp dword [rax + 0x30], 0
jne 0x100089039
mov dword [rsp + 0x6c], 1
jmp 0x100089049
mov ecx, dword [rsp + 0x70]
call fcn.10006bde0
mov eax, dword [rax + 0x18]
mov dword [rsp + 0x6c], eax
xor eax, eax
mov esi, eax
mov dword [rsp + 0x64], eax
xor edx, edx
lea rcx, [rbp + 0x10]
call fcn.1000f2a60
mov dword [rsp + 0x78], eax
call fcn.100068a00
mov rdi, rax
mov rbx, qword gs:[0x30]
add rbx, rax
mov rcx, rax
call fcn.10006c530
test eax, eax
jne 0x10008908b
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
test rbx, rbx
je 0x10008909c
mov rcx, qword [rbx + 0xd8]
test rcx, rcx
jne 0x1000890d3
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 0x1000890cc
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 r9, qword [rcx + 0x2f8]
cmp rax, r9
ja 0x10008910d
mov r8, qword [rcx + 0x218]
mov rdx, r9
sub rdx, rax
cmp rdx, qword [r8 + 0xab0]
jbe 0x100089112
movabs rax, 0x7fffffffffffffff
cmp r9, rax
je 0x100089112
call fcn.1000655c0
mov rbx, qword [rbp - 0x40]
inc rbx
mov qword [rbp - 0x40], rbx
movabs rax, 0x624dd2f1a9fbe77
mul rbx
mov rcx, rbx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 9
imul rcx, rcx, 0x3e8
xor edi, edi
cmp rbx, rcx
jne 0x10008916b
mov dword [rbp - 0x20], 0x400069
mov qword [rbp - 0x18], rdi
mov qword [rbp - 8], rdi
mov qword [rbp - 0x10], rdi
mov qword [rbp], rdi
lea rdx, [rbp - 0x20]
lea ecx, [rdi + 1]
call fcn.100058870
mov rcx, r15
call fcn.100084790
test eax, eax
jne 0x100089183
mov rcx, r15
call fcn.1000847e0
test eax, eax
je 0x10008918e
mov r14d, 1
jmp 0x100088d00
mov r14d, edi
mov eax, r14d
mov rcx, qword [rbp + 0x20]
xor rcx, rsp
call fcn.10005f420
lea r11, [rsp + 0x130]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret