Function at 0x100080400
Capabilities:
Get thread local storage value

Disassembly:
mov rax, rsp
mov dword [rax + 0x20], r9d
push rbp
sub rsp, 0x70
mov qword [rax + 0x10], rbx
mov qword [rax - 0x10], rsi
mov qword [rax - 0x18], rdi
mov qword [rax - 0x30], r14
mov qword [rax + 0x18], r8
mov qword [rax - 0x38], r15
mov rax, qword [rcx]
mov rsi, rdx
mov rdx, r8
mov r14d, r9d
mov rbp, r8
call qword [rax + reloc.WS2_32.dll_htonl]
mov rbx, rax
test rax, rax
je 0x100080444
mov rdx, qword [rax + 0x18]
jmp 0x10008044b
mov rdx, qword [0x10023c9a0]
test rax, rax
je 0x10008047b
mov rcx, qword [rax + 0x38]
test rcx, rcx
je 0x100080468
mov rcx, qword [rcx + 0x18]
dec rcx
not rcx
and rcx, rsi
jmp 0x10008047e
mov rax, qword [rax + 0x40]
mov rcx, qword [rax + 0x28]
dec rcx
not rcx
and rcx, rsi
jmp 0x10008047e
mov rcx, rsi
call fcn.100080930
mov rdi, rax
mov rcx, qword [rax + 0x60]
mov r11, qword [rsp + 0xa0]
xor r15d, r15d
and ecx, 7
mov r9d, r15d
cmp cl, 5
sete r9b
test r11, r11
je 0x1000804ef
test rbx, rbx
je 0x1000804c4
test r9d, r9d
jne 0x1000804c4
mov r8, rax
mov rdx, rsi
mov rcx, rbx
call fcn.10007afd0
mov qword [r11], rax
jmp 0x1000804f8
mov r8, qword [rax + 0x38]
mov rcx, qword [0x10024cd00]
xor edx, edx
mov rax, rsi
div rcx
xor edx, edx
imul rax, rcx
sub rax, qword [r8 + 0x28]
div rcx
mov rcx, qword [r8 + 0x20]
mov rax, qword [rcx + rax*8]
mov qword [r11], rax
test r9d, r9d
jne 0x1000805a3
test rbx, rbx
je 0x100080542
mov r9d, 0x8000
test r14b, 4
mov eax, 0xc000
cmovne r9d, eax
lea rax, [rsp + 0x90]
mov edx, 1
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], edx
mov r8, rbp
mov rdx, rsi
mov rcx, rbx
mov qword [rsp + 0x20], rdi
call fcn.10007aae0
mov rbp, qword [rbx + 0x18]
jmp 0x100080764
movzx ebx, word [rdi + 0x54]
mov rcx, rdi
call fcn.100080a50
movzx ecx, byte [0x100255a4c]
mov rdx, qword [rdi + 0x38]
mov eax, ebx
shl eax, cl
mov ecx, eax
add rcx, qword [0x100255a40]
call qword [sym.imp.KERNEL32.dll_InterlockedPushEntrySList]
movzx ecx, byte [0x100255a4c]
mov rax, qword [0x100255a40]
shl ebx, cl
mov edx, 1
lock xadd qword [rbx + rax + 0x18], rdx
lea rcx, [0x100251800]
mov rdx, rdi
call fcn.10007d150
mov rbp, qword [0x10023c9a0]
jmp 0x100080764
movzx ebx, word [rdi + 0x54]
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x50], r13
call fcn.10006add0
movzx edx, bx
mov rcx, rax
call fcn.100082130
mov rcx, rdi
mov r12, rax
call fcn.100080a50
mov r13, qword [rdi + 0x38]
mov r14, qword [r13 + 0x30]
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], r15
mov r8, r13
movzx r9d, bx
mov rdx, rbp
mov rcx, rsi
mov dword [rsp + 0x28], r15d
mov word [rsp + 0x20], bx
call fcn.100081370
mov r15, qword [r14 + 0x10]
mov rsi, qword [r14 + 0x18]
mov rcx, r15
xor edx, edx
mov r8d, 0x8000
call qword [sym.imp.KERNEL32.dll_VirtualFree]
test eax, eax
jne 0x10008063f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call fcn.10006b720
lea rcx, [0x10001a9e0]
mov r9, r15
xor r8d, r8d
mov rdx, rsi
mov dword [rsp + 0x20], ebx
call rax
jmp 0x1000806cb
neg rsi
xor r9d, r9d
xor r8d, r8d
mov rcx, r12
mov rdx, rsi
mov qword [rsp + 0x20], 0
call fcn.1000875e0
call fcn.100068a00
mov rbx, qword gs:[0x30]
mov rcx, rax
mov rsi, rax
add rbx, rax
call fcn.10006c530
test eax, eax
jne 0x100080687
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
test rbx, rbx
je 0x100080696
cmp qword [rbx + 0xd8], 0
jne 0x1000806b7
call fcn.100063d30
call fcn.100068a00
mov rcx, rax
mov rbx, rax
call fcn.10006c530
test eax, eax
jne 0x1000806b7
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [0x100278b40]
lea rdx, [rsp + 0x80]
call fcn.1000852a0
mov rdx, rbp
mov rcx, r13
call fcn.100078e90
mov rbx, r14
and rbx, 0xffffffffffffe000
add rbx, 0x1f80
lock inc dword [rbx + 0x28]
mov rdx, r14
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_InterlockedPushEntrySList]
mov ecx, dword [rbx + 0x30]
mov r13, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
dec ecx
jne 0x10008074d
mov ecx, 2
mov eax, 1
lock cmpxchg dword [rbx + 0x30], ecx
jne 0x10008074d
movzx ecx, word [rbx + 0x2c]
mov eax, 0x2fa0be83
imul dword [rbx + 0x28]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
lea rdx, [rbx + 0x10]
cdqe
lea rcx, [rax + rcx*8]
lea rax, [0x10024f800]
shl rcx, 4
add rcx, rax
call qword [sym.imp.KERNEL32.dll_InterlockedPushEntrySList]
lea rcx, [0x100251800]
mov rdx, rdi
call fcn.10007d150
mov r14d, dword [rsp + 0x98]
call fcn.100068a00
mov rbx, qword gs:[0x30]
mov rcx, rax
mov rsi, rax
add rbx, rax
call fcn.10006c530
mov r15, qword [rsp + 0x40]
test eax, eax
jne 0x100080794
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
test rbx, rbx
je 0x1000807a5
mov rdx, qword [rbx + 0xd8]
test rdx, rdx
jne 0x1000807dc
call fcn.100063d30
call fcn.100068a00
mov rbx, qword gs:[0x30]
mov rcx, rax
mov rsi, rax
add rbx, rax
call fcn.10006c530
test eax, eax
jne 0x1000807d5
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
mov rdx, qword [rbx + 0xd8]
movzx ecx, byte [0x10024cf64]
mov eax, dword [rdx + 0x7c]
mov r8, qword [rsp + 0x90]
movzx edx, word [rdi + 0x54]
add r8, 0x1fff
shl eax, cl
shr r8, 0xd
mov ecx, eax
neg r8
add rcx, qword [0x10024cf58]
lock xadd qword [rcx + rdx*8], r8
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x88]
test r14b, 1
mov r14, qword [rsp + 0x48]
je 0x100080842
lea rax, [rbp + 0xfff]
shr rax, 0xc
lock xadd qword [0x10024cf38], rax
add rsp, 0x70
pop rbp
ret