Function at 0x1796380
Capabilities:
Get thread local storage value

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov r14, r9
movsxd r13, r8d
mov rdi, rdx
mov r12, rcx
xor r15d, r15d
mov qword [rax - 0x38], r15
mov rax, qword [0x039f1180]
mov ecx, dword [rax + 8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x17963d3
lea rsi, [rax + 0x20]
jmp 0x17963d6
mov rsi, r15
mov qword [rsp + 0x30], rsi
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VarBstrFromCy]
mov rbp, rax
mov qword [rsp + 0x38], rax
mov rcx, rdi
call fcn.0119aa30
mov ebx, eax
test eax, eax
js 0x1796405
mov byte [rdi + 8], 0
mov qword [rdi], r15
mov ebx, r15d
test ebx, ebx
jns 0x179641b
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
cmp r13d, 0x13
ja case.0x1796437.2
lea rdx, [0x01000000]
mov ecx, dword [rdx + r13*4 + 0x796b8c]
add rcx, rdx
jmp rcx
mov rcx, rdi
call fcn.0119aa30
mov ebx, eax
test eax, eax
js 0x1796451
mov byte [rdi + 8], 0
mov qword [rdi], r15
mov ebx, r15d
test ebx, ebx
js 0x179645c
mov byte [rdi + 8], 0
mov ebx, r15d
test ebx, ebx
jns 0x1796b30
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
lea rcx, [rsp + 0x20]
call fcn.0116a950
nop
mov r13, qword [rsp + 0x90]
mov r9, r13
mov r8, qword [rsi + 0x28]
lea rdx, [rsp + 0x20]
mov rcx, r12
call fcn.011745b0
mov ebx, eax
test eax, eax
jns 0x17964c0
lea rcx, [rsp + 0x20]
call fcn.0116a920
nop
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov r9, r13
mov r8, r14
lea rdx, [rsp + 0x20]
mov rcx, rdi
call fcn.012d2e50
mov ebx, eax
test eax, eax
jns 0x17964f6
lea rcx, [rsp + 0x20]
call fcn.0116a920
nop
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
lea rcx, [rsp + 0x20]
call fcn.0116a920
jmp 0x1796b30
mov r8, qword [rsp + 0x90]
lea rdx, [rsp + 0x20]
mov rcx, r12
call fcn.013b31e0
mov ebx, eax
test eax, eax
jns 0x1796532
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov rcx, rdi
call fcn.0119aa30
mov ebx, eax
test eax, eax
js 0x179654a
mov byte [rdi + 8], 0
mov qword [rdi], r15
mov ebx, r15d
test ebx, ebx
js 0x179655c
mov byte [rdi + 8], VariantTimeToDosDateTime
movzx eax, byte [rsp + 0x20]
mov byte [rdi], al
mov ebx, r15d
test ebx, ebx
jns 0x1796b30
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov r8, qword [rsp + 0x90]
lea rdx, [rsp + 0x20]
mov rcx, r12
call fcn.01794570
mov ebx, eax
test eax, eax
jns 0x17965a3
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov rcx, rdi
call fcn.0119aa30
mov ebx, eax
test eax, eax
js 0x17965bb
mov byte [rdi + 8], 0
mov qword [rdi], r15
mov ebx, r15d
test ebx, ebx
js 0x17965cd
mov byte [rdi + 8], reloc.OLEAUT32.dll_VariantTimeToDosDateTime
movzx eax, byte [rsp + 0x20]
mov byte [rdi], al
mov ebx, r15d
test ebx, ebx
jns 0x1796b30
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov r8, qword [rsp + 0x90]
lea rdx, [rsp + 0x20]
mov rcx, r12
call fcn.01794400
mov ebx, eax
test eax, eax
jns 0x1796614
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov rcx, rdi
call fcn.0119aa30
mov ebx, eax
test eax, eax
js 0x179662c
mov byte [rdi + 8], 0
mov qword [rdi], r15
mov ebx, r15d
test ebx, ebx
js 0x179663e
mov byte [rdi + 8], 3
movzx eax, byte [rsp + 0x20]
mov byte [rdi], al
mov ebx, r15d
test ebx, ebx
jns 0x1796b30
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov r8, qword [rsp + 0x90]
lea rdx, [rsp + 0x20]
mov rcx, r12
call fcn.01793c70
mov ebx, eax
test eax, eax
jns 0x1796685
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov rcx, rdi
call fcn.0119aa30
mov ebx, eax
test eax, eax
js 0x179669d
mov byte [rdi + 8], 0
mov qword [rdi], r15
mov ebx, r15d
test ebx, ebx
js 0x17966b0
mov byte [rdi + 8], 4
movzx eax, word [rsp + 0x20]
mov word [rdi], ax
mov ebx, r15d
test ebx, ebx
jns 0x1796b30
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov r8, qword [rsp + 0x90]
lea rdx, [rsp + 0x20]
mov rcx, r12
call fcn.013b2d90
mov ebx, eax
test eax, eax
jns 0x17966f7
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov rcx, rdi
call fcn.0119aa30
mov ebx, eax
test eax, eax
js 0x179670f
mov byte [rdi + 8], 0
mov qword [rdi], r15
mov ebx, r15d
test ebx, ebx
js 0x1796720
mov byte [rdi + 8], 5
mov eax, dword [rsp + 0x20]
mov dword [rdi], eax
mov ebx, r15d
test ebx, ebx
jns 0x1796b30
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov r8, qword [rsp + 0x90]
lea rdx, [rsp + 0x20]
mov rcx, r12
call fcn.013b6830
mov ebx, eax
test eax, eax
jns 0x1796767
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov rcx, rdi
call fcn.0119aa30
mov ebx, eax
test eax, eax
js 0x179677f
mov byte [rdi + 8], 0
mov qword [rdi], r15
mov ebx, r15d
test ebx, ebx
js 0x1796792
mov byte [rdi + 8], 6
mov rax, qword [rsp + 0x20]
mov qword [rdi], rax
mov ebx, r15d
test ebx, ebx
jns 0x1796b30
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov r8, qword [rsp + 0x90]
lea rdx, [rsp + 0x20]
mov rcx, r12
call fcn.01793de0
mov ebx, eax
test eax, eax
jns 0x17967d9
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov rcx, rdi
call fcn.0119aa30
mov ebx, eax
test eax, eax
js 0x17967f1
mov byte [rdi + 8], 0
mov qword [rdi], r15
mov ebx, r15d
test ebx, ebx
js 0x1796806
mov byte [rdi + 8], 7
movss xmm0, dword [rsp + 0x20]
movss dword [rdi], xmm0
mov ebx, r15d
test ebx, ebx
jns 0x1796b30
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov r8, qword [rsp + 0x90]
lea rdx, [rsp + 0x20]
mov rcx, r12
call fcn.012104a0
mov ebx, eax
test eax, eax
jns 0x179684d
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov rcx, rdi
call fcn.0119aa30
mov ebx, eax
test eax, eax
js 0x1796865
mov byte [rdi + 8], 0
mov qword [rdi], r15
mov ebx, r15d
test ebx, ebx
js 0x179687a
mov byte [rdi + 8], 8
movsd xmm0, qword [rsp + 0x20]
movsd qword [rdi], xmm0
mov ebx, r15d
test ebx, ebx
jns 0x1796b30
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov r8, qword [rsp + 0x90]
lea rdx, [rsp + 0x20]
mov rcx, r12
call fcn.017940c0
mov ebx, eax
test eax, eax
jns 0x17968c1
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov rcx, rdi
call fcn.0119aa30
mov ebx, eax
test eax, eax
js 0x17968d9
mov byte [rdi + 8], 0
mov qword [rdi], r15
mov ebx, r15d
test ebx, ebx
js 0x17968ee
mov byte [rdi + 8], 9
movsd xmm0, qword [rsp + 0x20]
movsd qword [rdi], xmm0
mov ebx, r15d
test ebx, ebx
jns 0x1796b30
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov r8, qword [rsp + 0x90]
lea rdx, [rsp + 0x20]
mov rcx, r12
call fcn.01793f50
mov ebx, eax
test eax, eax
jns 0x1796935
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov rcx, rdi
call fcn.0119aa30
mov ebx, eax
test eax, eax
js 0x179694d
mov byte [rdi + 8], 0
mov qword [rdi], r15
mov ebx, r15d
test ebx, ebx
js 0x1796960
mov byte [rdi + 8], 0xa
mov rax, qword [rsp + 0x20]
mov qword [rdi], rax
mov ebx, r15d
test ebx, ebx
jns 0x1796b30
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov r8, qword [rsp + 0x90]
lea rdx, [rsp + 0x20]
mov rcx, r12
call fcn.017946e0
mov ebx, eax
test eax, eax
jns 0x17969a7
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov rcx, rdi
call fcn.0119aa30
mov ebx, eax
test eax, eax
js 0x17969bf
mov byte [rdi + 8], 0
mov qword [rdi], r15
mov ebx, r15d
test ebx, ebx
js 0x17969d2
mov byte [rdi + 8], reloc.WS2_32.dll_listen
movzx eax, word [rsp + 0x20]
mov word [rdi], ax
mov ebx, r15d
test ebx, ebx
jns 0x1796b30
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov r8, qword [rsp + 0x90]
lea rdx, [rsp + 0x20]
mov rcx, r12
call fcn.012ced20
mov ebx, eax
test eax, eax
jns 0x1796a19
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov rcx, rdi
call fcn.0119aa30
mov ebx, eax
test eax, eax
js 0x1796a31
mov byte [rdi + 8], 0
mov qword [rdi], r15
mov ebx, r15d
test ebx, ebx
js 0x1796a42
mov byte [rdi + 8], reloc.WS2_32.dll_ntohl
mov eax, dword [rsp + 0x20]
mov dword [rdi], eax
mov ebx, r15d
test ebx, ebx
jns 0x1796b30
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov r8, qword [rsp + 0x90]
lea rdx, [rsp + 0x20]
mov rcx, r12
call fcn.01794850
mov ebx, eax
test eax, eax
jns 0x1796a89
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov rcx, rdi
call fcn.0119aa30
mov ebx, eax
test eax, eax
js 0x1796aa1
mov byte [rdi + 8], 0
mov qword [rdi], r15
mov ebx, r15d
test ebx, ebx
js 0x1796ab4
mov byte [rdi + 8], reloc.OLEAUT32.dll_SafeArrayDestroy
mov rax, qword [rsp + 0x20]
mov qword [rdi], rax
mov ebx, r15d
test ebx, ebx
jns 0x1796b30
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov r8, qword [rsp + 0x90]
lea rdx, [rsp + 0x20]
mov rcx, r12
call fcn.012ced20
mov ebx, eax
test eax, eax
jns 0x1796af4
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov rcx, rdi
call fcn.0119aa30
mov ebx, eax
test eax, eax
js 0x1796b0c
mov byte [rdi + 8], 0
mov qword [rdi], r15
mov ebx, r15d
test ebx, ebx
js 0x1796b1d
mov byte [rdi + 8], setsockopt
mov eax, dword [rsp + 0x20]
mov dword [rdi], eax
mov ebx, r15d
test ebx, ebx
jns 0x1796b30
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
jmp 0x1796b6a
mov rcx, qword [rsi + 0x30]
mov r8, qword [rcx]
mov rdx, rbp
call qword [r8 + 0x78]
mov eax, r15d
jmp 0x1796b6c
lea r8, [0x01796be0]
mov edx, 0x1987
lea rcx, [0x01580260]
call fcn.017eea00
mov ebx, eax
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 0x78]
mov eax, ebx
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
ret