joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140068600
Capabilities:
Encrypt data using rc4 prga

Disassembly:
cmp r8, r9
jae 0x1400687a6
mov r10, r9
sub r10, r8
cmp r10, 0xf
ja 0x14006863b
mov eax, 1
nop word [rax + rax]
cmp r9, r8
jbe 0x1400686a0
movzx r10d, byte [r9 - 1]
dec r9
cmp r10b, cl
je 0x140068637
cmp r10b, dl
jne 0x140068620
mov rdx, r9
ret
movzx eax, cl
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movzx eax, dl
movd xmm1, eax
punpcklbw xmm1, xmm1
pshuflw xmm1, xmm1, 0
pshufd xmm1, xmm1, 0
movdqu xmm2, xmmword [r9 - 0x10]
movdqa xmm3, xmm0
pcmpeqb xmm3, xmm2
pcmpeqb xmm2, xmm1
por xmm2, xmm3
pmovmskb eax, xmm2
test eax, eax
je 0x1400686a6
add r9, 0xfffffffffffffff0
movzx eax, ax
bsr eax, eax
xor eax, 0xffffffe0
add eax, 0x21
lea rdx, [r9 + rax]
dec rdx
mov eax, 1
ret
xor eax, eax
mov rdx, r9
ret
mov rax, r9
and rax, 0xfffffffffffffff0
cmp r10, 0x20
jb 0x140068723
lea rcx, [r8 + 0x20]
cmp rax, rcx
jb 0x140068723
mov eax, r9d
and eax, 0xf
sub r9, rax
add r9, 0xffffffffffffffdf
nop dword [rax]
movdqa xmm2, xmmword [r9 + 1]
movdqa xmm3, xmmword [r9 + 0x11]
movdqa xmm4, xmm0
pcmpeqb xmm4, xmm2
movdqa xmm5, xmm0
pcmpeqb xmm5, xmm3
pcmpeqb xmm2, xmm1
por xmm2, xmm4
pcmpeqb xmm3, xmm1
por xmm3, xmm5
movdqa xmm4, xmm3
por xmm4, xmm2
pmovmskb eax, xmm4
test eax, eax
jne 0x1400687ac
lea rax, [r9 - 0x20]
inc r9
cmp r9, rcx
mov r9, rax
jae 0x1400686d0
add rax, 0x21
lea rcx, [r8 + 0x10]
nop word [rax + rax]
cmp rax, rcx
jb 0x14006876f
movdqu xmm2, xmmword [rax - 0x10]
add rax, 0xfffffffffffffff0
movdqa xmm3, xmm0
pcmpeqb xmm3, xmm2
pcmpeqb xmm2, xmm1
por xmm2, xmm3
pmovmskb edx, xmm2
test edx, edx
je 0x140068730
movzx ecx, dx
bsr ecx, ecx
xor ecx, 0xffffffe0
add ecx, 0x21
lea rdx, [rax + rcx]
dec rdx
mov eax, 1
ret
cmp rax, r8
jbe 0x1400687a6
movdqu xmm2, xmmword [r8]
pcmpeqb xmm0, xmm2
pcmpeqb xmm1, xmm2
por xmm1, xmm0
pmovmskb eax, xmm1
test eax, eax
je 0x1400687a6
movzx eax, ax
bsr eax, eax
xor eax, 0xffffffe0
add eax, 0x21
lea rdx, [r8 + rax]
dec rdx
mov eax, 1
ret
xor eax, eax
mov rdx, r9
ret
pmovmskb eax, xmm3
test eax, eax
je 0x1400687ce
movzx eax, ax
bsr eax, eax
xor eax, 0xffffffe0
add eax, 0x21
lea rdx, [r9 + rax]
add rdx, 0x10
mov eax, 1
ret
psllw xmm2, 7
pmovmskb edx, xmm2
mov eax, 0x20
mov ecx, 0x20
test edx, edx
je 0x1400687eb
bsr ecx, edx
xor ecx, 0x1f
sub eax, ecx
add r9, rax
mov eax, 1
mov rdx, r9
ret
Function at 0x14008a270
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x98
mov rdi, rdx
mov rsi, rcx
movabs r14, 0x8000000000000000
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x80], 1
xorps xmm0, xmm0
movups xmmword [rsp + 0x88], xmm0
mov rdx, qword [rdx + 0x10]
mov rcx, qword [rdi + 0x18]
cmp rcx, rdx
ja 0x14008a472
xor eax, eax
cmp byte [rdi + 0x30], 2
setne al
cmp byte [rdi + 0x31], 3
lea edx, [rax + rax*2]
lea r15d, [rax + rax*2 + 3]
cmove r15d, edx
test rcx, rcx
je 0x14008a345
mov rbx, qword [rdi + 8]
shl rcx, 6
lea r12, [rcx + rcx*2]
jmp 0x14008a30a
add rbx, 0xc0
add r15d, eax
add r15d, ecx
add r15d, 2
add r12, 0xffffffffffffff40
je 0x14008a345
mov rcx, rbx
call sym.__protobuf::descriptor::UninterpretedOption_as_protobuf::message::Message_::compute_size::he7209d84f5c8fef7
mov ecx, 1
cmp eax, 0x80
jb 0x14008a2f0
mov ecx, 2
cmp eax, 0x4000
jb 0x14008a2f0
mov ecx, 3
cmp eax, 0x200000
jb 0x14008a2f0
cmp eax, 0x10000000
mov ecx, 5
sbb ecx, 0
jmp 0x14008a2f0
lea rcx, [rdi + 0x20]
call sym.protobuf::rt::unknown_fields_size::h39695cef850532ed
add eax, r15d
mov qword [rdi + 0x28], rax
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x58]
mov r8d, eax
call sym.protobuf::coded_output_stream::CodedOutputStream::write_raw_varint32::hd5881c692a870c1f
mov eax, dword [rsp + 0x28]
cmp eax, 4
jne 0x14008a3a1
lea rcx, [rsp + 0x28]
lea r8, [rsp + 0x58]
mov rdx, rdi
call sym._ZN82__LT_protobuf..descriptor..MethodOptions_u20_as_u20_protobuf..message..Message_GT_26write_to_with_cached_sizes17hb919b6f4
mov eax, dword [rsp + 0x28]
cmp eax, 4
jne 0x14008a3a1
mov rdi, qword [rsp + 0x58]
lea rax, [r14 + 1]
cmp rdi, rax
jne 0x14008a3fb
mov dword [rsi], 4
jmp 0x14008a3e7
mov ecx, dword [rsp + 0x3c]
mov dword [rsp + 0x50], ecx
movups xmm0, xmmword [rsp + 0x2c]
movaps xmmword [rsp + 0x40], xmm0
mov dword [rsi], eax
mov eax, dword [rsp + 0x50]
mov dword [rsi + 0x14], eax
movaps xmm0, xmmword [rsp + 0x40]
movups xmmword [rsi + 4], xmm0
mov rdx, qword [rsp + 0x58]
inc r14
cmp rdx, r14
jle 0x14008a3e7
test rdx, rdx
je 0x14008a3e7
mov rcx, qword [rsp + 0x60]
mov r8d, 1
call sym.__rust_dealloc
mov rax, rsi
add rsp, 0x98
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
cmp rdi, r14
jne 0x14008a433
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x90]
add rdx, qword [rcx + 0x10]
mov rax, qword [rcx]
cmp rdx, rax
ja 0x14008a480
mov qword [rcx + 0x10], rdx
jne 0x14008a399
mov r8d, 1
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::h014d9e36397c502a
jmp 0x14008a399
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x78]
call qword [rax + 0x38]
test rax, rax
mov rdx, rdi
je 0x14008a467
mov dword [rsi], 0
mov qword [rsi + 8], rax
jmp 0x14008a3d2
mov dword [rsi], 4
jmp 0x14008a3d2
lea r8, [0x1402fbad8]
call sym.core::slice::index::slice_end_index_len_fail::hdaa9bbd2fcad4cbb
jmp 0x14008a498
lea rcx, str.assertion_failed:_vec_len__self.position___vec.capacity__
lea r8, [0x1402fb820]
mov edx, 0x3b
call sym.core::panicking::panic::h82631201f060ca88
ud2
Function at 0x1400cf110
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x40
movaps xmmword [rsp + 0x30], xmm6
mov rdi, rdx
mov esi, dword [rcx + 0x18]
test esi, esi
je 0x1400cf1df
dec esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
ja 0x1400cf1d2
je 0x1400cf1d0
test rdi, rdi
je 0x1400cf159
movups xmm6, xmmword [rdi + 8]
cmp qword [rdi], 0
mov qword [rdi], 0
jne 0x1400cf175
xorps xmm0, xmm0
movaps xmmword [rsp + 0x20], xmm0
lea rcx, [rsp + 0x20]
mov edx, 0x10
call sub.bcryptprimitives.dll_ProcessPrng
movaps xmm6, xmmword [rsp + 0x20]
mov rax, qword [0x1403591d8]
movzx eax, byte [rax]
mov ecx, 0x18
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x1400cf1f9
movups xmmword [rax], xmm6
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 fcn.1402db1bc
test rdi, rdi
je 0x1400cf1cb
mov edx, 0x18
mov r8d, 8
mov rcx, rdi
call sym.__rust_dealloc
mov rax, rsi
jmp 0x1400cf1d2
xor eax, eax
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x40
pop rbx
pop rdi
pop rsi
ret
call sym.std::sys::thread_local::key::windows::LazyKey::init::h597144e332ffcf99
mov esi, eax
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
jbe 0x1400cf13d
jmp 0x1400cf1d2
mov ecx, 8
mov edx, 0x18
call sym.alloc::alloc::handle_alloc_error::h526f0ddc898dc940
int3
Function at 0x1400dd800
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
cmp rcx, rdx
je 0x1400dda1b
mov rsi, rdx
mov rdi, rcx
mov rbx, qword [r8]
lea r14, [rsp + 0x2c]
lea r15, [0x14030a71c]
lea r12, [0x1402fd0b0]
nop word cs:[rax + rax]
movzx edx, byte [rdi]
test dl, dl
js 0x1400dd850
inc rdi
jmp 0x1400dd8c0
mov eax, edx
and eax, 0x1f
movzx r8d, byte [rdi + 1]
and r8d, 0x3f
cmp dl, 0xdf
jbe 0x1400dd89c
movzx ecx, byte [rdi + 2]
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
cmp dl, 0xf0
jb 0x1400dd8aa
movzx edx, byte [rdi + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and edx, 0x3f
or edx, ecx
or edx, eax
cmp edx, 0x110000
je 0x1400dda1b
add rdi, 4
jmp 0x1400dd8c0
add rdi, 2
shl eax, 6
or eax, r8d
mov edx, eax
jmp 0x1400dd8c0
add rdi, 3
shl eax, 0xc
or ecx, eax
mov edx, ecx
nop word cs:[rax + rax]
mov r8b, 0x5c
mov cl, 2
lea eax, [rdx - 9]
cmp eax, 0x1e
ja case.default.0x1400dd8d4
movsxd rax, dword [r12 + rax*4]
add rax, r12
jmp rax
mov dl, 0x74
jmp case.0x1400dd8d4.34
cmp edx, 0x5c
je case.0x1400dd8d4.34
lea eax, [rdx - 0x20]
cmp eax, 0x5f
jae 0x1400dd964
mov rcx, r14
call sym.core::escape::escape_ascii::ha8e58806d572a655
movzx edx, word [rsp + 0x2c]
mov r8, qword [rsp + 0x2e]
movzx eax, byte [rsp + 0x36]
movzx ecx, byte [rsp + 0x37]
mov word [rsp + 0x2c], dx
mov qword [rsp + 0x2e], r8
cmp al, cl
jb 0x1400dd933
jmp 0x1400dd956
mov dl, 0x72
jmp case.0x1400dd8d4.34
mov dl, 0x6e
nop
xor eax, eax
xor r9d, r9d
mov byte [rsp + 0x2c], r8b
mov byte [rsp + 0x2d], dl
mov qword [rsp + 0x2e], r9
movzx r13d, al
movzx ebp, cl
nop word [rax + rax]
movzx edx, byte [rsp + r13 + 0x2c]
inc r13
mov rcx, rbx
call sym._ZN5alloc6string6String4push17h7807dd0b5d33107fE.llvm.753452756230538824
cmp r13, rbp
jb 0x1400dd940
cmp rdi, rsi
jne 0x1400dd840
jmp 0x1400dda1b
mov eax, edx
or eax, 1
bsr ecx, eax
xor ecx, 0x1c
shr ecx, 2
lea rax, [rcx - 2]
mov byte [rsp + 0x2e], 0
mov word [rsp + 0x2c], 0
mov r8d, edx
shr r8d, 0x14
movzx r8d, byte [r8 + r15]
mov byte [rsp + 0x2f], r8b
mov r8d, edx
shr r8d, 0x10
and r8d, 0xf
movzx r8d, byte [r8 + r15]
mov byte [rsp + 0x30], r8b
mov r8d, edx
shr r8d, 0xc
and r8d, 0xf
movzx r8d, byte [r8 + r15]
mov byte [rsp + 0x31], r8b
mov r8d, edx
shr r8d, 8
and r8d, 0xf
movzx r8d, byte [r8 + r15]
mov byte [rsp + 0x32], r8b
mov r8d, edx
shr r8d, 4
and r8d, 0xf
movzx r8d, byte [r8 + r15]
mov byte [rsp + 0x33], r8b
and edx, 0xf
movzx edx, byte [rdx + r15]
mov byte [rsp + 0x34], dl
mov byte [rsp + 0x35], 0x7d
mov word [rsp + rcx + 0x2a], 0x755c
mov byte [rsp + rcx + 0x2c], 0x7b
movzx r8d, byte [rsp + 0x2c]
movzx edx, byte [rsp + 0x2d]
mov r9, qword [rsp + 0x2e]
mov cl, 0xa
jmp 0x1400dd925
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
Function at 0x1400f12b0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
mov rcx, qword [0x1402de7d8]
xor edx, edx
jmp sym.std::sys::thread_local::os::Storage_T_::get::h0b248c1df0fab75f

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

Disassembly:
mov rdx, rcx
mov rcx, qword [0x1402de7d8]
jmp sym.std::sys::thread_local::os::Storage_T_::get::h0b248c1df0fab75f
Function at 0x14014dbc0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
mov rax, rcx
add qword [rcx + 0x30], r8
mov r11, qword [rcx + 0x40]
test r11, r11
je 0x14014dc02
mov r10d, 8
sub r10, r11
cmp r8, r10
mov rdi, r10
cmovb rdi, r8
cmp rdi, 4
jb 0x14014dc0a
mov esi, dword [rdx]
mov r9d, 4
mov rcx, r9
or rcx, 1
cmp rcx, rdi
jb 0x14014dc1b
jmp 0x14014dc32
xor r10d, r10d
jmp 0x14014dcbd
xor esi, esi
xor r9d, r9d
mov rcx, r9
or rcx, 1
cmp rcx, rdi
jae 0x14014dc32
movzx ebx, word [rdx + r9]
lea ecx, [r9*8]
shl rbx, cl
or rsi, rbx
or r9, 2
cmp r9, rdi
jae 0x14014dc49
movzx edi, byte [rdx + r9]
shl r9d, 3
mov ecx, r9d
shl rdi, cl
or rsi, rdi
lea ecx, [r11*8]
shl rsi, cl
or rsi, qword [rax + 0x38]
mov qword [rax + 0x38], rsi
cmp r10, r8
jbe 0x14014dc69
add r11, r8
jmp 0x14014dd9b
mov rcx, qword [rax + 0x18]
xor rcx, rsi
mov rdi, qword [rax + 0x10]
mov r9, qword [rax]
add r9, rdi
mov r11, qword [rax + 8]
add r11, rcx
rol rdi, 0xd
xor rdi, r9
rol rcx, 0x10
rol r9, 0x20
xor rcx, r11
add r11, rdi
rol rdi, 0x11
add r9, rcx
xor rdi, r11
rol rcx, 0x15
mov qword [rax + 0x10], rdi
xor rcx, r9
rol r11, 0x20
mov qword [rax + 0x18], rcx
mov qword [rax + 8], r11
xor r9, rsi
mov qword [rax], r9
sub r8, r10
mov r11d, r8d
and r11d, 7
and r8, 0xfffffffffffffff8
cmp r10, r8
jae 0x14014dd32
mov rcx, qword [rax]
mov r9, qword [rax + 8]
mov rdi, qword [rax + 0x18]
mov rsi, qword [rax + 0x10]
nop
mov rbx, qword [rdx + r10]
xor rdi, rbx
add rcx, rsi
rol rsi, 0xd
add r9, rdi
xor rsi, rcx
rol rdi, 0x10
xor rdi, r9
rol rcx, 0x20
add r9, rsi
add rcx, rdi
rol rsi, 0x11
xor rsi, r9
rol rdi, 0x15
rol r9, 0x20
xor rdi, rcx
xor rcx, rbx
add r10, 8
cmp r10, r8
jb 0x14014dce0
mov qword [rax + 0x18], rdi
mov qword [rax + 0x10], rsi
mov qword [rax + 8], r9
mov qword [rax], rcx
cmp r11d, 4
jb 0x14014dd50
mov r9d, dword [rdx + r10]
mov r8d, 4
mov rcx, r8
or rcx, 1
cmp rcx, r11
jb 0x14014dd62
jmp 0x14014dd7d
xor r9d, r9d
xor r8d, r8d
mov rcx, r8
or rcx, 1
cmp rcx, r11
jae 0x14014dd7d
lea rcx, [rdx + r8]
movzx esi, word [r10 + rcx]
lea ecx, [r8*8]
shl rsi, cl
or r9, rsi
or r8, 2
cmp r8, r11
jae 0x14014dd97
add r10, r8
movzx edx, byte [rdx + r10]
shl r8d, 3
mov ecx, r8d
shl rdx, cl
or r9, rdx
mov qword [rax + 0x38], r9
mov qword [rax + 0x40], r11
pop rbx
pop rdi
pop rsi
ret

Function at 0x1401b27d0
Capabilities:
Set thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rsi, rcx
mov edi, dword [rcx + 8]
mov edx, 1
mov ecx, edi
call fcn.1402db1bc
mov rax, qword [rsi]
lock dec qword [rax]
jne 0x1401b27f9
mov rcx, rsi
call sym.alloc::sync::Arc_T_A_::drop_slow::h890e38df2be1c3ad
mov edx, 0x10
mov r8d, 8
mov rcx, rsi
call sym.__rust_dealloc
mov ecx, edi
xor edx, edx
add rsp, 0x28
pop rdi
pop rsi
jmp fcn.1402db1bc
Function at 0x1401b2840
Capabilities:
Set thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rcx
mov edi, dword [rcx + 0x10]
mov edx, 1
mov ecx, edi
call fcn.1402db1bc
mov rbx, qword [rsi]
test rbx, rbx
je 0x1401b2892
dec qword [rbx]
jne 0x1401b2892
mov rax, qword [rbx + 0x10]
lock dec qword [rax]
jne 0x1401b2879
lea rcx, [rbx + 0x10]
call sym.alloc::sync::Arc_T_A_::drop_slow::h297dfe69fd5d31f7
dec qword [rbx + 8]
jne 0x1401b2892
mov edx, 0x20
mov r8d, 8
mov rcx, rbx
call sym.__rust_dealloc
mov edx, 0x18
mov r8d, 8
mov rcx, rsi
call sym.__rust_dealloc
mov ecx, edi
xor edx, edx
add rsp, 0x20
pop rbx
pop rdi
pop rsi
jmp fcn.1402db1bc

Function at 0x1401b28e0
Capabilities:
Set thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rsi, rcx
mov edi, dword [rcx + 0x48]
mov edx, 1
mov ecx, edi
call fcn.1402db1bc
mov rax, qword [rsi + 8]
cmp rax, 2
je 0x1401b2929
lea rcx, [rsi + 0x10]
test rax, rax
je 0x1401b291b
mov rax, qword [rcx]
lock dec qword [rax]
jne 0x1401b2929
call sym.alloc::sync::Arc_T_A_::drop_slow::h053a42b03d54ae40
jmp 0x1401b2929
mov rax, qword [rcx]
lock dec qword [rax]
jne 0x1401b2929
call sym.alloc::sync::Arc_T_A_::drop_slow::h56dd335b90c47e79
mov edx, 0x50
mov r8d, 8
mov rcx, rsi
call sym.__rust_dealloc
mov ecx, edi
xor edx, edx
add rsp, 0x28
pop rdi
pop rsi
jmp fcn.1402db1bc
Function at 0x1401b2970
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x70
mov rdi, rdx
mov esi, dword [rcx + 0x18]
test esi, esi
je 0x1401b2a8c
dec esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
ja 0x1401b2aca
je 0x1401b29bb
test rdi, rdi
je 0x1401b29c2
lea rcx, [rdi + 8]
cmp qword [rdi], 0
mov qword [rdi], 0
lea rax, [0x1403227f8]
cmovne rax, rcx
jmp 0x1401b29c9
xor eax, eax
jmp 0x1401b2aca
lea rax, [0x1403227f8]
mov rcx, qword [rax + 0x40]
mov qword [rsp + 0x60], rcx
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmm3, xmmword [rax + 0x30]
movaps xmmword [rsp + 0x50], xmm3
movaps xmmword [rsp + 0x40], xmm2
movaps xmmword [rsp + 0x30], xmm1
movaps xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x68], esi
mov rax, qword [0x1403591d8]
movzx eax, byte [rax]
mov ecx, 0x50
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x1401b2ad2
movaps xmm0, xmmword [rsp + 0x60]
movups xmmword [rax + 0x40], xmm0
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
movaps xmm2, xmmword [rsp + 0x40]
movaps xmm3, xmmword [rsp + 0x50]
movups xmmword [rax + 0x30], xmm3
movups xmmword [rax + 0x20], xmm2
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
mov ecx, esi
mov rbx, rax
call sub.kernel32.dll_TlsGetValue
mov rdi, rax
mov ecx, esi
mov rsi, rbx
mov rdx, rbx
call fcn.1402db1bc
test rdi, rdi
je 0x1401b2ac7
mov rax, qword [rdi + 8]
cmp rax, 2
je 0x1401b2ab4
mov rcx, rdi
add rcx, 0x10
test rax, rax
je 0x1401b2aa6
mov rax, qword [rcx]
lock dec qword [rax]
jne 0x1401b2ab4
call sym.alloc::sync::Arc_T_A_::drop_slow::h053a42b03d54ae40
jmp 0x1401b2ab4
call sym.std::sys::thread_local::key::windows::LazyKey::init::h597144e332ffcf99
mov esi, eax
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
jbe 0x1401b2998
jmp 0x1401b2aca
mov rax, qword [rcx]
lock dec qword [rax]
jne 0x1401b2ab4
call sym.alloc::sync::Arc_T_A_::drop_slow::h56dd335b90c47e79
mov edx, 0x50
mov r8d, 8
mov rcx, rdi
call sym.__rust_dealloc
mov rax, rsi
add rsp, 0x70
pop rbx
pop rdi
pop rsi
ret
mov ecx, 8
mov edx, 0x50
call sym.alloc::alloc::handle_alloc_error::h526f0ddc898dc940
ud2
Function at 0x1401b2b20
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x40
movaps xmmword [rsp + 0x30], xmm6
mov rdi, rdx
mov esi, dword [rcx + 0x18]
test esi, esi
je 0x1401b2bef
dec esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
ja 0x1401b2be2
je 0x1401b2be0
test rdi, rdi
je 0x1401b2b69
movups xmm6, xmmword [rdi + 8]
cmp qword [rdi], 0
mov qword [rdi], 0
jne 0x1401b2b85
xorps xmm0, xmm0
movaps xmmword [rsp + 0x20], xmm0
lea rcx, [rsp + 0x20]
mov edx, 0x10
call sub.bcryptprimitives.dll_ProcessPrng
movaps xmm6, xmmword [rsp + 0x20]
mov rax, qword [0x1403591d8]
movzx eax, byte [rax]
mov ecx, 0x18
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x1401b2c09
movups xmmword [rax], xmm6
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 fcn.1402db1bc
test rdi, rdi
je 0x1401b2bdb
mov edx, 0x18
mov r8d, 8
mov rcx, rdi
call sym.__rust_dealloc
mov rax, rsi
jmp 0x1401b2be2
xor eax, eax
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x40
pop rbx
pop rdi
pop rsi
ret
call sym.std::sys::thread_local::key::windows::LazyKey::init::h597144e332ffcf99
mov esi, eax
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
jbe 0x1401b2b4d
jmp 0x1401b2be2
mov ecx, 8
mov edx, 0x18
call sym.alloc::alloc::handle_alloc_error::h526f0ddc898dc940
int3

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

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x38
mov rdi, rdx
mov esi, dword [rcx + 0x18]
test esi, esi
je 0x1401b2d2c
dec esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
ja 0x1401b2d22
je 0x1401b2c6b
xor eax, eax
test rdi, rdi
je 0x1401b2c72
mov rbx, qword [rdi]
mov qword [rdi], 0
test rbx, rbx
cmovne eax, dword [rdi + 0x10]
cmovne rbx, qword [rdi + 8]
jmp 0x1401b2c74
xor eax, eax
jmp 0x1401b2d22
xor ebx, ebx
mov qword [rsp + 0x20], rbx
mov byte [rsp + 0x28], al
mov dword [rsp + 0x30], esi
mov rax, qword [0x1403591d8]
movzx eax, byte [rax]
mov ecx, 0x18
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x1401b2d46
mov rcx, qword [rsp + 0x30]
mov qword [rax + 0x10], rcx
movups xmm0, xmmword [rsp + 0x20]
movups xmmword [rax], xmm0
mov ecx, esi
mov rbx, rax
call sub.kernel32.dll_TlsGetValue
mov rdi, rax
mov ecx, esi
mov r14, rbx
mov rdx, rbx
call fcn.1402db1bc
test rdi, rdi
je 0x1401b2d1f
mov rsi, qword [rdi]
test rsi, rsi
je 0x1401b2d0c
dec qword [rsi]
jne 0x1401b2d0c
mov rax, qword [rsi + 0x10]
lock dec qword [rax]
jne 0x1401b2cf3
lea rcx, [rsi + 0x10]
call sym.alloc::sync::Arc_T_A_::drop_slow::h297dfe69fd5d31f7
dec qword [rsi + 8]
jne 0x1401b2d0c
mov edx, 0x20
mov r8d, 8
mov rcx, rsi
call sym.__rust_dealloc
mov edx, 0x18
mov r8d, 8
mov rcx, rdi
call sym.__rust_dealloc
mov rax, r14
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r14
ret
call sym.std::sys::thread_local::key::windows::LazyKey::init::h597144e332ffcf99
mov esi, eax
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
jbe 0x1401b2c4a
jmp 0x1401b2d22
mov ecx, 8
mov edx, 0x18
call sym.alloc::alloc::handle_alloc_error::h526f0ddc898dc940
ud2
Function at 0x1401b2da0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x30
mov rbx, rdx
mov esi, dword [rcx + 0x18]
test esi, esi
je 0x1401b2ea0
dec esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
ja 0x1401b2e98
je 0x1401b2e96
test rbx, rbx
je 0x1401b2de2
mov rdi, qword [rbx]
mov qword [rbx], 0
test rdi, rdi
jne 0x1401b2e21
mov rax, qword [0x1403591d8]
movzx eax, byte [rax]
mov ecx, 0x28
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x1401b2ecb
mov rdi, rax
mov qword [rax], 1
mov qword [rax + 8], 1
xorps xmm0, xmm0
movups xmmword [rax + 0x10], xmm0
mov byte [rax + 0x20], 0
mov qword [rsp + 0x20], rdi
mov dword [rsp + 0x28], esi
mov rax, qword [0x1403591d8]
movzx eax, byte [rax]
mov ecx, 0x10
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x1401b2eba
mov qword [rax], rdi
mov dword [rax + 8], 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 fcn.1402db1bc
test rdi, rdi
je 0x1401b2e91
mov rax, qword [rdi]
lock dec qword [rax]
jne 0x1401b2e7e
mov rcx, rdi
call sym.alloc::sync::Arc_T_A_::drop_slow::h890e38df2be1c3ad
mov edx, 0x10
mov r8d, 8
mov rcx, rdi
call sym.__rust_dealloc
mov rax, rsi
jmp 0x1401b2e98
xor eax, eax
add rsp, 0x30
pop rbx
pop rdi
pop rsi
ret
call sym.std::sys::thread_local::key::windows::LazyKey::init::h597144e332ffcf99
mov esi, eax
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
jbe 0x1401b2dc8
jmp 0x1401b2e98
mov ecx, 8
mov edx, 0x10
call sym.alloc::alloc::handle_alloc_error::h526f0ddc898dc940
ud2
mov ecx, 8
mov edx, 0x28
call sym.alloc::alloc::handle_alloc_error::h526f0ddc898dc940
mov rsi, rax
mov edx, 0x10
mov r8d, 8
mov rcx, rdi
call sym.__rust_dealloc
mov rcx, rsi
call sym._Unwind_Resume
mov rsi, rax
lock dec qword [rdi]
jne 0x1401b2f0b
lea rcx, [rsp + 0x20]
call sym.alloc::sync::Arc_T_A_::drop_slow::h890e38df2be1c3ad
mov rcx, rsi
call sym._Unwind_Resume
call sym.core::panicking::panic_in_cleanup::h928977ae0110d4f9
int3

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

Disassembly:
mov rdx, rcx
lea rcx, sym.std::sys::thread_local::os::destroy_value::hdeaa082a1db72287
jmp sym.std::sys::thread_local::os::Storage_T_::get::h25f5da9c507f8a86

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

Disassembly:
mov rcx, qword [0x1403590d0]
xor edx, edx
jmp sym.std::sys::thread_local::os::Storage_T_::get::h25f5da9c507f8a86

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

Disassembly:
mov rdx, rcx
mov rcx, qword [0x1403590d0]
jmp sym.std::sys::thread_local::os::Storage_T_::get::h25f5da9c507f8a86

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

Disassembly:
mov rdx, rcx
mov rcx, qword [0x1402de7d8]
jmp sym.std::sys::thread_local::os::Storage_T_::get::h406b300a7747aa0c