joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14007c37b
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0xf8
mov rbx, rcx
mov esi, dword [0x140234040]
test esi, esi
je 0x14007c50d
dec esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
mov r14, rax
cmp rax, 1
ja 0x14007c4fd
je 0x14007c4fa
test rbx, rbx
je 0x14007c3c9
mov rdi, qword [rbx]
and qword [rbx], 0
test rdi, rdi
jne 0x14007c4bf
xorps xmm0, xmm0
lea rdi, [rsp + 0x20]
movaps xmmword [rdi + 0x10], xmm0
movaps xmmword [rdi], xmm0
mov rcx, rdi
call fcn.14007e2f5
test rax, rax
jne 0x14007c520
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
lea rdi, [rsp + 0x80]
movaps xmmword [rdi + 0x10], xmm1
movaps xmmword [rdi], xmm0
lea rbx, [rsp + 0xc0]
mov rcx, rbx
mov rdx, rdi
call fcn.14007b86e
movaps xmm0, xmmword [rbx]
movaps xmm1, xmmword [rbx + 0x10]
movaps xmm2, xmmword [rbx + 0x20]
movaps xmmword [rdi + 0x20], xmm2
movaps xmmword [rdi + 0x10], xmm1
movaps xmmword [rdi], xmm0
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm1
movups xmmword [rsp + 0x70], xmm2
mov ecx, 0x170
mov edx, 0x10
call fcn.1400476ad
mov rdi, rax
mov eax, 1
mov qword [rdi], rax
mov qword [rdi + 8], rax
lea rcx, [rdi + 0x10]
mov r8d, 0x100
xor edx, edx
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
mov qword [rdi + 0x110], 0x40
movups xmm0, xmmword [rsp + 0x48]
movups xmm1, xmmword [rsp + 0x58]
movups xmm2, xmmword [rsp + 0x68]
movups xmmword [rdi + 0x118], xmm0
movups xmmword [rdi + 0x128], xmm1
movups xmmword [rdi + 0x138], xmm2
mov rax, qword [rsp + 0x78]
mov qword [rdi + 0x148], rax
mov eax, 0x10000
mov qword [rdi + 0x150], rax
mov qword [rdi + 0x158], rax
and qword [rdi + 0x160], 0
mov ecx, 0x10
mov edx, 8
call fcn.1400476ad
mov r14, rax
mov qword [rax], rdi
mov dword [rax + 8], esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
mov rdi, rax
mov ecx, esi
mov rdx, r14
call sub.kernel32.dll_TlsSetValue
test rdi, rdi
je 0x14007c4fd
mov rcx, rdi
call fcn.14007b836
jmp 0x14007c4fd
xor r14d, r14d
mov rax, r14
add rsp, 0xf8
pop rbx
pop rdi
pop rsi
pop r14
ret
lea rcx, [0x140234028]
call fcn.14012f090
mov esi, eax
jmp 0x14007c39a
mov qword [rsp + 0x20], rax
lea rax, [0x1402a2a98]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x80]
mov qword [rax], rdi
lea rdx, [0x1402a29d0]
lea rcx, [rsp + 0xb0]
mov qword [rcx], rdx
mov edx, 1
mov qword [rcx + 8], rdx
and qword [rcx + 0x20], 0
lea r8, [0x14007e295]
mov qword [rax + 8], r8
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rdx
lea rdx, str.C:Users_saelko.cargo_registry_srcindex.crates.io_6f17d22bba15001f_rand_0.8.5_src_rngs_thread.rscould_not_initialize_thread_rng:
call fcn.14003f140
int3
Function at 0x14007e2f5
Capabilities:
Generate random numbers via rtlgenrandom
Generate random numbers via winapi

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rdi, rcx
mov r12d, 0x20
xor esi, esi
mov r13d, 0xffffffff
test r12, r12
je 0x14007e37d
mov r14, rdi
cmp r12, r13
mov r15d, 0xffffffff
cmovb r15, r12
add rdi, r15
sub r12, r15
xor ecx, ecx
mov rdx, r14
mov r8d, r15d
mov r9d, 2
call sub.bcrypt.dll_BCryptGenRandom
cmp eax, 0xc0000000
jb 0x14007e315
mov ebx, eax
mov rcx, r14
mov edx, r15d
call sub.ADVAPI32.dll_SystemFunction036
test al, al
jne 0x14007e315
mov al, byte [0x140354188]
mov edx, 4
xor ecx, ecx
call fcn.1401574a0
test rax, rax
je 0x14007e390
mov rsi, rax
and ebx, 0x7fffffff
mov dword [rax], ebx
mov rax, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 4
mov edx, 4
call fcn.14003be7d
int3

