joyce8/EMBER2024-capa huggingface dataset:
Function at 0x48d960
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push r14
push r13
push r12
push rsi
push rbx
sub rsp, 0x60
mov r13, rcx
mov rbx, rdx
mov dword [rsp + 0x30], 0
call method.boost::system.system_category__
mov rcx, qword [r13]
mov qword [rsp + 0x38], rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
cmp eax, 0xffffffff
je 0x48da18
mov dword [rsp + 0x30], 0
call method.boost::system.system_category__
mov qword [rsp + 0x38], rax
test esi, 0x400
jne 0x48d9f0
xor r12d, r12d
and esi, 0x10
setne r12b
add r12d, 2
test rbx, rbx
je 0x48d9d5
mov dword [rbx], 0
call method.boost::system.system_category__
mov qword [rbx + 8], rax
mov r8, rbx
mov edx, r12d
mov rcx, r13
call sym._anonymous_namespace_::remove_file_or_directory_boost::filesystem::path_const__boost::filesystem::file_type__boost::system::error_code_
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
ret
mov rcx, r13
mov r12d, 9
call sym._anonymous_namespace_::is_reparse_point_a_symlink_boost::filesystem::path_const_
test al, al
je 0x48d9c1
and esi, 0x10
cmp esi, 1
sbb r12d, r12d
and r12d, 0xfffffff9
add r12d, 0xb
jmp 0x48d9c1
lea r14, [rsp + 0x40]
lea r8, [rsp + 0x30]
mov rdx, r13
mov rcx, r14
call sym._anonymous_namespace_::process_status_failure_boost::filesystem::path_const__boost::system::error_code_
mov r12d, dword [rsp + 0x40]
test r12d, r12d
jne 0x48d9c1
mov esi, dword [rsp + 0x30]
test esi, esi
je 0x48d9c1
test rbx, rbx
je 0x48da62
call method.boost::system.system_category__
mov dword [rbx], esi
mov qword [rbx + 8], rax
xor eax, eax
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
ret
mov ecx, 0x50
call sym.__cxa_allocate_exception
mov r12, rax
call method.boost::system.system_category__
lea rdx, str.boost::filesystem::remove
mov rcx, r14
mov rbx, rax
call fcn.00856190
mov rcx, r12
lea r9, [rsp + 0x20]
mov r8, r13
mov rdx, r14
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x28], rbx
call sym._ZN5boost10filesystem16filesystem_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_4pathENS_6system10error_
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x50]
cmp rcx, rax
je 0x48dab7
call sym.operator_delete_void_
lea r8, [sym.boost::filesystem::filesystem_error::filesystem_error__]
lea rdx, [0x009a1b90]
mov rcx, r12
call sym.__cxa_throw
mov r13, rax
mov rcx, r12
call sym.__cxa_free_exception
mov rcx, r13
call sym._Unwind_Resume
nop
nop word cs:[rax + rax]
nop dword [rax]
Function at 0x48daf0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push r14
push r13
push r12
push rsi
push rbx
sub rsp, 0x60
mov r12, rcx
mov rbx, rdx
mov dword [rsp + 0x30], 0
call method.boost::system.system_category__
mov rcx, qword [r12]
mov qword [rsp + 0x38], rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
cmp eax, 0xffffffff
je 0x48dbc0
mov dword [rsp + 0x30], 0
call method.boost::system.system_category__
mov qword [rsp + 0x38], rax
test esi, 0x400
jne 0x48db98
and esi, 0x10
je 0x48db88
mov r13d, 3
test rbx, rbx
je 0x48db67
nop dword [rax + rax]
mov dword [rbx], 0
call method.boost::system.system_category__
mov qword [rbx + 8], rax
mov r8, rbx
mov edx, r13d
mov rcx, r12
call sym._anonymous_namespace_::remove_all_aux_boost::filesystem::path_const__boost::filesystem::file_type__boost::system::error_code_
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
ret
mov r13d, 2
test rbx, rbx
jne 0x48db58
jmp 0x48db67
mov rcx, r12
call sym._anonymous_namespace_::is_reparse_point_a_symlink_boost::filesystem::path_const_
test al, al
je 0x48dc10
and esi, 0x10
jne 0x48dc28
mov r13d, 4
test rbx, rbx
jne 0x48db58
jmp 0x48db67
lea r14, [rsp + 0x40]
lea r8, [rsp + 0x30]
mov rdx, r12
mov rcx, r14
call sym._anonymous_namespace_::process_status_failure_boost::filesystem::path_const__boost::system::error_code_
mov r13d, dword [rsp + 0x40]
test r13d, r13d
jne 0x48dc67
mov esi, dword [rsp + 0x30]
test esi, esi
je 0x48dc40
test rbx, rbx
je 0x48dc89
call method.boost::system.system_category__
mov dword [rbx], esi
mov qword [rbx + 8], rax
xor eax, eax
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
ret
mov r13d, 9
test rbx, rbx
jne 0x48db58
jmp 0x48db67
mov r13d, 0xb
test rbx, rbx
jne 0x48db58
jmp 0x48db67
test rbx, rbx
jne 0x48dc54
xor eax, eax
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
ret
mov dword [rbx], 0
call method.boost::system.system_category__
mov qword [rbx + 8], rax
xor eax, eax
jmp 0x48dc47
test rbx, rbx
je 0x48dc7b
mov dword [rbx], 0
call method.boost::system.system_category__
mov qword [rbx + 8], rax
cmp r13d, 1
ja 0x48db67
xor eax, eax
jmp 0x48dc47
mov ecx, 0x50
call sym.__cxa_allocate_exception
mov r13, rax
call method.boost::system.system_category__
lea rdx, str.boost::filesystem::remove_all
mov rcx, r14
mov rbx, rax
call fcn.00856190
mov rcx, r13
lea r9, [rsp + 0x20]
mov r8, r12
mov rdx, r14
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x28], rbx
call sym._ZN5boost10filesystem16filesystem_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_4pathENS_6system10error_
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x50]
cmp rcx, rax
je 0x48dcde
call sym.operator_delete_void_
lea r8, [sym.boost::filesystem::filesystem_error::filesystem_error__]
lea rdx, [0x009a1b90]
mov rcx, r13
call sym.__cxa_throw
mov r12, rax
mov rcx, r13
call sym.__cxa_free_exception
mov rcx, r12
call sym._Unwind_Resume
nop
nop dword [rax + rax]
Function at 0x48dd10
Capabilities:
Get disk size

