Function at 0x1400c37e0
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, 0x78
mov ebp, r9d
mov r13d, r8d
mov rdi, rdx
mov rsi, rcx
mov rax, qword [0x14030d038]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov rbx, qword [0x140319710]
cmp rbx, 1
jbe 0x1400c3de2
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400c3fa4
movsxd rcx, dword [rbx]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [rbx + 4]
jne 0x1400c3fa4
mov rax, qword [rax + rcx]
mov qword [rsi], rax
mov rbx, qword [0x140319750]
cmp rbx, 1
jbe 0x1400c3ee6
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400c3fab
movsxd rcx, dword [rbx]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [rbx + 4]
jne 0x1400c3fab
mov rax, qword [rax + rcx]
mov qword [rsi + 8], rax
cmp r13d, 1
je 0x1400c3fb2
test rax, rax
jne 0x1400c3d18
xor eax, eax
mov byte [rsi + 0x10], al
lea r12, [rsi + 0x18]
mov rdi, qword [rdi + 0x18]
mov qword [rsp + 0x30], 0x11be9915
mov rcx, qword [0x140317e60]
test rcx, rcx
jne 0x1400c3fb9
mov qword [r12], 0
mov qword [rsi + 0x28], 0
mov dword [rsi + 0x30], 0x11be9915
mov byte [rsi + 0x38], 0
mov rdi, qword [0x140319750]
cmp rdi, 1
jbe 0x1400c3f33
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400c3f91
movsxd rcx, dword [rdi]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [rdi + 4]
movsxd rdx, dword [rdi]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rdi, qword [0x14031b0c0]
cmp rdi, 1
jbe 0x1400c3e99
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400c39e6
movsxd rcx, dword [rdi]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [rdi + 4]
jne 0x1400c39e6
mov rax, qword [rax + rcx]
test rax, rax
je 0x1400c39e6
cmp byte [rax], 0
jne 0x1400c39e6
mov eax, dword [0x14031b090]
mov ecx, dword [0x140311f48]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400c3e64
cmp byte [0x14031b08c], 0
je 0x1400c39e6
mov rcx, qword [rsi]
test rcx, rcx
je 0x1400c39b8
mov rax, qword [rsi + 8]
test rax, rax
jne 0x1400c3d5a
mov edx, r13d
call fcn.14010efa0
mov rax, qword [r12]
test rax, rax
jne 0x1400c3fee
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.140115e50
mov rax, rsi
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
test ebp, ebp
jne 0x1400c3bc0
cmp byte [rsi + 0x10], 0
jne 0x1400c3bc0
cmp qword [rsi + 8], 0
jne 0x1400c399b
cmp byte [rsi + 0x38], 0
jne 0x1400c4097
lea rcx, [rsi + 0x40]
call qword [fcn.1400c45f0]
mov r14, qword [rsi + 0x40]
mov eax, dword [0x140319728]
mov ecx, dword [0x140311f48]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400c3d78
lea rcx, [0x140319720]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400c3f80
mov eax, dword [0x140319748]
mov ecx, dword [0x140311f48]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400c3dad
cmp qword [0x140319740], 0
je 0x1400c3ba2
mov eax, dword [0x140319738]
mov ecx, dword [0x140311f48]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400c3e2f
mov rbp, qword [0x140319730]
movabs r15, 0x7fffffffffffffff
mov rbx, r14
test rbp, rbp
je 0x1400c3af7
mov rax, qword [rbp + 0x1f0]
mov ebx, 0x3938700
xor ecx, ecx
mov edx, 0x3938700
add rdx, rax
setns cl
add rcx, r15
add rbx, rax
cmovo rbx, rcx
cmp rbx, r14
jle 0x1400c3af7
mov qword [rsi + 0x48], rbp
lock inc dword [rbp]
jmp 0x1400c3baa
mov rax, r14
sub rax, rbx
cmp rax, 0x989680
jl 0x1400c3b0f
mov byte [rbp + 0x200], 1
mov rbx, r14
mov ecx, 0x208
int3
mov qword [rsi + 0x48], 0
lea rcx, [0x140319720]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov byte [rsi + 0x38], 1
jmp 0x1400c399b
mov rax, qword [rsi + 8]
test rax, rax
je 0x1400c399b
cmp byte [rax + 0x38], 0
je 0x1400c399b
mov rdi, qword [rax + 0x48]
mov qword [rax + 0x48], 0
test rdi, rdi
je 0x1400c399b
lock dec dword [rdi]
jne 0x1400c399b
mov rcx, rdi
int3
mov al, byte [rax + 0x10]
jmp 0x1400c38a5
cmp r13d, 1
jne 0x1400c39b8
cmp byte [rax + 0x10], 0
jne 0x1400c39b8
call fcn.140221730
jmp 0x1400c39b8
lea rcx, [0x140319728]
int3
lea rcx, [0x140319748]
int3
lea rcx, [0x140319710]
int3
lea rcx, [0x140319738]
int3
lea rcx, [0x14031b090]
int3
lea rcx, [0x14031b0c0]
int3
lea rcx, [0x140319750]
int3
lea rcx, [0x140319750]
int3
lea rcx, [0x140319720]
call fcn.1400bb6f0
jmp 0x1400c3a51
test rsi, rsi
je 0x1400c3924
call fcn.1400086f0
jmp 0x1400c390b
xor eax, eax
jmp 0x1400c384a
xor eax, eax
jmp 0x1400c388c
mov al, 1
jmp 0x1400c38a5
int3
mov eax, dword [rax + 0x18]
cmp eax, dword [rsi + 0x20]
jbe 0x1400c39c5
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0x60]
mov qword [rdi], rax
mov rcx, rdi
call qword [fcn.1400c45f0]
mov rcx, r12
int3
lea rcx, [rsi + 0x40]
call fcn.14001b850
mov byte [rsi + 0x38], 0
jmp 0x1400c3a09