Function at 0x14007ec75
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov esi, dword [0x140234060]
test esi, esi
je 0x14007ecef
dec esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
mov rdi, rax
cmp rax, 1
ja 0x14007ece4
je 0x14007ece2
call fcn.1400478c2
call fcn.140047925
mov rbx, rax
mov ecx, 0x10
mov edx, 8
call fcn.1400476ad
mov rdi, rax
mov qword [rax], rbx
mov dword [rax + 8], esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
mov rbx, rax
mov ecx, esi
mov rdx, rdi
call sub.kernel32.dll_TlsSetValue
test rbx, rbx
je 0x14007ece4
mov rcx, rbx
call fcn.140047045
jmp 0x14007ece4
xor edi, edi
mov rax, rdi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
lea rcx, [0x140234048]
call fcn.14012f090
mov esi, eax
jmp 0x14007ec88

Function at 0x14007efef
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
mov rdi, rcx
mov esi, dword [0x140234190]
test esi, esi
je 0x14007f07d
dec esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
mov rbx, rax
cmp rax, 1
ja 0x14007f070
je 0x14007f030
test rdi, rdi
je 0x14007f034
mov r14, qword [rdi]
and qword [rdi], 0
test r14, r14
je 0x14007f037
mov r14, qword [rdi + 8]
jmp 0x14007f037
xor ebx, ebx
jmp 0x14007f070
xor r14d, r14d
mov ecx, 0x10
mov edx, 8
call fcn.1400476ad
mov rbx, rax
mov qword [rax], r14
mov dword [rax + 8], esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
mov rdi, rax
mov ecx, esi
mov rdx, rbx
call sub.kernel32.dll_TlsSetValue
test rdi, rdi
je 0x14007f070
mov rcx, rdi
call fcn.14007e9fc
mov rax, rbx
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
ret
lea rcx, [0x140234178]
call fcn.14012f090
mov esi, eax
jmp 0x14007f007
jmp 0x14007efef
Function at 0x140090bc2
Capabilities:
Hash data using fnv

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
mov r14, r9
mov rsi, r8
mov r11, rdx
movabs rdi, 0x100000001b3
mov r15, qword [r9 + 8]
mov r8, qword [r9 + 0x10]
lea rdx, [r8*8]
movabs rax, 0xcbf29ce484222325
mov r9, r15
test rdx, rdx
je 0x140090c36
movzx r10d, byte [r9 + 4]
xor rax, r10
imul rax, rdi
movzx r10d, byte [r9 + 5]
xor r10, rax
mov eax, dword [r9]
add r9, 8
imul r10, rdi
xor rax, r10
imul rax, rdi
add rdx, 0xfffffffffffffff8
jmp 0x140090c05
mov r9, qword [rsi + 0x10]
test r9, r9
je 0x140090d94
xor edx, edx
div r9
mov rax, qword [rsi + 8]
mov r12, rdx
shl r12, 5
movzx r9d, word [rax + r12 + 0x1c]
cmp r9w, word [rsi + 0x20]
jne 0x140090ca1
add rax, r12
cmp qword [rax + 0x10], r8
jne 0x140090ca1
mov rbx, qword [rax + 8]
xor edi, edi
cmp r8, rdi
je 0x140090d7f
mov r9b, byte [rbx + rdi*8 + 4]
cmp r9b, byte [r15 + rdi*8 + 4]
jne 0x140090ca1
mov r9b, byte [rbx + rdi*8 + 5]
cmp r9b, byte [r15 + rdi*8 + 5]
jne 0x140090ca1
mov r9d, dword [rbx + rdi*8]
lea r10, [rdi + 1]
cmp r9d, dword [r15 + rdi*8]
mov rdi, r10
je 0x140090c6f
mov rdi, rdx
mov qword [rsp + 0x28], r14
mov rbx, rcx
lea r13, [rsp + 0x30]
mov rcx, r13
mov rdx, r15
mov r14, r11
call fcn.140090db0
lea rbp, [rsp + 0x48]
mov rcx, rbp
mov rdx, r14
movabs r14, 0x8000000000000008
mov r8, r13
call fcn.14008fd87
mov rax, qword [rbp]
mov ebp, dword [rbp + 8]
cmp rax, r14
jne 0x140090d46
mov rdx, qword [rsi + 0x10]
cmp rdx, rdi
jbe 0x140090da0
movzx edi, word [rsi + 0x20]
mov rsi, qword [rsi + 8]
mov rcx, qword [rsi + r12]
mov rdx, qword [rsi + r12 + 8]
call fcn.14009089e
mov rcx, qword [rsp + 0x28]
mov rax, qword [rcx + 0x10]
mov qword [rsi + r12 + 0x10], rax
movups xmm0, xmmword [rcx]
movups xmmword [rsi + r12], xmm0
mov dword [rsi + r12 + 0x18], ebp
mov word [rsi + r12 + 0x1c], di
mov dword [rbx + 8], ebp
mov qword [rbx], r14
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rsi, [rsp + 0x54]
lea rdi, [rbx + 0xc]
mov ecx, 0x1d
rep movsd dword [rdi], dword [rsi]
mov qword [rbx], rax
mov dword [rbx + 8], ebp
mov r14, qword [rsp + 0x28]
mov rcx, qword [r14]
mov rdx, r15
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.14009089e
mov eax, dword [rax + 0x18]
mov dword [rcx + 8], eax
movabs rax, 0x8000000000000008
mov qword [rcx], rax
jmp 0x140090d61
lea rcx, str.C:Users_saelko.cargo_registry_srcindex.crates.io_6f17d22bba15001f_regex_automata_0.4.9_src_nfa_thompsonmap.rs
call fcn.1400460a0
lea r8, str.C:Users_saelko.cargo_registry_srcindex.crates.io_6f17d22bba15001f_regex_automata_0.4.9_src_nfa_thompsonmap.rs
mov rcx, rdi
call fcn.14003efaf
int3
Function at 0x140094aa4
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
mov rdi, rcx
mov esi, dword [0x140234240]
test esi, esi
je 0x140094b49
dec esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
mov rbx, rax
cmp rax, 1
ja 0x140094b3c
je 0x140094b3a
test rdi, rdi
je 0x140094aeb
mov al, byte [rdi]
and qword [rdi], 0
test al, 1
je 0x140094aeb
mov r14, qword [rdi + 8]
mov rdi, qword [rdi + 0x10]
jmp 0x140094af6
call fcn.140158b20
mov r14, rax
mov rdi, rdx
mov ecx, 0x18
mov edx, 8
call fcn.140085b23
mov rbx, rax
mov qword [rax], r14
mov qword [rax + 8], rdi
mov dword [rax + 0x10], esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
mov rdi, rax
mov ecx, esi
mov rdx, rbx
call sub.kernel32.dll_TlsSetValue
test rdi, rdi
je 0x140094b3c
mov edx, 8
mov rcx, rdi
call fcn.140019a50
jmp 0x140094b3c
xor ebx, ebx
mov rax, rbx
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
ret
lea rcx, [0x140234228]
call fcn.14012f090
mov esi, eax
jmp 0x140094ac0
Function at 0x1401080f2
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
movaps xmmword [rsp + 0x80], xmm6
mov rdi, rcx
mov esi, dword [0x1402340d0]
test esi, esi
je 0x14010826f
dec esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
mov rbx, rax
cmp rax, 1
ja 0x140108250
je 0x14010824e
mov dword [rsp + 0x24], esi
test rdi, rdi
je 0x140108197
mov al, byte [rdi]
and qword [rdi], 0
test al, 1
je 0x140108197
mov r12, qword [rdi + 8]
mov ecx, 0x10
mov edx, 8
call fcn.1400da79b
mov rbx, rax
mov qword [rax], r12
mov esi, dword [rsp + 0x24]
mov dword [rax + 8], esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
mov rdi, rax
mov ecx, esi
mov rdx, rbx
call sub.kernel32.dll_TlsSetValue
test rdi, rdi
je 0x140108250
mov rcx, rdi
call fcn.14007e9fc
jmp 0x140108250
lea rcx, [0x14005a7a9]
call fcn.14005e54a
movabs rcx, 0x736f6d6570736575
xor rcx, rax
mov qword [rsp + 0x28], rcx
movabs rbp, 0x646f72616e646f6d
xor rbp, rdx
movabs rsi, 0x6c7967656e657261
mov qword [rsp + 0x30], rax
xor rsi, rax
movabs rdi, 0x7465646279746573
mov r13, rdx
xor rdi, rdx
mov r14d, 1
lea rbx, [rsp + 0x68]
xor r12d, r12d
xorps xmm6, xmm6
lea r15, [rsp + 0x38]
test r12, r12
jne 0x140108151
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rbp
mov qword [rsp + 0x50], rdi
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], r13
movups xmmword [rbx], xmm6
and qword [rbx + 0x10], 0
mov rcx, r15
mov rdx, r14
call fcn.1400dfa06
mov rcx, r15
call fcn.140051a64
mov r12, rax
inc r14
jmp 0x1401081fa
xor ebx, ebx
mov rax, rbx
movaps xmm6, xmmword [rsp + 0x80]
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [0x1402340b8]
call fcn.14012f090
mov esi, eax
jmp 0x140108120

