Function at 0x180116560
Capabilities:
Get thread local storage value

Disassembly:
mov byte [rsp + 0x18], r8b
push rbx
push rbp
push r12
push r15
sub rsp, 0x48
xor r15d, r15d
movzx r12d, r8b
mov rbx, rdx
mov rbp, rcx
test rdx, rdx
je 0x180116ca7
cmp dword [rdx + 8], 4
jne 0x180116ca7
cmp rdx, qword [rcx + 8]
jne 0x180116ca7
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r14
cmp byte [rdx + 0x129], r15b
je 0x1801165eb
test r8b, r8b
jne 0x1801165eb
mov rax, qword [rdx + 0x18]
lea r9, [0x180042708]
add rdx, 0x20
mov r8d, 0xc37
mov qword [rsp + 0x20], rax
call fcn.18010c480
xor esi, esi
mov byte [rbp + 0x468], 1
mov rax, rsi
jmp 0x180116794
mov r13, qword [rcx + 0x20]
cmp r13, 0xfffffffffffffffe
jbe 0x180116606
mov r13, qword [rsp + 0x78]
mov edi, 0x80070216
mov qword [rsp + 0x78], r13
jmp 0x180116670
lea r12, [r13 + 1]
cmp r12, qword [rcx + 0x18]
jbe 0x180116655
cmp byte [rcx + 0x29], r15b
jne 0x18011662f
mov r13, qword [rsp + 0x78]
mov r12b, byte [rsp + 0x80]
mov edi, 0x8007000e
mov qword [rsp + 0x78], r13
jmp 0x180116670
mov rdx, r12
add rcx, 0x10
call fcn.18010df20
mov edi, eax
test eax, eax
je 0x180116655
mov r13, qword [rsp + 0x78]
mov r12b, byte [rsp + 0x80]
mov qword [rsp + 0x78], r13
jmp 0x180116670
shl r13, 4
mov qword [rbp + 0x20], r12
mov r12b, byte [rsp + 0x80]
add r13, qword [rbp + 0x10]
xor edi, edi
mov qword [rsp + 0x78], r13
test edi, edi
js 0x180116c8d
mov qword [r13], r15
mov rax, qword [rbx + 0x68]
xor esi, esi
mov qword [r13 + 8], rax
mov r14, qword [rbx + 0x110]
mov r8, qword [rbp + 0x98]
mov rdx, qword [rbx + 0x10]
mov rcx, r14
xor r9d, r9d
mov qword [rsp + 0x20], rsi
call fcn.18010e1d0
mov rdi, rax
test rax, rax
je 0x1801169ca
cmp rdi, rbx
je 0x180116743
cmp dword [rdi + 8], 4
jne 0x1801167d7
mov rdx, rbx
mov rcx, rdi
call fcn.18010ef00
test al, al
je 0x180116743
cmp dword [rbx + 8], 4
jne 0x180116720
mov rax, qword [rdi + 0xa8]
test rax, rax
jne 0x1801166f1
cmp qword [rbx + 0xa8], r15
je 0x180116712
test rax, rax
je 0x180116720
cmp qword [rbx + 0xa8], r15
je 0x180116720
mov eax, dword [rbx + 0xb0]
cmp dword [rdi + 0xb0], eax
sete al
test al, al
je 0x180116720
test byte [rdi + 0x128], 2
jne 0x18011676f
mov rsi, rdi
jmp 0x180116743
mov rcx, qword [rdi + 0xf8]
mov qword [rbx + 0xf8], rcx
mov rax, qword [rcx + 0x100]
mov qword [rbx + 0x100], rax
mov qword [rcx + 0x100], rbx
mov r8, qword [rbp + 0x98]
mov rdx, qword [rbx + 0x10]
xor r9d, r9d
mov rcx, r14
mov qword [rsp + 0x20], rdi
call fcn.18010e1d0
mov rdi, rax
test rax, rax
jne 0x1801166b4
jmp 0x18011681b
test r12b, r12b
jne 0x1801167b3
mov rax, qword [rbp + 8]
mov rcx, r14
mov rdx, qword [rax + 0x68]
mov byte [rbp + 0x46d], 1
mov qword [rbp + 8], rdx
mov rdx, rbx
call fcn.18010e170
xor eax, eax
mov r13, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x70]
mov r14, qword [rsp + 0x30]
add rsp, 0x48
pop r15
pop r12
pop rbp
pop rbx
ret
mov rax, qword [rbx + 0x18]
lea rdx, [rbx + 0x20]
lea r9, [0x180041d20]
mov r8d, 0xbbb
mov rcx, rbp
mov qword [rsp + 0x20], rax
call fcn.18010c480
jmp 0x18011681b
movsxd rax, dword [rdi + 8]
cmp eax, 9
jae 0x1801167ed
lea rcx, [0x18025f630]
mov rcx, qword [rcx + rax*8]
jmp 0x1801167f4
lea rcx, [0x180041708]
mov rax, qword [rbx + 0x18]
mov qword [rsp + 0x28], rcx
lea rdx, [rbx + 0x20]
lea r9, [0x180042720]
mov r8d, 0xbbb
mov rcx, rbp
mov qword [rsp + 0x20], rax
call fcn.18010c480
test rsi, rsi
je 0x1801169ca
mov rcx, qword [rsi + 0x60]
mov rdx, qword [rbx + 0x60]
mov rax, qword [rcx]
call qword [rax + 0x68]
test al, al
jne 0x180116858
mov rax, qword [rbx + 0x18]
lea rdx, [rbx + 0x20]
lea r9, [0x180042770]
mov r8d, 0xbfc
mov rcx, rbp
mov qword [rsp + 0x20], rax
call fcn.18010c480
mov eax, dword [rsi + 0x50]
xor r12d, r12d
mov dword [rbx + 0x50], eax
mov rax, qword [rbx + 0x20]
mov r13, qword [rsi + 0x70]
mov qword [rsi + 0x20], rax
mov rax, qword [rbx + 0x28]
mov qword [rsi + 0x28], rax
mov rax, qword [rbx + 0x30]
mov qword [rsi + 0x30], rax
mov rax, qword [rbx + 0x38]
mov qword [rsi + 0x38], rax
mov rax, qword [rbx + 0x40]
mov qword [rsi + 0x40], rax
mov rax, qword [rbx + 0x108]
mov qword [rsi + 0x108], rax
mov rax, qword [rbx + 0xe0]
mov qword [rsi + 0xe0], rax
mov rdi, qword [rbx + 0x70]
test rdi, rdi
je 0x18011692f
test r12, r12
jne 0x1801168c6
cmp qword [rdi + 0xc0], r15
cmovne r12, rdi
mov rdx, r13
mov rcx, rdi
call fcn.18010ec90
mov r11d, dword [r13 + 0x48]
mov dword [rdi + 0x48], r11d
mov eax, dword [r13 + 0x10c]
mov dword [rdi + 0x10c], eax
mov eax, dword [r13 + 0x110]
mov dword [rdi + 0x110], eax
mov rdi, qword [rdi + 0x80]
mov r13, qword [r13 + 0x80]
test rdi, rdi
jne 0x1801168b6
test r12, r12
je 0x18011692f
mov rax, qword [r12 + 0x18]
lea rdx, [r12 + 0x20]
lea r9, [0x1800427b0]
mov r8d, 0xc2a
mov rcx, rbp
mov qword [rsp + 0x20], rax
call fcn.18010c480
mov rax, qword [rbx + 0x70]
mov rcx, qword [rsi + 0x70]
mov rdx, rbx
mov qword [rsi + 0x70], rax
mov rax, qword [rbx + 0x78]
mov qword [rbx + 0x70], rcx
mov qword [rsi + 0x78], rax
mov qword [rbp + 8], rsi
mov byte [rbp + 0x46d], 1
mov rcx, qword [rbx + 0x68]
call fcn.18010e170
mov rdx, qword [rbx + 0xf8]
xor ecx, ecx
mov rax, qword [rdx + 0xf8]
test rax, rax
je 0x180116a4a
cmp rax, rbx
je 0x180116995
mov rcx, rax
mov rax, qword [rax + 0x100]
test rax, rax
jne 0x180116977
mov r13, qword [rsp + 0x78]
jmp 0x180116a4f
test rcx, rcx
jne 0x1801169b2
mov rax, qword [rax + 0x100]
mov r13, qword [rsp + 0x78]
mov qword [rdx + 0xf8], rax
jmp 0x180116a4f
mov rax, qword [rax + 0x100]
mov r13, qword [rsp + 0x78]
mov qword [rcx + 0x100], rax
jmp 0x180116a4f
mov rsi, rbx
cmp byte [rbx + 0x129], r15b
je 0x180116a09
mov rax, qword [rbx + 0x18]
lea rdx, [rbx + 0x20]
lea r9, [0x180042740]
mov r8d, 0xc36
mov rcx, rbp
mov qword [rsp + 0x20], rax
call fcn.18010c480
xor esi, esi
mov byte [rbp + 0x468], 1
mov rax, rsi
jmp 0x180116794
test r14, r14
je 0x180116ab9
cmp dword [r14 + 8], 3
jne 0x180116a4f
mov rdx, qword [r14 + 0x60]
mov eax, dword [rdx + 8]
add eax, 0xfffffffd
cmp eax, 1
ja 0x180116a4f
test rdx, rdx
je 0x180116a33
cmp dword [rdx + 8], 4
je 0x180116a4f
mov r8, rbx
mov rcx, rbp
call fcn.1801162e0
mov edi, eax
test eax, eax
js 0x180116c92
jmp 0x180116a4f
mov r13, qword [rsp + 0x78]
test r14, r14
je 0x180116ac3
cmp dword [r14 + 8], 3
jne 0x180116aa5
mov rax, qword [r14 + 0x60]
test rax, rax
je 0x180116aaf
cmp dword [rax + 8], 4
jne 0x180116a9b
mov dil, byte [rsp + 0x80]
test dil, dil
je 0x180116acb
mov rax, qword [rsi + 0x18]
lea rdx, [rbx + 0x20]
lea r9, [0x1800427f8]
mov r8d, 0xc22
mov rcx, rbp
mov qword [rsp + 0x20], rax
call fcn.18010c480
jmp 0x180116acb
mov dil, byte [rsp + 0x80]
jmp 0x180116acb
mov dil, byte [rsp + 0x80]
jmp 0x180116acb
mov dil, byte [rsp + 0x80]
jmp 0x180116acb
mov dil, byte [rsp + 0x80]
jmp 0x180116acb
mov dil, byte [rsp + 0x80]
and byte [rsi + 0x128], 0xfd
and byte [rsi + 0x98], 0xef
mov rcx, qword [rsi + 0x60]
and dil, 1
add dil, dil
or byte [rsi + 0x128], dil
mov eax, dword [rbp + 0x488]
mov dword [rsi + 0x4c], r15d
mov dword [rsi + 0x48], eax
test rcx, rcx
je 0x180116b06
mov rax, qword [rcx]
call qword [rax + 8]
mov dword [rsi + 0x4c], eax
mov eax, dword [rsi + 0x4c]
lea rdx, [rsp + 0x78]
add dword [rbp + 0x488], eax
mov rcx, qword [rsi + 0x60]
mov rax, qword [rcx]
call qword [rax + 0x58]
test byte [rax], 1
jne 0x180116c54
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x180116b35
xor eax, eax
jmp 0x180116b3b
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rax + 8]
mov edx, 0x120
mov r8d, 0x10
call fcn.180243b70
test rax, rax
je 0x180116c96
mov rcx, rax
call fcn.18010eb60
mov r12, rax
test rax, rax
je 0x180116c96
mov rax, qword [rbp + 0x98]
mov r8, qword [rsi + 0x10]
mov rdx, qword [rsi + 0x68]
mov r9b, 1
mov rcx, r12
mov qword [rsp + 0x20], rax
call fcn.18010e580
mov edi, eax
test eax, eax
js 0x180116c92
mov rax, qword [rsi + 0x20]
mov qword [r12 + 0x20], rax
mov rax, qword [rsi + 0x28]
mov qword [r12 + 0x28], rax
mov rax, qword [rsi + 0x30]
mov qword [r12 + 0x30], rax
mov rax, qword [rsi + 0x38]
mov qword [r12 + 0x38], rax
mov rax, qword [rsi + 0x40]
mov qword [r12 + 0x40], rax
mov rax, qword [rsi + 0x60]
cmp dword [rax + 8], 0xa
jne 0x180116bda
cmp qword [rax + 0x30], 0x200
jne 0x180116bda
mov rax, qword [rax + 0x38]
mov qword [r12 + 0x60], rax
mov eax, dword [rsi + 0x48]
mov rcx, r12
mov dword [r12 + 0x48], eax
call fcn.18010e790
mov ecx, 0x70
mov qword [rsi + 0xc0], r12
call fcn.180071960
test rax, rax
je 0x180116c4d
or r9d, 0xffffffff
mov r8, r12
mov edx, 5
mov rcx, rax
call fcn.1801109b0
mov r15, rax
test rax, rax
je 0x180116c4d
mov r8, qword [r12 + 0x60]
lea rdx, [rbx + 0x20]
xor r9d, r9d
mov rcx, rbp
mov qword [rsp + 0x20], rax
call fcn.18017c250
mov qword [rsi + 0xc8], rax
test rax, rax
jne 0x180116c54
mov edi, 0x8007000e
jmp 0x180116c72
mov edi, 0x8007000e
jmp 0x180116c72
mov qword [r13], rsi
mov eax, dword [rbp + 0x490]
mov dword [rsi + 0xa0], eax
inc dword [rbp + 0x490]
inc dword [rbp + 0x484]
xor edi, edi
test r15, r15
je 0x180116c92
add dword [r15 + 0x20], 0xffffffff
jne 0x180116c92
mov rax, qword [r15]
mov edx, 1
mov rcx, r15
call qword [rax]
jmp 0x180116c92
mov rsi, qword [rsp + 0x78]
test edi, edi
je 0x180116c9f
mov byte [rbp + 0x468], 1
xor esi, esi
mov rax, rsi
jmp 0x180116794
xor eax, eax
add rsp, 0x48
pop r15
pop r12
pop rbp
pop rbx
ret