joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4919a0
Capabilities:
Check http status code

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x40
mov rsi, r8
mov rdi, rdx
mov rbx, rcx
lea r14, [rsp + 0x34]
mov rcx, r14
call sym.chrono::offset::utc::Utc::now::h3dd2b7a2f593cffd
lea rcx, [rsp + 0x28]
xor r15d, r15d
mov rdx, r14
xor r8d, r8d
call sym.chrono::offset::fixed::add_with_leapsecond::h4d248b5a69b497d0
mov eax, dword [rsp + 0x30]
mov ecx, eax
sar ecx, 0xd
mov r8d, eax
and r8d, 0x1fff
mov edx, 0
cmp r8d, 0x16e7
ja 0x491a21
mov edx, r8d
shr edx, 3
lea r9, [0x005901d8]
movzx edx, byte [rdx + r9]
lea r15d, [r8 + rdx*8]
shr r15d, 9
shr r8d, 3
movzx edx, byte [r8 + r9]
lea edx, [rax + rdx*8]
shr edx, 4
and edx, 0x1f
movsxd rcx, ecx
imul r8, rcx, 0x51eb851f
mov r9, r8
shr r9, 0x3f
sar r8, 0x27
add r8d, r9d
imul r8d, r8d, 0x190
sub ecx, r8d
mov r8d, ecx
sar r8d, 0x1f
and r8d, 0x190
add r8d, ecx
movsxd rcx, r8d
cmp ecx, 0x18f
ja 0x491af0
lea r8d, [r15 - 1]
cmp r8d, 0xb
ja 0x491b03
lea r8d, [rdx - 1]
cmp r8d, 0x1f
jae 0x491b03
lea r8, [0x00581e10]
movzx ecx, byte [rcx + r8]
mov r8d, r15d
shl r8, 9
mov edx, edx
shl rdx, 4
or rdx, r8
or rdx, rcx
cmp edx, 0x19ff
ja 0x491b03
mov ecx, edx
shr ecx, 3
lea r8, [0x00582018]
movsx ecx, byte [rcx + r8]
shl ecx, 3
and ecx, 0x1ff8
sub edx, ecx
lea ecx, [rdx - 0x16e8]
cmp ecx, 0xffffe927
jbe 0x491b03
and eax, 0xffffe000
or edx, eax
mov rcx, rbx
mov r8, rdi
mov r9, rsi
add rsp, 0x40
pop rbx
pop rdi
pop rsi
pop r14
pop r15
jmp sym.parse_datetime::from_str_at_date::h56f0f90ef1ffe62f
lea r8, [0x00582000]
mov edx, 0x190
call dbg.panic_bounds_check
ud2
lea rcx, str.called__Option::unwrap____on_a__None__value_usr_cargo_registry_src_index.crates.io_6f17d22bba15001f_chrono_0.4.28_src_offset_fixed.rs
lea r8, [0x00590630]
mov edx, 0x2b
call dbg.panic
ud2
Function at 0x4bbd70
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 0x4bbdb2
mov r10d, 8
sub r10, r11
cmp r8, r10
mov rdi, r10
cmovb rdi, r8
cmp rdi, 3
jbe 0x4bbdba
mov esi, dword [rdx]
mov r9d, 4
mov rcx, r9
or rcx, 1
cmp rcx, rdi
jb 0x4bbdcb
jmp 0x4bbde2
xor r10d, r10d
jmp 0x4bbe6d
xor esi, esi
xor r9d, r9d
mov rcx, r9
or rcx, 1
cmp rcx, rdi
jae 0x4bbde2
movzx ebx, word [rdx + r9]
lea ecx, [r9*8]
shl rbx, cl
or rsi, rbx
or r9, 2
cmp r9, rdi
jae 0x4bbdf9
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 0x4bbe19
add r11, r8
jmp 0x4bbf4a
mov r11, qword [rax + 0x18]
mov r9, qword [rax + 0x10]
mov rcx, qword [rax]
add rcx, r9
rol r9, 0xd
xor r11, rsi
xor r9, rcx
rol rcx, 0x20
mov rdi, qword [rax + 8]
add rdi, r11
rol r11, 0x10
xor r11, rdi
add rcx, r11
rol r11, 0x15
xor r11, rcx
add rdi, r9
rol r9, 0x11
mov qword [rax + 0x18], r11
xor r9, rdi
rol rdi, 0x20
mov qword [rax + 0x10], r9
mov qword [rax + 8], rdi
xor rcx, rsi
mov qword [rax], rcx
sub r8, r10
mov r11d, r8d
and r11d, 7
and r8, 0xfffffffffffffff8
cmp r10, r8
jae 0x4bbee2
mov rcx, qword [rax]
mov r9, qword [rax + 8]
mov rdi, qword [rax + 0x18]
mov rsi, qword [rax + 0x10]
nop
add rcx, rsi
rol rsi, 0xd
mov rbx, qword [rdx + r10]
xor rsi, rcx
rol rcx, 0x20
xor rdi, rbx
add r9, rdi
rol rdi, 0x10
xor rdi, r9
add rcx, rdi
rol rdi, 0x15
add r9, rsi
rol rsi, 0x11
xor rsi, r9
rol r9, 0x20
xor rdi, rcx
xor rcx, rbx
add r10, 8
cmp r10, r8
jb 0x4bbe90
mov qword [rax + 0x18], rdi
mov qword [rax + 0x10], rsi
mov qword [rax + 8], r9
mov qword [rax], rcx
cmp r11d, 3
jbe 0x4bbf00
mov r9d, dword [rdx + r10]
mov r8d, 4
mov rcx, r8
or rcx, 1
cmp rcx, r11
jb 0x4bbf12
jmp 0x4bbf2c
xor r9d, r9d
xor r8d, r8d
mov rcx, r8
or rcx, 1
cmp rcx, r11
jae 0x4bbf2c
lea rcx, [r8 + r10]
movzx esi, word [rdx + rcx]
lea ecx, [r8*8]
shl rsi, cl
or r9, rsi
or r8, 2
cmp r8, r11
jae 0x4bbf46
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 0x4e2450
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
sub rsp, 0x50
mov ecx, dword [0x00576040]
test ecx, ecx
je 0x4e2483
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
jbe 0x4e249c
mov rcx, qword [rax + 8]
add rax, 0x10
test rcx, rcx
cmove rax, rcx
je 0x4e249c
add rsp, 0x50
pop rsi
ret
lea rcx, sym.std::sys::common::thread_local::os_local::destroy_value::hbda1ecc0a00a738b
call dbg.init
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
ja 0x4e246c
mov ecx, dword [0x00576040]
test ecx, ecx
je 0x4e2556
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
je 0x4e2573
mov rsi, rax
test rax, rax
jne 0x4e252d
movzx eax, byte [0x006101a4]
mov rcx, qword [0x00610110]
test rcx, rcx
jne 0x4e24ee
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x4e25c7
mov rcx, rax
mov qword [0x00610110], rax
mov r8d, 0x18
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x4e25c7
mov rsi, rax
lea rax, sym.std::sys::common::thread_local::os_local::destroy_value::hbda1ecc0a00a738b
mov qword [rsi], rax
mov qword [rsi + 8], 0
mov ecx, dword [0x00576040]
test ecx, ecx
je 0x4e257b
dec ecx
mov rdx, rsi
call fcn.00573844
mov ecx, 1
lock xadd qword [0x00576048], rcx
test rcx, rcx
je 0x4e258b
lea rax, [rsi + 0x10]
mov qword [rsi + 8], 1
mov qword [rsi + 0x10], rcx
add rsp, 0x50
pop rsi
ret
lea rcx, sym.std::sys::common::thread_local::os_local::destroy_value::hbda1ecc0a00a738b
call dbg.init
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
jne 0x4e24bb
xor eax, eax
add rsp, 0x50
pop rsi
ret
lea rcx, sym.std::sys::common::thread_local::os_local::destroy_value::hbda1ecc0a00a738b
call dbg.init
mov ecx, eax
jmp 0x4e2525
lea rax, str.regex:_thread_ID_allocation_space_exhausted
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], 1
lea rax, str.capacity_overflow
mov qword [rsp + 0x30], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
lea rdx, str._usr_cargo_registry_src_index.crates.io_6f17d22bba15001f_regex_automata_0.3.8_src_util_pool.rs
lea rcx, [rsp + 0x20]
call dbg.panic_fmt
ud2
mov ecx, 8
mov edx, 0x18
call dbg.handle_alloc_error
ud2