Function at 0x14010b32d
Capabilities:
Set socket configuration

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x338
mov rbx, rdx
movzx eax, byte [rdx + 0x360]
test eax, eax
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x168], r8
je 0x14010b381
cmp eax, 3
jne case.default.0x14010b37f
mov r15, r8
lea r13, [rbx + 0x1e8]
movzx eax, byte [rbx + 0x270]
lea rcx, [0x14023bcdc]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov rax, qword [rbx]
mov rcx, qword [rbx + 8]
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], rcx
and qword [rbx + 0x20], 0
mov qword [rbx + 0x40], rax
jmp 0x14010b3a7
lea rcx, str.C:Users_saelko.cargo_registry_srcindex.crates.io_6f17d22bba15001fhyper_0.14.31_srcclientconnecthttp.rs
call fcn.1400460e0
Function at 0x140112817
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
mov eax, 0x23d8
call fcn.140173b40
sub rsp, rax
movaps xmmword [rsp + 0x23c0], xmm8
movaps xmmword [rsp + 0x23b0], xmm7
movaps xmmword [rsp + 0x23a0], xmm6
mov rbx, rcx
mov ecx, 0x10
mov edx, 8
call fcn.1401631f4
mov r12, rax
mov edi, 1
mov qword [rax], rdi
mov qword [rax + 8], rdi
call fcn.1401641ea
mov qword [rsp + 0x148], 0x400
and word [rsp + 0x1d2], 0
and qword [rsp + 0x100], 0
mov qword [rsp + 0x150], 0x200
mov qword [rsp + 0x138], r12
lea rcx, [0x140314b70]
mov qword [rsp + 0x140], rcx
and qword [rsp + 0x110], 0
and qword [rsp + 0x158], 0
and qword [rsp + 0x168], 0
and qword [rsp + 0x178], 0
and qword [rsp + 0x188], 0
and qword [rsp + 0x198], 0
and qword [rsp + 0x1a8], 0
mov dword [rsp + 0x130], 0x3b9aca00
and dword [rsp + 0x120], 0
mov dword [rsp + 0x1c0], 0x3d
mov qword [rsp + 0x1b8], 0x100
and word [rsp + 0x1c4], 0
mov dword [rsp + 0x1c8], eax
mov dword [rsp + 0x1cc], edx
mov byte [rsp + 0x1d4], 0
mov word [rsp + 0x1d0], 0x101
mov rcx, 0xffffffffffffffff
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call sub.kernel32.dll_CreateIoCompletionPort
test rax, rax
je 0x140112c96
mov rsi, rax
mov ecx, 0x18
call fcn.140078cc7
mov qword [rax], rdi
mov qword [rax + 8], rdi
mov qword [rax + 0x10], rsi
lock inc qword [rax]
jle 0x140114b17
mov r14, rax
mov ecx, 0x70
call fcn.140078cc7
mov rdi, rax
mov eax, 1
mov qword [rdi], rax
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], r14
mov qword [rdi + 0x18], r14
and word [rdi + 0x20], 0
and qword [rdi + 0x28], 0
mov eax, 8
mov qword [rdi + 0x30], rax
and qword [rdi + 0x38], 0
and word [rdi + 0x40], 0
and qword [rdi + 0x48], 0
mov qword [rdi + 0x50], rax
pxor xmm0, xmm0
movdqu xmmword [rdi + 0x58], xmm0
mov byte [rdi + 0x68], 0
lock inc qword [r14]
jle 0x140114b17
lock inc qword [rdi]
jle 0x140114b17
movdqu xmmword [rsp + 0xb4c], xmm0
movdqa xmmword [rsp + 0xb40], xmm0
mov ecx, 0x400
mov edx, 0x20
call fcn.140078cf8
mov qword [rsp + 0x340], rax
mov qword [rsp + 0x348], rdx
and qword [rsp + 0x350], 0
cmp rax, 0x400
jb case.0x140112253.31
xor r15d, r15d
call fcn.140079617
mov r13, rax
Function at 0x140121177
Capabilities:
Query or enumerate registry value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x70
mov rax, r8
mov rbx, rdx
mov rsi, rcx
lea rdi, [rsp + 0x58]
mov r8d, 0xb
mov rcx, rdi
mov rdx, rax
call fcn.1401212a0
lea r13, [rsp + 0x38]
mov dword [r13], 0x800
lea r15, [rsp + 0x3c]
and dword [r15], 0
lea r12, [rsp + 0x40]
mov edx, 0x800
mov rcx, r12
call fcn.1401019e6
mov rdi, qword [rdi + 8]
mov r14, qword [rsp + 0x48]
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r14
mov rcx, rbx
mov rdx, rdi
xor r8d, r8d
mov r9, r15
call sub.ADVAPI32.dll_RegQueryValueExW
cmp eax, 0xea
jne 0x140121206
mov edx, dword [rsp + 0x38]
mov rcx, r12
call fcn.1401730d3
jmp 0x1401211d1
test eax, eax
jne 0x140121228
mov eax, dword [rsp + 0x38]
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x3c]
cmp eax, 0xb
jbe 0x140121250
movabs rax, 0xde00000002
jmp 0x140121230
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
movabs rax, 0x8000000000000000
mov qword [rsi], rax
mov rcx, qword [rsp + 0x40]
mov rdx, r14
call fcn.140173443
jmp 0x140121264
mov rcx, qword [rsp + 0x50]
mov qword [rsi + 0x10], rcx
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rsi], xmm0
mov byte [rsi + 0x18], al
mov rcx, qword [rsp + 0x58]
mov rdx, rdi
call fcn.1400d9c17
nop
add rsp, 0x70
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret

