Function at 0x1802032a0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rdi
push r13
push r15
sub rsp, 0x188
mov rax, qword [rcx + 0x18]
xor r15b, r15b
xor r13d, r13d
mov byte [rsp + 0x1b8], r15b
mov qword [rsp + 0x40], rax
test rax, rax
je 0x1802032d3
mov rbx, qword [rax]
jmp 0x1802032d6
mov rbx, r13
mov qword [rsp + 0x180], rbp
mov qword [rsp + 0x178], rsi
mov qword [rsp + 0x170], r12
mov qword [rsp + 0x168], r14
test rax, rax
je 0x180203b13
nop
cmp dword [rax + 0x10], 0
lea rcx, [rsp + 0x80]
mov rdx, r13
mov qword [rsp + 0x68], 0x18
mov qword [rsp + 0x70], rdx
mov byte [rsp + 0x78], 0
mov qword [rsp + 0x60], rcx
mov byte [rsp + 0x79], 1
mov ebp, r13d
jbe 0x1802033d8
nop word [rax + rax]
mov rax, qword [rax + 0x18]
mov ecx, ebp
mov r13, rdx
lea r12, [rax + rcx*8]
or rax, 0xffffffffffffffff
sub rax, rdx
cmp rax, 1
jae 0x180203364
mov edi, 0x80070216
xor r13d, r13d
jmp 0x1802033c0
lea rsi, [rdx + 1]
cmp rsi, qword [rsp + 0x68]
jbe 0x180203397
cmp byte [rsp + 0x79], 0
jne 0x18020337d
mov edi, 0x8007000e
jmp 0x1802033a3
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.1800c4d70
mov edi, eax
test eax, eax
je 0x180203397
mov rdx, qword [rsp + 0x70]
jmp 0x1802033a3
mov rdx, rsi
xor eax, eax
mov qword [rsp + 0x70], rdx
mov edi, eax
test edi, edi
je 0x1802033ac
xor r13d, r13d
jmp 0x1802033c0
mov rax, qword [rsp + 0x60]
mov qword [rax + r13*8], r12
mov rdx, qword [rsp + 0x70]
xor r13d, r13d
mov edi, r13d
test edi, edi
js 0x1802039a4
mov rax, qword [rsp + 0x40]
inc ebp
cmp ebp, dword [rax + 0x10]
jb 0x180203340
cmp dword [rax + 0x20], 0
mov r14d, r13d
jbe 0x18020351c
mov r15, r13
nop dword [rax + rax]
mov rax, qword [rax + 0x28]
mov r12, qword [r15 + rax]
lea rbp, [r12 + 0xc0]
cmp qword [rbp], 0xffffffffffffffff
je 0x180203485
or rax, 0xffffffffffffffff
mov r13, rdx
sub rax, rdx
cmp rax, 1
jae 0x180203421
mov edi, 0x80070216
xor r13d, r13d
jmp 0x18020347d
lea rsi, [rdx + 1]
cmp rsi, qword [rsp + 0x68]
jbe 0x180203454
cmp byte [rsp + 0x79], 0
jne 0x18020343a
mov edi, 0x8007000e
jmp 0x180203460
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.1800c4d70
mov edi, eax
test eax, eax
je 0x180203454
mov rdx, qword [rsp + 0x70]
jmp 0x180203460
mov rdx, rsi
xor eax, eax
mov qword [rsp + 0x70], rdx
mov edi, eax
test edi, edi
je 0x180203469
xor r13d, r13d
jmp 0x18020347d
mov rax, qword [rsp + 0x60]
mov qword [rax + r13*8], rbp
mov rdx, qword [rsp + 0x70]
xor r13d, r13d
mov edi, r13d
test edi, edi
js 0x1802039e9
lea rbp, [r12 + 0xb8]
cmp qword [rbp], 0xffffffffffffffff
je 0x180203506
or rax, 0xffffffffffffffff
mov r12, rdx
sub rax, rdx
cmp rax, 1
jae 0x1802034ab
mov edi, 0x80070216
jmp 0x1802034fe
lea rsi, [rdx + 1]
cmp rsi, qword [rsp + 0x68]
jbe 0x1802034de
cmp byte [rsp + 0x79], 0
jne 0x1802034c4
mov edi, 0x8007000e
jmp 0x1802034e9
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.1800c4d70
mov edi, eax
test eax, eax
je 0x1802034de
mov rdx, qword [rsp + 0x70]
jmp 0x1802034e9
mov rdx, rsi
mov edi, r13d
mov qword [rsp + 0x70], rdx
test edi, edi
jne 0x1802034fe
mov rax, qword [rsp + 0x60]
mov edi, r13d
mov qword [rax + r12*8], rbp
mov rdx, qword [rsp + 0x70]
test edi, edi
js 0x180203a13
mov rax, qword [rsp + 0x40]
inc r14d
add r15, 8
cmp r14d, dword [rax + 0x20]
jb 0x1802033f0
mov dword [rsp + 0x3c], r13d
test rdx, rdx
je 0x18020394a
mov rcx, r13
nop dword [rax]
cmp rcx, rdx
jae 0x180203540
mov rax, qword [rsp + 0x60]
lea r8, [rax + rcx*8]
jmp 0x180203543
mov r8, r13
mov rax, qword [r8]
mov qword [rsp + 0x148], rax
mov r14, qword [rax]
mov qword [rsp + 0x48], r14
lea r12, [r14 + 0xc0]
mov qword [rsp + 0x50], r12
cmp qword [r12], 0xffffffffffffffff
je 0x1802035db
or rax, 0xffffffffffffffff
mov rbp, rdx
sub rax, rdx
cmp rax, 1
jae 0x180203580
mov edi, 0x80070216
jmp 0x1802035d3
lea rsi, [rdx + 1]
cmp rsi, qword [rsp + 0x68]
jbe 0x1802035b3
cmp byte [rsp + 0x79], 0
jne 0x180203599
mov edi, 0x8007000e
jmp 0x1802035be
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.1800c4d70
mov edi, eax
test eax, eax
je 0x1802035b3
mov rdx, qword [rsp + 0x70]
jmp 0x1802035be
mov rdx, rsi
mov edi, r13d
mov qword [rsp + 0x70], rdx
test edi, edi
jne 0x1802035d3
mov rax, qword [rsp + 0x60]
mov edi, r13d
mov qword [rax + rbp*8], r12
mov rdx, qword [rsp + 0x70]
test edi, edi
js 0x180203a3d
lea rsi, [r14 + 0xb8]
cmp qword [rsi], 0xffffffffffffffff
je 0x18020366e
or rax, 0xffffffffffffffff
mov rbp, rdx
sub rax, rdx
cmp rax, 1
jae 0x180203603
mov edi, 0x80070216
jmp 0x180203666
lea rsi, [rdx + 1]
cmp rsi, qword [rsp + 0x68]
jbe 0x180203636
cmp byte [rsp + 0x79], 0
jne 0x18020361c
mov edi, 0x8007000e
jmp 0x180203641
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.1800c4d70
mov edi, eax
test eax, eax
je 0x180203636
mov rdx, qword [rsp + 0x70]
jmp 0x180203641
mov rdx, rsi
mov edi, r13d
mov qword [rsp + 0x70], rdx
test edi, edi
je 0x18020364e
lea rsi, [r14 + 0xb8]
jmp 0x180203666
mov rax, qword [rsp + 0x60]
lea rsi, [r14 + 0xb8]
mov edi, r13d
mov qword [rax + rbp*8], rsi
mov rdx, qword [rsp + 0x70]
test edi, edi
js 0x180203a6e
mov r12, qword [r14 + 0xa8]
mov eax, dword [r12 + 0x10]
shr rax, 8
test al, 1
je 0x18020392b
lea rcx, [r14 + 0xc0]
cmp qword [rcx], 0xffffffffffffffff
jne 0x18020369d
cmp qword [rsi], 0xffffffffffffffff
je 0x180203917
mov r12, qword [r12 + 0x30]
or eax, 0xffffffff
xor dil, dil
or r10, 0xffffffffffffffff
mov word [rsp + 0x1c8], ax
mov byte [rsp + 0x1c0], dil
mov r15d, eax
mov qword [rsp + 0x30], r10
test r12, r12
je 0x180203921
nop dword [rax]
cmp qword [r12 + 0xc0], 0xffffffffffffffff
jne 0x18020387a
cmp qword [r12 + 0xb8], 0xffffffffffffffff
jne 0x18020387a
mov eax, dword [r14 + 0xcc]
cmp dword [r12 + 0xcc], eax
jne 0x180203877
mov r9, qword [rcx]
mov edx, dword [r14 + 0xc8]
mov ecx, dword [r12 + 0xc8]
or r8, 0xffffffffffffffff
call fcn.18019c020
test al, al
jne 0x180203857
mov r9, qword [rsi]
mov r8, qword [r12 + 0xb8]
mov edx, dword [r14 + 0xb0]
mov ecx, dword [r12 + 0xb0]
call fcn.18019c020
test al, al
jne 0x180203846
mov edx, dword [r12 + 0xc8]
xor r13b, r13b
sub edx, dword [r14 + 0xc8]
xor eax, eax
lea r14, [0x18025e550]
mov ebp, eax
mov rsi, rax
mov dword [rsp + 0x38], edx
cmp byte [rsp + rsi + 0x1c8], 0
je 0x180203804
mov eax, ebp
mov r8d, edx
test dil, dil
lea rcx, [rsp + rax*4 + 0x150]
sete r9b
mov rdx, r12
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0x1b0]
call qword [r14]
mov edi, eax
test eax, eax
js 0x180203a9f
cmp eax, 1
jne 0x1802037d0
mov r10, qword [rsp + 0x30]
mov edx, dword [rsp + 0x38]
movzx edi, byte [rsp + 0x1c0]
mov byte [rsp + rsi + 0x1c8], 0
jmp 0x180203809
test r13b, r13b
jne 0x1802037f1
mov edx, dword [rsp + 0x38]
mov dil, byte [rsp + 0x1c0]
mov r15d, ebp
mov r10, rsi
mov qword [rsp + 0x30], rsi
mov r13b, 1
jmp 0x180203809
mov r10, qword [rsp + 0x30]
mov edx, dword [rsp + 0x38]
mov dil, byte [rsp + 0x1c0]
jmp 0x180203809
mov r10, qword [rsp + 0x30]
inc ebp
inc rsi
add r14, 0x10
cmp ebp, 2
jb 0x180203771
mov dil, 1
mov byte [rsp + 0x1c0], dil
test r13b, r13b
jne 0x180203868
mov r14, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
or eax, 0xffffffff
or r10, 0xffffffffffffffff
mov r15d, eax
mov qword [rsp + 0x30], r10
jmp 0x18020387a
mov r10, qword [rsp + 0x30]
lea rcx, [r14 + 0xc0]
or eax, 0xffffffff
jmp 0x18020387a
mov r10, qword [rsp + 0x30]
lea rcx, [r14 + 0xc0]
or eax, 0xffffffff
jmp 0x18020387a
mov r14, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
or eax, 0xffffffff
jmp 0x18020387a
or eax, 0xffffffff
mov r12, qword [r12]
lea rsi, [r14 + 0xb8]
test r12, r12
jne 0x1802036d0
cmp r15d, eax
je 0x180203904
mov rdx, qword [rcx]
mov rcx, qword [rsp + 0x1b0]
mov eax, r15d
lea r9, [rsp + rax*4 + 0x150]
lea rax, [rsp + 0x140]
add r10, r10
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x40]
mov r8, r14
mov qword [rsp + 0x20], rax
lea rax, [0x18025e550]
call qword [rax + r10*8 + 8]
mov edi, eax
test eax, eax
js 0x180203ad6
mov rcx, qword [rsp + 0x148]
mov rax, qword [rsp + 0x140]
mov r15b, 1
mov qword [rcx], rax
mov rdx, qword [rsp + 0x70]
mov byte [rsp + 0x1b8], r15b
xor r13d, r13d
jmp 0x180203933
mov rdx, qword [rsp + 0x70]
movzx r15d, byte [rsp + 0x1b8]
xor r13d, r13d
jmp 0x180203933
mov r15b, byte [rsp + 0x1b8]
jmp 0x180203933
mov r15b, byte [rsp + 0x1b8]
jmp 0x180203933
mov r15b, byte [rsp + 0x1b8]
mov eax, dword [rsp + 0x3c]
inc eax
mov ecx, eax
mov dword [rsp + 0x3c], eax
cmp rcx, rdx
jb 0x180203530
jmp 0x180203952
mov r15b, byte [rsp + 0x1b8]
cmp byte [rsp + 0x78], 0
mov qword [rsp + 0x70], r13
je 0x18020398b
mov rsi, qword [rsp + 0x60]
test rsi, rsi
je 0x18020398b
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x180203977
mov rax, r13
jmp 0x18020397d
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rax]
mov r8, rsi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rax, rbx
mov qword [rsp + 0x40], rbx
test rbx, rbx
je 0x180203b13
mov rbx, qword [rbx]
jmp 0x180203300
cmp byte [rsp + 0x78], 0
mov qword [rsp + 0x70], r13
je 0x180203b1d
mov rsi, qword [rsp + 0x60]
test rsi, rsi
je 0x180203b1d
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x1802039d5
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov r13, rax
mov rcx, qword [r13]
mov r8, rsi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x180203b1d
cmp byte [rsp + 0x78], 0
mov qword [rsp + 0x70], r13
je 0x180203b1d
mov rsi, qword [rsp + 0x60]
test rsi, rsi
je 0x180203b1d
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x1802039d5
jmp 0x1802039cc
cmp byte [rsp + 0x78], 0
mov qword [rsp + 0x70], r13
je 0x180203b1d
mov rsi, qword [rsp + 0x60]
test rsi, rsi
je 0x180203b1d
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x1802039d5
jmp 0x1802039cc
cmp byte [rsp + 0x78], 0
mov qword [rsp + 0x70], r13
je 0x180203b1d
mov rsi, qword [rsp + 0x60]
test rsi, rsi
je 0x180203b1d
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x1802039d5
jmp 0x1802039cc
cmp byte [rsp + 0x78], 0
mov qword [rsp + 0x70], r13
je 0x180203b1d
mov rsi, qword [rsp + 0x60]
test rsi, rsi
je 0x180203b1d
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x1802039d5
jmp 0x1802039cc
xor eax, eax
mov qword [rsp + 0x70], rax
cmp byte [rsp + 0x78], al
je 0x180203b1d
mov rbx, qword [rsp + 0x60]
test rbx, rbx
je 0x180203b1d
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x180203ac6
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rax]
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x180203b1d
xor r13d, r13d
mov qword [rsp + 0x70], r13
cmp byte [rsp + 0x78], r13b
je 0x180203b1d
mov rbx, qword [rsp + 0x60]
test rbx, rbx
je 0x180203b1d
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x180203b02
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov r13, rax
mov rcx, qword [r13]
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x180203b1d
test r15b, r15b
mov edi, r13d
sete dil
mov r14, qword [rsp + 0x168]
mov r12, qword [rsp + 0x170]
mov rsi, qword [rsp + 0x178]
mov rbp, qword [rsp + 0x180]
mov eax, edi
add rsp, 0x188
pop r15
pop r13
pop rdi
pop rbx
ret