Function at 0x14008f660
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 [0x1401c1028]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov eax, dword [0x1401d3410]
mov ecx, dword [0x1401d0348]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14008f942
mov ecx, dword [0x1401cf700]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14008f6e5
mov rcx, qword [0x1401d3400]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x1401d3408]
jne 0x14008f6e5
add rax, rcx
cmp qword [rax], 0
jne 0x14008f786
mov ecx, 0x18
call fcn.14014b4a8
mov r15, rax
add rax, 8
xorps xmm0, xmm0
movups xmmword [r15 + 8], xmm0
mov qword [r15], rax
mov ecx, dword [0x1401cf700]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14008f732
mov rcx, qword [0x1401d3400]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x1401d3408]
jne 0x14008f732
add rax, rcx
mov r12, qword [rax]
jmp 0x14008f735
xor r12d, r12d
mov ecx, dword [0x1401cf700]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14008f92f
mov rcx, qword [0x1401d3400]
shl rcx, 4
mov qword [rax + rcx], r15
mov ecx, dword [0x1401d3408]
mov rdx, qword [0x1401d3400]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
test r12, r12
je 0x14008f786
mov rcx, qword [r12 + 8]
call fcn.14008fb80
mov rcx, r12
call fcn.14014b4e4
mov ecx, dword [0x1401cf700]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14008f7b7
mov rcx, qword [0x1401d3400]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x1401d3408]
jne 0x14008f7b7
add rax, rcx
mov r15, qword [rax]
jmp 0x14008f7ba
xor r15d, r15d
mov rcx, qword [r15 + 8]
test rcx, rcx
je 0x14008f7f3
lea rdx, [r15 + 8]
mov rax, rdx
nop word [rax + rax]
xor r8d, r8d
cmp qword [rcx + 0x20], rsi
setb r8b
cmovae rax, rcx
mov rcx, qword [rcx + r8*8]
test rcx, rcx
jne 0x14008f7d0
cmp rax, rdx
je 0x14008f7f3
cmp qword [rax + 0x20], rsi
jbe 0x14008f82b
cmp edi, 1
je case.default.0x14008f824
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.14014c9b0
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 0x14008f99e
mov qword [rsp + 0x28], 0
mov r13, qword [r12]
test r13, r13
je 0x14008f995
mov eax, 1
lock xadd dword [r13], eax
test eax, eax
jle 0x14008f998
cmp eax, 0x7fffffff
je 0x14008f99b
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 [0x1401b4100]
mov ebp, eax
lock dec dword [r13]
jne 0x14008f8db
mov rax, qword [r13 + 0x10]
mov rcx, r13
call qword [0x1401b4100]
test bpl, bpl
jne 0x14008f8e0
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 0x14008f8e5
mov qword [r12 + 8], 0
mov rcx, r15
mov rdx, rsi
call fcn.14008fa90
jmp 0x14008f8e5
test bpl, bpl
je 0x14008f8aa
cmp edi, 2
je 0x14008f8c5
mov rsi, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.14014c9b0
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.14008f9b0
test r12, r12
jne 0x14008f838
jmp 0x14008f7fc
test r15, r15
je 0x14008f76f
call fcn.1400c8460
jmp 0x14008f74b
lea rcx, [0x1401d3410]
call fcn.14014b600
cmp dword [0x1401d3410], 0xffffffff
jne 0x14008f6af
mov qword [0x1401d3408], 0
lea rcx, [0x1401d3400]
mov qword [0x1401d3400], 0xffffffffffffffff
lea rdx, [0x14008fb50]
call fcn.1400c8320
lea rcx, [0x1401d3410]
call fcn.14014b698
jmp 0x14008f6af
int3
int3
int3
int3
lea rax, sym.imp.USER32.dll_DefWindowProcW
jmp 0x140184f49
lea rax, sym.imp.USER32.dll_DestroyWindow
jmp 0x140184f49
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, [0x1401b4280]
call fcn.14014be64
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