Function at 0x140126510
Capabilities:
Encode data using xor

Disassembly:
push rbp
mov rbp, rsp
sub rdx, rcx
cmp rdx, 0x20
jae 0x140126523
pop rbp
jmp fcn.140045330
nop
pop rbp
jmp fcn.14003f400
Function at 0x14012b49d
Capabilities:
Get remote cert context via schannel

Disassembly:
sub rsp, 0x28
lea r8, [rsp + 0x20]
and qword [r8], 0
mov edx, 0x53
call sub.secur32.dll_QueryContextAttributesW
mov edx, eax
xor eax, eax
test edx, edx
setne cl
jne 0x14012b4c6
mov rdx, qword [rsp + 0x20]
jmp 0x14012b4ce
shl rdx, 0x20
or rdx, 2
mov al, cl
add rsp, 0x28
ret
Function at 0x14012eac9
Capabilities:
Set socket configuration

Disassembly:
sub rsp, 0x38
mov eax, edx
lea r9, [rsp + 0x34]
mov dword [r9], r8d
mov dword [rsp + 0x20], 4
mov edx, 0xffff
mov r8d, eax
call sub.ws2_32.dll_setsockopt
cmp eax, 0xffffffff
je 0x14012eaf5
xor eax, eax
jmp 0x14012eafa
call fcn.140079617
nop
add rsp, 0x38
ret

