Function at 0x18018d5e0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x20], rbp
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x1170
call fcn.18024afa0
sub rsp, rax
mov r14d, dword [rdx + 0x78]
mov eax, dword [r9 + 0xc]
xor edi, edi
mov rbp, r8
mov r8d, dword [rdx + 0x20]
mov r15, rdx
mov rdx, qword [rdx + 0x28]
inc dword [r9 + 8]
and eax, 0xff000000
and r14d, 0xfffff
mov r12, r9
mov r13, rcx
mov dword [rsp + 0x11a8], edi
mov dword [rsp + 0x60], edi
mov dword [rsp + 0x64], 1
mov dword [rsp + 0x68], 2
mov dword [rsp + 0x6c], 3
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rdi
cmp eax, 0xb000000
jne 0x18018d6a1
mov eax, dword [rcx + 0xd228]
test al, al
jns 0x18018d6a8
bt eax, 8
jb 0x18018d673
movzx eax, byte [r9]
jmp 0x18018d6a4
mov ecx, edi
test r8d, r8d
je 0x18018d6a1
nop word [rax + rax]
mov rax, qword [rdx]
cmp rax, 0xffffffffffffffff
je 0x18018d6a8
mov eax, dword [rax + 0x98]
bt rax, 0xf
jb 0x18018d6a8
inc ecx
add rdx, 8
cmp ecx, r8d
jb 0x18018d680
mov al, byte [r9]
test al, al
jne 0x18018d6bc
lea rcx, [rsp + 0x50]
call fcn.1800c5e00
mov eax, 1
jmp 0x18018db88
lea rcx, [rsp + 0x70]
xor edx, edx
mov r8d, pe_nt_image_headers64
mov qword [rsp + 0x11a0], rbx
mov qword [rsp + 0x11b0], rsi
call fcn.18024adb8
movzx eax, byte [rsp + 0x11c0]
mov r8, qword [rbp]
lea r9, [rsp + 0x70]
mov byte [rsp + 0x40], al
mov dword [rsp + 0x38], r14d
lea rax, [rsp + 0x60]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x170]
mov rdx, r15
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x11a8]
mov rcx, r13
mov qword [rsp + 0x20], rax
call fcn.18018c190
mov ebx, eax
test eax, eax
js 0x18018db44
test eax, eax
jne 0x18018db6c
mov esi, edi
cmp byte [rbp + 0x18], sil
jbe 0x18018d79f
mov eax, esi
lea r9, [rsp + 0x170]
xor r8d, r8d
lea rcx, [rax + rax*4]
mov rax, qword [rbp + 8]
lea rdx, [rax + rcx*4]
lea rax, [rsp + 0x70]
mov rcx, r13
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x60]
mov dword [rsp + 0x30], 4
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], rax
call fcn.18018b390
mov ebx, eax
test eax, eax
js 0x18018db44
test eax, eax
jne 0x18018db6c
movzx eax, byte [rbp + 0x18]
inc esi
cmp esi, eax
jb 0x18018d741
inc dword [r12 + 4]
lea rax, [rsp + 0x970]
lea r9, [rsp + 0x70]
mov r8, r15
mov rdx, rbp
mov rcx, r13
mov qword [rsp + 0x20], rax
call fcn.1801874d0
mov ebx, eax
test eax, eax
js 0x18018db44
mov esi, edi
cmp byte [rbp + 0x19], sil
jbe 0x18018d875
mov r12, rdi
nop dword [rax]
movzx r8d, byte [rsp + 0x11c0]
lea rax, [rsp + 0x11a8]
mov r9, rbp
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x70]
mov rdx, r15
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x60]
mov rcx, r13
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x170]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x970]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], esi
call fcn.1801891f0
mov ebx, eax
test eax, eax
js 0x18018db44
mov rax, qword [rsp + 0x11a8]
mov qword [rax + 8], r12
test r12, r12
je 0x18018d857
mov qword [r12], rax
jmp 0x18018d85c
mov qword [rsp + 0x50], rax
mov qword [rax], rdi
mov r12, rax
mov qword [rsp + 0x58], rax
movzx eax, byte [rbp + 0x19]
inc esi
cmp esi, eax
jb 0x18018d7e0
mov r14, qword [rsp + 0x50]
mov rdx, r14
test r14, r14
je 0x18018d8b5
mov r8d, edi
cmp dword [rdx + 0x20], edi
jbe 0x18018d8ad
mov r9, rdi
nop dword [rax]
mov rax, qword [rdx + 0x28]
inc r8d
add r9, 8
mov rcx, qword [rax + r9 - 8]
mov qword [rcx + 0x100], rdx
cmp r8d, dword [rdx + 0x20]
jb 0x18018d890
mov rdx, qword [rdx]
test rdx, rdx
jne 0x18018d882
mov rsi, r14
test r14, r14
je 0x18018d919
nop dword [rax]
mov eax, dword [rsi + 0x78]
mov ebx, edi
shr eax, 0x14
mov edx, eax
mov r8d, dword [r13 + rax*4 + 0x15510]
test r8d, r8d
je 0x18018d909
mov rdx, qword [r13 + rdx*8 + 0xd510]
lea rax, [rsp + 0x11a8]
mov r9, rsi
mov qword [rsp + 0x28], rax
mov rcx, r13
mov qword [rsp + 0x11a8], rdi
mov dword [rsp + 0x20], 1
call fcn.1801dc2b0
mov ebx, eax
test ebx, ebx
js 0x18018db44
mov rsi, qword [rsi]
test rsi, rsi
jne 0x18018d8c0
mov rbx, r15
mov r12d, edi
nop
test rbx, rbx
je 0x18018daff
mov rax, qword [rbx + 8]
mov rbp, qword [rbx]
test rax, rax
je 0x18018d93a
mov qword [rax], rbp
jmp 0x18018d93e
mov qword [r13 + 0x18], rbp
mov rcx, qword [rbx]
test rcx, rcx
je 0x18018d950
mov rax, qword [rbx + 8]
mov qword [rcx + 8], rax
jmp 0x18018d958
mov rax, qword [rbx + 8]
mov qword [r13 + 0x20], rax
mov qword [rbx], 0xffffffffffffffff
mov qword [rbx + 8], 0xffffffffffffffff
cmp word [rbx + 0x7c], di
je 0x18018d9ba
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x18018d97c
mov rax, rdi
jmp 0x18018d982
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rbx + 0x7c]
cmp ecx, dword [rax + 0x250]
ja 0x18018d9b2
mov r8, qword [rbx + 0x18]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x18018d9b2
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rbx + 0x7c], di
mov qword [rbx + 0x18], rdi
cmp word [rbx + 0x7e], di
je 0x18018da0d
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x18018d9cf
mov rax, rdi
jmp 0x18018d9d5
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rbx + 0x7e]
cmp ecx, dword [rax + 0x250]
ja 0x18018da05
mov r8, qword [rbx + 0x28]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x18018da05
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rbx + 0x7e], di
mov qword [rbx + 0x28], rdi
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x18018da4f
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
test rax, rax
je 0x18018da4f
mov edx, 0xfe
mov rcx, rbx
lea r8d, [rdx - 0x7e]
call fcn.18024adb8
mov qword [rbx], rdi
mov rax, qword [rsi + 0x38]
test rax, rax
je 0x18018da47
mov qword [rax], rbx
jmp 0x18018da4b
mov qword [rsi + 0x30], rbx
mov qword [rsi + 0x38], rbx
inc r12d
mov rbx, rbp
cmp r12d, 1
jb 0x18018d920
mov ecx, edi
test r14, r14
je 0x18018da7a
mov rax, r14
nop dword [rax]
mov rax, qword [rax]
inc ecx
test rax, rax
jne 0x18018da70
lea eax, [rcx - 1]
add dword [r13 + 0x14], eax
test rbp, rbp
je 0x18018dac4
test r14, r14
je 0x18018daf6
mov rax, qword [rbp + 8]
mov qword [r14 + 8], rax
mov rax, qword [rbp + 8]
test rax, rax
je 0x18018daa1
mov qword [rax], r14
jmp 0x18018daa5
mov qword [r13 + 0x18], r14
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x50], rdi
mov ebx, edi
mov qword [rax], rbp
mov qword [rbp + 8], rax
or dword [r13 + 0x28], 7
mov qword [rsp + 0x58], rdi
jmp 0x18018db04
mov rax, qword [r13 + 0x20]
test rax, rax
je 0x18018dad2
mov qword [rax], r14
jmp 0x18018dad6
mov qword [r13 + 0x18], r14
test r14, r14
je 0x18018dae3
mov rax, qword [r13 + 0x20]
mov qword [r14 + 8], rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rdi
mov qword [r13 + 0x20], rax
or dword [r13 + 0x28], 7
mov ebx, edi
jmp 0x18018db04
mov ebx, 0x80004005
test ebx, ebx
js 0x18018db44
cmp byte [rsp + 0x11c0], dil
jne 0x18018db40
lea rcx, [rsp + 0x70]
mov edx, 0x20
nop dword [rax]
mov rax, qword [rcx]
cmp r15, rax
je 0x18018db36
test rax, rax
je 0x18018db36
mov dword [rax + 0x78], edi
mov dword [rax + 0x10], edi
mov dword [rax + 0x20], edi
add rcx, 8
sub rdx, 1
jne 0x18018db20
mov ebx, edi
jmp 0x18018db6c
cmp dword [r15 + 0x20], edi
jbe 0x18018db6c
mov rdx, rdi
nop dword [rax]
mov rax, qword [r15 + 0x28]
inc edi
add rdx, 8
mov rcx, qword [rax + rdx - 8]
mov qword [rcx + 0x100], r15
cmp edi, dword [r15 + 0x20]
jb 0x18018db50
lea rcx, [rsp + 0x50]
call fcn.1800c5e00
mov rsi, qword [rsp + 0x11b0]
mov eax, ebx
mov rbx, qword [rsp + 0x11a0]
mov rbp, qword [rsp + 0x11b8]
add rsp, 0x1170
pop r15
pop r14
pop r13
pop r12
pop rdi
ret