Function at 0x118a130
Capabilities:
Get thread local storage value

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x90
mov qword [rsp + 0x80], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
movzx r13d, r8b
mov rbx, rcx
xor r12d, r12d
mov qword [rax - 0x60], r12
mov rax, qword [0x039f1180]
mov ecx, dword [rax + 8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1413a0e
lea r15, [rax + 0x20]
jmp 0x118a184
mov qword [rsp + 0x58], r15
test r15, r15
je 0x118a19d
mov rcx, qword [r15 + 0x30]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VarBstrFromCy]
mov qword [rsp + 0x60], rax
test r15, r15
je 0x1413a16
mov rsi, r12
mov qword [rsp + 0x48], r12
mov rdi, r12
mov qword [rsp + 0xd8], r12
test rbx, rbx
jne 0x1413a20
mov dword [rsp + 0x40], r12d
jmp 0x118a1c9
test rdi, rdi
jne 0x1413d37
test rsi, rsi
jne 0x1413d46
test r15, r15
je 0x118a1ef
mov rcx, qword [r15 + 0x30]
mov rax, qword [rcx]
mov rdx, qword [rsp + 0x60]
call qword [rax + 0x78]
mov eax, r12d
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov r15, r12
jmp 0x118a184
mov eax, 0xc1030001
jmp 0x118a1f2
mov r8d, 0x138a
mov rdx, rbx
lea rcx, [rsp + 0x48]
call fcn.0124d7c0
test eax, eax
js 0x1413cf5
mov rdx, qword [r15 + 0x48]
test rdx, rdx
jne 0x1413a85
mov rsi, qword [rsp + 0x48]
cmp qword [rsi + 0x38], r15
jne 0x1413a8a
lea rbx, [rsi + 0x30]
test rbx, rbx
je 0x1413a61
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
cmp qword [r15 + 0x48], 0
je 0x1413a72
mov rcx, qword [r15 + 0x48]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [r15 + 0x48], rbx
mov dword [rsp + 0x40], r12d
mov dword [rsp + 0x40], r12d
jmp 0x118a1c9
mov rsi, qword [rsp + 0x48]
test rdx, rdx
je 0x1413aa6
mov r8d, 0x138a
lea rcx, [rsp + 0xd8]
call fcn.0124d7c0
test eax, eax
jns 0x1413b12
cmp dword [r15 + 8], 1
jne 0x1413ad6
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], r12
mov r9, r15
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0xd8]
call fcn.0124f150
mov r12d, eax
jmp 0x1413af8
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
mov r9, r15
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0xd8]
call fcn.017eb630
mov r12d, eax
mov dword [rsp + 0x40], r12d
test r12d, r12d
jns 0x1413b0f
mov rdi, qword [rsp + 0xd8]
jmp 0x118a1c9
xor r12d, r12d
cmp qword [r15 + 0x48], 0
je 0x1413b23
mov rcx, qword [r15 + 0x48]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [r15 + 0x48], r12
mov dword [rsp + 0x40], r12d
test r13b, r13b
jne 0x1413b8c
mov rax, qword [rsi + 0x38]
mov rdi, qword [rsp + 0xd8]
cmp rax, qword [rdi + 0x38]
jne 0x1413b94
mov rbx, r12
mov qword [rsp + 0x68], rbx
mov r13, qword [rsi + 0x50]
cmp rbx, r13
jge 0x1413cb2
mov rax, qword [rsi + 0x48]
mov rdx, qword [rax + rbx*8]
test rdx, rdx
je 0x1413b81
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x1b0]
mov r12d, eax
mov dword [rsp + 0x40], eax
test eax, eax
jns 0x1413b81
jmp 0x118a1c9
add rbx, 1
mov qword [rsp + 0x68], rbx
jmp 0x1413b4f
mov rdi, qword [rsp + 0xd8]
mov r13, r12
mov qword [rsp + 0x70], r12
mov r14, qword [rsi + 0x50]
cmp r13, r14
jge 0x1413cb5
mov rax, qword [rsi + 0x48]
mov rbx, qword [rax + r13*8]
test rbx, rbx
je 0x1413ca4
mov qword [rsp + 0x50], r12
mov r9, qword [rdi + 0x38]
test r9, r9
je 0x1413bf2
cmp dword [r9 + 8], 1
jne 0x1413bf2
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], r12
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x50]
call fcn.0124e2c0
mov r12d, eax
jmp 0x1413c0e
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x50]
call fcn.01785ec0
mov r12d, eax
mov dword [rsp + 0x40], r12d
test r12d, r12d
jns 0x1413c2e
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x1413c29
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x118a1c9
xor r8d, r8d
mov rdx, rbx
mov rbx, qword [rsp + 0x50]
mov rcx, rbx
call fcn.017f09d0
mov r12d, eax
mov dword [rsp + 0x40], eax
test eax, eax
jns 0x1413c60
test rbx, rbx
je 0x1413c5b
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x118a1c9
mov rax, qword [rdi]
mov rdx, rbx
mov rcx, rdi
call qword [rax + 0x1b0]
mov r12d, eax
mov dword [rsp + 0x40], eax
test eax, eax
jns 0x1413c8e
test rbx, rbx
je 0x1413c89
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x118a1c9
test rbx, rbx
je 0x1413ca1
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
xor r12d, r12d
jmp 0x1413ca4
xor r12d, r12d
add r13, 1
mov qword [rsp + 0x70], r13
jmp 0x1413ba0
xor r12d, r12d
test rdi, rdi
je 0x1413cc0
lea rbx, [rdi + 0x30]
jmp 0x1413cc3
mov rbx, r12
test rbx, rbx
je 0x1413cd1
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
cmp qword [r15 + 0x48], 0
je 0x1413ce2
mov rcx, qword [r15 + 0x48]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [r15 + 0x48], rbx
mov dword [rsp + 0x40], r12d
mov dword [rsp + 0x40], r12d
jmp 0x118a1c9
mov rsi, qword [rsp + 0x48]
jmp 0x118a1c2
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x118a1d2
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x118a1db