Function at 0x14012f090
Capabilities:
Allocate thread local storage

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0x68
lea rbp, [rsp + 0x60]
mov rsi, rcx
cmp qword [rcx], 0
je 0x14012f125
mov dword [rbp], 0
lea rbx, [rsi + 0x10]
mov r8, rbp
mov rcx, rbx
xor edx, edx
xor r9d, r9d
call sub.kernel32.dll_InitOnceBeginInitialize
mov dword [rbp - 4], eax
cmp eax, 1
jne 0x14012f164
cmp dword [rbp], 0
je 0x14012f148
call sub.kernel32.dll_TlsAlloc
cmp eax, 0xffffffff
je 0x14012f187
mov edi, eax
mov rax, qword [0x140359040]
mov rax, qword [0x140354108]
nop word cs:[rax + rax]
mov qword [rsi + 8], rax
lock cmpxchg qword [0x140354108], rsi
jne 0x14012f100
mov eax, edi
inc eax
mov dword [rsi + 0x18], eax
mov rcx, rbx
xor edx, edx
xor r8d, r8d
call sub.kernel32.dll_InitOnceComplete
jmp 0x14012f159
call sub.kernel32.dll_TlsAlloc
mov dword [rbp + 4], eax
cmp eax, 0xffffffff
je 0x14012f1c9
mov ecx, eax
inc ecx
xor eax, eax
lock cmpxchg dword [rsi + 0x18], ecx
jne 0x14012f14d
mov edi, dword [rbp + 4]
jmp 0x14012f159
mov edi, dword [rsi + 0x18]
jmp 0x14012f157
mov edi, eax
mov ecx, dword [rbp + 4]
call sub.kernel32.dll_TlsFree
dec edi
mov eax, edi
add rsp, 0x68
pop rbx
pop rdi
pop rsi
pop rbp
ret
mov qword [rbp - 0x38], 0
lea rdx, [0x140310ac0]
lea r9, str.std_src_sys_thread_localkeywindows.rs
lea rcx, [rbp - 4]
lea r8, [rbp - 0x38]
call fcn.140130033
mov rcx, rbx
mov edx, 4
xor r8d, r8d
call sub.kernel32.dll_InitOnceComplete
lea rax, str.out_of_TLS_indexes
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], 1
mov qword [rbp - 0x28], 8
xorps xmm0, xmm0
movups xmmword [rbp - 0x20], xmm0
lea rdx, str.std_src_sys_thread_localkeywindows.rs
lea rcx, [rbp - 0x38]
call fcn.14003f140
lea rax, str.out_of_TLS_indexes
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], 1
mov qword [rbp - 0x28], 8
xorps xmm0, xmm0
movups xmmword [rbp - 0x20], xmm0
lea rcx, [rbp + 4]
lea rdx, [rbp - 0x38]
call fcn.14013006f
int3
Function at 0x14012fef0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x20]
mov esi, dword [0x140234150]
test esi, esi
je 0x14012ff7a
dec esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
ja 0x14012ff71
je 0x14012ff6f
movzx eax, byte [0x140354188]
mov edx, 0x18
xor ecx, ecx
call fcn.1401574a0
test rax, rax
je 0x14012ff8d
mov qword [rax], 0
mov byte [rax + 8], 0
mov dword [rax + 0x10], esi
mov ecx, esi
mov rbx, rax
call sub.kernel32.dll_TlsGetValue
mov rdi, rax
mov ecx, esi
mov rsi, rbx
mov rdx, rbx
call sub.kernel32.dll_TlsSetValue
test rdi, rdi
je 0x14012ff6a
mov edx, 8
mov rcx, rdi
call fcn.140019a50
mov rax, rsi
jmp 0x14012ff71
xor eax, eax
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop rbp
ret
lea rcx, [0x140234138]
call fcn.14012f090
mov esi, eax
jmp 0x14012ff09
mov ecx, 8
mov edx, 0x18
call fcn.14003be7d
int3

