Function at 0x1000a27c4
Capabilities:
Get thread local storage value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x48
mov ecx, dword [0x1000de268]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov r13d, 0xfffffff
xor ebp, ebp
mov rsi, qword [rax + 0x28]
test dword [rsi + 0x18], r13d
je 0x1000a2cac
mov ecx, dword [0x1000df7f0]
xor edi, edi
call fcn.1000a0bb4
mov ecx, dword [0x1000df7d8]
mov r12b, al
mov byte [rsp + 0x30], al
call fcn.1000a0bb4
mov ecx, dword [0x1000df8cc]
mov bl, al
mov byte [rsp + 0xa0], al
call fcn.1000a0bb4
mov byte [rsp + 0xa8], al
test r12b, r12b
jne 0x1000a2843
test bl, bl
jne 0x1000a2843
test al, al
jne 0x1000a2843
xor r15b, r15b
jmp 0x1000a2846
mov r15b, 1
mov ecx, dword [0x1000df850]
call fcn.1000a0bb4
mov byte [rsp + 0x90], al
test r15b, r15b
jne 0x1000a2865
test al, al
je 0x1000a2cac
xor r14d, r14d
test dword [rsi + 0x18], r13d
jbe 0x1000a2b67
xor r12d, r12d
mov qword [rsp + 0x98], r12
bt dword [rsi + 0x18], 0x1c
jae 0x1000a288a
mov rbx, qword [rsi + 0x20]
jmp 0x1000a288e
lea rbx, [rsi + 0x20]
mov rbx, qword [r12 + rbx]
xor r12b, r12b
test r15b, r15b
je 0x1000a28ca
mov rcx, qword [rbx]
lea rdx, [rbx + 0x18]
call fcn.10009dde4
mov ebp, eax
test eax, eax
js 0x1000a2911
lea rcx, [rbx + 8]
lea rdx, [rbx + 0x18]
call qword [sym.imp.USER32.dll_EqualRect]
test eax, eax
mov al, byte [rsp + 0x90]
jne 0x1000a28ca
mov r12b, 1
inc edi
test ebp, ebp
js 0x1000a2911
test al, al
je 0x1000a28f1
mov rcx, qword [rbx]
lea rdx, [rbx + 0x29]
call fcn.10009dec0
mov ebp, eax
test eax, eax
js 0x1000a2911
mov al, byte [rbx + 0x29]
cmp byte [rbx + 0x28], al
je 0x1000a28f1
mov r12b, 1
inc edi
test r12b, r12b
mov r12, qword [rsp + 0x98]
je 0x1000a2919
add r12, 8
inc r14d
xor ebx, ebx
mov qword [rsp + 0x98], r12
jmp 0x1000a2919
mov r12, qword [rsp + 0x98]
test rbx, rbx
je 0x1000a2980
mov eax, dword [rsi + 0x18]
bt eax, 0x1c
jae 0x1000a292d
mov r9, qword [rsi + 0x20]
jmp 0x1000a2931
lea r9, [rsi + 0x20]
mov r13d, 0xfffffff
lea rcx, [r9 + r14*8]
and eax, r13d
sub eax, r14d
lea r8d, [rax - 1]
lea eax, [r14 + 1]
lea rdx, [r9 + rax*8]
shl r8, 3
call sub.msvcrt.dll_memmove
mov r11d, dword [rsi + 0x18]
lea eax, [r11 - 1]
xor eax, r11d
and eax, r13d
xor eax, r11d
mov dword [rsi + 0x18], eax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
mov rcx, rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1000a2986
mov r13d, 0xfffffff
mov eax, dword [rsi + 0x18]
and eax, r13d
cmp eax, r14d
mov al, byte [rsp + 0x90]
ja 0x1000a287d
test ebp, ebp
js 0x1000a2b67
cmp edi, 0x19
jl 0x1000a2b67
mov ecx, dword [rsi + 0x18]
mov r12d, 0xfffffff
mov bl, 1
and ecx, r12d
mov byte [rsp + 0x98], bl
jbe 0x1000a2b76
mov ebx, 1
xor r13d, r13d
bt dword [rsi + 0x18], 0x1c
jae 0x1000a29dd
mov rax, qword [rsi + 0x20]
jmp 0x1000a29e1
lea rax, [rsi + 0x20]
mov r15, qword [r13 + rax]
mov r12d, ebx
cmp ecx, ebx
jbe 0x1000a2b02
lea edx, [rbx + 1]
lea r14, [r13 + 8]
mov dword [rsp + 0x34], edx
bt dword [rsi + 0x18], 0x1c
jae 0x1000a2a09
mov rax, qword [rsi + 0x20]
jmp 0x1000a2a0d
lea rax, [rsi + 0x20]
mov rdi, qword [r14 + rax]
mov rcx, qword [rdi]
mov rax, rcx
test rcx, rcx
je 0x1000a2a5b
cmp qword [r15], rax
jne 0x1000a2a4d
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [rsi + 0x18]
bt eax, 0x1c
jae 0x1000a2a60
mov rcx, qword [rsi + 0x20]
jmp 0x1000a2a64
test byte [rax + 0x88], 0x80
jne 0x1000a2a56
mov rax, qword [rax + 0x48]
test rax, rax
jne 0x1000a2a44
test rax, rax
jne 0x1000a2a1c
mov rax, qword [r15]
jmp 0x1000a2add
lea rcx, [rsi + 0x20]
mov edi, 0xfffffff
and eax, edi
sub eax, r12d
lea r8d, [rax - 1]
mov eax, dword [rsp + 0x34]
lea rdx, [rcx + rax*8]
mov eax, r12d
shl r8, 3
lea rcx, [rcx + rax*8]
call sub.msvcrt.dll_memmove
mov r11d, dword [rsi + 0x18]
mov edx, dword [rsp + 0x34]
lea eax, [r11 - 1]
xor eax, r11d
and eax, edi
xor eax, r11d
mov dword [rsi + 0x18], eax
jmp 0x1000a2af4
cmp rcx, rax
jne 0x1000a2ad4
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [rsi + 0x18]
bt eax, 0x1c
jae 0x1000a2b28
mov r9, qword [rsi + 0x20]
jmp 0x1000a2b2c
test byte [rax + 0x88], 0x80
jne 0x1000a2add
mov rax, qword [rax + 0x48]
test rax, rax
jne 0x1000a2acb
test rax, rax
jne 0x1000a2aa3
inc edx
inc r12d
mov edi, 0xfffffff
mov dword [rsp + 0x34], edx
add r14, 8
mov eax, dword [rsi + 0x18]
and eax, edi
cmp eax, r12d
ja 0x1000a29fc
inc ebx
mov r12d, 0xfffffff
add r13, 8
mov ecx, dword [rsi + 0x18]
lea eax, [rbx - 1]
and ecx, r12d
cmp ecx, eax
ja 0x1000a29d0
mov bl, byte [rsp + 0x98]
jmp 0x1000a2b76
lea r9, [rsi + 0x20]
lea ecx, [rbx - 1]
mov r12d, 0xfffffff
and eax, r12d
sub eax, ecx
lea rcx, [r9 + rcx*8]
lea r8d, [rax - 1]
mov eax, ebx
lea rdx, [r9 + rax*8]
shl r8, 3
call sub.msvcrt.dll_memmove
mov r11d, dword [rsi + 0x18]
lea eax, [r11 - 1]
xor eax, r11d
and eax, r12d
xor eax, r11d
mov dword [rsi + 0x18], eax
jmp 0x1000a2b0e
xor bl, bl
mov r12d, 0xfffffff
mov byte [rsp + 0x98], bl
test ebp, ebp
js 0x1000a2cac
mov eax, dword [rsi + 0x18]
and eax, r12d
je 0x1000a2cac
mov r13b, byte [rsp + 0x90]
mov r14b, byte [rsp + 0xa0]
mov r15b, byte [rsp + 0xa8]
bt dword [rsi + 0x18], 0x1c
jae 0x1000a2baf
mov rcx, qword [rsi + 0x20]
jmp 0x1000a2bb3
lea rcx, [rsi + 0x20]
lea r10d, [rax - 1]
mov eax, dword [rsi + 0x18]
bt eax, 0x1c
mov rdi, qword [rcx + r10*8]
jae 0x1000a2bca
mov r9, qword [rsi + 0x20]
jmp 0x1000a2bce
lea r9, [rsi + 0x20]
and eax, r12d
lea rcx, [r9 + r10*8]
sub eax, r10d
lea r8d, [rax - 1]
lea eax, [r10 + 1]
lea rdx, [r9 + rax*8]
shl r8, 3
call sub.msvcrt.dll_memmove
mov r11d, dword [rsi + 0x18]
lea eax, [r11 - 1]
xor eax, r11d
and eax, r12d
xor eax, r11d
mov dword [rsi + 0x18], eax
test ebp, ebp
js 0x1000a2c80
test bl, bl
je 0x1000a2cbf
mov r12, qword [rdi]
xor ebx, ebx
lea rcx, [rsp + 0x90]
and qword [rsp + 0x90], rbx
mov qword [rsp + 0xa0], rbx
call fcn.1000a01ac
mov ebp, eax
test eax, eax
js 0x1000a2c57
mov rdx, qword [rsp + 0x90]
lea r8, [rsp + 0xa0]
mov rcx, r12
call fcn.10007d7a0
mov rbx, qword [rsp + 0xa0]
mov ebp, eax
test ebp, ebp
js 0x1000a2c6c
mov edx, dword [0x1000df7b4]
mov rcx, rbx
call qword [0x1000df8d0]
mov ebp, eax
test rbx, rbx
je 0x1000a2c7a
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
mov r12d, 0xfffffff
test rdi, rdi
je 0x1000a2c99
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [rsi + 0x18]
mov bl, byte [rsp + 0x98]
and eax, r12d
jne 0x1000a2ba2
mov eax, ebp
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov dl, byte [rsp + 0x30]
mov r9b, r15b
mov r8b, r14b
mov rcx, rdi
mov byte [rsp + 0x20], r13b
call fcn.1000a32a8
mov ebp, eax
jmp 0x1000a2c80