Function at 0x1800aed10
Capabilities:
Get thread local storage value

Disassembly:
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov r15, qword [rcx + 0x19550]
xor r13d, r13d
xor bpl, bpl
mov eax, dword [r15 + 0x78]
mov r12, rcx
mov r14d, eax
and eax, 0xfff00000
and r14d, 0xfffff
cmp eax, 0x20600000
ja 0x1800aedf3
cmp eax, 0x20600000
je 0x1800aed7a
cmp eax, 0x10100000
je 0x1800aed7a
cmp eax, 0x10500000
je 0x1800aed7a
cmp eax, 0x11000000
je 0x1800aed7a
cmp eax, 0x11400000
je 0x1800aed7a
cmp eax, 0x20200000
jne 0x1800aee1b
mov byte [rsp + 0x80], 1
xor r8d, r8d
test r14d, r14d
je 0x1800aee3e
mov r9, qword [r15 + 0x18]
lea r10, [rsp + 0x30]
nop word [rax + rax]
mov rax, qword [r9]
mov rdx, qword [rax + 0x100]
cmp rdx, 0xffffffffffffffff
je 0x1800aee3b
xor ecx, ecx
test r13d, r13d
je 0x1800aedd0
lea rax, [rsp + 0x30]
cmp qword [rax], rdx
je 0x1800aedd0
inc ecx
add rax, 8
cmp ecx, r13d
jb 0x1800aedc0
cmp ecx, r13d
jne 0x1800aede5
cmp r13d, 4
jae 0x1800aee28
mov qword [r10], rdx
inc r13d
add r10, 8
inc r8d
add r9, 8
cmp r8d, r14d
jb 0x1800aeda0
jmp 0x1800aee3e
cmp eax, 0x21200000
je 0x1800aed7a
cmp eax, 0x21600000
je 0x1800aed7a
cmp eax, 0x30200000
je 0x1800aed7a
cmp eax, 0x30800000
je 0x1800aed7a
mov byte [rsp + 0x80], r13b
jmp 0x1800aed82
mov eax, 0x80004005
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov bpl, 1
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x90], rsi
mov qword [rsp + 0x98], rdi
xor edi, edi
test r13d, r13d
je 0x1800aef04
lea rsi, [rsp + 0x30]
nop word [rax + rax]
mov rbx, qword [rsi]
mov eax, dword [rbx + 0x78]
and eax, 0xf0000000
cmp eax, 0x60000000
je 0x1800af07b
test byte [r12 + 0xcefb], 0x10
je 0x1800aeea6
mov edx, 1
mov rcx, rbx
call fcn.1801973d0
test al, al
je 0x1800af07b
mov r10d, dword [rbx + 0x20]
xor r8d, r8d
test r14d, r14d
je 0x1800aeeec
mov r9, qword [r15 + 0x18]
mov r11d, r14d
nop dword [rax]
mov rdx, qword [r9]
test r10d, r10d
je 0x1800aeee2
mov rax, qword [rbx + 0x28]
mov rcx, r10
nop
cmp qword [rax], rdx
jne 0x1800aeed8
inc r8d
add rax, 8
sub rcx, 1
jne 0x1800aeed0
add r9, 8
sub r11, 1
jne 0x1800aeec0
cmp r8d, r10d
jne 0x1800af07b
inc edi
add rsi, 8
cmp edi, r13d
jb 0x1800aee70
test bpl, bpl
jne 0x1800af07b
mov rbx, qword [r12 + 0x18]
test rbx, rbx
je 0x1800aef7b
test dword [rbx + 0x78], 0xfff00000
je 0x1800aef6a
cmp rbx, r15
je 0x1800aef6a
mov eax, dword [rbx + 0x10]
test eax, eax
je 0x1800aef6a
mov r10, qword [rbx + 0x18]
mov r11, rax
mov r8, qword [r10]
test r14d, r14d
je 0x1800aef60
mov rcx, qword [r15 + 0x18]
mov edx, r14d
mov rax, qword [rcx]
cmp rax, r8
je 0x1800aef53
cmp qword [r8 + 0xf0], rax
jne 0x1800aef56
mov bpl, 1
add rcx, 8
sub rdx, 1
jne 0x1800aef42
add r10, 8
sub r11, 1
jne 0x1800aef33
mov rbx, qword [rbx]
test rbx, rbx
jne 0x1800aef17
test bpl, bpl
jne 0x1800af07b
test r13d, r13d
je 0x1800af05c
mov ebp, r13d
lea rsi, [rsp + 0x30]
xor r13d, r13d
nop
mov rax, qword [r12 + 0x19550]
mov r10, qword [rsi]
mov edi, r13d
cmp dword [rax + 0x20], r13d
jbe 0x1800af04c
mov rbx, r13
nop dword [rax + rax]
mov r9d, r13d
cmp dword [r10 + 0x20], r13d
jbe 0x1800af035
mov r8, r13
mov r11, qword [r12 + 0x19550]
mov rcx, qword [r10 + 0x28]
mov rax, qword [r11 + 0x18]
mov rax, qword [rbx + rax]
cmp qword [r8 + rcx], rax
jne 0x1800af028
mov rdx, qword [r8 + rcx]
mov rax, qword [r11 + 0x28]
mov rcx, qword [rbx + rax]
mov rax, qword [rdx + 0xd0]
mov qword [rcx + 0xd0], rax
movzx eax, byte [rdx + 0xd8]
mov byte [rcx + 0xd8], al
mov rax, qword [r12 + 0x19550]
mov rcx, qword [r10 + 0x28]
mov rax, qword [rax + 0x28]
mov rax, qword [rbx + rax]
mov qword [r8 + rcx], rax
mov rax, qword [r10 + 0x28]
mov rcx, qword [r8 + rax]
or dword [rcx + 0xf8], 1
inc r9d
add r8, 8
cmp r9d, dword [r10 + 0x20]
jb 0x1800aefc0
mov rax, qword [r12 + 0x19550]
inc edi
add rbx, 8
cmp edi, dword [rax + 0x20]
jb 0x1800aefb0
add rsi, 8
sub rbp, 1
jne 0x1800aef90
jmp 0x1800af05f
xor r13d, r13d
mov rax, qword [r12 + 0x19550]
mov dword [rax + 0x78], r13d
mov dword [rax + 0x10], r13d
mov dword [rax + 0x20], r13d
mov eax, r13d
jmp 0x1800af4a1
cmp byte [rsp + 0x80], 0
je 0x1800af096
mov ebx, r14d
and ebx, 0xfffff
or ebx, 0x10100000
jmp 0x1800af0a3
mov ebx, r14d
and ebx, 0xfffff
bts ebx, 0x1c
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1800af0b5
xor r13d, r13d
mov rcx, r13
jmp 0x1800af0c1
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
xor r13d, r13d
mov rcx, rax
cmp qword [rcx + 0x30], 0
je 0x1800af0f5
mov rdi, qword [rcx + 0x30]
test rdi, rdi
jne 0x1800af0d6
mov rdi, r13
jmp 0x1800af10a
mov rax, qword [rdi]
mov qword [rcx + 0x30], rax
test rax, rax
jne 0x1800af0e6
mov qword [rcx + 0x38], r13
movabs rax, 0xfefefefefefefefe
mov qword [rdi], rax
jmp 0x1800af10a
mov rcx, qword [rcx + 0x28]
mov edx, 0x80
lea r8d, [rdx - 0x70]
call fcn.180243b70
mov rdi, rax
test rdi, rdi
je 0x1800af2ab
or r9d, 0xffffffff
mov edx, ebx
mov rcx, rdi
or r8d, r9d
mov qword [rdi], 0xffffffffffffffff
mov qword [rdi + 8], 0xffffffffffffffff
mov dword [rdi + 0x10], r13d
mov dword [rdi + 0x20], r13d
mov dword [rdi + 0x30], 0xffffffff
mov dword [rdi + 0x78], r13d
mov qword [rdi + 0x18], r13
mov word [rdi + 0x7c], r13w
mov qword [rdi + 0x28], r13
mov word [rdi + 0x7e], r13w
mov dword [rdi + 0x38], r13d
mov dword [rdi + 0x3c], r13d
mov dword [rdi + 0x40], r13d
mov qword [rdi + 0x48], 0xffffffffffffffff
mov dword [rdi + 0x50], r13d
mov dword [rdi + 0x68], r13d
mov qword [rdi + 0x70], r13
mov byte [rsp + 0x20], 0
call fcn.180193d40
mov esi, eax
test eax, eax
js 0x1800af19f
test r15, r15
je 0x1800af197
mov eax, dword [r15 + 0x68]
mov dword [rdi + 0x68], eax
mov rax, qword [r15 + 0x70]
mov qword [rdi + 0x70], rax
mov esi, r13d
jmp 0x1800af2b8
cmp word [rdi + 0x7c], 0
je 0x1800af1f4
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1800af1b5
mov rax, r13
jmp 0x1800af1bb
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rdi + 0x7c]
cmp ecx, dword [rax + 0x250]
ja 0x1800af1eb
mov r8, qword [rdi + 0x18]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x1800af1eb
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rdi + 0x7c], r13w
mov qword [rdi + 0x18], r13
cmp word [rdi + 0x7e], 0
je 0x1800af249
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1800af20a
mov rax, r13
jmp 0x1800af210
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rdi + 0x7e]
cmp ecx, dword [rax + 0x250]
ja 0x1800af240
mov r8, qword [rdi + 0x28]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x1800af240
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rdi + 0x7e], r13w
mov qword [rdi + 0x28], r13
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x1800af2a1
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
test rax, rax
je 0x1800af2a1
mov edx, 0xfe
mov rcx, rdi
lea r8d, [rdx - 0x7e]
call fcn.18024adb8
mov qword [rdi], r13
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x1800af28f
mov qword [rax], rdi
mov qword [rbx + 0x38], rdi
mov rdi, qword [rsp + 0x80]
jmp 0x1800af2b8
mov qword [rbx + 0x30], rdi
mov qword [rbx + 0x38], rdi
mov rdi, qword [rsp + 0x80]
jmp 0x1800af2b8
mov rdi, qword [rsp + 0x80]
jmp 0x1800af2b8
mov rdi, qword [rsp + 0x80]
mov esi, 0x8007000e
test esi, esi
js 0x1800af49f
mov rdx, qword [r12 + 0x19550]
mov rcx, qword [rdi + 0x18]
lea rbx, [r14*8]
mov rdx, qword [rdx + 0x18]
mov r8, rbx
mov esi, r14d
call sub.msvcrt.dll_memcpy
mov rdx, qword [r12 + 0x19550]
mov rcx, qword [rdi + 0x28]
mov rdx, qword [rdx + 0x28]
mov r8, rbx
call sub.msvcrt.dll_memcpy
test r14d, r14d
je 0x1800af31d
mov rdx, r13
mov rax, qword [rdi + 0x28]
add rdx, 8
mov rcx, qword [rdx + rax - 8]
or dword [rcx + 0xf8], 1
sub rsi, 1
jne 0x1800af303
mov rbx, qword [r12 + 0x19550]
mov rax, qword [rbx]
mov ebp, dword [rbx + 0x30]
mov qword [rdi], rax
mov rax, qword [rbx]
test rax, rax
je 0x1800af33c
mov qword [rax + 8], rdi
jmp 0x1800af341
mov qword [r12 + 0x20], rdi
mov qword [rdi + 8], rbx
mov rax, qword [rbx + 8]
mov qword [rbx], rdi
test rax, rax
je 0x1800af356
mov qword [rax], rdi
jmp 0x1800af35b
mov qword [r12 + 0x18], rdi
mov rcx, qword [rbx]
test rcx, rcx
je 0x1800af36d
mov rax, qword [rbx + 8]
mov qword [rcx + 8], rax
jmp 0x1800af376
mov rax, qword [rbx + 8]
mov qword [r12 + 0x20], rax
mov qword [rbx], 0xffffffffffffffff
mov qword [rbx + 8], 0xffffffffffffffff
cmp word [rbx + 0x7c], 0
je 0x1800af3da
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1800af39b
mov rax, r13
jmp 0x1800af3a1
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rbx + 0x7c]
cmp ecx, dword [rax + 0x250]
ja 0x1800af3d1
mov r8, qword [rbx + 0x18]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x1800af3d1
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rbx + 0x7c], r13w
mov qword [rbx + 0x18], r13
cmp word [rbx + 0x7e], 0
je 0x1800af42f
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1800af3f0
mov rax, r13
jmp 0x1800af3f6
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rbx + 0x7e]
cmp ecx, dword [rax + 0x250]
ja 0x1800af426
mov r8, qword [rbx + 0x28]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x1800af426
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rbx + 0x7e], r13w
mov qword [rbx + 0x28], r13
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x1800af471
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
test rax, rax
je 0x1800af471
mov edx, 0xfe
mov rcx, rbx
lea r8d, [rdx - 0x7e]
call fcn.18024adb8
mov qword [rbx], r13
mov rax, qword [rsi + 0x38]
test rax, rax
je 0x1800af469
mov qword [rax], rbx
jmp 0x1800af46d
mov qword [rsi + 0x30], rbx
mov qword [rsi + 0x38], rbx
cmp dword [rdi + 0x30], 0xffffffff
je 0x1800af47e
mov eax, 0x80004005
jmp 0x1800af48a
mov dword [rdi + 0x30], ebp
or dword [r12 + 0x28], 6
mov eax, r13d
test eax, eax
js 0x1800af4a1
mov rcx, r12
call fcn.1801b3770
test eax, eax
js 0x1800af4a1
mov eax, r13d
jmp 0x1800af4a1
mov eax, esi
mov rsi, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x98]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rbp
ret