Function at 0x1401308d0
Capabilities:
Set thread local storage value

Disassembly:
push rbp
push rsi
sub rsp, 0x28
lea rbp, [rsp + 0x20]
mov rax, qword [0x1403540e0]
nop word cs:[rax + rax]
cmp rax, 0xffffffffffffffff
je 0x140130933
lea rsi, [rax + 1]
lock cmpxchg qword [0x1403540e0], rsi
jne 0x1401308f0
mov ecx, dword [0x140354128]
test ecx, ecx
je 0x140130923
dec ecx
mov rdx, rsi
call sub.kernel32.dll_TlsSetValue
mov rax, rsi
add rsp, 0x28
pop rsi
pop rbp
ret
lea rcx, [0x140354110]
call fcn.14012f090
mov ecx, eax
jmp 0x140130911
call fcn.1401312d0
int3

Function at 0x140130940
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rbp
push rsi
sub rsp, 0x28
lea rbp, [rsp + 0x20]
mov qword [rbp], rcx
mov ecx, dword [0x140354148]
test ecx, ecx
je 0x14013095d
dec ecx
jmp 0x14013096b
lea rcx, [0x140354130]
call fcn.14012f090
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
test rax, rax
je 0x14013097e
mov rax, qword [rbp]
jmp 0x140130a04
mov ecx, dword [0x140354128]
test ecx, ecx
je 0x14013098c
dec ecx
jmp 0x14013099a
lea rcx, [0x140354110]
call fcn.14012f090
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
test rax, rax
je 0x1401309b3
mov rcx, rax
mov rax, qword [rbp]
cmp qword [rax + 0x28], rcx
je 0x1401309e3
jmp 0x140130a04
mov rax, qword [rbp]
mov rsi, qword [rax + 0x28]
mov ecx, dword [0x140354128]
test ecx, ecx
je 0x1401309c9
dec ecx
jmp 0x1401309d7
lea rcx, [0x140354110]
call fcn.14012f090
mov ecx, eax
mov rdx, rsi
call sub.kernel32.dll_TlsSetValue
mov rax, qword [rbp]
mov rcx, qword [0x140359040]
add rax, 0x10
mov ecx, dword [0x140354148]
test ecx, ecx
je 0x140130a0b
dec ecx
mov rdx, rax
call sub.kernel32.dll_TlsSetValue
xor eax, eax
add rsp, 0x28
pop rsi
pop rbp
ret
lea rcx, [0x140354130]
mov rsi, rax
call fcn.14012f090
mov ecx, eax
mov rax, rsi
jmp 0x1401309fa
Function at 0x140130c10
Capabilities:
Get thread local storage value

