Function at 0x124ea60
Capabilities:
Get thread local storage value

Disassembly:
mov r11, rsp
mov byte [r11 + 0x20], r9b
mov qword [r11 + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [r11 + 8], rcx
push rbx
push rsi
push rdi
sub rsp, 0x60
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov rax, rcx
xor edi, edi
mov rsi, rdi
mov qword [r11 - 0x40], rdi
mov rbx, rdi
mov qword [rsp + 0x40], rbx
cmp dword [r11 + 0x10], 0x409
jne 0x14163e6
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x48], rdi
mov rcx, qword [rax + 0xa0]
add rcx, 0xc0
mov rax, qword [rcx]
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x88]
call qword [rax + 0x48]
mov edi, eax
mov dword [rsp + 0x20], eax
test eax, eax
js 0x141648d
test eax, eax
jne 0x14164a3
mov rax, qword [rsp + 0x48]
mov rcx, qword [rax]
mov rdi, qword [rcx + 8]
test rdi, rdi
je 0x124eb00
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_htonl]
mov rcx, qword [rsp + 0x28]
test rcx, rcx
jne 0x1416685
mov qword [rsp + 0x28], rdi
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x141669d
mov qword [rsp + 0x28], 0
mov rcx, qword [rsp + 0x90]
mov qword [rcx], rax
xor edi, edi
mov dword [rsp + 0x20], edi
mov rcx, qword [rsp + 0x28]
test rcx, rcx
jne 0x1416691
jmp 0x124eb4b
test rsi, rsi
jne 0x1416769
test rbx, rbx
jne 0x1416793
mov eax, edi
add rsp, 0x60
pop rdi
pop rsi
pop rbx
ret
mov rax, qword [0x039f1188]
test rax, rax
je 0x1416406
mov ecx, dword [rax + 8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1416406
lea rsi, [rax + 0x20]
jmp 0x1416409
mov rsi, rdi
mov qword [rsp + 0x38], rsi
test rsi, rsi
je 0x1416473
mov rcx, qword [rsi + 0x38]
test rcx, rcx
je 0x1416466
mov rax, qword [rcx]
call qword [rax + SafeArrayCopy]
cmp eax, 0x409
je 0x1416480
mov rbx, qword [rsi + 0x38]
test rbx, rbx
je 0x141643b
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov qword [rsp + 0x40], rbx
cmp qword [rsi + 0x38], 0
je 0x1416451
mov rcx, qword [rsi + 0x38]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rsi + 0x38], rdi
mov dword [rsp + 0x20], edi
mov rax, qword [rsp + 0x80]
jmp 0x124eaa5
mov rax, qword [rsp + 0x80]
jmp 0x124eaa5
mov rax, qword [rsp + 0x80]
jmp 0x124eaa5
mov rax, qword [rsp + 0x80]
jmp 0x124eaa5
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x141649e
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x124eb4b
lea r8, [rsp + 0x28]
mov edx, dword [rsp + 0x88]
mov rcx, qword [rsp + 0x80]
call fcn.01815fa0
test eax, eax
js 0x14164fd
mov r8, qword [rsp + 0x28]
mov edx, dword [rsp + 0x88]
mov rcx, qword [rsp + 0x80]
call fcn.01811330
mov edi, eax
mov dword [rsp + 0x20], eax
test eax, eax
jns 0x124eb13
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x14164f8
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x124eb4b
cmp eax, 0xc109000c
jne 0x1416669
mov r9d, dword [rsp + 0x88]
mov dword [rsp + 0x30], r9d
movzx eax, r9b
add eax, 0xfffffffc
cmp eax, 0xe
ja case.0x1416536.5
lea rdx, [0x01000000]
mov ecx, dword [rdx + rax*4 + 0x4167a4]
add rcx, rdx
jmp rcx
mov edx, 0x40a
mov dword [rsp + 0x30], edx
jmp 0x1416597
mov edx, 0x40c
mov dword [rsp + 0x30], edx
jmp 0x1416597
mov edx, 0x407
mov dword [rsp + 0x30], edx
jmp 0x1416597
mov edx, 0x411
mov dword [rsp + 0x30], edx
jmp 0x1416597
movzx eax, r9w
and ax, 0xfc00
mov edx, 0x404
mov ecx, 0x804
cmp ax, 0x800
cmove edx, ecx
mov dword [rsp + 0x30], edx
jmp 0x1416597
mov edx, 0x412
mov dword [rsp + 0x30], edx
jmp 0x1416597
mov edx, 0x410
mov dword [rsp + 0x30], edx
cmp edx, r9d
je case.0x1416536.5
xor r9d, r9d
lea r8, [rsp + 0x28]
mov rcx, qword [rsp + 0x80]
call fcn.0124ea60
test eax, eax
jns 0x14165f5
call fcn.0115c5b0
cmp edi, 0xc1000002
jne 0x14165d3
mov rcx, rax
call fcn.0109c0c0
jmp 0x124eb13
mov dword [rsp + 0x20], edi
test edi, edi
jns 0x124eb13
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x14165f0
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x124eb4b
mov r8, qword [rsp + 0x28]
mov edx, dword [rsp + 0x88]
mov rcx, qword [rsp + 0x80]
call fcn.01811330
mov edi, eax
mov dword [rsp + 0x20], eax
test eax, eax
jns 0x124eb13
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x141662d
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x124eb4b
xor r8d, r8d
mov edx, r9d
mov rcx, qword [rsp + 0x80]
call fcn.01811330
mov edi, eax
mov dword [rsp + 0x20], eax
test eax, eax
jns 0x124eb13
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x1416664
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x124eb4b
mov edi, eax
mov dword [rsp + 0x20], eax
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x1416680
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x124eb4b
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x124eb0e
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x124eb49
cmp byte [rsp + 0x98], 0
je 0x1416724
mov rdi, qword [rsp + 0x80]
cmp qword [rdi + 0x70], 0
je 0x1416724
cmp qword [rsp + 0x90], 0
jne 0x14166e0
mov edi, 0x80004003
mov dword [rsp + 0x20], edi
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x14166db
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x124eb4b
cmp qword [rdi + 0x70], 0
je 0x14166f1
mov rcx, qword [rdi + 0x70]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov rax, qword [rdi + 0x70]
mov rcx, qword [rsp + 0x90]
mov qword [rcx], rax
mov dword [rsp + 0x20], 0
xor edi, edi
mov dword [rsp + 0x20], edi
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x141671f
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x124eb4b
mov edi, 0xc1000002
mov dword [rsp + 0x20], edi
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x141673e
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x124eb4b
test rbx, rbx
je 0x124eb54
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov rcx, qword [rsi + 0x38]
test rcx, rcx
je 0x141678a
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rsi + 0x38], rbx
jmp 0x124eb54
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x124eb5d