Function at 0x48e4b0
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa8
cmp rcx, 0xffffffffffffffff
mov rdi, rdx
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 0
je 0x48e820
mov qword [rsp + 0x80], rcx
mov esi, 3
mov ebp, 2
mov dword [rsp + 0x68], 0
mov ebx, 1
mov ecx, dword [0x006750f0]
mov dword [rsp + 0x4c], 0xffffffff
cmp ecx, 0xffffffff
jne 0x48e7f0
movabs rax, 0x7fffffffffffffff
cmp qword [rdi], rax
jne 0x48e6c0
mov rax, 0xffffffffffffffff
mov qword [rsp + 0x58], 0
mov ebp, 0xffffffff
mov qword [rsp + 0x50], rax
mov esi, eax
mov r12, qword [sym.imp.KERNEL32.dll_Sleep]
mov r15, qword [sym.imp.KERNEL32.dll_WaitForMultipleObjectsEx]
mov r13, r12
jmp 0x48e593
xor ecx, ecx
call r13
cmp esi, 0xffffffff
je 0x48e5a9
test rbp, rbp
jle 0x48e623
test ebx, ebx
jne 0x48e650
test ebp, ebp
je 0x48e580
mov ecx, ebp
call r12
cmp esi, 0xffffffff
jne 0x48e58a
movabs rax, 0x7fffffffffffffff
cmp qword [rdi], rax
je 0x48e58a
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
je 0x48e5ef
cmp qword [rsp + 0x70], 0
jle 0x48e5ef
lea r14, [rsp + 0x78]
mov ebp, 4
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x48e835
sub ebp, 1
jne 0x48e5d9
xor eax, eax
mov rdx, qword [rdi]
sub rdx, rax
mov rax, rdx
js 0x48e691
add rax, 0xf423f
movabs rdx, 0x431bde82d7b634db
mul rdx
shr rdx, 0x12
mov rbp, rdx
test rbp, rbp
jg 0x48e593
xor ebx, ebx
cmp qword [rsp + 0x50], 0xfffffffffffffffd
ja 0x48e638
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rdx, [rsp + 0x80]
mov dword [rsp + 0x20], 0
mov r9d, ebp
xor r8d, r8d
mov ecx, ebx
call r15
cmp eax, ebx
jae 0x48e585
cmp dword [rsp + 0x68], eax
je 0x48e921
cmp dword [rsp + 0x4c], eax
je 0x48e92b
cmp eax, esi
jne 0x48e585
jmp 0x48e623
lea rcx, [rdx - 0xf423f]
movabs rdx, 0x431bde82d7b634db
mov rax, rcx
imul rdx
mov rax, rcx
sar rax, 0x3f
sar rdx, 0x12
sub rdx, rax
mov rbp, rdx
jmp 0x48e58a
call fcn.005b8d10
mov rsi, qword [rdi]
sub rsi, rax
mov rax, rsi
js 0x48e8c4
add rax, 0xf423f
movabs rdx, 0x431bde82d7b634db
mul rdx
shr rdx, 0x12
mov r12, rdx
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateWaitableTimerA]
test rax, rax
mov qword [rsp + 0x58], rax
je 0x48e913
cmp r12, 0x293
jle 0x48e86c
mov rax, r12
movabs rdx, 0x6666666666666667
imul rdx
mov rax, r12
sar rax, 0x3f
sar rdx, 3
mov esi, edx
sub esi, eax
imul r12, r12, 0xffffffffffffd8f0
mov qword [rsp + 0x78], r12
mov rax, qword [0x0072dbc0]
test rax, rax
je 0x48e9c7
mov dword [rsp + 0x30], esi
mov rsi, qword [rsp + 0x58]
lea r14, [rsp + 0x78]
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
mov rdx, r14
mov rcx, rsi
call rax
lea rcx, [rsi - 1]
test eax, eax
mov qword [rsp + 0x50], rcx
jne 0x48e8f1
movabs rax, 0x7fffffffffffffff
cmp qword [rdi], rax
je 0x48e9fe
call fcn.005b8d10
mov rsi, qword [rdi]
sub rsi, rax
mov rax, rsi
js 0x48e969
add rax, 0xf423f
movabs rdx, 0x431bde82d7b634db
mul rdx
mov rax, rdx
shr rax, 0x12
test rax, rax
mov ebp, 0
mov esi, 0xffffffff
cmovns rbp, rax
jmp 0x48e565
mov r12, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call r12
test rax, rax
je 0x48e536
mov ecx, dword [0x006750f0]
cmp ecx, 0xffffffff
jne 0x48e888
movzx eax, byte [0x90]
ud2
mov esi, 2
mov ebp, 1
mov dword [rsp + 0x68], ecx
xor ebx, ebx
jmp 0x48e51f
fild qword [rsp + 0x78]
fnstcw word [rsp + 0x6e]
movzx eax, word [rsp + 0x6e]
or ah, 0xc
mov word [rsp + 0x6c], ax
fmul dword [str._knN]
fild qword [rsp + 0x70]
fdivp st(1)
fldcw word [rsp + 0x6c]
fistp qword [rsp + 0x60]
fldcw word [rsp + 0x6e]
mov rax, qword [rsp + 0x60]
jmp 0x48e5f1
test r12, r12
mov qword [rsp + 0x78], 0
mov esi, 0x20
jle 0x48e741
jmp 0x48e735
call r12
cmp byte [rax + 0x90], 0
je 0x48e536
mov ecx, dword [0x006750f0]
cmp ecx, 0xffffffff
je 0x48e909
call r12
mov rax, qword [rax + 0x88]
mov edx, ebx
mov dword [rsp + 0x4c], ebx
mov ebx, ebp
mov ebp, esi
mov qword [rsp + rdx*8 + 0x80], rax
jmp 0x48e536
lea rcx, [rsi - 0xf423f]
movabs rdx, 0x431bde82d7b634db
mov rax, rcx
imul rdx
mov rax, rcx
sar rax, 0x3f
sar rdx, 0x12
sub rdx, rax
mov r12, rdx
jmp 0x48e6ee
mov eax, ebx
mov qword [rsp + rax*8 + 0x80], rsi
mov esi, ebx
mov ebx, ebp
mov ebp, 0xffffffff
jmp 0x48e565
mov rax, qword [0x88]
ud2
mov qword [rsp + 0x50], 0xffffffffffffffff
jmp 0x48e790
mov ebx, 1
jmp 0x48e625
mov ecx, dword [0x006750f0]
cmp ecx, 0xffffffff
je 0x48e9c0
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rax + 0x88]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
mov ecx, 1
call fcn.00670680
lea rdx, [0x006d4300]
xor r8d, r8d
mov rcx, rax
call fcn.00670ef0
lea rcx, [rsi - 0xf423f]
movabs rdx, 0x431bde82d7b634db
mov rax, rcx
imul rdx
mov rax, rcx
sar rax, 0x3f
sar rdx, 0x12
sub rdx, rax
mov rax, rdx
jmp 0x48e7d1
xor eax, eax
jmp 0x48e940
lea rcx, [0x00693e52]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea rdx, str.SetWaitableTimerEx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x0048c950]
test rax, rax
cmove rax, rdx
mov qword [0x0072dbc0], rax
jmp 0x48e751
or esi, 0xffffffff
mov ebp, 0xffffffff
jmp 0x48e565