Disassembly:
push r13
push r12
push rsi
push rbx
sub rsp, 0x78
mov rsi, rdx
mov r12, rcx
lea rdx, [rsp + 0x38]
mov rbx, r8
mov rcx, qword [rsi]
lea r9, [rsp + 0x48]
lea r8, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
je 0x48dda0
test rbx, rbx
je 0x48dd53
mov dword [rbx], 0
call method.boost::system.system_category__
mov qword [rbx + 8], rax
mov eax, dword [rsp + 0x44]
mov edx, dword [rsp + 0x40]
shl rax, 0x20
add rax, rdx
mov edx, dword [rsp + 0x48]
mov qword [r12], rax
mov eax, dword [rsp + 0x4c]
shl rax, 0x20
add rax, rdx
mov edx, dword [rsp + 0x38]
mov qword [r12 + 8], rax
mov eax, dword [rsp + 0x3c]
shl rax, 0x20
add rax, rdx
mov qword [r12 + 0x10], rax
mov rax, r12
add rsp, 0x78
pop rbx
pop rsi
pop r12
pop r13
ret
test rbx, rbx
je 0x48ddd4
call method.boost::system.system_category__
pxor xmm0, xmm0
mov dword [rbx], 1
mov qword [rbx + 8], rax
mov rax, r12
mov qword [r12 + 0x10], 0
movups xmmword [r12], xmm0
add rsp, 0x78
pop rbx
pop rsi
pop r12
pop r13
ret
mov ecx, 0x50
lea r13, [rsp + 0x50]
call sym.__cxa_allocate_exception
mov r12, rax
call method.boost::system.system_category__
lea rdx, str.boost::filesystem::space
mov rcx, r13
mov rbx, rax
call fcn.00856190
mov rcx, r12
lea r9, [rsp + 0x20]
mov r8, rsi
mov rdx, r13
mov qword [rsp + 0x20], 1
mov qword [rsp + 0x28], rbx
call sym._ZN5boost10filesystem16filesystem_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_4pathENS_6system10error_
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x60]
cmp rcx, rax
je 0x48de32
call sym.operator_delete_void_
lea r8, [sym.boost::filesystem::filesystem_error::filesystem_error__]
lea rdx, [0x009a1b90]
mov rcx, r12
call sym.__cxa_throw
mov r13, rax
mov rcx, r12
call sym.__cxa_free_exception
mov rcx, r13
call sym._Unwind_Resume
nop
nop dword [rax]
Function at 0x48e480
Capabilities:
Get file attributes
Set file attributes

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x50
mov eax, edx
mov r12, rcx
mov ebx, edx
mov rsi, r8
and eax, 0x3000
cmp eax, 0x3000
je 0x48e508
test eax, eax
je 0x48e4ad
test dl, 0x92
je 0x48e508
mov rcx, qword [r12]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov edi, eax
test eax, eax
je 0x48e520
test rsi, rsi
je 0x48e4d1
mov dword [rsi], 0
call method.boost::system.system_category__
mov qword [rsi + 8], rax
mov edx, edi
and edx, 0xfffffffe
test bh, 0x10
jne 0x48e4e5
or edi, 1
test bh, 0x20
je 0x48e550
mov edx, edi
mov rcx, qword [r12]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor ecx, ecx
test eax, eax
je 0x48e569
lea r9, str.boost::filesystem::permissions
mov r8, rsi
mov rdx, r12
call sym._anonymous_namespace_::error_unsigned_long__boost::filesystem::path_const__boost::system::error_code__char_const_
nop
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
test ebp, ebp
je 0x48e4bd
test rsi, rsi
je 0x48e573
call method.boost::system.system_category__
mov dword [rsi], ebp
mov qword [rsi + 8], rax
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
and ebx, 0x92
mov rcx, qword [r12]
cmove edx, edi
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor ecx, ecx
test eax, eax
jne 0x48e4f5
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
jmp 0x48e4f5
mov ecx, 0x50
lea r14, [rsp + 0x30]
call sym.__cxa_allocate_exception
mov r13, rax
call method.boost::system.system_category__
lea rdx, str.boost::filesystem::permissions
mov rcx, r14
mov rsi, rax
call fcn.00856190
mov rcx, r13
lea r9, [rsp + 0x20]
mov r8, r12
mov rdx, r14
mov qword [rsp + 0x20], rbp
mov qword [rsp + 0x28], rsi
call sym._ZN5boost10filesystem16filesystem_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_4pathENS_6system10error_
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x40]
cmp rcx, rax
je 0x48e5cd
call sym.operator_delete_void_
lea r8, [sym.boost::filesystem::filesystem_error::filesystem_error__]
lea rdx, [0x009a1b90]
mov rcx, r13
call sym.__cxa_throw
mov r12, rax
mov rcx, r13
call sym.__cxa_free_exception
mov rcx, r12
call sym._Unwind_Resume
nop
nop word [rax + rax]
Function at 0x4974d0
Capabilities:
Create thread
Resume thread

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x30
lea r8, [method.boost._anonymous_namespace_::thread_start_function_void_]
xor edx, edx
mov r9, qword [rcx]
lea rax, [r9 + 0x20]
mov qword [rsp + 0x28], rax
mov rbx, rcx
xor ecx, ecx
mov dword [rsp + 0x20], 4
call qword [sym.imp.msvcrt.dll__beginthreadex]
mov rsi, rax
xor eax, eax
test rsi, rsi
jne 0x497518
add rsp, 0x30
pop rbx
pop rsi
pop rdi
ret
mov rax, qword [rbx]
lock add dword [rax + 8], 1
mov rdi, qword [rbx]
mov rcx, qword [rdi + 0x10]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
jbe 0x497550
mov qword [rdi + 0x10], rsi
mov rax, qword [rbx]
mov rcx, qword [rax + 0x10]
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov eax, 1
add rsp, 0x30
pop rbx
pop rsi
pop rdi
ret
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x497531

