Function at 0x140163490
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov rax, qword [0x1404c39e8]
xor rax, rsp
mov qword [rbp + 0x70], rax
mov r15d, r9d
mov r11, r8
mov rdi, rdx
mov rsi, rcx
xor r12d, r12d
mov dword [rcx + 0x30], r9d
cmp r9d, 1
je 0x140163533
mov r9, qword [rcx + 8]
mov rdx, qword [r9 + 0x58]
movsxd rcx, dword [rdx]
cmp rcx, r8
cmovb r8d, ecx
sub ecx, r8d
mov dword [rdx], ecx
mov rcx, qword [r9 + 0x40]
movsxd rax, r8d
add qword [rcx], rax
mov rax, qword [r9 + 0x40]
mov rdx, qword [rax]
mov rax, qword [r9 + 0x38]
mov rcx, qword [rax]
mov qword [rax], rcx
sub edx, ecx
mov rax, qword [r9 + 0x50]
mov dword [rax], edx
mov rax, qword [rdi + 0x10]
test al, 1
je 0x14016352a
cmp rax, 1
jne 0x14016373e
cmp dword [rdi], r12d
jne 0x14016373e
test r11, r11
je 0x14016373e
mov rcx, qword [rsi + 8]
mov rax, qword [rcx + 0x40]
mov rdx, qword [rax]
mov rax, qword [rcx + 0x38]
mov rcx, qword [rax]
sub rdx, rcx
mov qword [rbp + 0x50], rcx
mov qword [rbp + 0x58], rdx
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x60], r12
lea rax, [rbp + 0x50]
mov qword [rsp + 0x48], rax
lea rcx, [rbp + 0x50]
mov qword [rsp + 0x50], rcx
lea rax, [rbp + 0x60]
mov qword [rsp + 0x58], rax
nop
movups xmm0, xmmword [rcx]
movups xmmword [rsp + 0x30], xmm0
cmp qword [rcx + 8], r12
jne 0x14016359b
add rcx, 0x10
lea rax, [rbp + 0x60]
cmp rcx, rax
jne 0x140163580
mov qword [rsp + 0x50], rcx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp - 0x50], xmm0
mov qword [rbp - 0x40], rax
mov r8, qword [rsi + 0x38]
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x70]
call fcn.140160790
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x60], r12
xorps xmm1, xmm1
mov qword [rsp + 0x40], r12
mov rbx, r12
lea rax, [rbp + 0x50]
mov qword [rsp + 0x48], rax
lea rcx, [rbp + 0x50]
lea rax, [rbp + 0x60]
mov qword [rsp + 0x58], rax
nop dword [rax]
nop word [rax + rax]
add rbx, qword [rcx + 8]
add rcx, 0x10
lea rax, [rbp + 0x60]
cmp rcx, rax
jne 0x140163600
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x60], rbx
lea rdx, [rsi + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x140163632
mov r8, qword [rdx]
mov r9, r8
add r8, qword [rdx + 0x10]
jmp 0x14016363c
mov r8, qword [rdx + 0x10]
add r8, rdx
mov r9, rdx
movaps xmmword [rbp + 0x10], xmm1
movups xmm0, xmmword [rsp + 0x40]
movaps xmmword [rbp + 0x20], xmm0
movups xmm1, xmmword [rsp + 0x50]
movaps xmmword [rbp + 0x30], xmm1
movsd xmm0, qword [rsp + 0x60]
movsd qword [rbp + 0x40], xmm0
movups xmm1, xmmword [rbp - 0x70]
movaps xmmword [rsp + 0x30], xmm1
movups xmm0, xmmword [rbp - 0x60]
movaps xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [rbp - 0x50]
movaps xmmword [rsp + 0x50], xmm1
movsd xmm0, qword [rbp - 0x40]
movsd qword [rsp + 0x60], xmm0
mov qword [rsp + 0x20], r8
lea r8, [rbp + 0x10]
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x70]
call fcn.1401500d0
mov rdx, qword [rbp - 0x40]
cmp rdx, rbx
je 0x1401636b9
cmp byte [rbp - 0x38], r12b
je 0x1401636b9
mov rcx, qword [rsi + 0x20]
add rcx, rdx
mov qword [rsi + 0x38], rcx
mov r14, r12
jmp 0x14016372c
mov r9, qword [rsi + 8]
mov rax, qword [r9 + 0x40]
mov rcx, qword [rax]
mov rax, qword [r9 + 0x38]
sub rcx, qword [rax]
cmp rcx, qword [r9 + 0x68]
jne 0x1401636de
mov qword [rsi + 0x38], 0xffffffffffffffff
mov r14, r12
jmp 0x14016372c
cmp rdx, rbx
cmovne rbx, rdx
mov qword [rsi + 0x38], rbx
mov r8, qword [r9 + 0x68]
mov rax, qword [r9 + 0x40]
mov rcx, qword [rax]
mov rax, qword [r9 + 0x38]
sub rcx, qword [rax]
sub r8, rcx
mov rdx, qword [r9 + 0x80]
sub rdx, qword [r9 + 0x70]
sub rdx, rcx
mov eax, 0x10000
cmp r8, rax
cmovb rax, r8
mov r14d, 0x200
cmp rdx, r14
cmova r14, rdx
cmp rax, r14
cmovb r14, rax
test r15d, r15d
jne 0x1401638a6
test r14, r14
jne 0x1401638a6
cmp qword [rsi + 0x38], 0xffffffffffffffff
jne 0x14016379e
mov dword [rbp + 0x54], r12d
movabs rcx, 0x4d54ee85da812030
add rcx, qword [0x1404bb1c8]
lea rbx, [0x1404bb1c0]
cmp rcx, 1
jbe 0x14016377b
mov rax, qword [0x1404bb1c0]
mov edx, 3
mov rcx, rbx
call qword [rax + 0x30]
jmp 0x14016377d
mov al, 1
movzx eax, al
add rax, 2
mov qword [rbp + 0x60], rax
mov dword [rbp + 0x50], 3
mov qword [rbp + 0x58], rbx
movups xmm0, xmmword [rbp + 0x50]
movsd xmm1, qword [rbp + 0x60]
jmp 0x1401637a6
movups xmm0, xmmword [rdi]
movsd xmm1, qword [rdi + 0x10]
lea r14, [rsp + 0x70]
movsd qword [rbp - 0x80], xmm1
movups xmmword [rsp + 0x70], xmm0
mov rax, qword [rdi + 0x10]
test al, 1
je 0x1401637c8
cmp rax, 1
jne 0x1401637d2
cmp dword [rdi], r12d
jne 0x1401637d2
mov rbx, qword [rsi + 0x38]
cmp rbx, 0xffffffffffffffff
jne 0x1401637d5
mov rbx, r12
lea rdx, [rsi + 0x50]
lea rcx, [rbp - 0x70]
call fcn.1401540d0
movups xmm0, xmmword [r14]
movaps xmmword [rbp - 0x10], xmm0
movsd xmm1, qword [r14 + 0x10]
movsd qword [rbp], xmm1
mov qword [rbp + 8], rbx
mov rdi, qword [rsi + 0x40]
mov rbx, qword [rsi + 0x48]
mov ecx, dword [0x1404dc78c]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x140163820
cmp qword [rax], rbx
je 0x14016388d
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x140163812
lea rax, [rbp - 0x70]
mov qword [rsp + 0x70], rax
lea rdx, [rbp - 0x70]
mov ecx, 0xc0
call fcn.14016eda0
mov rbx, rax
mov qword [rax + 0x20], r12
lea rax, [0x140176d60]
mov qword [rbx + 0x28], rax
mov qword [rbx], r12
mov qword [rbx + 8], r12
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x18], r12
mov dword [rbx + 0x30], r12d
lea rcx, [rbx + 0x38]
lea rdx, [rbp - 0x70]
call fcn.140155030
mov qword [rbp - 0x80], r12
mov qword [rsp + 0x78], r12
mov r8, rbx
lea rdx, [rsi + 0x48]
mov rcx, rdi
call fcn.14017e120
nop
lea rcx, [rbp - 0x68]
call fcn.14015da70
jmp 0x1401638ec
cmp qword [rax + 8], 0
je 0x140163820
nop
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x70]
call fcn.14013e560
nop
nop
jmp 0x140163882
mov rdi, qword [rsi]
mov rbx, qword [rsi + 8]
mov rdx, r14
mov rcx, rbx
call fcn.14019e1d0
mov rax, qword [rbx + 0x40]
mov rcx, qword [rax]
mov qword [rbp + 0x50], rcx
mov qword [rbp + 0x58], r14
lea rax, [rdi + 0x68]
lea rdx, [rdi + 8]
mov rcx, qword [rdi]
add rcx, 0x28
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
xor r9d, r9d
lea r8, [rbp + 0x50]
call fcn.140140150
mov rcx, qword [rbp + 0x70]
xor rcx, rsp
call fcn.140382da0
lea r11, [rsp + 0x180]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret