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

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x28
mov rax, rdx
mov rsi, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x80]
mov ebx, ecx
shr ebx, 8
lea r8, [rax + r8*2]
xor r11d, r11d
mov r15, rax
movzx r14d, byte [rax + 1]
add rax, 2
lea r10, [r11 + r14]
cmp byte [r15], bl
jne 0x42c540
cmp r10, r11
jb 0x42c5b6
cmp r10, rdx
ja 0x42c5ca
add r11, r9
xor r15d, r15d
nop word cs:[rax + rax]
cmp r14, r15
je 0x42c542
lea r12, [r15 + 1]
cmp byte [r11 + r15], cl
mov r15, r12
jne 0x42c520
jmp 0x42c5a4
ja 0x42c54a
mov r11, r10
cmp rax, r8
jne 0x42c4e4
add rsi, rdi
movzx ecx, cx
mov al, 1
nop word cs:[rax + rax]
lea r8, [rdi + 1]
movzx edx, byte [rdi]
test dl, dl
js 0x42c580
mov rdi, r8
sub ecx, edx
jns 0x42c59b
jmp 0x42c5a6
cmp r8, rsi
je 0x42c5db
movzx r8d, byte [rdi + 1]
add rdi, 2
and edx, 0x7f
shl edx, 8
or edx, r8d
sub ecx, edx
js 0x42c5a6
xor al, 1
cmp rdi, rsi
jne 0x42c560
jmp 0x42c5a6
xor eax, eax
and al, 1
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea r8, str.librarycore_srcunicodeprintable.rs
mov rcx, r11
mov rdx, r10
call fcn.004295e0
ud2
lea r8, str.librarycore_srcunicodeprintable.rs
mov rcx, r10
call fcn.00428b90
ud2
lea rcx, str.called__Option::unwrap____on_a__None__value_rustc_90c541806f23a127002de5b4038be731ba1458calibrary_std_src_threadmod.rs
lea r8, str.librarycore_srcunicodeprintable.rs
mov edx, 0x2b
call fcn.00428f60
ud2

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

Disassembly:
push rsi
push rdi
sub rsp, 0x38
lea rcx, [0x00494018]
call fcn.0043ec9b
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jbe 0x42fc49
mov rdi, rax
cmp qword [rax], 0
je 0x42fc49
add rdi, 8
jmp 0x42fcc6
lea rdi, [0x00494018]
mov rcx, rdi
call fcn.0043ec9b
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
je 0x42fcc4
mov rsi, rax
test rax, rax
jne 0x42fc99
mov ecx, 0x18
mov edx, 8
call fcn.0040761e
mov rsi, rax
and qword [rax], 0
mov qword [rax + 0x10], rdi
mov rcx, rdi
call fcn.0043ec9b
mov ecx, eax
mov rdx, rsi
call sub.KERNEL32.dll_TlsSetValue
call fcn.0042f21c
call fcn.0042f295
movups xmm0, xmmword [rsi]
lea rdi, [rsi + 8]
lea rcx, [rsp + 0x28]
movups xmmword [rcx], xmm0
mov qword [rsi], 1
mov qword [rsi + 8], rax
call fcn.0042f32d
jmp 0x42fcc6
xor edi, edi
mov rax, rdi
add rsp, 0x38
pop rdi
pop rsi
ret

