Function at 0x1800adbe0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rsi
push r12
push r13
sub rsp, 0x9b8
mov rdx, qword [rcx + 0x19550]
mov r13, rcx
xor esi, esi
mov ebx, dword [rdx + 0x78]
lea rcx, [rsp + 0xa0]
mov r8d, pe_nt_image_headers64
mov r12d, ebx
xor edx, edx
mov dword [rsp + 0x58], esi
and r12d, 0xfffff
mov dword [rsp + 0x80], esi
mov dword [rsp + 0x84], 1
mov dword [rsp + 0x88], 2
mov dword [rsp + 0x8c], 3
mov dword [rsp + 0x54], r12d
call fcn.18024adb8
and ebx, 0xfff00000
cmp ebx, 0x30000000
je 0x1800adc70
lea eax, [rsi + 1]
add rsp, 0x9b8
pop r13
pop r12
pop rsi
pop rbx
ret
mov qword [rsp + 0x9e8], rbp
mov qword [rsp + 0x9f0], rdi
mov qword [rsp + 0x9f8], r14
mov qword [rsp + 0x9b0], r15
xor r15b, r15b
mov byte [rsp + 0x52], sil
movaps xmmword [rsp + 0x9a0], xmm6
mov byte [rsp + 0x51], sil
mov byte [rsp + 0x50], sil
movsxd rbx, r12d
test r12d, r12d
je 0x1800ae01f
xorpd xmm6, xmm6
lea rbp, [rbx*8]
mov r14d, r12d
shl rbx, 4
nop dword [rax]
mov rax, qword [r13 + 0x19550]
mov rcx, qword [rax + 0x18]
mov rdi, qword [rcx + rbp]
mov r12, qword [rcx + rbx]
mov rax, qword [rdi + 0xa8]
mov r13, qword [r12 + 0xa8]
mov ecx, dword [rax + 0x10]
bt rcx, 8
jae 0x1800add54
mov rdx, qword [rsp + 0x9e0]
lea r8, [rsp + 0x60]
mov rcx, rdi
call fcn.180199870
test eax, eax
jne 0x1800add54
movsd xmm0, qword [rsp + 0x60]
ucomisd xmm0, xmm6
jp 0x1800add54
jne 0x1800add54
cmp qword [rdi + 0xc0], 0xffffffffffffffff
jne 0x1800add54
mov rax, qword [rsp + 0x9e0]
mov rax, qword [rax + 0x19550]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + rsi]
cmp qword [rcx + rbx], rax
jne 0x1800add54
movzx edi, byte [rsp + 0x51]
mov r15b, 1
jmp 0x1800add5c
mov dil, 1
mov byte [rsp + 0x51], dil
mov eax, dword [r13 + 0x10]
bt rax, 8
jae 0x1800addbf
mov r13, qword [rsp + 0x9e0]
lea r8, [rsp + 0x68]
mov rcx, r12
mov rdx, r13
call fcn.180199870
test eax, eax
jne 0x1800addc7
movsd xmm0, qword [rsp + 0x68]
ucomisd xmm0, xmm6
jp 0x1800addc7
jne 0x1800addc7
cmp qword [r12 + 0xc0], 0xffffffffffffffff
jne 0x1800addc7
mov rax, qword [r13 + 0x19550]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + rsi]
cmp qword [rcx + rbp], rax
jne 0x1800addc7
movzx r8d, byte [rsp + 0x50]
mov dl, 1
mov byte [rsp + 0x52], dl
jmp 0x1800addd4
mov r13, qword [rsp + 0x9e0]
movzx edx, byte [rsp + 0x52]
mov r8b, 1
mov byte [rsp + 0x50], r8b
add rsi, 8
add rbx, 8
add rbp, 8
sub r14, 1
jne 0x1800adcd0
test r15b, r15b
je 0x1800adebd
test dil, dil
jne 0x1800adebd
mov ecx, 0x80
call fcn.180197940
mov rsi, rax
test rax, rax
je 0x1800ae009
mov ebp, dword [rsp + 0x54]
mov qword [rax], 0xffffffffffffffff
mov qword [rax + 8], 0xffffffffffffffff
xor eax, eax
mov edx, ebp
lea edi, [rbp + rbp]
and edx, 0xfffff
mov r9d, ebp
mov rcx, rsi
mov r8d, edi
or edx, 0x90a00000
mov dword [rsi + 0x10], eax
mov dword [rsi + 0x20], eax
mov dword [rsi + 0x30], 0xffffffff
mov dword [rsi + 0x78], eax
mov qword [rsi + 0x18], rax
mov word [rsi + 0x7c], ax
mov qword [rsi + 0x28], rax
mov word [rsi + 0x7e], ax
mov dword [rsi + 0x38], eax
mov dword [rsi + 0x3c], eax
mov dword [rsi + 0x40], eax
mov qword [rsi + 0x48], 0xffffffffffffffff
mov dword [rsi + 0x50], eax
mov dword [rsi + 0x68], eax
mov qword [rsi + 0x70], rax
mov byte [rsp + 0x20], al
call fcn.180193d40
mov ebx, eax
test eax, eax
jns 0x1800adf62
xor r13d, r13d
test rsi, rsi
je 0x1800ae5ff
cmp word [rsi + 0x7c], 0
je 0x1800ae55d
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1800ae51e
mov rax, r13
jmp 0x1800ae524
test dl, dl
je 0x1800ae01a
test r8b, r8b
jne 0x1800ae013
mov ecx, 0x80
call fcn.180197940
mov rsi, rax
test rax, rax
je 0x1800ae009
mov ebp, dword [rsp + 0x54]
mov qword [rax], 0xffffffffffffffff
mov qword [rax + 8], 0xffffffffffffffff
xor eax, eax
mov edx, ebp
lea edi, [rbp + rbp]
and edx, 0xfffff
mov r9d, ebp
mov rcx, rsi
mov r8d, edi
or edx, 0x90b00000
mov dword [rsi + 0x10], eax
mov dword [rsi + 0x20], eax
mov dword [rsi + 0x30], 0xffffffff
mov dword [rsi + 0x78], eax
mov qword [rsi + 0x18], rax
mov word [rsi + 0x7c], ax
mov qword [rsi + 0x28], rax
mov word [rsi + 0x7e], ax
mov dword [rsi + 0x38], eax
mov dword [rsi + 0x3c], eax
mov dword [rsi + 0x40], eax
mov qword [rsi + 0x48], 0xffffffffffffffff
mov dword [rsi + 0x50], eax
mov dword [rsi + 0x68], eax
mov qword [rsi + 0x70], rax
mov byte [rsp + 0x20], al
call fcn.180193d40
mov ebx, eax
test eax, eax
js 0x1800ae516
mov rcx, qword [r13 + 0x19550]
mov ebx, ebp
mov eax, dword [rcx + 0x68]
shl rbx, 3
mov dword [rsi + 0x68], eax
mov rax, qword [rcx + 0x70]
mov rcx, qword [rsi + 0x28]
mov qword [rsi + 0x70], rax
mov rdx, qword [r13 + 0x19550]
mov r8, rbx
mov rdx, qword [rdx + 0x28]
call sub.msvcrt.dll_memcpy
mov rdx, qword [r13 + 0x19550]
mov rcx, qword [rsi + 0x18]
mov rdx, qword [rdx + 0x18]
mov r8, rbx
call sub.msvcrt.dll_memcpy
test r15b, r15b
je 0x1800adfd1
mov rax, qword [r13 + 0x19550]
mov r8, rbx
mov rcx, qword [rax + 0x18]
mov rax, qword [rsi + 0x18]
lea rdx, [rbx + rcx]
lea rcx, [rbx + rax]
call sub.msvcrt.dll_memcpy
jmp 0x1800adff0
mov rax, qword [r13 + 0x19550]
mov r8, rbx
mov rcx, qword [rax + 0x18]
mov rax, qword [rsi + 0x18]
lea rdx, [rcx + rdi*8]
lea rcx, [rbx + rax]
call sub.msvcrt.dll_memcpy
mov rcx, qword [r13 + 0x19550]
mov rdx, rsi
call fcn.180195040
xor r13d, r13d
mov ebx, eax
jmp 0x1800ade93
mov eax, 0x8007000e
jmp 0x1800ae601
mov r12d, dword [rsp + 0x54]
jmp 0x1800ae01f
mov r12d, dword [rsp + 0x54]
mov r15, qword [rsp + 0x9e0]
mov byte [rsp + 0x40], 1
mov dword [rsp + 0x38], r12d
mov rdx, qword [r15 + 0x19550]
lea rax, [rsp + 0x80]
lea r9, [rsp + 0xa0]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x1a0]
lea r8, [0x18001cb98]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x58]
mov rcx, r15
mov qword [rsp + 0x20], rax
call fcn.18018c190
cmp dword [rsp + 0x58], 0x20
mov ebx, eax
jbe 0x1800ae086
mov ebx, 0x80004005
jmp 0x1800ae5ff
test eax, eax
jne 0x1800ae5ff
movsd xmm6, qword [0x1800686f0]
lea r9, [rsp + 0x1a0]
lea r10, [rsp + 0x1c0]
xor r14b, r14b
xor cl, cl
xor r13d, r13d
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x60], r10
mov dword [rsp + 0x58], r13d
nop dword [rax]
lea rdx, [rsp + 0x1e0]
lea r8, [rsp + 0x200]
mov eax, r13d
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x78], r8
mov dword [rsp + 0x9e0], eax
mov edi, r13d
test r12d, r12d
je 0x1800ae25d
mov rsi, r8
mov rbp, rdx
mov r12, r9
mov r13, r10
nop dword [rax]
mov rdx, qword [r12]
mov rcx, qword [r13]
mov r8, qword [rbp]
mov rax, qword [rdx + 0xf0]
mov rbx, qword [rsi]
mov r10, qword [rcx + 0xa8]
mov r11, qword [rbx + 0xa8]
cmp rax, r8
je 0x1800ae140
mov r9, qword [r8 + 0xf0]
cmp r9, rdx
je 0x1800ae140
cmp rax, 0xffffffffffffffff
je 0x1800ae161
cmp rax, r9
jne 0x1800ae161
mov eax, dword [rdx + 0xf8]
btc eax, 0xa
cmp eax, dword [r8 + 0xf8]
jne 0x1800ae161
cmp rcx, rbx
jne 0x1800ae161
mov cl, 1
xor al, al
jmp 0x1800ae215
cmp rdx, r8
jne 0x1800ae211
mov rax, qword [rcx + 0xf0]
cmp rax, rbx
je 0x1800ae18d
mov rdx, qword [rbx + 0xf0]
cmp rdx, rcx
je 0x1800ae18d
cmp rax, 0xffffffffffffffff
je 0x1800ae1a6
cmp rax, rdx
jne 0x1800ae1a6
mov eax, dword [rcx + 0xf8]
btc eax, 0xa
cmp eax, dword [rbx + 0xf8]
jne 0x1800ae1a6
mov cl, 1
movzx eax, cl
jmp 0x1800ae215
mov eax, dword [r10 + 0x10]
bt rax, 8
jae 0x1800ae20b
mov eax, dword [r11 + 0x10]
bt rax, 8
jae 0x1800ae20b
lea r8, [rsp + 0x90]
mov rdx, r15
call fcn.180199870
test eax, eax
jne 0x1800ae20b
lea r8, [rsp + 0x80]
mov rdx, r15
mov rcx, rbx
call fcn.180199870
test eax, eax
jne 0x1800ae20b
movsd xmm1, qword [rsp + 0x90]
movsd xmm0, qword [rsp + 0x80]
xorpd xmm1, xmm6
ucomisd xmm0, xmm1
jp 0x1800ae20b
jne 0x1800ae20b
mov cl, 1
mov al, cl
jmp 0x1800ae215
xor cl, cl
xor al, al
jmp 0x1800ae215
xor cl, cl
xor al, al
test edi, edi
jne 0x1800ae21f
movzx r14d, al
jmp 0x1800ae224
cmp r14b, al
jne 0x1800ae277
test cl, cl
je 0x1800ae28c
inc edi
add r12, 8
add r13, 8
add rbp, 8
add rsi, 8
cmp edi, dword [rsp + 0x54]
jb 0x1800ae100
mov r12d, dword [rsp + 0x54]
mov eax, dword [rsp + 0x9e0]
mov rdx, qword [rsp + 0x70]
mov r8, qword [rsp + 0x78]
xor r13d, r13d
test cl, cl
je 0x1800ae29d
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1800ae308
mov rcx, r13
jmp 0x1800ae311
mov eax, dword [rsp + 0x9e0]
mov rdx, qword [rsp + 0x70]
mov r8, qword [rsp + 0x78]
xor cl, cl
jmp 0x1800ae29d
mov eax, dword [rsp + 0x9e0]
mov rdx, qword [rsp + 0x70]
mov r8, qword [rsp + 0x78]
mov r12d, dword [rsp + 0x54]
mov r9, qword [rsp + 0x68]
mov r10, qword [rsp + 0x60]
inc eax
sub r8, 0x20
add rdx, 0x20
mov dword [rsp + 0x9e0], eax
mov qword [rsp + 0x78], r8
mov qword [rsp + 0x70], rdx
mov r13d, 0
cmp eax, 2
jb 0x1800ae0e4
mov r11d, dword [rsp + 0x58]
add r9, 0x20
sub r10, 0x20
inc r11d
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x60], r10
mov dword [rsp + 0x58], r11d
cmp r11d, 2
jb 0x1800ae0c0
lea ebx, [r13 + 1]
jmp 0x1800ae5ff
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, rax
cmp qword [rcx + 0x30], 0
je 0x1800ae345
mov rsi, qword [rcx + 0x30]
test rsi, rsi
jne 0x1800ae326
mov rsi, r13
jmp 0x1800ae35a
mov rax, qword [rsi]
mov qword [rcx + 0x30], rax
test rax, rax
jne 0x1800ae336
mov qword [rcx + 0x38], r13
movabs rax, 0xfefefefefefefefe
mov qword [rsi], rax
jmp 0x1800ae35a
mov rcx, qword [rcx + 0x28]
mov edx, 0x80
lea r8d, [rdx - 0x70]
call fcn.180243b70
mov rsi, rax
test rsi, rsi
je 0x1800ae5fa
mov qword [rsi], 0xffffffffffffffff
mov qword [rsi + 8], 0xffffffffffffffff
mov dword [rsi + 0x10], r13d
mov dword [rsi + 0x20], r13d
mov dword [rsi + 0x30], 0xffffffff
mov dword [rsi + 0x78], r13d
mov qword [rsi + 0x18], r13
mov word [rsi + 0x7c], r13w
mov qword [rsi + 0x28], r13
mov word [rsi + 0x7e], r13w
mov dword [rsi + 0x38], r13d
mov dword [rsi + 0x3c], r13d
mov dword [rsi + 0x40], r13d
mov qword [rsi + 0x48], 0xffffffffffffffff
mov dword [rsi + 0x50], r13d
mov dword [rsi + 0x68], r13d
mov qword [rsi + 0x70], r13
test r14b, r14b
je 0x1800ae3c7
mov ebp, dword [rsp + 0x58]
cmp ebp, 1
je 0x1800ae3cf
jmp 0x1800ae401
mov ebp, dword [rsp + 0x58]
test ebp, ebp
jne 0x1800ae407
mov edx, r12d
lea r8d, [r12 + r12]
mov r9d, r12d
and edx, 0xfffff
mov rcx, rsi
mov byte [rsp + 0x20], 0
or edx, 0x90a00000
call fcn.180193d40
mov ebx, eax
test eax, eax
js 0x1800ade93
test r14b, r14b
je 0x1800ae407
test ebp, ebp
jne 0x1800ae439
jmp 0x1800ae40c
cmp ebp, 1
jne 0x1800ae439
mov edx, r12d
lea r8d, [r12 + r12]
mov r9d, r12d
and edx, 0xfffff
mov rcx, rsi
mov byte [rsp + 0x20], 0
or edx, 0x90b00000
call fcn.180193d40
mov ebx, eax
test eax, eax
js 0x1800ade93
mov rcx, qword [r15 + 0x19550]
mov eax, dword [rcx + 0x68]
mov dword [rsi + 0x68], eax
mov rax, qword [rcx + 0x70]
mov rcx, qword [rsi + 0x28]
mov qword [rsi + 0x70], rax
mov rdx, qword [r15 + 0x19550]
mov eax, r12d
mov rdx, qword [rdx + 0x28]
lea rdi, [rax*8]
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov rcx, qword [rsi + 0x18]
lea ebx, [rbp*4]
lea rdx, [rsp + rbx*8 + 0x1a0]
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov rax, qword [rsi + 0x18]
mov r11d, 4
sub r11d, ebx
lea rcx, [rdi + rax]
mov r8, rdi
lea rdx, [rsp + r11*8 + 0x1a0]
call sub.msvcrt.dll_memcpy
mov r11, qword [rsi + 0x18]
mov rax, qword [rsi + 0x28]
mov rdx, qword [rax]
mov r9, qword [r11]
mov rcx, qword [r11 + rdi]
mov r8, qword [rdx + 0xa8]
cmp r8, qword [r9 + 0xa8]
jne 0x1800ae4dd
mov eax, dword [r9 + 0xc8]
cmp dword [rdx + 0xc8], eax
je 0x1800ae4f4
cmp r8, qword [rcx + 0xa8]
jne 0x1800ae500
mov eax, dword [rcx + 0xc8]
cmp dword [rdx + 0xc8], eax
jne 0x1800ae500
mov ebx, 1
jmp 0x1800ade93
mov rcx, qword [r15 + 0x19550]
mov rdx, rsi
call fcn.180195040
mov ebx, eax
jmp 0x1800ade93
xor r13d, r13d
jmp 0x1800ade93
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rsi + 0x7c]
cmp ecx, dword [rax + 0x250]
ja 0x1800ae554
mov r8, qword [rsi + 0x18]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x1800ae554
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rsi + 0x7c], r13w
mov qword [rsi + 0x18], r13
cmp word [rsi + 0x7e], 0
je 0x1800ae5b2
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1800ae573
mov rax, r13
jmp 0x1800ae579
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rsi + 0x7e]
cmp ecx, dword [rax + 0x250]
ja 0x1800ae5a9
mov r8, qword [rsi + 0x28]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x1800ae5a9
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rsi + 0x7e], r13w
mov qword [rsi + 0x28], r13
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x1800ae5ff
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, rax
test rax, rax
je 0x1800ae5ff
mov edx, 0xfe
mov rcx, rsi
lea r8d, [rdx - 0x7e]
call fcn.18024adb8
mov qword [rsi], r13
mov rax, qword [rdi + 0x38]
test rax, rax
je 0x1800ae5f0
mov qword [rax], rsi
mov qword [rdi + 0x38], rsi
jmp 0x1800ae5ff
mov qword [rdi + 0x30], rsi
mov qword [rdi + 0x38], rsi
jmp 0x1800ae5ff
mov ebx, 0x8007000e
mov eax, ebx
mov r15, qword [rsp + 0x9b0]
mov r14, qword [rsp + 0x9f8]
mov rdi, qword [rsp + 0x9f0]
movaps xmm6, xmmword [rsp + 0x9a0]
mov rbp, qword [rsp + 0x9e8]
add rsp, 0x9b8
pop r13
pop r12
pop rsi
pop rbx
ret