Function at 0x497560
Capabilities:
Create thread
Resume thread

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x30
lea r8, [method.boost._anonymous_namespace_::thread_start_function_void_]
mov r9, qword [rcx]
mov rdx, qword [rdx]
lea rax, [r9 + 0x20]
mov qword [rsp + 0x28], rax
mov rbx, rcx
xor ecx, ecx
mov dword [rsp + 0x20], 4
call qword [sym.imp.msvcrt.dll__beginthreadex]
mov rsi, rax
xor eax, eax
test rsi, rsi
jne 0x4975a8
add rsp, 0x30
pop rbx
pop rsi
pop rdi
ret
mov rax, qword [rbx]
lock add dword [rax + 8], 1
mov rdi, qword [rbx]
mov rcx, qword [rdi + 0x10]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
jbe 0x4975e0
mov qword [rdi + 0x10], rsi
mov rax, qword [rbx]
mov rcx, qword [rax + 0x10]
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov eax, 1
add rsp, 0x30
pop rbx
pop rsi
pop rdi
ret
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4975c1

Function at 0x497a90
Capabilities:
Get thread local storage value

Disassembly:
push rbx
sub rsp, 0x20
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x497b40
mov rbx, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rbx
test rax, rax
je 0x497b40
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x497b50
call rbx
cmp byte [rax + 0x90], 0
je 0x497b40
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x497b40
call rbx
test rax, rax
je 0x497b40
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x497b5a
call rbx
xor r8d, r8d
xor edx, edx
mov rcx, qword [rax + 0x88]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
test eax, eax
jne 0x497b40
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x497b5a
call rbx
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
nop dword [rax]
add rsp, 0x20
pop rbx
ret
movzx eax, byte [0x90]
ud2
mov rax, qword [0x88]
ud2