Function at 0x437c34
Capabilities:
Hash data using fnv

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rdx
mov rdi, rcx
mov rbx, qword [rcx + 0x18]
xor ecx, ecx
test rbx, rbx
setne cl
call 0x437c7f
test rbx, rbx
je 0x437c6d
mov rdx, qword [rdi]
mov r8, qword [rdi + 8]
mov rcx, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
jmp 0x437ca2
movzx ecx, byte [rdi]
mov rdx, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
jmp 0x437c7f
sub rsp, 0x28
mov rax, rdx
lea rdx, [rsp + 0x20]
mov qword [rdx], rcx
mov r8d, 8
mov rcx, rax
call 0x437ca2
nop
add rsp, 0x28
ret
mov rax, qword [rcx]
xor r9d, r9d
movabs r10, 0x100000001b3
cmp r8, r9
je 0x437cc8
movzx r11d, byte [rdx + r9]
xor rax, r11
imul rax, r10
inc r9
jmp 0x437cb2
mov qword [rcx], rax
ret
Function at 0x437ca2
Capabilities:
Hash data using fnv

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rdx
mov rdi, rcx
mov rbx, qword [rcx + 0x18]
xor ecx, ecx
test rbx, rbx
setne cl
call 0x437c7f
test rbx, rbx
je 0x437c6d
mov rdx, qword [rdi]
mov r8, qword [rdi + 8]
mov rcx, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
jmp 0x437ca2
movzx ecx, byte [rdi]
mov rdx, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
jmp 0x437c7f
sub rsp, 0x28
mov rax, rdx
lea rdx, [rsp + 0x20]
mov qword [rdx], rcx
mov r8d, 8
mov rcx, rax
call 0x437ca2
nop
add rsp, 0x28
ret
mov rax, qword [rcx]
xor r9d, r9d
movabs r10, 0x100000001b3
cmp r8, r9
je 0x437cc8
movzx r11d, byte [rdx + r9]
xor rax, r11
imul rax, r10
inc r9
jmp 0x437cb2
mov qword [rcx], rax
ret

Function at 0x43e4ae
Capabilities:
Get system information on windows

Disassembly:
push rsi
sub rsp, 0x50
xorps xmm0, xmm0
lea rsi, [rsp + 0x20]
movaps xmmword [rsi + 0x20], xmm0
movaps xmmword [rsi + 0x10], xmm0
movaps xmmword [rsi], xmm0
mov rcx, rsi
call sub.KERNEL32.dll_GetSystemInfo
mov eax, dword [rsi + 0x20]
add rsp, 0x50
pop rsi
ret

Function at 0x43ec9b
Capabilities:
Allocate thread local storage