Function at 0x4f4ae0
Capabilities:
Set thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x68
mov rdi, rcx
mov rsi, qword [rcx]
mov ecx, dword [rsi + 0x18]
test ecx, ecx
je 0x4f4af7
dec ecx
jmp 0x4f4b01
mov rcx, rsi
call dbg.init
mov ecx, eax
mov edx, 1
call fcn.00573844
mov rcx, qword [0x00610110]
xor edx, edx
mov r8, rdi
call fcn.00573784
mov ecx, dword [rsi + 0x18]
test ecx, ecx
je 0x4f4b27
dec ecx
jmp 0x4f4b31
mov rcx, rsi
call dbg.init
mov ecx, eax
xor edx, edx
call fcn.00573844
nop
add rsp, 0x68
pop rdi
pop rsi
ret
Function at 0x509310
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push rsi
push rdi
sub rsp, 0x98
mov rdi, rdx
mov rsi, rcx
mov rcx, rdx
call sym.regex_syntax::ast::parse::ParserI_P_::char::he775882ffd4838f2
cmp eax, 0x5c
jne 0x509340
mov rcx, rsi
mov rdx, rdi
add rsp, 0x98
pop rdi
pop rsi
jmp sym.regex_syntax::ast::parse::ParserI_P_::parse_escape::h3e4555ea607ca15b
lea rcx, [rsp + 0x28]
mov rdx, rdi
call sym.regex_syntax::ast::parse::ParserI_P_::span_char::h4442de9d9c629cf7
mov rcx, rdi
call sym.regex_syntax::ast::parse::ParserI_P_::char::he775882ffd4838f2
mov dword [rsp + 0x58], eax
mov byte [rsp + 0x5c], 0
mov byte [rsp + 0x90], 2
mov rcx, rdi
call sym.regex_syntax::ast::parse::ParserI_P_::bump::h12d6e77a732c0d9e
movups xmm0, xmmword [rsp + 0x88]
movups xmmword [rsi + 0x68], xmm0
movups xmm0, xmmword [rsp + 0x78]
movups xmmword [rsi + 0x58], xmm0
movups xmm0, xmmword [rsp + 0x68]
movups xmmword [rsi + 0x48], xmm0
movups xmm0, xmmword [rsp + 0x28]
movups xmm1, xmmword [rsp + 0x38]
movups xmm2, xmmword [rsp + 0x48]
movups xmm3, xmmword [rsp + 0x58]
movups xmmword [rsi + 0x38], xmm3
movups xmmword [rsi + 0x28], xmm2
movups xmmword [rsi + 0x18], xmm1
movups xmmword [rsi + 8], xmm0
mov dword [rsi], 0x1f
add rsp, 0x98
pop rdi
pop rsi
ret
Function at 0x50d560
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x50
mov rdi, rdx
mov rsi, rcx
mov rcx, rdx
call sym.regex_syntax::ast::parse::ParserI_P_::char::he775882ffd4838f2
cmp eax, 0x78
je 0x50d59b
mov rcx, rdi
call sym.regex_syntax::ast::parse::ParserI_P_::char::he775882ffd4838f2
cmp eax, 0x75
je 0x50d59b
mov rcx, rdi
call sym.regex_syntax::ast::parse::ParserI_P_::char::he775882ffd4838f2
cmp eax, 0x55
jne 0x50d6f5
mov rcx, rdi
call sym.regex_syntax::ast::parse::ParserI_P_::char::he775882ffd4838f2
cmp eax, 0x75
sete cl
mov dl, 2
sub dl, cl
xor ecx, ecx
cmp eax, 0x78
movzx ebp, dl
cmove ebp, ecx
mov rcx, rdi
call sym.regex_syntax::ast::parse::ParserI_P_::bump::h12d6e77a732c0d9e
test al, al
je 0x50d605
mov rcx, rdi
call sym.regex_syntax::ast::parse::ParserI_P_::bump_space::h9fd4d579196de4c5
mov rax, qword [rdi]
mov rbx, qword [rdi + 0x10]
cmp qword [rax + 0xa0], rbx
je 0x50d60c
mov rcx, rdi
call sym.regex_syntax::ast::parse::ParserI_P_::char::he775882ffd4838f2
mov rcx, rsi
mov rdx, rdi
mov r8d, ebp
cmp eax, 0x7b
jne 0x50d6df
add rsp, 0x50
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
jmp sym.regex_syntax::ast::parse::ParserI_P_::parse_hex_brace::hec8314e109a6796e
mov rax, qword [rdi]
mov rbx, qword [rdi + 0x10]
mov rcx, qword [rax + 0xb0]
mov qword [rsp + 0x48], rcx
movups xmm0, xmmword [rax + 0xa0]
movups xmmword [rsp + 0x38], xmm0
mov rcx, qword [rax + 0xb0]
mov qword [rsp + 0x30], rcx
movups xmm0, xmmword [rax + 0xa0]
movaps xmmword [rsp + 0x20], xmm0
mov rdi, qword [rdi + 8]
test rbx, rbx
je 0x50d693
js 0x50d6ee
movzx eax, byte [0x006101a4]
mov rcx, qword [0x00610110]
test rcx, rcx
jne 0x50d672
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x50d684
mov rcx, rax
mov qword [0x00610110], rax
xor edx, edx
mov r8, rbx
call sub.kernel32.dll_HeapAlloc
mov r14, rax
test rax, rax
jne 0x50d699
mov ecx, 1
mov rdx, rbx
call dbg.handle_alloc_error
ud2
mov r14d, 1
mov rcx, r14
mov rdx, rdi
mov r8, rbx
call sym.memcpy
mov dword [rsi], 0xa
mov qword [rsi + 0x38], r14
mov qword [rsi + 0x40], rbx
mov qword [rsi + 0x48], rbx
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
movaps xmm2, xmmword [rsp + 0x40]
movups xmmword [rsi + 0x50], xmm0
movups xmmword [rsi + 0x60], xmm1
movups xmmword [rsi + 0x70], xmm2
add rsp, 0x50
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret
add rsp, 0x50
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
jmp sym.regex_syntax::ast::parse::ParserI_P_::parse_hex_digits::he595e60fda4ada70
call sym.alloc::raw_vec::capacity_overflow::hb8123ef5e6b3b729
ud2
lea rcx, str.assertion_failed:_self.char____x__self.char____u__self.char____U
lea r8, str._usr_cargo_registry_src_index.crates.io_6f17d22bba15001f_regex_syntax_0.7.5_src_ast_parse.rs
mov edx, 0x56
call dbg.panic
ud2
Function at 0x518000
Capabilities:
Encode data using xor

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
mov rbx, r8
mov rsi, rcx
mov r14, r8
sub r14, rdx
shr r14, 3
sub rbx, rdx
je 0x51815e
movabs rax, 0x7ffffffffffffff9
cmp rbx, rax
jae 0x518205
mov rdi, rdx
movzx eax, byte [0x006101a4]
mov rcx, qword [0x00610110]
test rcx, rcx
jne 0x518063
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x5181f6
mov rcx, rax
mov qword [0x00610110], rax
xor edx, edx
mov r8, rbx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x5181f6
cmp rbx, 0xa0
jb 0x5180d9
lea rcx, [rax + r14*8]
add rcx, 0xfffffffffffffff8
xor edx, edx
cmp rcx, rax
jb 0x5180db
lea rcx, [rax + 4]
lea r8, [rax + r14*8]
add r8, 0xfffffffffffffffc
cmp r8, rcx
jb 0x5180db
movabs rcx, 0x1ffffffffffffffe
lea r8, [r14 - 1]
lea r9, [rcx + 1]
cmp r8, r9
ja 0x5180db
mov rdx, rbx
and rdx, 0xfffffffffffffff8
lea r8, [rdi + rdx]
cmp rax, r8
jae 0x51817a
mov r8, rax
add r8, rdx
cmp r8, rdi
jbe 0x51817a
xor edx, edx
mov rcx, rdx
or rcx, 1
test bl, 8
je 0x51810a
mov r8d, dword [rdi + rdx*8]
mov r9d, dword [rdi + rdx*8 + 4]
cmp r8d, r9d
mov r10d, r9d
cmovb r10d, r8d
cmova r9d, r8d
mov dword [rax + rdx*8], r10d
mov dword [rax + rdx*8 + 4], r9d
mov rdx, rcx
cmp r14, rcx
je 0x518165
nop
mov ecx, dword [rdi + rdx*8]
mov r8d, dword [rdi + rdx*8 + 4]
cmp ecx, r8d
mov r9d, r8d
cmovb r9d, ecx
cmova r8d, ecx
mov dword [rax + rdx*8], r9d
mov dword [rax + rdx*8 + 4], r8d
mov ecx, dword [rdi + rdx*8 + 8]
mov r8d, dword [rdi + rdx*8 + 0xc]
cmp ecx, r8d
mov r9d, r8d
cmovb r9d, ecx
cmova r8d, ecx
mov dword [rax + rdx*8 + 8], r9d
mov dword [rax + rdx*8 + 0xc], r8d
add rdx, 2
cmp r14, rdx
jne 0x518110
mov rcx, rdx
jmp 0x518165
xor ecx, ecx
mov eax, 4
mov qword [rsi], rax
mov qword [rsi + 8], r14
mov qword [rsi + 0x10], rcx
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
ret
and rcx, r14
xor edx, edx
movdqa xmm0, xmmword [0x0057af10]
nop word [rax + rax]
movdqu xmm1, xmmword [rdi + rdx*8]
pshufd xmm2, xmm1, 0xe8
pshufd xmm1, xmm1, 0xed
movdqa xmm3, xmm2
pxor xmm3, xmm0
movdqa xmm4, xmm1
pxor xmm4, xmm0
pcmpgtd xmm4, xmm3
movdqa xmm3, xmm4
pandn xmm3, xmm1
movdqa xmm5, xmm4
pandn xmm5, xmm2
pand xmm2, xmm4
por xmm2, xmm3
pand xmm4, xmm1
por xmm4, xmm5
punpckldq xmm2, xmm4
movdqu xmmword [rax + rdx*8], xmm2
add rdx, 2
cmp rcx, rdx
jne 0x518190
mov rdx, rcx
cmp r14, rcx
je 0x518165
jmp 0x5180db
mov ecx, 4
mov rdx, rbx
call dbg.handle_alloc_error
ud2
call sym.alloc::raw_vec::capacity_overflow::hb8123ef5e6b3b729
ud2
Function at 0x532340
Capabilities:
Encode data using xor

Disassembly:
mov rax, rdx
sub rdx, rcx
cmp rdx, 0x20
jae dbg.do_count_chars
cmp rax, rcx
je 0x532365
cmp rdx, 4
jae 0x532368
xor r8d, r8d
xor eax, eax
jmp 0x532400
xor eax, eax
ret
mov r8, rdx
and r8, 0xfffffffffffffffc
pxor xmm0, xmm0
xor eax, eax
movdqa xmm2, xmmword [0x0057b850]
movdqa xmm3, xmmword [0x0057b860]
pxor xmm1, xmm1
nop dword [rax]
movzx r9d, word [rcx + rax]
movd xmm4, r9d
movzx r9d, word [rcx + rax + 2]
movd xmm5, r9d
pcmpgtb xmm4, xmm2
punpcklbw xmm4, xmm4
pshuflw xmm4, xmm4, 0xd4
pshufd xmm4, xmm4, 0xd4
pand xmm4, xmm3
paddq xmm0, xmm4
pcmpgtb xmm5, xmm2
punpcklbw xmm5, xmm5
pshuflw xmm4, xmm5, 0xd4
pshufd xmm4, xmm4, 0xd4
pand xmm4, xmm3
paddq xmm1, xmm4
add rax, 4
cmp r8, rax
jne 0x532390
paddq xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rax, xmm0
cmp r8, rdx
je 0x532417
nop dword [rax]
xor r9d, r9d
cmp byte [rcx + r8], 0xc0
setge r9b
add rax, r9
inc r8
cmp rdx, r8
jne 0x532400
ret
Function at 0x5333b0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x48
mov rsi, rcx
mov r9, qword [rcx]
test r9, r9
je 0x53340b
mov r10, qword [rsi + 8]
mov rcx, qword [rsi + 0x10]
cmp rcx, r10
jae 0x53340b
movzx eax, byte [r9 + rcx]
cmp eax, 0x49
je 0x533426
cmp eax, 0x42
jne 0x53340b
lea r11, [rcx + 1]
mov qword [rsi + 0x10], r11
cmp r11, r10
jae 0x5334d6
cmp byte [r9 + r11], 0x5f
jne 0x5334d6
lea rax, [rcx + 2]
mov qword [rsi + 0x10], rax
xor eax, eax
jmp 0x53353e
mov rcx, rsi
xor edx, edx
call dbg.print_path
mov edi, eax
add dil, dil
mov eax, edi
add rsp, 0x48
pop rbx
pop rdi
pop rsi
pop r14
ret
inc rcx
mov qword [rsi + 0x10], rcx
mov rcx, rsi
xor edx, edx
call dbg.print_path
test al, al
jne 0x5335d1
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x533462
lea rdx, [0x005efff3]
mov r8d, 1
call dbg.pad
test al, al
jne 0x5335d1
mov rax, qword [rsi]
mov dil, 1
test rax, rax
je 0x53341a
xor r14d, r14d
lea rbx, [0x005f03a8]
nop word [rax + rax]
mov rcx, qword [rsi + 0x10]
cmp rcx, qword [rsi + 8]
jae 0x533494
cmp byte [rax + rcx], 0x45
je 0x5335fa
sub r14, 1
jb 0x5334b9
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x5334b9
mov r8d, 2
mov rdx, rbx
call dbg.pad
test al, al
jne 0x5335d1
mov rcx, rsi
call dbg.print_generic_arg
test al, al
jne 0x5335d1
mov rax, qword [rsi]
test rax, rax
jne 0x533480
jmp 0x53341a
xor eax, eax
mov edi, 0x3e
nop dword [rax]
mov r8b, 1
cmp r11, r10
jae 0x533598
movzx edx, byte [r9 + r11]
cmp dl, 0x5f
je 0x533532
lea ebx, [rdx - 0x30]
cmp bl, 0xa
jb 0x53351c
lea ebx, [rdx - 0x61]
cmp bl, 0x1a
jae 0x53350b
add dl, 0xa9
jmp 0x53351a
lea ebx, [rdx - 0x41]
cmp bl, 0x1a
jae 0x533598
add dl, 0xe3
mov ebx, edx
inc r11
mov qword [rsi + 0x10], r11
mul rdi
jo 0x533598
movzx edx, bl
add rax, rdx
jae 0x5334e0
jmp 0x533598
inc r11
mov qword [rsi + 0x10], r11
inc rax
je 0x533598
cmp rax, rcx
jae 0x533595
mov ecx, dword [rsi + 0x18]
inc ecx
cmp ecx, 0x1f4
ja 0x5335d9
cmp qword [rsi + 0x20], 0
je 0x5335f3
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movaps xmmword [rsp + 0x30], xmm1
movaps xmmword [rsp + 0x20], xmm0
mov qword [rsi + 0x10], rax
mov dword [rsi + 0x18], ecx
mov rcx, rsi
call dbg.print_path_maybe_open_generics
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
movups xmmword [rsi], xmm0
movups xmmword [rsi + 0x10], xmm1
jmp 0x53341c
mov r8b, 1
xor edi, edi
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x5335e8
lea rax, str.invalid_syntaxrecursion_limit_reached
lea rdx, [0x005f0368]
test r8b, r8b
cmovne rdx, rax
xor r8b, 1
movzx eax, r8b
lea r8, [rax + rax*8]
add r8, 0x10
call dbg.pad
test al, al
je 0x5335e8
mov dil, 2
jmp 0x53341a
mov dil, 1
xor r8d, r8d
mov rcx, qword [rsi + 0x20]
test rcx, rcx
jne 0x5335a3
mov qword [rsi], 0
mov byte [rsi + 8], dil
xor edi, edi
jmp 0x53341a
inc rcx
mov qword [rsi + 0x10], rcx
jmp 0x53341a
Function at 0x535ca0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x20
movzx eax, byte [0x00610118]
test al, al
je 0x535e3f
cmp edx, 3
je 0x535cc7
test edx, edx
jne 0x535e3f
mov rbx, qword [0x00610120]
test rbx, rbx
je 0x535e3f
xor r14d, r14d
jmp 0x535ce9
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x535d1d
mov esi, dword [rbx + 0x18]
mov r15, qword [rbx]
test r15, r15
je 0x535e8a
dec esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
test rax, rax
je 0x535ce0
mov rdi, rax
mov ecx, esi
xor edx, edx
call fcn.00573844
mov rcx, rdi
call r15
mov r14b, 1
jmp 0x535ce0
test r14b, 1
je 0x535e3f
mov rbx, qword [0x00610120]
test rbx, rbx
je 0x535e3f
xor r14d, r14d
jmp 0x535d49
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x535d7d
mov esi, dword [rbx + 0x18]
mov r15, qword [rbx]
test r15, r15
je 0x535e8a
dec esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
test rax, rax
je 0x535d40
mov rdi, rax
mov ecx, esi
xor edx, edx
call fcn.00573844
mov rcx, rdi
call r15
mov r14b, 1
jmp 0x535d40
test r14b, 1
je 0x535e3f
mov rbx, qword [0x00610120]
test rbx, rbx
je 0x535e3f
xor r14d, r14d
jmp 0x535da9
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x535ddd
mov esi, dword [rbx + 0x18]
mov r15, qword [rbx]
test r15, r15
je 0x535e8a
dec esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
test rax, rax
je 0x535da0
mov rdi, rax
mov ecx, esi
xor edx, edx
call fcn.00573844
mov rcx, rdi
call r15
mov r14b, 1
jmp 0x535da0
test r14b, 1
je 0x535e3f
mov rbx, qword [0x00610120]
test rbx, rbx
je 0x535e3f
xor r14d, r14d
jmp 0x535e09
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x535e39
mov esi, dword [rbx + 0x18]
mov r15, qword [rbx]
test r15, r15
je 0x535e8a
dec esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
test rax, rax
je 0x535e00
mov rdi, rax
mov ecx, esi
xor edx, edx
call fcn.00573844
mov rcx, rdi
call r15
mov r14b, 1
jmp 0x535e00
test r14b, 1
jne 0x535e4b
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
mov rbx, qword [0x00610120]
jmp 0x535e58
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x535e3f
mov esi, dword [rbx + 0x18]
mov r14, qword [rbx]
test r14, r14
je 0x535e8a
dec esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
test rax, rax
je 0x535e54
mov rdi, rax
mov ecx, esi
xor edx, edx
call fcn.00573844
mov rcx, rdi
call r14
jmp 0x535e54
lea rcx, str.called__Option::unwrap____on_a__None__value_usr_cargo_registry_src_index.crates.io_6f17d22bba15001f_chrono_0.4.28_src_offset_fixed.rs
lea r8, str.library_std_src_syswindows_thread_local_key.rs
mov edx, 0x2b
call dbg.panic
ud2
Function at 0x536b80
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x48
mov ecx, dword [0x005760c0]
test ecx, ecx
je 0x536bb0
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
jbe 0x536bc9
mov rdi, rax
cmp qword [rax + 8], 0
je 0x536bc9
add rdi, 0x10
jmp 0x536cbd
lea rcx, dbg.destroy_value_core::cell::RefCell_core::option::Option_std::sys_common::thread_info::ThreadInfo___
call dbg.init
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
ja 0x536b9d
mov ecx, dword [0x005760c0]
test ecx, ecx
je 0x536c9e
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
je 0x536cbb
mov rsi, rax
test rax, rax
jne 0x536c6e
mov qword [rsp + 0x30], 0
lea rax, dbg.destroy_value_core::cell::RefCell_core::option::Option_std::sys_common::thread_info::ThreadInfo___
mov qword [rsp + 0x28], rax
movzx eax, byte [0x006101a4]
mov rcx, qword [0x00610110]
test rcx, rcx
jne 0x536c30
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x536cd7
mov rcx, rax
mov qword [0x00610110], rax
mov r8d, 0x20
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x536cd7
mov rsi, rax
movups xmm0, xmmword [rsp + 0x28]
movups xmm1, xmmword [rsp + 0x38]
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
mov ecx, dword [0x005760c0]
test ecx, ecx
je 0x536cc7
dec ecx
mov rdx, rsi
call fcn.00573844
lea rdi, [rsi + 0x10]
cmp qword [rsi + 8], 0
mov rcx, qword [rsi + 0x18]
mov qword [rsi + 8], 1
xorps xmm0, xmm0
movups xmmword [rsi + 0x10], xmm0
je 0x536cbd
test rcx, rcx
je 0x536cbd
lock dec qword [rcx]
jne 0x536cbd
call dbg.drop_slow<std::thread::Inner, alloc::alloc::Global>
jmp 0x536cbd
lea rcx, dbg.destroy_value_core::cell::RefCell_core::option::Option_std::sys_common::thread_info::ThreadInfo___
call dbg.init
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
jne 0x536be8
xor edi, edi
mov rax, rdi
add rsp, 0x48
pop rdi
pop rsi
ret
lea rcx, dbg.destroy_value_core::cell::RefCell_core::option::Option_std::sys_common::thread_info::ThreadInfo___
call dbg.init
mov ecx, eax
jmp 0x536c66
mov ecx, 8
mov edx, 0x20
call dbg.handle_alloc_error
ud2