Disassembly:
push rbp
push rsi
sub rsp, 0x48
lea rbp, [rsp + 0x40]
mov rax, qword [rcx]
cmp byte [rax], 0
mov byte [rax], 0
je 0x140130d8a
mov byte [rbp + 7], 0
mov eax, dword [0x1403540b0]
cmp eax, 3
jne 0x140130d41
cmp byte [rbp + 7], 0
jne 0x140130d54
mov ecx, dword [0x140354128]
test ecx, ecx
je 0x140130d6d
dec ecx
call sub.kernel32.dll_TlsGetValue
test rax, rax
je 0x140130d80
mov rcx, qword [0x140354078]
cmp rax, rcx
jne 0x140130c84
mov eax, dword [0x140354080]
cmp eax, 0xffffffff
je 0x140130d54
inc eax
jmp 0x140130ca5
mov rcx, rax
mov dl, 1
xor eax, eax
lock cmpxchg byte [0x140354084], dl
jne 0x140130d54
mov qword [0x140354078], rcx
mov eax, 1
mov dword [0x140354080], eax
mov qword [rbp - 0x20], 0
mov qword [rbp - 0x18], 1
mov qword [rbp - 0x10], 0
mov byte [rbp - 8], 0
mov byte [rbp - 3], 0
mov dword [rbp - 7], 0
cmp qword [0x140354088], 0
jne 0x140130d96
mov qword [0x140354088], 0xffffffffffffffff
lea rcx, [0x140354090]
call fcn.140130e80
movups xmm0, xmmword [rbp - 0x20]
movups xmm1, xmmword [rbp - 0x10]
movups xmmword [0x1403540a0], xmm1
movups xmmword [0x140354090], xmm0
inc qword [0x140354088]
dec dword [0x140354080]
jne 0x140130d54
mov qword [0x140354078], 0
xor eax, eax
xchg byte [0x140354084], al
cmp al, 2
jne 0x140130d54
lea rcx, [0x140354084]
call sub.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle
jmp 0x140130d54
lea rcx, [rbp + 7]
call fcn.140130dec
cmp byte [rbp + 7], 0
je 0x140130c47
mov eax, dword [0x1403540f0]
cmp eax, 3
jne 0x140130d65
call qword [0x1403540e8]
nop
add rsp, 0x48
pop rsi
pop rbp
ret
lea rcx, [0x140354110]
call fcn.14012f090
mov ecx, eax
jmp 0x140130c57
call fcn.1401308d0
jmp 0x140130c65
lea rcx, str.std_src_synconce.rs
call fcn.140042de0
lea rcx, str.std_srcio_stdio.rs
call fcn.1400408f0
ud2