Function at 0x49a150
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, 0xc8
mov qword [rsp + 0x80], 0
mov rbx, rdx
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 0
cmp rcx, 0xffffffffffffffff
je 0x49a7d8
mov r12d, 3
mov ebp, 2
mov esi, 1
mov qword [rsp + 0x80], rcx
mov dword [rsp + 0x58], 0
mov r14d, dword [0x0085f180]
cmp r14d, 0xffffffff
je 0x49a22d
mov rdi, qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, r14d
call rdi
test rax, rax
je 0x49a7c8
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x49a82f
call rdi
cmp byte [rax + 0x90], 0
je 0x49a7c8
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x49a9d2
call rdi
mov r14d, esi
mov r8, rax
mov eax, esi
mov esi, ebp
mov ebp, r12d
mov rdx, qword [r8 + 0x88]
mov qword [rsp + rax*8 + 0x80], rdx
mov rax, qword [rbx + 8]
mov qword [rsp + 0x50], rax
cmp rax, 0xffffffffffffffff
jne 0x49a710
mov qword [rsp + 0x48], 0
mov edi, 0xffffffff
mov r15, qword [sym.imp.KERNEL32.dll_Sleep]
mov r13, qword [sym.imp.KERNEL32.dll_WaitForMultipleObjectsEx]
xor ebp, ebp
xor r12d, r12d
jmp 0x49a290
test ebp, ebp
jne 0x49a460
xor ecx, ecx
call r15
xor ebp, ebp
cmp byte [rbx + 0x10], 0
je 0x49a28b
movabs rax, 0xffffffff00000002
add qword [rbx + 8], rax
test r12b, r12b
je 0x49a2e0
cmp edi, 0xffffffff
je 0x49a470
test esi, esi
je 0x49a268
mov r9d, 0xffffffff
mov dword [rsp + 0x20], 0
lea rdx, [rsp + 0x80]
xor r8d, r8d
mov ecx, esi
call r13
cmp esi, eax
jbe 0x49a277
cmp dword [rsp + 0x58], eax
je 0x49a851
cmp r14d, eax
je 0x49a85c
cmp edi, eax
jne 0x49a277
nop word cs:[rax + rax]
xor r12d, r12d
cmp qword [rsp + 0x50], 0xfffffffffffffffd
jbe 0x49a6b0
mov eax, r12d
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movsxd rcx, dword [rax + 4]
movsxd r8, dword [rax]
movsxd rax, dword [rax + 8]
mov r10d, ecx
mov r11d, eax
shr r10d, 0x1f
shr r11d, 0x1f
or r11b, r10b
jne 0x49a337
test r8d, r8d
jns 0x49a808
mov r10d, eax
sar r10d, 0x1f
xor eax, r10d
sub eax, r10d
mov r10d, ecx
sar r10d, 0x1f
cdqe
xor ecx, r10d
imul rax, rax, 0xe10
sub ecx, r10d
movsxd rcx, ecx
mov r10, rcx
shl r10, 4
sub r10, rcx
mov ecx, r8d
sar ecx, 0x1f
lea rax, [rax + r10*4]
xor r8d, ecx
sub r8d, ecx
movsxd r8, r8d
add rax, r8
imul rax, rax, 0xfffffffffff0bdc0
sub rax, rbp
mov rbp, rax
mov eax, 0xe
add dx, 0x1a2c
sub eax, r12d
movsxd rcx, eax
sar eax, 0x1f
imul rcx, rcx, 0x2aaaaaab
sar rcx, 0x21
sub ecx, eax
mov eax, 0xcccccccd
sub edx, ecx
lea ecx, [rcx + rcx*2]
lea ecx, [r9 + rcx*4 - 2]
movzx ecx, cx
imul ecx, ecx, 0x99
add ecx, 2
imul rcx, rax
mov eax, dword [rsp + 0x5c]
shr rcx, 0x22
add eax, ecx
movzx ecx, dx
imul ecx, ecx, 0x16d
add eax, ecx
mov ecx, edx
shr dx, 4
shr cx, 2
movzx edx, dx
movzx ecx, cx
imul edx, edx, 0xa3e
add eax, ecx
imul ecx, ecx, 0x147b
shr edx, 0x10
shr ecx, 0x11
sub eax, ecx
lea eax, [rax + rdx - 0x7d2d]
movabs rdx, 0x141dd76000
cdqe
imul rax, rdx
add rbp, rax
mov rax, qword [rbx + 0x18]
cmp rax, rbp
jle 0x49a4d0
movabs rdx, 0x7ffffffffffffffd
cmp rax, rdx
jle 0x49a8d7
nop
mov ebp, 0xfffffffe
mov r12d, 1
mov r9d, 0xfffffffe
test esi, esi
jne 0x49a2a3
nop dword [rax]
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x49a277
cmp qword [rbx + 8], 0xffffffffffffffff
je 0x49a440
cmp byte [rbx + 0x10], 0
je 0x49a4e8
mov rax, qword [0x00868910]
test rax, rax
je 0x49a5a0
call rax
mov rdx, qword [rbx]
mov rcx, rax
mov r9, qword [rbx + 8]
sub rcx, rdx
cmp rcx, r9
jae 0x49a4d0
add r9, rdx
mov rdx, r9
mov r9d, 0xfffffffe
sub rdx, rax
cmp rdx, r9
cmovbe r9, rdx
seta r12b
mov ebp, r9d
test esi, esi
jne 0x49a2a3
jmp 0x49a268
xor ebp, ebp
xor r12d, r12d
xor r9d, r9d
test esi, esi
jne 0x49a2a3
jmp 0x49a270
lea rcx, [rsp + 0x68]
xor edx, edx
call dbg.gettimeofday
movsxd rax, dword [rsp + 0x68]
mov ebp, dword [rsp + 0x6c]
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x60], rax
call qword [sym.imp.msvcrt.dll__gmtime64]
test rax, rax
je 0x49a970
mov r11d, dword [rax + 0xc]
movzx edx, r11w
mov dword [rsp + 0x5c], edx
test r11w, r11w
je 0x49a961
cmp r11w, 0x1f
ja 0x49a94d
mov r9d, dword [rax + 0x10]
lea ecx, [r9 + 1]
movzx r12d, cx
test cx, cx
je 0x49a91b
cmp cx, 0xc
ja 0x49a93a
mov edx, dword [rax + 0x14]
lea r8d, [rdx + 0x76c]
movzx r10d, r8w
cmp r8w, 0x577
jbe 0x49a92a
cmp r8w, 0x2710
ja 0x49a98f
cmp cx, 0xb
ja case.0x49a597.0
lea r10, [0x0087f6e0]
movzx ecx, cx
movsxd rcx, dword [r10 + rcx*4]
add r10, rcx
jmp r10
lea rcx, [0x0087f680]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, [0x0087f68d]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
lea rdx, [method.boost::detail::win32.GetTickCount64emulation__]
cmove rax, rdx
mov qword [0x00868910], rax
jmp 0x49a48d
mov ecx, 0x1e
cmp r11w, cx
jbe case.0x49a597.0
lea r12, [rsp + 0xa0]
lea r13, [rsp + 0x70]
xor r8d, r8d
mov qword [rsp + 0x70], 0x22
lea rbx, [rsp + 0xb0]
mov rdx, r13
mov rcx, r12
mov qword [rsp + 0xa0], rbx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_create_unsigned_long_long__unsigned_long_long_
mov rdx, qword [rsp + 0x70]
mov qword [rsp + 0xa0], rax
mov rcx, r13
movabs rdi, 0x6d20666f20796144
movabs rbp, 0x2073692068746e6f
mov qword [rsp + 0xb0], rdx
mov edx, 0x7261
mov qword [rax], rdi
movabs rdi, 0x696c617620746f6e
mov qword [rax + 8], rbp
movabs rbp, 0x657920726f662064
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], rbp
mov word [rax + 0x20], dx
mov rax, qword [rsp + 0x70]
mov rdx, qword [rsp + 0xa0]
mov qword [rsp + 0xa8], rax
mov byte [rdx + rax], 0
mov rdx, r12
call method.std::out_of_range.out_of_range_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea rsi, method.boost::gregorian::bad_day_of_month.bad_day_of_month__
mov rcx, r13
mov qword [rsp + 0x70], rsi
call method.void_boost::throw_exception_boost::gregorian.bad_day_of_month__boost::gregorian::bad_day_of_month_const_
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x49a2ef
mov ecx, 0x1c
test r8b, 3
jne 0x49a5e5
imul r8w, r8w, 0x5c29
mov ecx, 0x1d
mov r10d, r8d
ror r10w, 2
cmp r10w, 0x28f
ja 0x49a5e5
ror r8w, 4
xor ecx, ecx
cmp r8w, 0xa4
setb cl
add ecx, 0x1c
jmp 0x49a5e5
mov rcx, rbx
call method.boost::detail::timeout.remaining_milliseconds___const
shr rax, 0x20
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_CreateWaitableTimerA]
mov qword [rsp + 0x48], rax
test rax, rax
je 0x49a839
mov r12d, 0x20
cmp edi, 0x293
ja 0x49a7f2
mov rcx, rbx
call method.boost::this_thread._anonymous_namespace_::get_due_time_boost::detail::timeout_const_
mov qword [rsp + 0xa0], rax
mov rax, qword [0x00a2f5e0]
test rax, rax
je 0x49a8a0
mov r15, qword [rsp + 0x48]
mov dword [rsp + 0x30], r12d
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x28], 0
lea rdx, [rsp + 0xa0]
mov qword [rsp + 0x20], 0
mov rcx, r15
call rax
mov edi, 0xffffffff
test eax, eax
je 0x49a7b2
mov eax, esi
mov edi, esi
mov esi, ebp
mov qword [rsp + rax*8 + 0x80], r15
mov rax, qword [rsp + 0x48]
sub rax, 1
mov qword [rsp + 0x50], rax
jmp 0x49a24e
mov r14d, 0xffffffff
jmp 0x49a22d
mov dword [rsp + 0x58], 0xffffffff
mov r12d, 2
mov ebp, 1
xor esi, esi
jmp 0x49a1c0
mov r12d, 0xcccccccd
imul rdi, r12
shr rdi, 0x24
mov r12, rdi
jmp 0x49a74c
imul rax, rax, 0xe10
mov r10, rcx
shl r10, 4
sub r10, rcx
lea rax, [rax + r10*4]
add rax, r8
imul rax, rax, 0xf4240
add rbp, rax
jmp 0x49a38a
movzx eax, byte [0x90]
ud2
mov rax, qword [rsp + 0x48]
mov edi, 0xffffffff
sub rax, 1
mov qword [rsp + 0x50], rax
jmp 0x49a24e
mov r12d, 1
jmp 0x49a2e3
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x49a914
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rax + 0x88]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
mov ecx, 1
call sym.__cxa_allocate_exception
xor r8d, r8d
lea rdx, [0x009a3050]
mov rcx, rax
call sym.__cxa_throw
nop word [rax + rax]
lea rcx, [0x0087f680]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.SetWaitableTimerEx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
lea rdx, [method.boost::this_thread::detail_.SetWaitableTimerEx_emulation_void___LARGE_INTEGER_const__long__void____void__unsigned_long__unsigned_long___void__boost::this_thread::detail_::_REASON_CONTEXT__unsigned_long_]
cmove rax, rdx
mov qword [0x00a2f5e0], rax
jmp 0x49a76c
movabs rdx, 0x20c49ba5e353f7cf
sub rax, rbp
mov rcx, rax
imul rdx
mov rax, rcx
sar rax, 0x3f
sar rdx, 7
mov r9, rdx
sub r9, rax
mov eax, 0xfffffffe
add r9, 1
cmp r9, rax
cmova r9, rax
seta r12b
jmp 0x49a4bb
xor eax, eax
jmp 0x49a871
xor r8d, r8d
xor edx, edx
mov ecx, 1
call method.boost::CV.simple_exception_policy_unsigned_short___unsigned_short_1___unsigned_short_12__boost::gregorian::bad_month_::on_error_unsigned_short__unsigned_short__boost::CV::violation_enum_
xor r8d, r8d
mov edx, r10d
mov ecx, 0x578
call method.boost::CV.simple_exception_policy_unsigned_short___unsigned_short_1400___unsigned_short_10000__boost::gregorian::bad_year_::on_error_unsigned_short__unsigned_short__boost::CV::violation_enum_
mov r8d, 1
mov edx, r12d
mov ecx, 1
call method.boost::CV.simple_exception_policy_unsigned_short___unsigned_short_1___unsigned_short_12__boost::gregorian::bad_month_::on_error_unsigned_short__unsigned_short__boost::CV::violation_enum_
mov edx, dword [rsp + 0x5c]
mov r8d, 1
mov ecx, 1
call method.boost::CV.simple_exception_policy_unsigned_short___unsigned_short_1___unsigned_short_31__boost::gregorian::bad_day_of_month_::on_error_unsigned_short__unsigned_short__boost::CV::violation_enum_
xor r8d, r8d
xor edx, edx
mov ecx, 1
call method.boost::CV.simple_exception_policy_unsigned_short___unsigned_short_1___unsigned_short_31__boost::gregorian::bad_day_of_month_::on_error_unsigned_short__unsigned_short__boost::CV::violation_enum_
lea r12, [rsp + 0xa0]
lea rdx, [0x0087f6a0]
mov rcx, r12
call method.std::runtime_error.runtime_error_char_const_
mov rcx, r12
call method.void_boost::throw_exception_std.runtime_error__std::runtime_error_const_
mov r8d, 1
mov edx, r10d
mov ecx, 0x578
call method.boost::CV.simple_exception_policy_unsigned_short___unsigned_short_1400___unsigned_short_10000__boost::gregorian::bad_year_::on_error_unsigned_short__unsigned_short__boost::CV::violation_enum_
mov rbx, rax
mov rcx, r12
call method.std::runtime_error.runtime_error__
mov r12, rbx
mov rax, qword [rsp + 0x48]
sub rax, 1
cmp rax, 0xfffffffffffffffd
ja 0x49a9ca
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r12
call sym._Unwind_Resume
mov rax, qword [0x88]
ud2