Function at 0x497b70
Capabilities:
Get thread local storage value

Disassembly:
push rbx
sub rsp, 0x20
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x497bb0
mov rbx, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rbx
test rax, rax
je 0x497bb0
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x497bb8
call rbx
movzx eax, byte [rax + 0x90]
add rsp, 0x20
pop rbx
ret
xor eax, eax
add rsp, 0x20
pop rbx
ret
movzx eax, byte [0x90]
ud2
Function at 0x497bd0
Capabilities:
Get thread local storage value

Disassembly:
push rbx
sub rsp, 0x20
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x497c20
mov rbx, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rbx
test rax, rax
je 0x497c20
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x497c28
call rbx
xor r8d, r8d
xor edx, edx
mov rcx, qword [rax + 0x88]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
test eax, eax
sete al
add rsp, 0x20
pop rbx
ret
xor eax, eax
add rsp, 0x20
pop rbx
ret
mov rax, qword [0x88]
ud2

Function at 0x497c60
Capabilities:
Get thread local storage value

Disassembly:
push rsi
push rbx
sub rsp, 0x28
mov rbx, rcx
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x497cc0
mov rsi, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rsi
test rax, rax
je 0x497cc0
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x497cca
call rsi
cmp byte [rax + 0x90], 0
je 0x497cc0
mov ecx, dword [0x0085f180]
mov byte [rbx], 1
cmp ecx, 0xffffffff
je 0x497cd4
call rsi
mov byte [rax + 0x90], 0
add rsp, 0x28
pop rbx
pop rsi
ret
mov byte [rbx], 0
add rsp, 0x28
pop rbx
pop rsi
ret
movzx eax, byte [0x90]
ud2
mov byte [0x90], 0
ud2

Function at 0x497ce0
Capabilities:
Get thread local storage value

Disassembly:
push rsi
push rbx
sub rsp, 0x28
mov rbx, rcx
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x497d18
mov rsi, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rsi
test rax, rax
je 0x497d18
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x497d1f
call rsi
movzx edx, byte [rbx]
mov byte [rax + 0x90], dl
add rsp, 0x28
pop rbx
pop rsi
ret
mov byte [0x90], 0
ud2

Function at 0x497d30
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x28
cmp byte [rdx], 0
je 0x497d51
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x497d56
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov byte [rax + 0x90], 1
add rsp, 0x28
ret
mov byte [0x90], 0
ud2

Function at 0x497d60
Capabilities:
Get thread local storage value

Disassembly:
push rbx
sub rsp, 0x20
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x497d92
mov rbx, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rbx
test rax, rax
je 0x497d92
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x497d98
call rbx
mov byte [rax + 0x90], 0
add rsp, 0x20
pop rbx
ret
mov byte [0x90], 0
ud2

