Function at 0x1806a60
Capabilities:
Get thread local storage value

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xf0
mov qword [rsp + 0xe0], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov rbp, r9
mov rsi, r8
mov r15, rdx
mov rdi, rcx
xor ebx, ebx
mov qword [rax - 0x58], rbx
mov rax, qword [0x039f1180]
mov ecx, dword [rax + 8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1806abe
lea r12, [rax + 0x20]
jmp 0x1806ac1
xor r12d, r12d
mov qword [rsp + 0xd0], r12
mov rcx, qword [r12 + 0x30]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VarBstrFromCy]
mov r14, rax
mov qword [rsp + 0xd8], rax
xor r13d, r13d
bt r15, r13
jae 0x1806fef
mov rax, qword [rdi + 0x30]
mov rdi, qword [rax + r13*8]
mov qword [rsp + 0xe8], rdi
test rdi, rdi
je 0x1806b0b
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_htonl]
nop
test rsi, rsi
jne 0x1806fb3
test r15b, 1
je 0x1806fb3
mov qword [rsp + 0x30], rsi
lea rdx, [rsp + 0x30]
mov rcx, qword [0x039f11b0]
call fcn.017cc110
mov ebx, eax
test eax, eax
js 0x1807438
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x1806fa1
mov r8, qword [rcx]
mov edx, 0x121
call qword [r8 + 0x208]
mov rsi, rax
test rax, rax
je 0x1806f75
mov rcx, qword [rax + 0x38]
test rcx, rcx
je 0x1806d53
test byte [rcx - 5], 0x40
jne 0x1806b80
movsxd rax, dword [rcx - 4]
jmp 0x1806b8b
mov rcx, qword [rcx]
call qword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
mov eax, eax
shr rax, 1
je 0x1806d53
mov rax, qword [rsi + 0x38]
test rax, rax
je 0x1806d53
movzx ecx, byte [rax - 5]
test cl, 0x40
jne 0x1806baf
test cl, 0x20
je 0x1806bb2
mov rax, qword [rax]
test rax, rax
je 0x1806d53
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x50]
call fcn.0118c100
nop
mov edx, dword [reloc.OLEAUT32.dll_VariantInit]
and edx, 7
lea rax, [rdx + rdx*2]
lea r8, [0x01173e98]
movzx ecx, byte [r8 + rax*2 + 5]
movzx eax, byte [r8 + rax*2 + 4]
add eax, ecx
cdqe
movabs r9, 0x7fffffffffffffff
mov rcx, r9
sub rcx, rax
shr rcx, 1
sub rcx, 1
cmp rcx, 0x104
jl 0x1807198
lea rax, [rdx + rdx*2]
movzx ecx, byte [r8 + rax*2 + 5]
movzx eax, byte [r8 + rax*2 + 4]
add ecx, eax
movsxd rbx, ecx
add rbx, 0x20a
mov rcx, qword [r12 + 0x30]
cmp rbx, r9
jae 0x1807125
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + SafeArrayCopy]
test rax, rax
je 0x1807125
mov rcx, qword [r12 + 0x28]
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], rbx
lea rcx, [rsp + 0x40]
call fcn.0116a950
nop
mov r9, qword [r12 + 0x40]
xor r8d, r8d
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x40]
call fcn.0118a2d0
mov ebx, eax
test eax, eax
js 0x18070c4
mov rax, qword [0x039f11b0]
mov rbx, qword [rax + 0x1e8]
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
call qword [rax + 0x1b0]
mov r9d, eax
lea r8, [rsp + 0x40]
mov rdx, rbx
lea rcx, [rsi + 0x38]
call fcn.01225810
mov ebx, eax
test eax, eax
js 0x1807063
mov rdx, qword [rsp + 0x40]
test rdx, rdx
je 0x1806cf3
movzx eax, byte [rdx - 5]
test al, 0x40
jne 0x1806cee
test al, 0x20
je 0x1806cf5
mov rdx, qword [rdx]
jmp 0x1806cf5
xor edx, edx
mov rax, qword [rdi]
mov r8d, 1
mov rcx, rdi
call qword [rax + 0x200]
mov ebx, eax
test eax, eax
js 0x1807002
lea rcx, [rsp + 0x40]
call fcn.0116a920
nop
lea rax, [0x0104ef20]
mov qword [rsp + 0x50], rax
lea rax, [0x0109b930]
mov qword [rsp + 0x68], rax
lea rcx, [rsp + 0x50]
call fcn.0116d120
mov rsi, qword [rsp + 0x140]
mov rbp, qword [rsp + 0x148]
jmp 0x1806fa1
mov rcx, qword [rsi + 0x40]
test rcx, rcx
je 0x1806f63
test byte [rcx - 5], 0x40
jne 0x1806d6c
movsxd rax, dword [rcx - 4]
jmp 0x1806d77
mov rcx, qword [rcx]
call qword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
mov eax, eax
shr rax, 1
je 0x1806f91
mov rax, qword [rsi + 0x40]
test rax, rax
je 0x1806f51
movzx ecx, byte [rax - 5]
test cl, 0x40
jne 0x1806d9b
test cl, 0x20
je 0x1806d9e
mov rax, qword [rax]
test rax, rax
je 0x1806f7f
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x90]
call fcn.0118c100
nop
mov edx, dword [reloc.OLEAUT32.dll_VariantInit]
and edx, 7
lea rax, [rdx + rdx*2]
lea r8, [0x01173e98]
movzx ecx, byte [r8 + rax*2 + 5]
movzx eax, byte [r8 + rax*2 + 4]
add eax, ecx
cdqe
movabs r9, 0x7fffffffffffffff
mov rcx, r9
sub rcx, rax
shr rcx, 1
sub rcx, 1
cmp rcx, 0x104
jl 0x18073c2
lea rax, [rdx + rdx*2]
movzx ecx, byte [r8 + rax*2 + 5]
movzx eax, byte [r8 + rax*2 + 4]
add ecx, eax
movsxd rbx, ecx
add rbx, 0x20a
mov rcx, qword [r12 + 0x30]
cmp rbx, r9
jae 0x1807346
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + SafeArrayCopy]
test rax, rax
je 0x1807346
mov rcx, qword [r12 + 0x28]
mov qword [rsp + 0xb0], rcx
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0xc8], rbx
lea rcx, [rsp + 0x38]
call fcn.0116a950
nop
mov r9, qword [r12 + 0x40]
xor r8d, r8d
lea rdx, [rsp + 0xa8]
lea rcx, [rsp + 0x38]
call fcn.0118a2d0
mov ebx, eax
test eax, eax
js 0x18072dc
mov rax, qword [0x039f11b0]
mov rbx, qword [rax + 0x1e8]
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
call qword [rax + 0x1b0]
mov r9d, eax
lea r8, [rsp + 0x38]
mov rdx, rbx
lea rcx, [rsi + 0x40]
call fcn.01225810
mov ebx, eax
test eax, eax
js 0x1807272
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x1806eeb
movzx eax, byte [rdx - 5]
test al, 0x40
jne 0x1806ee6
test al, 0x20
je 0x1806eed
mov rdx, qword [rdx]
jmp 0x1806eed
xor edx, edx
mov rax, qword [rdi]
mov r8d, 1
mov rcx, rdi
call qword [rax + 0x200]
mov ebx, eax
test eax, eax
js 0x1807208
lea rcx, [rsp + 0x38]
call fcn.0116a920
nop
lea rax, [0x0104ef20]
mov qword [rsp + 0x90], rax
lea rax, [0x0109b930]
mov qword [rsp + 0xa8], rax
lea rcx, [rsp + 0x90]
call fcn.0116d120
mov rsi, qword [rsp + 0x140]
mov rbp, qword [rsp + 0x148]
jmp 0x1806fa1
mov rsi, qword [rsp + 0x140]
mov rbp, qword [rsp + 0x148]
jmp 0x1806fa1
mov rsi, qword [rsp + 0x140]
mov rbp, qword [rsp + 0x148]
jmp 0x1806fa1
mov rsi, qword [rsp + 0x140]
jmp 0x1806fa1
mov rsi, qword [rsp + 0x140]
mov rbp, qword [rsp + 0x148]
jmp 0x1806fa1
mov rsi, qword [rsp + 0x140]
mov rbp, qword [rsp + 0x148]
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x1806fcf
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
jmp 0x1806fcf
mov rax, qword [rdi]
mov r8, rbp
mov rdx, rsi
mov rcx, rdi
call qword [rax + 0x200]
mov ebx, eax
test eax, eax
js 0x1807468
test rdi, rdi
je 0x1806fe7
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rdi, qword [rsp + 0x130]
jmp 0x1806fef
mov rdi, qword [rsp + 0x130]
add r13, 1
cmp r13, 4
jge 0x1807487
jmp 0x1806ae2
lea rcx, [rsp + 0x40]
call fcn.0116a920
nop
lea rax, [0x0104ef20]
mov qword [rsp + 0x50], rax
lea rax, [0x0109b930]
mov qword [rsp + 0x68], rax
lea rcx, [rsp + 0x50]
call fcn.0116d120
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x1807041
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
test rdi, rdi
je 0x1807050
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [r12 + 0x30]
mov rax, qword [rcx]
mov rdx, r14
call qword [rax + 0x78]
jmp 0x1807495
lea rcx, [rsp + 0x40]
call fcn.0116a920
nop
lea rax, [0x0104ef20]
mov qword [rsp + 0x50], rax
lea rax, [0x0109b930]
mov qword [rsp + 0x68], rax
lea rcx, [rsp + 0x50]
call fcn.0116d120
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x18070a2
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
test rdi, rdi
je 0x18070b1
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [r12 + 0x30]
mov rax, qword [rcx]
mov rdx, r14
call qword [rax + 0x78]
jmp 0x1807495
lea rcx, [rsp + 0x40]
call fcn.0116a920
nop
lea rax, [0x0104ef20]
mov qword [rsp + 0x50], rax
lea rax, [0x0109b930]
mov qword [rsp + 0x68], rax
lea rcx, [rsp + 0x50]
call fcn.0116d120
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x1807103
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
test rdi, rdi
je 0x1807112
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [r12 + 0x30]
mov rax, qword [rcx]
mov rdx, r14
call qword [rax + 0x78]
jmp 0x1807495
mov qword [rsp + 0x20], 0x1000000f
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0xc1030001
call fcn.0124e580
mov ebx, eax
lea rax, [0x0104ef20]
mov qword [rsp + 0x50], rax
lea rax, [0x0109b930]
mov qword [rsp + 0x68], rax
lea rcx, [rsp + 0x50]
call fcn.0116d120
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x1807176
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
test rdi, rdi
je 0x1807185
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [r12 + 0x30]
mov rax, qword [rcx]
mov rdx, r14
call qword [rax + 0x78]
jmp 0x1807495
lea r8, [0x018074b8]
mov edx, 0x17a
lea rcx, [0x01581330]
call fcn.017eea00
mov ebx, eax
lea rax, [0x0104ef20]
mov qword [rsp + 0x50], rax
lea rax, [0x0109b930]
mov qword [rsp + 0x68], rax
lea rcx, [rsp + 0x50]
call fcn.0116d120
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x18071e6
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
test rdi, rdi
je 0x18071f5
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [r12 + 0x30]
mov rax, qword [rcx]
mov rdx, r14
call qword [rax + 0x78]
jmp 0x1807495
lea rcx, [rsp + 0x38]
call fcn.0116a920
nop
lea rax, [0x0104ef20]
mov qword [rsp + 0x90], rax
lea rax, [0x0109b930]
mov qword [rsp + 0xa8], rax
lea rcx, [rsp + 0x90]
call fcn.0116d120
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x1807250
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
test rdi, rdi
je 0x180725f
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [r12 + 0x30]
mov rax, qword [rcx]
mov rdx, r14
call qword [rax + 0x78]
jmp 0x1807495
lea rcx, [rsp + 0x38]
call fcn.0116a920
nop
lea rax, [0x0104ef20]
mov qword [rsp + 0x90], rax
lea rax, [0x0109b930]
mov qword [rsp + 0xa8], rax
lea rcx, [rsp + 0x90]
call fcn.0116d120
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x18072ba
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
test rdi, rdi
je 0x18072c9
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [r12 + 0x30]
mov rax, qword [rcx]
mov rdx, r14
call qword [rax + 0x78]
jmp 0x1807495
lea rcx, [rsp + 0x38]
call fcn.0116a920
nop
lea rax, [0x0104ef20]
mov qword [rsp + 0x90], rax
lea rax, [0x0109b930]
mov qword [rsp + 0xa8], rax
lea rcx, [rsp + 0x90]
call fcn.0116d120
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x1807324
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
test rdi, rdi
je 0x1807333
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [r12 + 0x30]
mov rax, qword [rcx]
mov rdx, r14
call qword [rax + 0x78]
jmp 0x1807495
mov qword [rsp + 0x20], 0x1000000f
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0xc1030001
call fcn.0124e580
mov ebx, eax
lea rax, [0x0104ef20]
mov qword [rsp + 0x90], rax
lea rax, [0x0109b930]
mov qword [rsp + 0xa8], rax
lea rcx, [rsp + 0x90]
call fcn.0116d120
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x18073a0
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
test rdi, rdi
je 0x18073af
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [r12 + 0x30]
mov rax, qword [rcx]
mov rdx, r14
call qword [rax + 0x78]
jmp 0x1807495
lea r8, [0x018074b8]
mov edx, 0x180
lea rcx, [0x01581330]
call fcn.017eea00
mov ebx, eax
lea rax, [0x0104ef20]
mov qword [rsp + 0x90], rax
lea rax, [0x0109b930]
mov qword [rsp + 0xa8], rax
lea rcx, [rsp + 0x90]
call fcn.0116d120
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x1807419
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
test rdi, rdi
je 0x1807428
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [r12 + 0x30]
mov rax, qword [rcx]
mov rdx, r14
call qword [rax + 0x78]
jmp 0x1807495
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x1807449
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
test rdi, rdi
je 0x1807458
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [r12 + 0x30]
mov rax, qword [rcx]
mov rdx, r14
call qword [rax + 0x78]
jmp 0x1807495
test rdi, rdi
je 0x1807477
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [r12 + 0x30]
mov rax, qword [rcx]
mov rdx, r14
call qword [rax + 0x78]
jmp 0x1807495
mov rcx, qword [r12 + 0x30]
mov rax, qword [rcx]
mov rdx, r14
call qword [rax + 0x78]
mov eax, ebx
mov rbx, qword [rsp + 0x138]
add rsp, 0xf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret