Function at 0x14008da80
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov rbx, r9
mov r14, r8
mov edi, edx
mov rsi, rcx
mov rax, qword [0x1401c6028]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov eax, dword [0x1401d82e0]
mov ecx, dword [0x1401d52c8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14008dd62
mov ecx, dword [0x1401d466c]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14008db03
mov rcx, qword [0x1401d82d0]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x1401d82d8]
jne 0x14008db03
cmp qword [rax + rcx], 0
jne 0x14008dba2
mov ecx, 0x18
call fcn.140150d68
mov r15, rax
add rax, 8
xorps xmm0, xmm0
movups xmmword [r15 + 8], xmm0
mov qword [r15], rax
mov ecx, dword [0x1401d466c]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14008db4e
mov rcx, qword [0x1401d82d0]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x1401d82d8]
jne 0x14008db4e
mov r12, qword [rax + rcx]
jmp 0x14008db51
xor r12d, r12d
mov ecx, dword [0x1401d466c]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14008dd4f
mov rcx, qword [0x1401d82d0]
shl rcx, 4
mov qword [rax + rcx], r15
mov ecx, dword [0x1401d82d8]
mov rdx, qword [0x1401d82d0]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
test r12, r12
je 0x14008dba2
mov rcx, qword [r12 + 8]
call fcn.14008dfa0
mov rcx, r12
call fcn.140150da4
mov ecx, dword [0x1401d466c]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14008dbd1
mov rcx, qword [0x1401d82d0]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x1401d82d8]
jne 0x14008dbd1
mov r15, qword [rax + rcx]
jmp 0x14008dbd4
xor r15d, r15d
mov rcx, qword [r15 + 8]
test rcx, rcx
je 0x14008dc13
lea rdx, [r15 + 8]
mov rax, rdx
nop word cs:[rax + rax]
lea r8, [rcx + 8]
cmp qword [rcx + 0x20], rsi
cmovae r8, rcx
cmovae rax, rcx
mov rcx, qword [r8]
test rcx, rcx
jne 0x14008dbf0
cmp rax, rdx
je 0x14008dc13
cmp qword [rax + 0x20], rsi
jbe 0x14008dc4b
cmp edi, 1
je case.default.0x14008dc44
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.140152280
mov rcx, rsi
mov edx, edi
mov r8, r14
mov r9, rbx
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp qword [sym.imp.USER32.dll_DefWindowProcW]
mov r12, qword [rax + 0x28]
test r12, r12
je 0x14008ddbe
mov qword [rsp + 0x28], 0
mov r13, qword [r12]
test r13, r13
je 0x14008ddb5
mov eax, 1
lock xadd dword [r13], eax
test eax, eax
jle 0x14008ddb8
cmp eax, 0x7fffffff
je 0x14008ddbb
mov rax, qword [r12]
mov rax, qword [rax + 8]
lea rcx, [rsp + 0x28]
mov qword [rsp + 0x20], rcx
mov rcx, r13
mov edx, edi
mov r8, r14
mov r9, rbx
call qword [0x1401b8a50]
mov ebp, eax
lock dec dword [r13]
jne 0x14008dcfb
mov rax, qword [r13 + 0x10]
mov rcx, r13
call qword [0x1401b8a50]
test bpl, bpl
jne 0x14008dd00
mov rcx, rsi
mov edx, edi
mov r8, r14
mov r9, rbx
call qword [sym.imp.USER32.dll_DefWindowProcW]
mov qword [rsp + 0x28], rax
cmp edi, 2
jne 0x14008dd05
mov qword [r12 + 8], 0
mov rcx, r15
mov rdx, rsi
call fcn.14008deb0
jmp 0x14008dd05
test bpl, bpl
je 0x14008dcca
cmp edi, 2
je 0x14008dce5
mov rsi, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.140152280
mov rax, rsi
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r12, qword [rbx]
mov qword [r12 + 8], rsi
mov rcx, r15
mov rdx, rsi
mov r8, r12
call fcn.14008ddd0
test r12, r12
jne 0x14008dc58
jmp 0x14008dc1c
test r15, r15
je 0x14008db8b
call fcn.1400c81d0
jmp 0x14008db67
lea rcx, [0x1401d82e0]
call fcn.140150ec0
cmp dword [0x1401d82e0], 0xffffffff
jne 0x14008dacf
mov qword [0x1401d82d8], 0
lea rcx, [0x1401d82d0]
mov qword [0x1401d82d0], 0xffffffffffffffff
lea rdx, [0x14008df70]
call fcn.1400c8040
lea rcx, [0x1401d82e0]
call fcn.140150f58
jmp 0x14008dacf
int3
int3
int3
int3
lea rax, sym.imp.USER32.dll_DefWindowProcW
jmp 0x14018ab0d
lea rax, sym.imp.USER32.dll_DestroyWindow
jmp 0x14018ab0d
push rcx
push rdx
push r8
push r9
sub rsp, 0x48
movdqa xmmword [rsp], xmm0
movdqa xmmword [rsp + 0x10], xmm1
movdqa xmmword [rsp + 0x20], xmm2
movdqa xmmword [rsp + 0x30], xmm3
mov rdx, rax
lea rcx, [0x1401b8ba8]
call fcn.14015172c
movdqa xmm0, xmmword [rsp]
movdqa xmm1, xmmword [rsp + 0x10]
movdqa xmm2, xmmword [rsp + 0x20]
movdqa xmm3, xmmword [rsp + 0x30]
add rsp, 0x48
pop r9
pop r8
pop rdx
pop rcx
jmp rax