Function at 0x180209600
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rbx
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov rsi, qword [r8]
mov rax, qword [rdx + 0x28]
mov rbp, r8
mov r10, qword [rax]
or r12d, 0xffffffff
mov edi, r9d
movzx r15d, byte [r10 + 0xd8]
mov r13, qword [r10 + 0xd0]
mov r14, rdx
mov rbx, rsi
xor r8d, r8d
nop
cmp dword [rbx + 0xcc], 0
jne 0x180209805
mov rax, qword [rbx + 0x100]
cmp rax, 0xffffffffffffffff
je 0x180209677
mov eax, dword [rax + 0x30]
cmp dword [r14 + 0x30], eax
jbe 0x180209805
movzx ecx, r15b
mov rax, r13
cmp r13, 0xffffffffffffffff
je 0x1802096a8
mov rdx, qword [rbx + 0xd0]
nop dword [rax + rax]
cmp rax, rdx
je 0x1802096a8
mov cl, byte [rax + 0xd8]
mov rax, qword [rax + 0xd0]
cmp rax, 0xffffffffffffffff
jne 0x180209690
cmp rax, qword [rbx + 0xd0]
jne 0x180209805
cmp cl, byte [rbx + 0xd8]
jne 0x180209805
mov r9d, 1
mov qword [rsp + 0x30], rbx
cmp r9d, edi
jae 0x1802097ae
lea rsi, [rsp + 0x30]
lea r11, [rbp + 8]
sub rsi, rbp
mov r10, qword [r11]
mov rcx, r10
nop word [rax + rax]
cmp dword [rcx + 0xcc], r9d
jne 0x18020977e
mov rax, qword [rcx + 0x100]
cmp rax, 0xffffffffffffffff
je 0x180209713
mov eax, dword [rax + 0x30]
cmp dword [r14 + 0x30], eax
jbe 0x18020977e
mov rax, qword [rbx + 0xa8]
cmp qword [rcx + 0xa8], rax
jne 0x18020977e
mov eax, dword [rbx + 0xc8]
cmp dword [rcx + 0xc8], eax
jne 0x18020977e
mov rax, qword [rbx + 0xc0]
cmp qword [rcx + 0xc0], rax
jne 0x18020977e
movzx edx, r15b
mov rax, r13
cmp r13, 0xffffffffffffffff
je 0x18020976d
mov r8, qword [rcx + 0xd0]
cmp rax, r8
je 0x18020976d
mov dl, byte [rax + 0xd8]
mov rax, qword [rax + 0xd0]
cmp rax, 0xffffffffffffffff
jne 0x180209755
cmp rax, qword [rcx + 0xd0]
jne 0x18020977e
cmp dl, byte [rcx + 0xd8]
je 0x180209790
mov rcx, qword [rcx + 0xe8]
cmp rcx, r10
jne 0x1802096f0
jmp 0x1802097a4
inc r9d
mov qword [rsi + r11], rcx
add r11, 8
cmp r9d, edi
jb 0x1802096e1
mov rsi, qword [rbp]
xor r8d, r8d
cmp r9d, edi
jne 0x180209805
test edi, edi
je 0x1802097e7
lea rcx, [rsp + 0x30]
mov r9, rdi
nop dword [rax]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x100]
cmp rdx, 0xffffffffffffffff
je 0x1802097dd
mov eax, dword [r14 + 0x30]
sub eax, dword [rdx + 0x30]
imul eax, eax
add r8d, eax
add rcx, 8
sub r9, 1
jne 0x1802097c0
cmp r12d, r8d
jbe 0x180209805
mov r12d, r8d
mov r8, rdi
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x50]
shl r8, 3
call sub.msvcrt.dll_memcpy
mov rbx, qword [rbx + 0xe8]
mov r8d, 0
cmp rbx, rsi
jne 0x180209650
cmp r12d, 0xffffffff
je 0x18020983c
mov r8, rdi
lea rdx, [rsp + 0x50]
mov rcx, rbp
shl r8, 3
call sub.msvcrt.dll_memcpy
xor eax, eax
jmp 0x180209be8
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x18020984d
xor ebp, ebp
mov rcx, rbp
jmp 0x180209858
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
xor ebp, ebp
mov rcx, rax
cmp qword [rcx + 0x30], 0
je 0x18020988c
mov rbx, qword [rcx + 0x30]
test rbx, rbx
jne 0x18020986d
mov rbx, rbp
jmp 0x1802098a1
mov rax, qword [rbx]
mov qword [rcx + 0x30], rax
test rax, rax
jne 0x18020987d
mov qword [rcx + 0x38], rbp
movabs rax, 0xfefefefefefefefe
mov qword [rbx], rax
jmp 0x1802098a1
mov rcx, qword [rcx + 0x28]
mov edx, 0x80
lea r8d, [rdx - 0x70]
call fcn.180243b70
mov rbx, rax
test rbx, rbx
je 0x180209a20
mov edx, edi
or r9d, 0xffffffff
mov rcx, rbx
and edx, 0xfffff
or r8d, r9d
mov qword [rbx], 0xffffffffffffffff
bts edx, 0x1c
mov qword [rbx + 8], 0xffffffffffffffff
mov dword [rbx + 0x10], ebp
mov dword [rbx + 0x20], ebp
mov dword [rbx + 0x30], 0xffffffff
mov dword [rbx + 0x78], ebp
mov qword [rbx + 0x18], rbp
mov word [rbx + 0x7c], bp
mov qword [rbx + 0x28], rbp
mov word [rbx + 0x7e], bp
mov dword [rbx + 0x38], ebp
mov dword [rbx + 0x3c], ebp
mov dword [rbx + 0x40], ebp
mov qword [rbx + 0x48], 0xffffffffffffffff
mov dword [rbx + 0x50], ebp
mov dword [rbx + 0x68], ebp
mov qword [rbx + 0x70], rbp
mov byte [rsp + 0x20], 0
call fcn.180193d40
mov edi, eax
test eax, eax
js 0x180209930
mov eax, dword [r14 + 0x68]
mov edi, ebp
mov dword [rbx + 0x68], eax
mov rax, qword [r14 + 0x70]
mov qword [rbx + 0x70], rax
jmp 0x180209a2d
cmp word [rbx + 0x7c], 0
je 0x180209984
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x180209946
mov rax, rbp
jmp 0x18020994c
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rbx + 0x7c]
cmp ecx, dword [rax + 0x250]
ja 0x18020997c
mov r8, qword [rbx + 0x18]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x18020997c
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rbx + 0x7c], bp
mov qword [rbx + 0x18], rbp
cmp word [rbx + 0x7e], 0
je 0x1802099d8
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x18020999a
mov rax, rbp
jmp 0x1802099a0
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rbx + 0x7e]
cmp ecx, dword [rax + 0x250]
ja 0x1802099d0
mov r8, qword [rbx + 0x28]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x1802099d0
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rbx + 0x7e], bp
mov qword [rbx + 0x28], rbp
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x180209a25
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
test rax, rax
je 0x180209a25
mov edx, 0xfe
mov rcx, rbx
lea r8d, [rdx - 0x7e]
call fcn.18024adb8
mov qword [rbx], rbp
mov rax, qword [rsi + 0x38]
test rax, rax
je 0x180209a16
mov qword [rax], rbx
mov qword [rsi + 0x38], rbx
jmp 0x180209a25
mov qword [rsi + 0x30], rbx
mov qword [rsi + 0x38], rbx
jmp 0x180209a25
mov edi, 0x8007000e
mov rbx, qword [rsp + 0xc0]
test edi, edi
js 0x180209be6
cmp dword [rsp + 0xc8], 0
mov r12, qword [rsp + 0xd0]
jbe 0x180209b6c
mov rax, qword [rsp + 0xc0]
xor esi, esi
nop word [rax + rax]
mov rax, qword [rsi + rax]
mov rcx, qword [rbx + 0x18]
mov dword [rsp + 0x28], 0x11
mov qword [rsi + rcx], rax
mov rax, qword [rbx + 0x28]
mov r9d, dword [r12]
mov ecx, ebp
mov dword [rsp + 0x20], ebp
lea rdx, [rax + rcx*8]
mov rax, qword [rsp + 0xb0]
mov r8, qword [rax + 0xd078]
mov rcx, rax
call fcn.18019f030
mov edi, eax
test eax, eax
js 0x180209be6
mov rax, qword [rbx + 0x28]
inc ebp
add rsi, 8
mov rcx, qword [rax + rsi - 8]
mov byte [rcx + 0xd8], r15b
mov rax, qword [rbx + 0x28]
mov rcx, qword [rax + rsi - 8]
mov qword [rcx + 0xd0], r13
mov rax, qword [rbx + 0x18]
mov rcx, qword [rsi + rax - 8]
mov rax, qword [rbx + 0x28]
mov rdx, qword [rcx + 0x98]
mov rcx, qword [rax + rsi - 8]
btr rdx, 0x18
mov qword [rcx + 0x98], rdx
mov rax, qword [rbx + 0x18]
mov rdx, qword [rsi + rax - 8]
mov rax, qword [rbx + 0x28]
mov rcx, qword [rax + rsi - 8]
mov eax, dword [rdx + 0xa4]
mov dword [rcx + 0xa4], eax
mov rax, qword [rbx + 0x18]
mov rdx, qword [rsi + rax - 8]
mov rax, qword [rbx + 0x28]
mov rcx, qword [rax + rsi - 8]
mov rax, qword [rdx + 0xe8]
mov qword [rcx + 0xe8], rax
mov rax, qword [rbx + 0x18]
mov rdx, qword [rbx + 0x28]
mov rcx, qword [rsi + rax - 8]
mov rax, qword [rsi + rdx - 8]
mov qword [rcx + 0xe8], rax
mov rax, qword [rbx + 0x28]
mov rcx, qword [rsi + rax - 8]
mov rax, qword [rsp + 0xc0]
mov qword [rsi + rax - 8], rcx
cmp ebp, dword [rsp + 0xc8]
jb 0x180209a60
xor esi, esi
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rbx
mov qword [rbx + 8], rsi
mov qword [rbx], rsi
mov ecx, esi
mov rax, rbx
mov rax, qword [rax]
inc ecx
test rax, rax
jne 0x180209b84
mov rdi, qword [rsp + 0xb0]
add dword [rdi + 0x14], ecx
mov rax, qword [r14 + 8]
mov qword [rbx + 8], rax
mov rax, qword [r14 + 8]
test rax, rax
je 0x180209baf
mov qword [rax], rbx
jmp 0x180209bb3
mov qword [rdi + 0x18], rbx
mov qword [rbx], r14
mov qword [r14 + 8], rbx
or dword [rdi + 0x28], 7
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], rsi
call fcn.1800c5e00
mov rcx, rdi
call fcn.1801b3770
mov edi, eax
test eax, eax
js 0x180209be6
inc dword [r12]
mov edi, esi
mov eax, edi
mov rbx, qword [rsp + 0xb8]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret