Function at 0x180134250
Capabilities:
Get thread local storage value

Disassembly:
mov r11, rsp
mov qword [r11 + 0x20], r9
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x138
xor edi, edi
mov rbx, r9
mov rsi, r8
mov rbp, rcx
mov dword [rsp + 0x84], edi
mov byte [rsp + 0x80], dil
test r8, r8
je 0x180134de0
mov rax, qword [r8]
lea rdx, [r11 + 0x18]
mov rcx, r8
call qword [rax + 0x58]
test byte [rax], 1
jne 0x180134de0
mov rax, qword [rsi]
lea r8, [rsp + 0xc0]
lea edx, [rdi + 3]
mov rcx, rsi
call qword [rax + 0x60]
test al, al
je 0x18013443a
mov ecx, dword [rsp + 0xc0]
lea eax, [rcx - 2]
cmp eax, 7
ja case.default.0x1801342e6
lea r8, [0x180000000]
cdqe
mov eax, dword [r8 + rax*4 + 0x134df8]
add rax, r8
jmp rax
mov rdi, qword [rsp + 0x198]
mov rdx, qword [rsp + 0xf0]
bt rdi, 0x13
jae 0x180134310
mov rdi, rdx
and rdi, 0xfffffffffce9ffff
bts rdi, 0x13
jmp 0x180134319
and edi, 0x31e0000
or rdi, rdx
xor ebp, ebp
xor ebx, ebx
mov byte [rsp + 0x80], bpl
mov byte [rsp + 0x170], bpl
cmp ecx, 6
jne 0x1801344ac
mov eax, dword [rsp + 0xc8]
mov dword [rsp + 0xf8], 1
mov dword [rsp + 0xfc], 1
add eax, 0xffffffeb
mov dword [rsp + 0x84], 1
cmp eax, 0x32
ja case.0x180134380.33
cdqe
movzx eax, byte [r8 + rax + 0x134e4c]
mov ecx, dword [r8 + rax*4 + 0x134e18]
add rcx, r8
jmp rcx
bt rdx, 0x17
mov byte [rsp + 0x80], 1
cmovae ebp, dword [rsp + 0x100]
mov byte [rsp + 0x170], 1
mov ebx, 1
jmp 0x1801343ed
mov ebx, 2
mov qword [rsp + 0x90], 0
jmp 0x1801344bc
mov ebx, 3
jmp 0x1801343ed
mov byte [rsp + 0x170], 1
mov ebx, 9
jmp 0x1801343ed
mov ebx, 0xa
mov qword [rsp + 0x90], 0
jmp 0x1801344bc
mov ebx, 0xb
mov rcx, qword [rsp + 0xd8]
test rcx, rcx
je case.0x180134380.33
mov rax, qword [rcx]
lea rdx, [rsp + 0xa4]
call qword [rax + 0x58]
test dword [rax], 0x386f8000
je case.0x180134380.33
mov rdx, qword [rsp + 0x168]
mov rcx, qword [rsp + 0x160]
lea r9, [0x180044d50]
mov r8d, 0xe63
call fcn.180109730
mov ebx, 0x80004005
mov eax, ebx
add rsp, 0x138
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov ebx, 4
mov qword [rsp + 0x90], 0
jmp 0x1801344bc
mov ebx, 5
mov qword [rsp + 0x90], 0
jmp 0x1801344bc
mov ebx, 6
mov qword [rsp + 0x90], 0
jmp 0x1801344bc
mov ebx, 8
mov qword [rsp + 0x90], 0
jmp 0x1801344bc
mov ebx, 7
mov qword [rsp + 0x90], 0
jmp 0x1801344bc
mov rax, qword [rsp + 0x190]
mov qword [rsp + 0x90], rax
mov rax, qword [rsi]
lea rdx, [rsp + 0x88]
mov rcx, rsi
call qword [rax + 0x58]
mov edx, dword [rsp + 0x1a0]
test byte [rax], 0x80
je 0x1801344dc
or edx, 8
mov rax, qword [rsp + 0x180]
mov r8d, dword [rsp + 0xf8]
mov rsi, qword [rsp + 0x178]
movsxd rcx, ebx
mov r9, qword [rax + rcx*8]
mov ecx, dword [rsp + 0xfc]
mov eax, ecx
imul eax, r8d
test eax, eax
jne 0x180134513
xor edi, edi
jmp 0x1801345a9
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x1c8]
mov dword [rsp + 0x70], ecx
mov rcx, qword [rsp + 0x160]
mov dword [rsp + 0x68], r8d
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x1c0]
lea r8, [rsp + 0xc0]
mov dword [rsp + 0x58], eax
lea rax, [rsp + 0x84]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x90]
mov dword [rsp + 0x40], edx
mov rdx, qword [rsp + 0x168]
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x188]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r9
mov r9, rsi
call fcn.180134e90
mov ebx, eax
test eax, eax
js 0x180134dd2
mov edi, dword [rsp + 0x84]
cmp byte [rsp + 0x80], 0
je 0x1801345e1
test rsi, rsi
je 0x1801345e1
mov rax, qword [rsi]
cmp rax, 0xffffffffffffffff
je 0x1801345e1
mov dword [rax + 0x13c], ebp
bt qword [rsp + 0xf0], 0x17
jae 0x1801345e1
mov rax, qword [rsi]
or qword [rax + 0x98], 0x4000
cmp byte [rsp + 0x170], 0
je 0x180134dc6
test rsi, rsi
je 0x180134dc6
mov rax, qword [rsi]
cmp rax, 0xffffffffffffffff
je 0x180134dc6
mov rcx, qword [rsp + 0xd8]
test rcx, rcx
je 0x180134633
mov rax, qword [rcx]
call qword [rax + 8]
mov rcx, qword [rsi]
dec eax
mov dword [rcx + 0xcc], eax
mov rax, qword [rsi]
cmp dword [rax + 0xcc], 3
jbe 0x180134dc6
mov dword [rax + 0xcc], 3
mov rax, qword [rsp + 0x1b8]
xor ebx, ebx
mov dword [rax], edi
mov eax, ebx
add rsp, 0x138
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rsi, qword [rsp + 0xd0]
xor eax, eax
mov qword [rsp + 0x90], rdi
mov qword [rsp + 0x98], rax
mov byte [rsp + 0x170], al
cmp dword [rsp + 0x100], eax
je 0x180134dc6
mov rcx, qword [rsp + 0x190]
mov rbp, qword [rsp + 0x1a8]
test rcx, rcx
je 0x180134727
test rbp, rbp
je 0x180134727
cmp qword [rbp], rax
jne 0x180134717
lea ecx, [rax + 0x20]
call fcn.1800c63b0
mov r11, rax
test rax, rax
je 0x1801346d4
xor eax, eax
mov dword [r11], eax
mov dword [r11 + 4], eax
mov qword [r11 + 0x10], rax
mov qword [r11 + 8], rax
mov dword [r11 + 0x18], eax
jmp 0x1801346d7
xor r11d, r11d
mov qword [rbp], r11
test r11, r11
jne 0x1801346f3
mov ebx, 0x8007000e
mov eax, ebx
add rsp, 0x138
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rax, qword [rsi + 0x10]
mov byte [rsp + 0x80], 1
mov byte [rsp + 0x170], 1
mov rcx, qword [rax + 0x18]
mov qword [r11 + 8], rcx
mov rcx, qword [rsp + 0x190]
lea rax, [rsp + 0x90]
mov qword [rsp + 0x98], rax
mov r8, qword [rsi + 0x38]
test r8, r8
je 0x18013486a
mov edx, dword [rsp + 0x1c0]
mov dword [rsp + 0x68], edi
mov rdi, qword [rsp + 0x160]
mov dword [rsp + 0x60], edx
lea rdx, [rsp + 0x84]
mov r9, rbx
mov qword [rsp + 0x58], rdx
mov rdx, qword [rsp + 0x1b0]
mov qword [rsp + 0x50], rdx
mov rdx, qword [rsp + 0x168]
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0x1a0]
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x198]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x188]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x180]
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.180134250
mov ebx, eax
test eax, eax
js 0x180134a40
cmp qword [rsp + 0x98], 0
je 0x18013485b
mov r8, qword [rsp + 0x178]
mov edx, dword [rsp + 0x84]
lea rax, [rsp + 0x88]
lea r9, [rsp + 0xa0]
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.180133000
mov ebx, eax
test eax, eax
js 0x180134a40
cmp byte [rsp + 0x170], 0
mov edx, dword [rsp + 0xa0]
je 0x180134823
mov rax, qword [rbp]
mov byte [rsp + 0x170], 0
mov dword [rax + 0x18], edx
mov rax, qword [rsp + 0x90]
mov r8d, dword [rsp + 0x88]
mov rcx, qword [rbp]
mov qword [rsp + 0x28], rax
lea r9, [0x180038394]
mov qword [rsp + 0x20], 0
call fcn.18011ddf0
mov ebx, eax
test eax, eax
js 0x180134a40
mov edi, dword [rsp + 0x84]
mov rbx, qword [rsp + 0x178]
mov rax, qword [rsi + 0x10]
mov rsi, qword [rax + 0x70]
test rsi, rsi
je 0x180134dc6
nop dword [rax + rax]
test byte [rsi + 0x98], 4
je 0x180134a23
mov rax, qword [rsp + 0x198]
mov rcx, qword [rsi + 0xa0]
bt rax, 0x13
jae 0x1801348b1
and rcx, 0xfffffffffce9ffff
bts rcx, 0x13
jmp 0x1801348b9
and eax, 0x31e0000
or rcx, rax
mov eax, edi
mov qword [rsp + 0x90], 0
mov r8, qword [rsi + 0x60]
lea rdx, [rbx + rax*8]
lea rax, [rsp + 0x84]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0xa8], rdx
mov qword [rsp + 0x60], rax
mov eax, dword [rsp + 0x1c0]
mov r9, rdx
mov rdx, qword [rsp + 0x168]
mov dword [rsp + 0x58], eax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x1a0]
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x190]
mov qword [rsp + 0x40], rcx
mov rcx, qword [rsp + 0x160]
mov qword [rsp + 0x38], rax
mov rax, qword [rsi + 0xb0]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x188]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x180]
mov qword [rsp + 0x20], rax
call fcn.1801340e0
mov ebx, eax
test eax, eax
js 0x180134a40
cmp qword [rsp + 0x98], 0
je 0x180134a1c
mov rcx, qword [rsi + 0x60]
lea rdx, [rsp + 0xb0]
mov rax, qword [rcx]
call qword [rax + 0x58]
test byte [rax], 8
jne 0x180134a1c
mov r8, qword [rsp + 0xa8]
mov edx, dword [rsp + 0x84]
mov rcx, qword [rsp + 0x160]
lea rax, [rsp + 0xa0]
lea r9, [rsp + 0x88]
mov qword [rsp + 0x20], rax
call fcn.180133000
mov ebx, eax
test eax, eax
js 0x180134a40
cmp byte [rsp + 0x170], 0
mov edx, dword [rsp + 0x88]
je 0x1801349ef
mov rax, qword [rbp]
mov byte [rsp + 0x170], 0
mov dword [rax + 0x18], edx
mov rax, qword [rsp + 0x90]
mov r9, qword [rsi + 0x10]
mov r8d, dword [rsp + 0xa0]
mov rcx, qword [rbp]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
call fcn.18011ddf0
mov ebx, eax
test eax, eax
js 0x180134a40
add edi, dword [rsp + 0x84]
mov rsi, qword [rsi + 0x80]
test rsi, rsi
je 0x180134dc6
mov rbx, qword [rsp + 0x178]
jmp 0x180134880
cmp byte [rsp + 0x80], 0
je 0x180134dd2
mov rdi, qword [rbp]
test rdi, rdi
je 0x180134a81
mov rcx, rdi
call fcn.18011dbe0
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x180134a6d
xor eax, eax
jmp 0x180134a73
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rax]
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbp], 0
mov eax, ebx
add rsp, 0x138
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rax, qword [rsp + 0x180]
mov edx, dword [rsp + 0xfc]
mov r8d, dword [rsp + 0xf8]
mov r9, qword [rax]
mov eax, edx
imul eax, r8d
test eax, eax
je 0x180134dc6
mov ecx, dword [rsp + 0x1a0]
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x1c8]
mov dword [rsp + 0x70], edx
mov rdx, qword [rsp + 0x168]
mov dword [rsp + 0x68], r8d
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x1c0]
or ecx, 8
mov dword [rsp + 0x58], eax
lea rax, [rsp + 0x84]
lea r8, [rsp + 0xc0]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x190]
mov dword [rsp + 0x40], ecx
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x188]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r9
mov r9, rbx
mov rcx, rbp
call fcn.180134e90
mov ebx, eax
test eax, eax
js 0x180134dd2
mov rax, qword [rsp + 0x1b8]
mov edi, dword [rsp + 0x84]
xor ebx, ebx
mov dword [rax], edi
mov eax, ebx
add rsp, 0x138
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rax, qword [rsp + 0xd0]
mov r11, qword [rsp + 0x180]
mov r10, qword [rsp + 0x190]
mov r8, qword [rsp + 0x1a8]
mov qword [rsp + 0x90], rax
mov rax, qword [r11]
mov qword [rsp + 0x98], rax
test r10, r10
je 0x180134c14
test byte [r10 + 4], 1
je 0x180134c14
mov ebp, dword [rsp + 0x1a0]
test bpl, 2
jne 0x180134c1b
cmp rax, 0xffffffffffffffff
je 0x180134c1b
mov rdx, rax
mov rax, qword [rsp + 0x160]
mov r8, r11
mov rcx, qword [rax + 0x10]
call fcn.18019f710
mov ebx, eax
test eax, eax
js 0x180134dd2
mov r8, qword [rsp + 0x1a8]
mov rbx, qword [rsp + 0x178]
mov r10, qword [rsp + 0x190]
mov rax, qword [rsp + 0x98]
mov r11, qword [rsp + 0x180]
or ebp, 2
jmp 0x180134c1b
mov ebp, dword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x90]
xor esi, esi
mov ecx, dword [rcx + 0x38]
test ecx, ecx
je 0x180134d85
mov edx, ebp
movabs r9, 0xc00000000000
or edx, 4
and ebp, 4
mov dword [rsp + 0x88], edx
nop dword [rax]
mov edx, dword [rsp + 0x1c0]
sub ecx, esi
dec ecx
test r10, r10
je 0x180134c65
mov byte [r10 + 0x28], 1
test ebp, ebp
jne 0x180134c83
cmp rax, 0xffffffffffffffff
je 0x180134c83
mov rax, qword [rax + 0x10]
and rax, r9
cmp rax, r9
jne 0x180134c83
mov rax, qword [r11]
mov edx, esi
mov dword [rax + 0x28], ebp
mov dword [rsp + 0x68], ecx
mov rcx, qword [rsp + 0x160]
mov dword [rsp + 0x60], edx
mov rdx, qword [rsp + 0x168]
lea rax, [rsp + 0x170]
lea r9, [rbx + rdi*8]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x88]
mov qword [rsp + 0x48], r8
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x198]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x188]
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x20], r11
mov r8, qword [rax + 0x30]
call fcn.180134250
mov ebx, eax
test eax, eax
js 0x180134dd2
mov eax, dword [rsp + 0x170]
mov rbx, qword [rsp + 0x178]
test ebp, ebp
jne 0x180134d49
xor r8d, r8d
test eax, eax
je 0x180134d49
mov edx, edi
mov eax, edx
inc r8d
inc edx
mov rcx, qword [rbx + rax*8]
mov eax, dword [rcx + 0x110]
sub eax, edi
mov dword [rcx + 0x118], eax
mov eax, dword [rsp + 0x170]
cmp r8d, eax
jb 0x180134d24
mov r10, qword [rsp + 0x190]
mov r11, qword [rsp + 0x180]
add edi, eax
mov rax, qword [rsp + 0x90]
inc esi
xor r8d, r8d
mov ecx, dword [rax + 0x38]
mov rax, qword [rsp + 0x98]
movabs r9, 0xc00000000000
cmp esi, ecx
jb 0x180134c50
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x180]
xor ebx, ebx
mov qword [rcx], rax
mov rax, qword [rsp + 0x1b8]
mov dword [rax], edi
mov eax, ebx
add rsp, 0x138
pop rdi
pop rsi
pop rbp
pop rbx
ret
lea r9, [0x180044da0]
xor r8d, r8d
xor edx, edx
mov rcx, rbp
call fcn.180109730
mov rax, qword [rsp + 0x1b8]
xor ebx, ebx
mov dword [rax], edi
mov eax, ebx
add rsp, 0x138
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rax, qword [rsp + 0x1b8]
mov dword [rax], edi
xor eax, eax
add rsp, 0x138
pop rdi
pop rsi
pop rbp
pop rbx
ret