Disassembly:
mov eax, dword [rcx + 0x18]
test eax, eax
je fcn.0044fe50
dec eax
ret
Function at 0x43f813
Capabilities:
Encrypt data using salsa20 or chacha

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0xa0
mov rsi, rdx
mov rdi, rcx
xorps xmm0, xmm0
lea rcx, [rsp + 0x20]
movaps xmmword [rcx + 0x10], xmm0
movaps xmmword [rcx], xmm0
call fcn.00441ca2
test rax, rax
je 0x43f84f
mov edx, 4
mov rcx, rax
call fcn.004244e0
mov rax, qword [rdi + 0x30]
jmp 0x43f88c
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
lea rdx, [rsp + 0x40]
movaps xmmword [rdx + 0x10], xmm1
movaps xmmword [rdx], xmm0
lea rbx, [rsp + 0x70]
mov rcx, rbx
call fcn.0043ec2e
mov rax, qword [rdi + 0x30]
movaps xmm0, xmmword [rbx]
movaps xmm1, xmmword [rbx + 0x10]
movaps xmm2, xmmword [rbx + 0x20]
movaps xmmword [rdi], xmm0
movaps xmmword [rdi + 0x10], xmm1
movaps xmmword [rdi + 0x20], xmm2
and qword [rdi + 0x40], 0
add rax, 0xffffffffffffff00
mov qword [rdi + 0x38], rax
mov rcx, rdi
mov rdx, rsi
add rsp, 0xa0
pop rbx
pop rdi
pop rsi
jmp fcn.0043ecf6
Function at 0x43f8b0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0xd0
mov rdi, rcx
lea rcx, [0x00494058]
call fcn.0043ec9b
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jbe 0x43f8e3
mov rsi, rax
cmp qword [rax], 0
jne 0x43fa6f
lea rbx, [0x00494058]
mov rcx, rbx
call fcn.0043ec9b
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
je 0x43fa6d
mov rsi, rax
test rax, rax
jne 0x43f937
mov ecx, 0x10
mov edx, 8
call fcn.0040761e
mov rsi, rax
and qword [rax], 0
mov qword [rax + 8], rbx
mov rcx, rbx
call fcn.0043ec9b
mov ecx, eax
mov rdx, rsi
call sub.KERNEL32.dll_TlsSetValue
test rdi, rdi
je 0x43f953
mov rbx, qword [rdi]
and qword [rdi], 0
test rbx, rbx
jne 0x43fa60
xor ecx, ecx
call fcn.0043ec0e
xorps xmm0, xmm0
lea rdi, [rsp + 0x20]
movaps xmmword [rdi + 0x10], xmm0
movaps xmmword [rdi], xmm0
mov rcx, rdi
call fcn.00441ca2
test rax, rax
jne 0x43fa7d
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
lea rdi, [rsp + 0x50]
movaps xmmword [rdi + 0x10], xmm1
movaps xmmword [rdi], xmm0
lea rbx, [rsp + 0xa0]
mov rcx, rbx
mov rdx, rdi
call fcn.0043ec2e
movaps xmm0, xmmword [rbx]
movaps xmm1, xmmword [rbx + 0x10]
movaps xmm2, xmmword [rbx + 0x20]
movaps xmmword [rsp + 0x40], xmm2
movaps xmmword [rsp + 0x30], xmm1
movaps xmmword [rsp + 0x20], xmm0
movups xmmword [rbx - 8], xmm0
movups xmmword [rbx + 8], xmm1
movups xmmword [rbx + 0x18], xmm2
movups xmm0, xmmword [rbx - 0x10]
movaps xmmword [rdi], xmm0
movups xmm0, xmmword [rbx]
movaps xmmword [rdi + 0x10], xmm0
movups xmm0, xmmword [rbx + 0x10]
movaps xmmword [rdi + 0x20], xmm0
mov rax, qword [rbx + 0x20]
mov qword [rdi + 0x30], rax
mov ecx, 0x170
mov edx, 0x10
call fcn.0040761e
mov rbx, rax
mov eax, 1
mov qword [rbx], rax
mov qword [rbx + 8], rax
lea rcx, [rbx + 0x10]
mov r8d, 0x100
xor edx, edx
call sub.ntdll.dll_memset
mov qword [rbx + 0x110], 0x40
movaps xmm0, xmmword [rdi]
movaps xmm1, xmmword [rdi + 0x10]
movaps xmm2, xmmword [rdi + 0x20]
movups xmmword [rbx + 0x118], xmm0
movups xmmword [rbx + 0x128], xmm1
movups xmmword [rbx + 0x138], xmm2
mov rax, qword [rdi + 0x30]
mov qword [rbx + 0x148], rax
mov eax, 0x10000
mov qword [rbx + 0x150], rax
mov qword [rbx + 0x158], rax
and qword [rbx + 0x160], 0
mov rcx, qword [rsi]
mov qword [rsi], rbx
call fcn.0043ec0e
jmp 0x43fa6f
xor esi, esi
mov rax, rsi
add rsp, 0xd0
pop rbx
pop rdi
pop rsi
ret
mov qword [rsp + 0x20], rax
lea rax, [0x004a1710]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
mov qword [rax], rdi
lea rdx, str.could_not_initialize_thread_rng:
lea rcx, [rsp + 0x90]
mov qword [rcx + 0x10], rdx
mov edx, 1
mov qword [rcx + 0x18], rdx
and qword [rcx], 0
lea r8, [0x00441c43]
mov qword [rax + 8], r8
mov qword [rcx + 0x20], rax
mov qword [rcx + 0x28], rdx
lea rdx, str._cargo_registry_src_index.crates.io_6f17d22bba15001f_rand_0.8.5_src_rngs_thread.rs
call fcn.00428180
ud2
Function at 0x441ca2
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 0x441d2d
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 0x441cc2
mov ebx, eax
mov rcx, r14
mov edx, r15d
call sub.ADVAPI32.dll_SystemFunction036
test al, al
jne 0x441cc2
xor ebx, 0x80000000
je 0x441d2b
mov ecx, 4
mov edx, 4
call fcn.00424450
test rax, rax
je 0x441d40
mov rsi, rax
mov dword [rax], ebx
jmp 0x441d2d
xor esi, esi
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.00426000
ud2

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

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rcx
lea rcx, [0x00494178]
call fcn.0043ec9b
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jbe 0x443423
cmp qword [rax], 0
je 0x443423
add rax, 8
jmp 0x44349f
lea rbx, [0x00494178]
mov rcx, rbx
call fcn.0043ec9b
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
je 0x44348a
mov rdi, rax
test rax, rax
jne 0x443473
mov ecx, 0x18
mov edx, 8
call fcn.00441ec5
mov rdi, rax
and qword [rax], 0
mov qword [rax + 0x10], rbx
mov rcx, rbx
call fcn.0043ec9b
mov ecx, eax
mov rdx, rdi
call sub.KERNEL32.dll_TlsSetValue
test rsi, rsi
je 0x44348e
mov rcx, qword [rsi]
and qword [rsi], 0
test rcx, rcx
je 0x443490
mov rcx, qword [rsi + 8]
jmp 0x443490
xor eax, eax
jmp 0x44349f
xor ecx, ecx
lea rax, [rdi + 8]
mov qword [rdi], 1
mov qword [rdi + 8], rcx
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
Function at 0x44597f
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x30
mov rsi, rcx
lea rcx, [0x00494078]
call fcn.0043ec9b
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jbe 0x4459b1
cmp qword [rax], 0
je 0x4459b1
add rax, 8
jmp 0x445a6f
lea rbx, [0x00494078]
mov rcx, rbx
call fcn.0043ec9b
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
je 0x445a6d
mov rdi, rax
test rax, rax
jne 0x445a05
mov ecx, 0x28
mov edx, 8
call fcn.00441ec5
mov rdi, rax
and qword [rax], 0
mov qword [rax + 0x20], rbx
mov rcx, rbx
call fcn.0043ec9b
mov ecx, eax
mov rdx, rdi
call sub.KERNEL32.dll_TlsSetValue
test rsi, rsi
je 0x445a37
mov rax, qword [rsi]
and qword [rsi], 0
test rax, rax
je 0x445a37
mov r9, qword [rsi + 8]
mov r8b, byte [rsi + 0x10]
mov dl, byte [rsi + 0x11]
movzx eax, word [rsi + 0x16]
mov word [rsp + 0x2c], ax
mov eax, dword [rsi + 0x12]
mov dword [rsp + 0x28], eax
mov rcx, qword [rsi + 0x18]
jmp 0x445a41
xor ecx, ecx
xor edx, edx
xor r8d, r8d
xor r9d, r9d
mov qword [rdi], 1
lea rax, [rdi + 8]
mov qword [rdi + 8], r9
mov byte [rdi + 0x10], r8b
mov byte [rdi + 0x11], dl
mov edx, dword [rsp + 0x28]
mov dword [rdi + 0x12], edx
movzx edx, word [rsp + 0x2c]
mov word [rdi + 0x16], dx
mov qword [rdi + 0x18], rcx
jmp 0x445a6f
xor eax, eax
add rsp, 0x30
pop rbx
pop rdi
pop rsi
ret
Function at 0x44a200
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 0x44a25b
mov r10, qword [rsi + 8]
mov rcx, qword [rsi + 0x10]
cmp rcx, r10
jae 0x44a25b
movzx eax, byte [r9 + rcx]
cmp eax, 0x49
je 0x44a276
cmp eax, 0x42
jne 0x44a25b
lea r11, [rcx + 1]
mov qword [rsi + 0x10], r11
cmp r11, r10
jae 0x44a326
cmp byte [r9 + r11], 0x5f
jne 0x44a326
lea rax, [rcx + 2]
mov qword [rsi + 0x10], rax
xor eax, eax
jmp 0x44a38e
mov rcx, rsi
xor edx, edx
call fcn.00445c90
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 fcn.00445c90
test al, al
jne 0x44a421
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x44a2b2
lea rdx, [0x004a2063]
mov r8d, 1
call fcn.00428c20
test al, al
jne 0x44a421
mov rax, qword [rsi]
mov dil, 1
test rax, rax
je 0x44a26a
xor r14d, r14d
lea rbx, [0x004a243e]
nop word [rax + rax]
mov rcx, qword [rsi + 0x10]
cmp rcx, qword [rsi + 8]
jae 0x44a2e4
cmp byte [rax + rcx], 0x45
je 0x44a443
sub r14, 1
jb 0x44a309
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x44a309
mov r8d, 2
mov rdx, rbx
call fcn.00428c20
test al, al
jne 0x44a421
mov rcx, rsi
call fcn.0044a460
test al, al
jne 0x44a421
mov rax, qword [rsi]
test rax, rax
jne 0x44a2d0
jmp 0x44a26a
xor eax, eax
mov edi, 0x3e
nop dword [rax]
mov r8b, 1
cmp r11, r10
jae 0x44a3e8
movzx edx, byte [r9 + r11]
cmp dl, 0x5f
je 0x44a382
lea ebx, [rdx - 0x30]
cmp bl, 0xa
jb 0x44a36c
lea ebx, [rdx - 0x61]
cmp bl, 0x1a
jae 0x44a35b
add dl, 0xa9
jmp 0x44a36a
lea ebx, [rdx - 0x41]
cmp bl, 0x1a
jae 0x44a3e8
add dl, 0xe3
mov ebx, edx
inc r11
mov qword [rsi + 0x10], r11
mul rdi
jo 0x44a3e8
movzx edx, bl
add rax, rdx
jae 0x44a330
jmp 0x44a3e8
inc r11
mov qword [rsi + 0x10], r11
inc rax
je 0x44a3e8
cmp rax, rcx
jae 0x44a3e5
mov ecx, dword [rsi + 0x18]
inc ecx
cmp ecx, 0x1f4
ja 0x44a43b
cmp qword [rsi + 0x20], 0
je 0x44a44f
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 fcn.0044a200
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
movups xmmword [rsi], xmm0
movups xmmword [rsi + 0x10], xmm1
jmp 0x44a26c
mov r8b, 1
xor edi, edi
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x44a429
lea rax, [0x004a2409]
lea rdx, str.recursion_limit_reachedinvalid_syntax
test r8b, r8b
cmovne rdx, rax
xor r8b, 1
movzx eax, r8b
lea r8, [rax + rax*8]
or r8, 0x10
call fcn.00428c20
test al, al
je 0x44a429
mov dil, 2
jmp 0x44a26a
mov qword [rsi], 0
mov byte [rsi + 8], dil
xor edi, edi
jmp 0x44a26a
mov dil, 1
xor r8d, r8d
jmp 0x44a3ea
inc rcx
mov qword [rsi + 0x10], rcx
jmp 0x44a26a
xor edi, edi
jmp 0x44a26a
Function at 0x44e3b8
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 0x44e3e4
xor eax, eax
jmp 0x44e3e9
call fcn.0043d7cc
nop
add rsp, 0x38
ret

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

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov ecx, dword [0x00494150]
test ecx, ecx
je 0x44f821
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jbe 0x44f783
mov rdi, rax
cmp qword [rax], 0
je 0x44f783
add rdi, 8
jmp 0x44f817
mov ecx, dword [0x00494150]
test ecx, ecx
je 0x44f834
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
je 0x44f815
mov rsi, rax
test rax, rax
jne 0x44f7e7
mov ecx, 0x20
mov edx, 8
call fcn.00424450
test rax, rax
je 0x44f857
mov rsi, rax
mov qword [rax], 0
lea rax, [0x00494138]
mov qword [rsi + 0x18], rax
mov ecx, dword [0x00494150]
test ecx, ecx
je 0x44f847
dec ecx
mov rdx, rsi
call sub.KERNEL32.dll_TlsSetValue
lea rdi, [rsi + 8]
cmp qword [rsi], 0
mov rcx, qword [rsi + 0x10]
mov qword [rsi], 1
xorps xmm0, xmm0
movups xmmword [rsi + 8], xmm0
je 0x44f817
test rcx, rcx
je 0x44f817
lock dec qword [rcx]
jne 0x44f817
call fcn.0044f890
jmp 0x44f817
xor edi, edi
mov rax, rdi
add rsp, 0x28
pop rdi
pop rsi
ret
lea rcx, [0x00494138]
call fcn.0044fe50
mov ecx, eax
jmp 0x44f766
lea rcx, [0x00494138]
call fcn.0044fe50
mov ecx, eax
jmp 0x44f793
lea rcx, [0x00494138]
call fcn.0044fe50
mov ecx, eax
jmp 0x44f7df
mov ecx, 0x20
mov edx, 8
call fcn.00426000
ud2
Function at 0x44fe50
Capabilities:
Allocate thread local storage

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x60
mov rsi, rcx
cmp qword [rcx], 0
je 0x44fece
mov dword [rsp + 0x2c], 0
lea rbx, [rsi + 0x10]
lea r8, [rsp + 0x2c]
mov rcx, rbx
xor edx, edx
xor r9d, r9d
call sub.KERNEL32.dll_InitOnceBeginInitialize
mov dword [rsp + 0x28], eax
cmp eax, 1
jne 0x44ff0f
cmp dword [rsp + 0x2c], 0
je 0x44fef3
call sub.KERNEL32.dll_TlsAlloc
cmp eax, 0xffffffff
je 0x44ff37
mov edi, eax
inc eax
mov dword [rsi + 0x18], eax
mov rax, qword [0x004b8158]
nop
mov qword [rsi + 8], rax
lock cmpxchg qword [0x004b8158], rsi
jne 0x44feb0
mov rcx, rbx
xor edx, edx
xor r8d, r8d
call sub.KERNEL32.dll_InitOnceComplete
jmp 0x44ff05
call sub.KERNEL32.dll_TlsAlloc
mov dword [rsp + 0x28], eax
cmp eax, 0xffffffff
je 0x44ff8d
mov ecx, eax
inc ecx
xor eax, eax
lock cmpxchg dword [rsi + 0x18], ecx
jne 0x44fef8
mov edi, dword [rsp + 0x28]
jmp 0x44ff05
mov edi, dword [rsi + 0x18]
jmp 0x44ff03
mov edi, eax
mov ecx, dword [rsp + 0x28]
call sub.KERNEL32.dll_TlsFree
dec edi
mov eax, edi
add rsp, 0x60
pop rbx
pop rdi
pop rsi
ret
mov qword [rsp + 0x40], 0
lea rdx, [0x004a5c08]
lea r9, str.library_std_src_syswindows_thread_local_key.rs
lea rcx, [rsp + 0x28]
lea r8, [rsp + 0x30]
call fcn.00450000
ud2
mov rcx, rbx
mov edx, 4
xor r8d, r8d
call sub.KERNEL32.dll_InitOnceComplete
lea rax, str.out_of_TLS_indexes
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 1
mov qword [rsp + 0x30], 0
lea rax, str._rustc_90c541806f23a127002de5b4038be731ba1458calibrarycore_src_sync_atomic.rsthere_is_no_such_thing_as_an_acquire_release_store
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 0
lea rdx, str.library_std_src_syswindows_thread_local_key.rs
lea rcx, [rsp + 0x30]
call fcn.00428180
ud2
mov qword [rsp + 0x30], 0
lea rax, str.out_of_TLS_indexes
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 1
lea rax, str._rustc_90c541806f23a127002de5b4038be731ba1458calibrarycore_src_sync_atomic.rsthere_is_no_such_thing_as_an_acquire_release_store
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 0
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x30]
call fcn.00450060
ud2
Function at 0x450230
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
sub rsp, 0x60
mov rax, qword [rcx]
cmp byte [rax], 0
mov byte [rax], 0
je 0x450473
mov byte [rsp + 0x37], 0
mov rax, qword [0x004b80c8]
cmp rax, 3
jne 0x45040b
cmp byte [rsp + 0x37], 0
jne 0x450420
mov ecx, dword [0x004940f8]
test ecx, ecx
je 0x45043a
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jbe 0x45028d
mov rsi, rax
cmp byte [rax + 8], 0
jne 0x450322
mov ecx, dword [0x004940f8]
test ecx, ecx
je 0x45044d
dec ecx
call sub.KERNEL32.dll_TlsGetValue
test rax, rax
je 0x4502db
mov rsi, rax
cmp rax, 1
jne 0x45031c
lea rax, [0x004a3b58]
mov qword [rsp + 0x20], rax
lea rcx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_90c541806f23a127002de5b4038be731ba1458calibrary_std_src_threadlocal.rs
lea r9, [0x004a2ef0]
lea r8, [rsp + 0x38]
mov edx, 0x46
call fcn.00429b90
ud2
mov ecx, 0x10
mov edx, 8
call fcn.00424450
test rax, rax
je 0x4504b8
mov rsi, rax
lea rax, [0x004940e0]
mov qword [rsi], rax
mov byte [rsi + 8], 0
mov ecx, dword [0x004940f8]
test ecx, ecx
je 0x450460
dec ecx
mov rdx, rsi
call sub.KERNEL32.dll_TlsSetValue
mov word [rsi + 8], 1
add rsi, 9
mov rax, qword [0x004b8090]
cmp rax, rsi
jne 0x450356
mov eax, dword [0x004b80c0]
inc eax
jne 0x450376
lea rcx, str.lock_count_overflow_in_reentrant_mutexlibrary_std_src_sync_remutex.rs
lea r8, [0x004a4638]
mov edx, 0x26
call fcn.0042abe0
ud2
lea rcx, [0x004b8088]
call sub.KERNEL32.dll_TryAcquireSRWLockExclusive
test al, al
je 0x450420
mov qword [0x004b8090], rsi
mov eax, 1
mov dword [0x004b80c0], eax
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], 1
mov qword [rsp + 0x50], 0
mov dword [rsp + 0x58], 0
mov word [rsp + 0x5c], 0
cmp qword [0x004b8098], 0
jne 0x45048d
mov qword [0x004b8098], 0xffffffffffffffff
lea rcx, [0x004b80a0]
call fcn.004505b0
movups xmm0, xmmword [rsp + 0x40]
movups xmm1, xmmword [rsp + 0x50]
movups xmmword [0x004b80b0], xmm1
movups xmmword [0x004b80a0], xmm0
inc qword [0x004b8098]
dec dword [0x004b80c0]
jne 0x450420
mov qword [0x004b8090], 0
lea rcx, [0x004b8088]
call fcn.004914b8
jmp 0x450420
lea rcx, [rsp + 0x37]
call fcn.00450520
cmp byte [rsp + 0x37], 0
je 0x450265
mov rax, qword [0x004b8130]
cmp rax, 3
jne 0x450433
call qword [0x004b8138]
nop
add rsp, 0x60
pop rsi
ret
lea rcx, [0x004940e0]
call fcn.0044fe50
mov ecx, eax
jmp 0x450275
lea rcx, [0x004940e0]
call fcn.0044fe50
mov ecx, eax
jmp 0x45029d
lea rcx, [0x004940e0]
call fcn.0044fe50
mov ecx, eax
jmp 0x450314
lea rcx, str.called__Option::unwrap____on_a__None__value_rustc_90c541806f23a127002de5b4038be731ba1458calibrary_std_src_threadmod.rs
lea r8, str.library_std_src_synconce.rs
mov edx, 0x2b
call fcn.00428f60
ud2
lea rax, str.library_std_srcio_stdio.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x004a717a]
lea r9, [0x004a2f10]
lea r8, [rsp + 0x38]
mov edx, 0x10
call fcn.00429b90
ud2
mov ecx, 0x10
mov edx, 8
call fcn.00426000
ud2
Function at 0x451850
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
sub rsp, 0x20
mov ecx, dword [0x00494170]
test ecx, ecx
je 0x4518f9
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jbe 0x45187c
cmp qword [rax], 0
je 0x45187c
add rax, 8
jmp 0x4518f3
mov ecx, dword [0x00494170]
test ecx, ecx
je 0x45190c
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
je 0x4518f1
mov rsi, rax
test rax, rax
jne 0x4518dc
mov ecx, 0x18
mov edx, 8
call fcn.00424450
test rax, rax
je 0x45192f
mov rsi, rax
mov qword [rax], 0
lea rax, [0x00494158]
mov qword [rsi + 0x10], rax
mov ecx, dword [0x00494170]
test ecx, ecx
je 0x45191f
dec ecx
mov rdx, rsi
call sub.KERNEL32.dll_TlsSetValue
lea rax, [rsi + 8]
mov qword [rsi], 1
mov qword [rsi + 8], 0
jmp 0x4518f3
xor eax, eax
add rsp, 0x20
pop rsi
ret
lea rcx, [0x00494158]
call fcn.0044fe50
mov ecx, eax
jmp 0x451865
lea rcx, [0x00494158]
call fcn.0044fe50
mov ecx, eax
jmp 0x45188c
lea rcx, [0x00494158]
call fcn.0044fe50
mov ecx, eax
jmp 0x4518d4
mov ecx, 0x18
mov edx, 8
call fcn.00426000
ud2