Function at 0x497db0
Capabilities:
Get thread local storage value

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x497e10
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x497e10
mov rdx, qword [rax + 0x38]
lea rcx, [rax + 0x30]
test rdx, rdx
je 0x497e10
mov rax, rcx
jmp 0x497dec
mov rax, rdx
mov rdx, qword [rdx + 0x10]
test rdx, rdx
je 0x497dfb
cmp qword [rdx + 0x20], rbx
jae 0x497de0
mov rdx, qword [rdx + 0x18]
test rdx, rdx
jne 0x497dec
cmp rcx, rax
je 0x497e10
cmp qword [rax + 0x20], rbx
ja 0x497e10
add rax, 0x28
add rsp, 0x20
pop rbx
ret
xor eax, eax
add rsp, 0x20
pop rbx
ret
Function at 0x497e20
Capabilities:
Get thread local storage value

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x497e80
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x497e80
lea rcx, [rax + 0x30]
mov rax, qword [rax + 0x38]
test rax, rax
je 0x497e80
mov rdx, rcx
jmp 0x497e5c
mov rdx, rax
mov rax, qword [rax + 0x10]
test rax, rax
je 0x497e6b
cmp qword [rax + 0x20], rbx
jae 0x497e50
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x497e5c
cmp rcx, rdx
je 0x497e80
cmp qword [rdx + 0x20], rbx
ja 0x497e80
mov rax, qword [rdx + 0x38]
add rsp, 0x20
pop rbx
ret
xor eax, eax
add rsp, 0x20
pop rbx
ret

Function at 0x497ef0
Capabilities:
Get thread local storage value

Disassembly:
push r12
push rbx
sub rsp, 0x28
mov r12, rcx
mov ecx, dword [0x0085f180]
mov rbx, rdx
cmp ecx, 0xffffffff
je 0x497f40
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, rax
test rax, rax
je 0x497f40
mov rax, qword [rax]
mov r8, qword [rbx]
mov rdx, r12
mov qword [rbx], 0
mov byte [rbx + 8], 0
mov rax, qword [rax + 0x18]
add rsp, 0x28
pop rbx
pop r12
jmp rax
add rsp, 0x28
pop rbx
pop r12
ret
Function at 0x499a40
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x28
mov qword [rsp + 0x30], rcx
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x499a78
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x499a78
lea rcx, [rax + 0x28]
lea rdx, [rsp + 0x30]
call method.std::_Rb_tree_void_const__std::pair_void_const_const__boost::detail::tss_data_node___std::_Select1st_std::pair_void_const_const__boost::detail::tss_data_node_____std::less_void_const___std::allocator_std::pair_void_const_const__boost::detail::
nop
add rsp, 0x28
ret
call method.boost._anonymous_namespace_::get_or_make_current_thread_data____clone_.part.0_
jmp 0x499a5f

Function at 0x499a80
Capabilities:
Get thread local storage value

Disassembly:
push r12
push rsi
push rbx
sub rsp, 0x30
mov rsi, rcx
mov ecx, dword [0x0085f180]
cmp ecx, 0xffffffff
je 0x499ae0
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
test rax, rax
je 0x499ae0
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
xor edx, edx
mov r8d, 0x10
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x499aea
mov rdx, qword [rbx + 0x18]
mov qword [rax], rsi
mov qword [rax + 8], rdx
mov qword [rbx + 0x18], rax
add rsp, 0x30
pop rbx
pop rsi
pop r12
ret
call method.boost._anonymous_namespace_::get_or_make_current_thread_data____clone_.part.0_
mov rbx, rax
jmp 0x499aa4
mov rax, qword [0x0099f220]
add rax, 0x10
mov qword [rsp + 0x28], rax
call method.void_boost::throw_exception_std.bad_alloc__std::bad_alloc_const___clone_.isra.0_
mov r12, rax
lea rcx, [rsp + 0x28]
call method.std::bad_alloc.bad_alloc__
mov rcx, r12
call sym._Unwind_Resume
nop
nop word cs:[rax + rax]

Function at 0x499b20
Capabilities:
Get thread local storage value

