Function at 0x1801122a0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x50
mov rax, qword [0x1801902f8]
mov rbx, r8
movaps xmmword [rsp + 0x40], xmm6
movaps xmm6, xmm1
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movsxd rcx, dword [0x180190318]
xor edi, edi
test rax, rax
je 0x1801122e7
test ecx, ecx
jle 0x1801122e7
cmp ecx, dword [rax + 8]
jge 0x1801122e7
mov rax, qword [rax]
mov rdi, qword [rax + rcx*8]
mov esi, 4
test rdi, rdi
jne 0x180112317
mov ecx, esi
call sym.tcl86t.dll_hclpAlloc
mov rdi, rax
test rax, rax
je 0x18011251c
xor eax, eax
lea rcx, [0x180190318]
mov rdx, rdi
mov dword [rdi], eax
call fcn.180106bc0
movaps xmm0, xmm6
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll__isnan]
test eax, eax
je 0x180112394
cmp dword [0x18018ff64], 0
movsd qword [rsp + 0x78], xmm6
mov r8, qword [rsp + 0x78]
je 0x18011233c
rol r8, 0x20
movabs rax, 0x8000000000000000
test rax, r8
je 0x18011235e
movabs rax, 0x7fffffffffffffff
mov byte [rbx], 0x2d
and r8, rax
inc rbx
movabs rax, 0x7ffffffffffff
mov word [rbx], 0x614e
mov byte [rbx + 2], 0x4e
and r8, rax
je 0x18011238b
lea rdx, str.__I64x_
lea rcx, [rbx + 3]
call fcn.180001060
jmp 0x180112507
mov byte [rbx + 3], 0
jmp 0x180112507
movaps xmm0, xmm6
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll__finite]
test eax, eax
jne 0x1801123cc
xorps xmm0, xmm0
comisd xmm0, xmm6
jbe 0x1801123c1
mov eax, dword [str._Inf]
mov dword [rbx], eax
movzx eax, byte [0x180171540]
mov byte [rbx + 4], al
jmp 0x180112507
mov dword [rbx], 0x666e49
jmp 0x180112507
mov eax, dword [rdi]
lea r9, [rsp + 0x30]
test eax, eax
mov edx, eax
mov ecx, 0xffffffff
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
cmove edx, ecx
mov ecx, 2
lea rax, [rsp + 0x78]
cmovne esi, ecx
mov qword [rsp + 0x20], rax
mov r8d, esi
movaps xmm0, xmm6
call sym.tcl86t.dll_hclDoubleDigits
cmp dword [rsp + 0x78], 0
mov rsi, rax
je 0x180112416
mov byte [rbx], 0x2d
inc rbx
mov edx, dword [rsp + 0x30]
mov r8, rsi
lea ecx, [rdx + 4]
cmp ecx, 0x14
ja 0x1801124b5
test edx, edx
jns 0x180112433
mov byte [rbx], 0x30
inc rbx
movzx r9d, byte [rax]
test edx, edx
js 0x180112461
nop dword [rax + rax]
dec edx
lea rax, [rbx + 1]
test r9b, r9b
je 0x180112457
inc r8
mov byte [rbx], r9b
movzx r9d, byte [r8]
jmp 0x18011245a
mov byte [rbx], 0x30
mov rbx, rax
test edx, edx
jns 0x180112440
mov byte [rbx], 0x2e
mov eax, edx
inc rbx
test r9b, r9b
jne 0x18011247c
mov byte [rbx], 0x30
inc rbx
mov byte [rbx], r9b
jmp 0x1801124ff
cmp eax, 0xffffffff
jge 0x180112494
not eax
mov rdi, rbx
mov edx, eax
mov eax, 0x30
mov ecx, edx
add rbx, rdx
rep stosb byte [rdi], al
sub r8, rbx
nop word [rax + rax]
mov byte [rbx], r9b
inc rbx
movzx r9d, byte [r8 + rbx]
test r9b, r9b
jne 0x1801124a0
mov byte [rbx], r9b
jmp 0x1801124ff
movzx eax, byte [rax]
inc r8
mov byte [rbx], al
inc rbx
movzx eax, byte [r8]
test al, al
je 0x1801124e1
mov byte [rbx], 0x2e
inc rbx
nop
mov byte [rbx], al
lea r8, [r8 + 1]
movzx eax, byte [r8]
inc rbx
test al, al
jne 0x1801124d0
cmp dword [rdi], 0
mov r8d, edx
lea rdx, str.e_d
mov rcx, rbx
je 0x1801124fa
lea rdx, str.e_03d
call fcn.180001060
mov rcx, rsi
call sym.tcl86t.dll_hclpFree
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x50
pop rdi
ret
mov edx, esi
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3