Function at 0x1000d7710
Capabilities:
Get thread local storage value

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x50
mov qword [rbp - 0x30], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
xor r12d, r12d
mov qword [rbp - 0x28], r12
mov qword [rbp - 0x20], r12
mov qword [rbp - 0x10], r12
mov dword [rbp - 8], r12d
mov qword [rbp - 0x18], r12
test rcx, rcx
lea rax, [rcx + 0x28]
jne 0x1000d775a
mov eax, r12d
mov qword [rbp - 0x18], rax
lea rbx, [rcx + 0x28]
mov rcx, rbx
call fcn.1000d2f40
mov qword [rbp - 0x28], rax
mov rcx, rbx
call fcn.1000d2ff0
mov qword [rbp - 0x20], rax
mov rdi, r12
call fcn.100068a00
mov rsi, rax
mov rcx, qword gs:[0x30]
lea rbx, [rcx + rax]
mov rcx, rax
call fcn.10006c530
test eax, eax
jne 0x1000d77a9
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
test rbx, rbx
je 0x1000d77ba
mov rax, qword [rbx + 0xd8]
test rax, rax
jne 0x1000d77f2
call fcn.100063d30
call fcn.100068a00
mov rbx, rax
mov rcx, qword gs:[0x30]
lea rsi, [rcx + rax]
mov rcx, rax
call fcn.10006c530
test eax, eax
jne 0x1000d77eb
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
mov rax, qword [rsi + 0xd8]
mov r15, qword [rax + 0x210]
or r14d, 0xffffffff
lea rsi, [0x100002a88]
mov r13d, 0x200
nop word [rax + rax]
mov rbx, r12
test rdi, rdi
jne 0x1000d7821
mov rbx, qword [rbp - 0x28]
jmp 0x1000d7acb
mov rax, qword [rbp - 0x28]
test rax, rax
je 0x1000d7acb
cmp rax, qword [rbp - 0x20]
je 0x1000d79f5
mov rsi, qword [rbp - 0x18]
call fcn.100064800
mov edx, eax
xor eax, eax
lock cmpxchg dword [rsi + 0x10], edx
mov ecx, r12d
sete cl
test ecx, ecx
jne 0x1000d785d
lea rcx, [rsi + 0x10]
call fcn.100057bf0
mov rbx, qword [rdi + 0x18]
cmp rbx, qword [rbp - 0x18]
je 0x1000d7872
test rbx, rbx
je 0x1000d7872
add rbx, 0xfffffffffffffff0
jmp 0x1000d7875
mov rbx, r12
test rbx, rbx
je 0x1000d78ca
nop word [rax + rax]
mov ecx, dword [rbx + 0x20]
test ecx, ecx
je 0x1000d78ad
nop word [rax + rax]
lea edx, [rcx + 1]
mov eax, ecx
lock cmpxchg dword [rbx + 0x20], edx
cmp ecx, eax
je 0x1000d78a9
pause
mov ecx, dword [rbx + 0x20]
test ecx, ecx
jne 0x1000d7890
jmp 0x1000d78ad
test edx, edx
jne 0x1000d78ca
mov rbx, qword [rbx + 0x18]
cmp rbx, qword [rbp - 0x18]
je 0x1000d78c2
test rbx, rbx
je 0x1000d78c2
add rbx, 0xfffffffffffffff0
jmp 0x1000d78c5
mov rbx, r12
test rbx, rbx
jne 0x1000d7880
mov dword [rsi + 0x10], r12d
mov qword [rbp - 0x28], rbx
mov eax, r14d
lock xadd dword [rdi + 0x20], eax
dec eax
jne 0x1000d7ac4
cmp qword [rdi + 0x18], 0
je 0x1000d78f7
lea rcx, [rdi + 0x10]
call fcn.1000585a0
jmp 0x1000d7ac4
mov eax, dword [rdi + 0xb0]
cmp eax, 2
jne 0x1000d794c
mov rsi, qword [rdi + 0xa0]
call fcn.100064800
mov edx, eax
xor eax, eax
lock cmpxchg dword [rsi + 0xf80], edx
mov ecx, r12d
sete cl
test ecx, ecx
jne 0x1000d7930
lea rcx, [rsi + 0xf80]
call fcn.100057ac0
mov rcx, qword [rdi + 8]
mov rax, qword [rdi]
mov qword [rax + 8], rcx
mov qword [rcx], rax
mov qword [rdi + 8], r12
mov qword [rdi], r12
mov dword [rsi + 0xf80], r12d
call fcn.100058010
test rax, rax
je 0x1000d7977
cmp qword [rax + 0x1e8], rdi
jne 0x1000d7977
test rdi, rdi
lea rcx, [rdi - 8]
jne 0x1000d796b
mov rcx, r12
xor edx, edx
call fcn.100058e50
jmp 0x1000d7ac4
test rdi, rdi
je 0x1000d7982
add rdi, 0xfffffffffffffff8
jmp 0x1000d7985
mov rdi, r12
mov qword [rbp + 0x30], rdi
lea rsi, [0x100002a88]
test rdi, rdi
je 0x1000d7acb
mov qword [rdi], rsi
lea rcx, [rdi + 8]
call fcn.100058db0
mov rax, rdi
and rax, 0xffffffffffffe000
je 0x1000d79bb
cmp word [rax + 4], r13w
jne 0x1000d79bb
mov rax, qword [rax + 0x28]
mov rax, qword [rax + 8]
mov rcx, qword [rax + 0x10]
dec rcx
not rcx
and rcx, rdi
je 0x1000d79d9
cmp word [rcx + 4], r13w
jne 0x1000d79d9
mov rcx, qword [rcx + 0x28]
mov rcx, qword [rcx + 8]
test byte [rcx + 0x28], 8
jne 0x1000d7acb
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 0x28]
jmp 0x1000d7acb
mov rdi, qword [rbp - 0x28]
mov qword [rbp - 0x28], r12
mov eax, r14d
lock xadd dword [rdi + 0x20], eax
dec eax
jne 0x1000d7acb
cmp qword [rdi + 0x18], rbx
je 0x1000d7a21
lea rcx, [rdi + 0x10]
call fcn.1000585a0
jmp 0x1000d7acb
mov eax, dword [rdi + 0xb0]
cmp eax, 2
jne 0x1000d7a7d
mov rsi, qword [rdi + 0xa0]
call fcn.100064800
mov edx, eax
xor eax, eax
lock cmpxchg dword [rsi + 0xf80], edx
mov ecx, r12d
sete cl
test ecx, ecx
jne 0x1000d7a5a
lea rcx, [rsi + 0xf80]
call fcn.100057ac0
mov rcx, qword [rdi + 8]
mov rax, qword [rdi]
mov qword [rax + 8], rcx
mov qword [rcx], rax
mov qword [rdi + 8], r12
mov qword [rdi], r12
mov dword [rsi + 0xf80], r12d
lea rsi, [0x100002a88]
call fcn.100058010
test rax, rax
je 0x1000d7aa5
cmp qword [rax + 0x1e8], rdi
jne 0x1000d7aa5
test rdi, rdi
lea rcx, [rdi - 8]
jne 0x1000d7a9c
mov rcx, r12
xor edx, edx
call fcn.100058e50
jmp 0x1000d7acb
test rdi, rdi
je 0x1000d7ab0
add rdi, 0xfffffffffffffff8
jmp 0x1000d7ab3
mov rdi, r12
mov qword [rbp + 0x30], rdi
test rdi, rdi
je 0x1000d7acb
mov qword [rdi], rsi
jmp 0x1000d799c
lea rsi, [0x100002a88]
mov rdi, rbx
test rbx, rbx
je 0x1000d7c79
cmp rbx, r15
je 0x1000d7810
mov rcx, rbx
call fcn.1000d0090
test eax, eax
jne 0x1000d7810
mov rax, qword [rbp - 0x28]
test rax, rax
je 0x1000d7bb5
lea rbx, [rax + 0x10]
mov eax, r14d
lock xadd dword [rbx + 0x10], eax
dec eax
jne 0x1000d7bb1
cmp qword [rbx + 8], 0
je 0x1000d7b25
mov rcx, rbx
call fcn.1000585a0
jmp 0x1000d7bb1
add rbx, 0xfffffffffffffff0
mov eax, dword [rbx + 0xb0]
cmp eax, 2
jne 0x1000d7b76
mov rdi, qword [rbx + 0xa0]
call fcn.100064800
mov edx, eax
xor eax, eax
lock cmpxchg dword [rdi + 0xf80], edx
je 0x1000d7b5a
lea rcx, [rdi + 0xf80]
call fcn.100057ac0
mov rcx, qword [rbx + 8]
mov rax, qword [rbx]
mov qword [rax + 8], rcx
mov qword [rcx], rax
mov qword [rbx + 8], r12
mov qword [rbx], r12
mov dword [rdi + 0xf80], r12d
call fcn.100058010
test rax, rax
je 0x1000d7b99
cmp qword [rax + 0x1e8], rbx
jne 0x1000d7b99
test rbx, rbx
lea rcx, [rbx - 8]
jne 0x1000d7b95
mov rcx, r12
xor edx, edx
jmp 0x1000d7bac
test rbx, rbx
je 0x1000d7bb1
lea rcx, [rbx - 8]
test rcx, rcx
je 0x1000d7bb1
mov edx, 1
call fcn.100058e50
mov qword [rbp - 0x28], r12
mov rbx, qword [rbp - 0x20]
test rbx, rbx
je 0x1000d7c72
lock xadd dword [rbx + 0x20], r14d
dec r14d
jne 0x1000d7c6e
cmp qword [rbx + 0x18], 0
je 0x1000d7be6
lea rcx, [rbx + 0x10]
call fcn.1000585a0
jmp 0x1000d7c6e
mov eax, dword [rbx + 0xb0]
cmp eax, 2
jne 0x1000d7c33
mov rdi, qword [rbx + 0xa0]
call fcn.100064800
mov edx, eax
xor eax, eax
lock cmpxchg dword [rdi + 0xf80], edx
je 0x1000d7c17
lea rcx, [rdi + 0xf80]
call fcn.100057ac0
mov rcx, qword [rbx + 8]
mov rax, qword [rbx]
mov qword [rax + 8], rcx
mov qword [rcx], rax
mov qword [rbx + 8], r12
mov qword [rbx], r12
mov dword [rdi + 0xf80], r12d
call fcn.100058010
test rax, rax
je 0x1000d7c56
cmp qword [rax + 0x1e8], rbx
jne 0x1000d7c56
test rbx, rbx
lea rcx, [rbx - 8]
jne 0x1000d7c52
mov rcx, r12
xor edx, edx
jmp 0x1000d7c69
test rbx, rbx
je 0x1000d7c6e
lea rcx, [rbx - 8]
test rcx, rcx
je 0x1000d7c6e
mov edx, 1
call fcn.100058e50
mov qword [rbp - 0x20], r12
xor eax, eax
jmp 0x1000d7e00
mov rax, qword [rbp - 0x28]
test rax, rax
je 0x1000d7d3e
lea rbx, [rax + 0x10]
mov eax, r14d
lock xadd dword [rbx + 0x10], eax
dec eax
jne 0x1000d7d3a
cmp qword [rbx + 8], 0
je 0x1000d7cae
mov rcx, rbx
call fcn.1000585a0
jmp 0x1000d7d3a
add rbx, 0xfffffffffffffff0
mov eax, dword [rbx + 0xb0]
cmp eax, 2
jne 0x1000d7cff
mov rdi, qword [rbx + 0xa0]
call fcn.100064800
mov edx, eax
xor eax, eax
lock cmpxchg dword [rdi + 0xf80], edx
je 0x1000d7ce3
lea rcx, [rdi + 0xf80]
call fcn.100057ac0
mov rcx, qword [rbx + 8]
mov rax, qword [rbx]
mov qword [rax + 8], rcx
mov qword [rcx], rax
mov qword [rbx + 8], r12
mov qword [rbx], r12
mov dword [rdi + 0xf80], r12d
call fcn.100058010
test rax, rax
je 0x1000d7d22
cmp qword [rax + 0x1e8], rbx
jne 0x1000d7d22
test rbx, rbx
lea rcx, [rbx - 8]
jne 0x1000d7d1e
mov rcx, r12
xor edx, edx
jmp 0x1000d7d35
test rbx, rbx
je 0x1000d7d3a
lea rcx, [rbx - 8]
test rcx, rcx
je 0x1000d7d3a
mov edx, 1
call fcn.100058e50
mov qword [rbp - 0x28], r12
mov rbx, qword [rbp - 0x20]
test rbx, rbx
je 0x1000d7dfb
lock xadd dword [rbx + 0x20], r14d
dec r14d
jne 0x1000d7df7
cmp qword [rbx + 0x18], 0
je 0x1000d7d6f
lea rcx, [rbx + 0x10]
call fcn.1000585a0
jmp 0x1000d7df7
mov eax, dword [rbx + 0xb0]
cmp eax, 2
jne 0x1000d7dbc
mov rdi, qword [rbx + 0xa0]
call fcn.100064800
mov edx, eax
xor eax, eax
lock cmpxchg dword [rdi + 0xf80], edx
je 0x1000d7da0
lea rcx, [rdi + 0xf80]
call fcn.100057ac0
mov rcx, qword [rbx + 8]
mov rax, qword [rbx]
mov qword [rax + 8], rcx
mov qword [rcx], rax
mov qword [rbx + 8], r12
mov qword [rbx], r12
mov dword [rdi + 0xf80], r12d
call fcn.100058010
test rax, rax
je 0x1000d7ddf
cmp qword [rax + 0x1e8], rbx
jne 0x1000d7ddf
test rbx, rbx
lea rcx, [rbx - 8]
jne 0x1000d7ddb
mov rcx, r12
xor edx, edx
jmp 0x1000d7df2
test rbx, rbx
je 0x1000d7df7
lea rcx, [rbx - 8]
test rcx, rcx
je 0x1000d7df7
mov edx, 1
call fcn.100058e50
mov qword [rbp - 0x20], r12
mov eax, 1
mov qword [rbp - 0x18], r12
lea r11, [rsp + 0x50]
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