Disassembly:
push r13
push r12
sub rsp, 0x68
movups xmmword [rsp + 0x50], xmm6
movq xmm6, rcx
mov ecx, dword [0x0085f180]
mov qword [rsp + 0x90], r8
mov r12, rdx
cmp ecx, 0xffffffff
je 0x499bd0
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x499bd0
mov rcx, qword [r12]
mov r12, qword [r12 + 8]
test r12, r12
je 0x499b72
lea rdx, [r12 + 8]
lock add dword [rdx], 1
lock add dword [rdx], 1
movq xmm1, rcx
movq xmm0, r12
lea rcx, [rsp + 0x20]
punpcklqdq xmm6, xmm1
lea rdx, [rax + 0x28]
lea r8, [rsp + 0x30]
movhps xmm0, qword [rsp + 0x90]
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x40], xmm0
call sym._ZNSt8_Rb_treeIPKvSt4pairIKS1_N5boost6detail13tss_data_nodeEESt10_Select1stIS7_ESt4lessIS1_ESaIS7_EE17_M_emplace_uniqueIJS2_IS
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x499bb4
call method.boost::detail::sp_counted_base.release__
test r12, r12
je 0x499bc2
mov rcx, r12
call method.boost::detail::sp_counted_base.release__
nop
movups xmm6, xmmword [rsp + 0x50]
add rsp, 0x68
pop r12
pop r13
ret
call method.boost._anonymous_namespace_::get_or_make_current_thread_data____clone_.part.0_
jmp 0x499b57
Function at 0x499c10
Capabilities:
Get thread local storage value

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov r12, rcx
mov ecx, dword [0x0085f180]
mov rbx, rdx
mov rsi, r8
mov r13d, r9d
cmp ecx, 0xffffffff
je 0x499cf8
mov rbp, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rbp
test rax, rax
je 0x499cf8
lea rdx, [rax + 0x30]
mov rax, qword [rax + 0x38]
test rax, rax
je 0x499cf8
mov rdi, rdx
jmp 0x499c6c
mov rdi, rax
mov rax, qword [rax + 0x10]
test rax, rax
je 0x499c7b
cmp qword [rax + 0x20], r12
jae 0x499c60
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x499c6c
cmp rdx, rdi
je 0x499cf8
cmp qword [rdi + 0x20], r12
ja 0x499cf8
test r13b, r13b
je 0x499ca3
mov rcx, qword [rdi + 0x28]
test rcx, rcx
je 0x499ca3
mov rdx, qword [rdi + 0x38]
test rdx, rdx
je 0x499ca3
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rax, qword [rbx]
mov rdx, rsi
or rdx, rax
je 0x499d50
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x499cc0
lock add dword [rdx + 8], 1
mov rcx, qword [rdi + 0x30]
movq xmm0, rax
movq xmm1, rdx
punpcklqdq xmm0, xmm1
movups xmmword [rdi + 0x28], xmm0
test rcx, rcx
je 0x499ce0
call method.boost::detail::sp_counted_base.release__
mov qword [rdi + 0x38], rsi
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov rax, qword [rbx]
mov rdi, rsi
or rdi, rax
je 0x499ce4
mov qword [rsp + 0x20], rax
mov rax, qword [rbx + 8]
mov qword [rsp + 0x28], rax
test rax, rax
je 0x499d1b
lock add dword [rax + 8], 1
lea rdx, [rsp + 0x20]
mov r8, rsi
mov rcx, r12
call method.boost::detail.add_new_tss_node_void_const__boost::shared_ptr_boost::detail::tss_cleanup_function___void_
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x499ce4
call method.boost::detail::sp_counted_base.release__
nop
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov ecx, dword [0x0085f180]
mov qword [rsp + 0x20], r12
cmp ecx, 0xffffffff
je 0x499d80
call rbp
test rax, rax
je 0x499d80
lea rdx, [rsp + 0x20]
lea rcx, [rax + 0x28]
call method.std::_Rb_tree_void_const__std::pair_void_const_const__boost::detail::tss_data_node___std::_Select1st_std::pair_void_const_const__boost::detail::tss_data_node_____std::less_void_const___std::allocator_std::pair_void_const_const__boost::detail::
jmp 0x499ce4
call method.boost._anonymous_namespace_::get_or_make_current_thread_data____clone_.part.0_
jmp 0x499d67