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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x24
mov esi, ecx
lea ecx, [esp + 0xc]
push dword [esp + 0x38]
call fcn.10038170
add esp, 4
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp edx, 0x80000000
jne 0x100356de
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp], closesocket
jmp 0x10035700
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], ecx
mov ecx, esp
lea edx, [esp + 0x18]
mov dword [esp + 0x1c], eax
call fcn.10028a90
mov edi, dword [esp]
cmp edi, 0x80000000
jne 0x10035712
mov ecx, esp
call fcn.10004ed0
mov dword [esi], closesocket
add esp, 0x24
jmp 0x1003574b
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 8]
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x10035733
mov dword [esi], edi
mov dword [esi + 4], ebx
mov dword [esi + 8], ebp
add esp, 0x24
jmp 0x1003574b
test edi, edi
mov dword [esi], closesocket
je 0x1003572e
add edi, edi
push 2
push edi
push ebx
call sym.kso.dll___rust_dealloc
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret

Function at 0x10036430
Capabilities:
Generate random numbers via rtlgenrandom

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x60
mov esi, esp
mov dword [esi + 0x48], ebp
mov dword [esi + 0x4c], esp
mov dword [esi + 0x58], 0xffffffff
mov dword [esi + 0x54], 0x1003ceb0
mov edi, ecx
lea eax, [esi + 0x50]
xorps xmm0, xmm0
mov ecx, dword fs:[0]
mov dword [esi + 0x50], ecx
mov dword fs:[0], eax
movaps xmmword [esi + 0x10], xmm0
lea eax, [esi + 0x10]
push 0x10
push eax
call dword [sym.imp.ADVAPI32.dll_SystemFunction036]
test al, al
je 0x100364ae
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x18]
mov ebx, dword [esi + 0x1c]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x50]
mov dword fs:[0], eax
mov dword [edi + 0xc], ebx
mov dword [edi + 8], edx
mov dword [edi + 4], ecx
mov eax, dword [esi + 4]
mov dword [edi], eax
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov byte [esi + 8], 0
mov dword [esi + 0xc], eax
lea eax, [esi + 8]
mov dword [esi + 0x30], 0x10080f5c
mov dword [esi + 0x34], 1
mov dword [esi + 0x40], 0
mov dword [esi + 0x58], 0
mov dword [esi + 0x28], eax
lea eax, [esi + 0x28]
mov dword [esi + 0x2c], sym.kso.dll___std::io::error::Error_as_core::fmt::Display_::fmt::hc311fd6605f5ab1e
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], 1
lea eax, [esi + 0x30]
push 0x10080f8c
push eax
call sym.kso.dll_core::panicking::panic_fmt::h502dc0a95427940e
add esp, 8
ud2
Function at 0x10037180
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1c
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x14], 0x1003cee0
lea eax, [ebp - 0x18]
mov ebx, dword [ebp + 0x10]
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
movzx eax, byte [sym.kso.dll___rust_no_alloc_shim_is_unstable]
push 4
push 8
call sym.kso.dll___rust_alloc
add esp, 8
test eax, eax
je 0x10037262
mov esi, eax
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
mov dword [esi], ebx
mov dword [esi + 4], ecx
push 0
push 0x10000
push esi
push 0x100372e0
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
test eax, eax
je 0x100371fd
mov dword [edi + 4], eax
mov byte [edi], 4
jmp 0x1003724f
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x10], 1
mov dword [ebp - 0x24], eax
push eax
mov dword [ebp - 0x20], ecx
call dword [ecx]
add esp, 4
mov ecx, dword [ebp - 0x20]
mov edi, dword [ebp + 8]
mov eax, dword [ecx + 4]
test eax, eax
je 0x10037234
push dword [ecx + 8]
push eax
push dword [ebp - 0x24]
call sym.kso.dll___rust_dealloc
add esp, 0xc
push 4
push 8
push dword [ebp - 0x28]
call sym.kso.dll___rust_dealloc
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov byte [edi], 0
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, edi
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebp - 0x10], 0
push 8
push 4
call sym.kso.dll_alloc::alloc::handle_alloc_error::h0f7631ec9b341a7f
add esp, 8
ud2
Function at 0x10037570
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x14
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x14], 0x1003cf10
lea eax, [ebp - 0x18]
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
movzx eax, byte [0x100bba48]
test al, al
je 0x10037741
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x100375bc
cmp eax, 3
jne 0x1003773a
mov ebx, dword [0x100bba4c]
test ebx, ebx
je 0x1003773a
mov dword [ebp - 0x20], 0
jmp 0x100375e7
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x10037618
mov esi, dword [ebx]
mov edi, dword [ebx + 4]
test edi, edi
je 0x1003778b
dec esi
push esi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x100375e0
push 0
push esi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push esi
call edi
add esp, 4
mov al, 1
mov dword [ebp - 0x20], eax
jmp 0x100375e0
test byte [ebp - 0x20], 1
je 0x1003773a
mov ebx, dword [0x100bba4c]
test ebx, ebx
je 0x1003773a
mov dword [ebp - 0x20], 0
jmp 0x10037647
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x10037678
mov esi, dword [ebx]
mov edi, dword [ebx + 4]
test edi, edi
je 0x1003778b
dec esi
push esi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x10037640
push 0
push esi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push esi
call edi
add esp, 4
mov al, 1
mov dword [ebp - 0x20], eax
jmp 0x10037640
test byte [ebp - 0x20], 1
je 0x1003773a
mov ebx, dword [0x100bba4c]
test ebx, ebx
je 0x1003773a
mov dword [ebp - 0x20], 0
jmp 0x100376a7
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x100376d8
mov esi, dword [ebx]
mov edi, dword [ebx + 4]
test edi, edi
je 0x1003778b
dec esi
push esi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x100376a0
push 0
push esi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push esi
call edi
add esp, 4
mov al, 1
mov dword [ebp - 0x20], eax
jmp 0x100376a0
test byte [ebp - 0x20], 1
je 0x1003773a
mov ebx, dword [0x100bba4c]
test ebx, ebx
je 0x1003773a
mov dword [ebp - 0x20], 0
jmp 0x10037707
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x10037734
mov esi, dword [ebx]
mov edi, dword [ebx + 4]
test edi, edi
je 0x1003778b
dec esi
push esi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x10037700
push 0
push esi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push esi
call edi
add esp, 4
mov al, 1
mov dword [ebp - 0x20], eax
jmp 0x10037700
test byte [ebp - 0x20], 1
jne 0x10037754
movzx eax, byte [0x10095ac0]
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
mov ebx, dword [0x100bba4c]
jmp 0x1003775f
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x1003773a
mov esi, dword [ebx]
mov edi, dword [ebx + 4]
test edi, edi
je 0x1003778b
dec esi
push esi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x1003775c
push 0
push esi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push esi
call edi
add esp, 4
jmp 0x1003775c
mov dword [ebp - 0x10], 0
push 0x10081434
call sym.kso.dll_core::option::unwrap_failed::hdcacef950c458f65
add esp, 4
ud2
Function at 0x10039d20
Capabilities:
Resolve dns

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1b4
mov eax, dword [esp + 0x1cc]
mov esi, dword [esp + 0x1c8]
mov edi, dword [eax]
mov ebp, dword [eax + 4]
movzx ebx, word [eax + 8]
mov eax, dword [0x100bba34]
cmp eax, 3
jne 0x10039e0b
cmp ebp, 0x17f
ja 0x10039e1c
mov dword [esp + 4], ebx
lea ebx, [esp + 0x34]
push ebp
push edi
push ebx
call fcn.1006f830
add esp, 0xc
mov byte [esp + ebp + 0x34], 0
inc ebp
lea eax, [esp + 8]
push ebp
push ebx
push eax
call sym.kso.dll_core::ffi::c_str::CStr::from_bytes_with_nul::h17a93bb0a9488373
add esp, 0xc
cmp dword [esp + 8], 0
je 0x10039da6
mov eax, dword [0x1007faf0]
mov ecx, dword [0x1007faf4]
mov dword [esi + 8], ecx
mov dword [esi + 4], eax
mov dword [esi], 1
jmp 0x10039e2a
mov eax, dword [esp + 0xc]
xorps xmm0, xmm0
mov ecx, esp
mov dword [esp], 0
lea edx, [esp + 0x14]
movups xmmword [esp + 0x14], xmm0
movups xmmword [esp + 0x24], xmm0
mov dword [esp + 0x1c], 1
push ecx
push edx
push 0
push eax
call dword [sym.imp.WS2_32.dll_getaddrinfo]
test eax, eax
je 0x10039df4
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, 1
mov dword [esi + 8], eax
mov dword [esi + 4], 0
mov dword [esi], ecx
jmp 0x10039e2a
mov eax, dword [esp]
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov eax, dword [esp + 4]
mov word [esi + 0xc], ax
xor eax, eax
mov dword [esi], eax
jmp 0x10039e2a
call fcn.1007b650
cmp ebp, 0x17f
jbe 0x10039d5b
mov ecx, esi
mov edx, edi
push ebx
push ebp
call fcn.1007b740
add esp, 8
mov eax, esi
add esp, 0x1b4
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x10039e40
Capabilities:
Connect socket

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x20
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
movzx ecx, byte [eax]
cmp cl, 4
jne 0x10039ea7
mov ebp, dword [eax + 4]
mov eax, dword [0x100bba34]
cmp eax, 3
jne 0x10039f5d
lea edi, [esp + 4]
push 1
push ebp
push edi
call sym.kso.dll_std::sys::pal::windows::net::Socket::new::he6ec90cf0cd337f0
add esp, 0xc
movzx eax, byte [esp + 4]
cmp al, 4
jne 0x10039ec3
mov eax, dword [esp + 8]
cmp word [ebp], 0
mov dword [esp], eax
je 0x10039edf
movups xmm0, xmmword [ebp + 4]
mov edx, dword [ebp + 0x18]
lea eax, [ebp + 0x14]
add ebp, 0x1c
mov ecx, 0x1c
mov bx, 0x17
jmp 0x10039ef1
movzx edx, byte [eax + 3]
movzx edi, word [eax + 1]
mov eax, dword [eax + 4]
mov byte [esi + 3], dl
mov word [esi + 1], di
mov byte [esi], cl
mov dword [esi + 4], eax
jmp 0x10039f53
movzx ecx, byte [esp + 7]
movzx edi, word [esp + 5]
mov edx, dword [esp + 8]
mov byte [esi + 3], cl
mov word [esi + 1], di
mov byte [esi], al
mov dword [esi + 4], edx
jmp 0x10039f53
lea eax, [ebp + 2]
add ebp, 6
mov ecx, 0x10
mov bx, 2
xorps xmm0, xmm0
movzx ebp, word [ebp]
mov eax, dword [eax]
mov word [esp + 4], bx
rol bp, 8
mov word [esp + 6], bp
mov dword [esp + 8], eax
movups xmmword [esp + 0xc], xmm0
mov dword [esp + 0x1c], edx
push ecx
push edi
mov edi, dword [esp + 8]
push edi
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x10039f2c
mov dword [esi + 4], edi
mov byte [esi], 4
jmp 0x10039f53
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
mov edx, eax
shr eax, 0x18
mov byte [esi], 0
shr ecx, 8
shl edx, 0x18
mov byte [esi + 7], al
mov dword [esi + 1], edx
mov word [esi + 5], cx
push edi
call dword [sym.imp.WS2_32.dll_closesocket]
mov eax, esi
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.1007b650
jmp 0x10039e68
Function at 0x1003a480
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push ebp
mov ebp, esp
push esi
and esp, 0xfffffff0
sub esp, 0xa0
xorps xmm0, xmm0
mov esi, ecx
lea eax, [esp + 0xc]
mov dword [esp + 0xc], 0x80
lea ecx, [esp + 0x10]
movaps xmmword [esp + 0x80], xmm0
movaps xmmword [esp + 0x70], xmm0
movaps xmmword [esp + 0x60], xmm0
movaps xmmword [esp + 0x50], xmm0
movaps xmmword [esp + 0x40], xmm0
movaps xmmword [esp + 0x30], xmm0
movaps xmmword [esp + 0x20], xmm0
movaps xmmword [esp + 0x10], xmm0
push eax
push ecx
push edx
call dword [sym.imp.WS2_32.dll_getsockname]
cmp eax, 0xffffffff
je 0x1003a526
movzx ecx, word [esp + 0x10]
mov eax, dword [esp + 0xc]
cmp ecx, 2
je 0x1003a53f
cmp ecx, 0x17
jne 0x1003a563
cmp eax, 0x1b
jbe 0x1003a579
movzx eax, word [esp + 0x12]
movups xmm0, xmmword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov word [esi], 1
rol ax, 8
movups xmmword [esi + 4], xmm0
mov dword [esi + 0x14], ecx
mov dword [esi + 0x18], edx
mov word [esi + 0x1c], ax
lea esp, [ebp - 4]
pop esi
pop ebp
ret
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov byte [esi + 4], 0
mov byte [esi + 7], 0
mov word [esi + 5], 0
mov dword [esi + 8], eax
jmp 0x1003a56e
cmp eax, 0xf
jbe 0x1003a58a
movzx ecx, word [esp + 0x12]
mov eax, dword [esp + 0x14]
mov word [esi], 0
rol cx, 8
mov dword [esi + 2], eax
mov word [esi + 6], cx
lea esp, [ebp - 4]
pop esi
pop ebp
ret
mov byte [esi + 4], 2
mov dword [esi + 8], 0x100819c0
mov word [esi], 2
lea esp, [ebp - 4]
pop esi
pop ebp
ret
push 0x100819a0
push 0x43
push 0x1008195c
call sym.kso.dll_core::panicking::panic::hd53872080d8d36e0
push 0x1008194c
push 0x42
push str.assertion_failed:_len_as_usize___mem::size_of::_c::sockaddr_in___library_std_src_sys_common_net.rs
call sym.kso.dll_core::panicking::panic::hd53872080d8d36e0
int3

Function at 0x1003a860
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
mov edx, closesocket
mov esi, dword [esp + 0x30]
cmp eax, 0x7fffffff
cmovb edx, eax
cmp word [edi], 0
je 0x1003a89e
movups xmm0, xmmword [edi + 4]
mov eax, dword [edi + 0x18]
lea ebp, [edi + 0x14]
add edi, 0x1c
mov ebx, 0x1c
mov cx, 0x17
jmp 0x1003a8b0
lea ebp, [edi + 2]
add edi, 6
mov ebx, 0x10
mov cx, 2
xorps xmm0, xmm0
movzx edi, word [edi]
mov ebp, dword [ebp]
mov word [esp], cx
rol di, 8
mov word [esp + 2], di
mov dword [esp + 4], ebp
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x18], eax
mov eax, esp
push ebx
push eax
push 0
push edx
push dword [esp + 0x48]
mov eax, dword [esp + 0x48]
push dword [eax]
call dword [sym.imp.WS2_32.dll_sendto]
cmp eax, 0xffffffff
je 0x1003a8f4
mov dword [esi + 4], eax
mov byte [esi], 4
jmp 0x1003a90a
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov byte [esi], 0
mov byte [esi + 3], 0
mov word [esi + 1], 0
mov dword [esi + 4], eax
mov eax, esi
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x1003a920
Capabilities:
Connect socket

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x30]
movzx eax, byte [ecx]
cmp al, 4
jne 0x1003a95b
mov ecx, dword [ecx + 4]
mov eax, dword [esp + 0x34]
cmp word [ecx], 0
je 0x1003a974
movups xmm0, xmmword [ecx + 4]
mov ebx, dword [ecx + 0x18]
lea edi, [ecx + 0x14]
add ecx, 0x1c
mov edx, 0x1c
mov bp, 0x17
jmp 0x1003a986
movzx edx, byte [ecx + 3]
movzx edi, word [ecx + 1]
mov ecx, dword [ecx + 4]
mov byte [esi + 3], dl
mov word [esi + 1], di
mov byte [esi], al
mov dword [esi + 4], ecx
jmp 0x1003a9ca
lea edi, [ecx + 2]
add ecx, 6
mov edx, 0x10
mov bp, 2
xorps xmm0, xmm0
movzx ecx, word [ecx]
mov edi, dword [edi]
mov word [esp], bp
rol cx, 8
mov word [esp + 2], cx
mov dword [esp + 4], edi
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x18], ebx
mov ecx, esp
push edx
push ecx
push dword [eax]
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x1003a9bb
mov byte [esi], 4
jmp 0x1003a9ca
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [esi + 4], eax
mov dword [esi], 0
mov eax, esi
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret

Function at 0x1003ab80
Capabilities:
Enumerate pe sections

Disassembly:
push edi
push esi
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
cmp word [edx], 0
je 0x1003abb4
movups xmm0, xmmword [edx + 4]
mov ecx, dword [edx + 0x14]
mov esi, dword [edx + 0x18]
movzx edx, word [edx + 0x1c]
mov di, 0x17
movups xmmword [eax + 8], xmm0
mov dword [eax + 0x18], esi
rol dx, 8
mov esi, 0x1c
jmp 0x1003abcf
mov ecx, dword [edx + 2]
movzx edx, word [edx + 6]
xorps xmm0, xmm0
mov esi, 0x10
mov di, 2
movlps qword [eax + 8], xmm0
rol dx, 8
mov word [eax], di
mov word [eax + 2], dx
mov dword [eax + 4], ecx
mov dword [eax + 0x1c], esi
pop esi
pop edi
ret
Function at 0x1003b960
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push edi
push esi
mov eax, dword [0x100bb044]
mov esi, ecx
test eax, eax
je 0x1003b986
dec eax
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 2
jb 0x1003b99f
cmp dword [eax + 4], 0
je 0x1003b99f
add eax, 8
pop esi
pop edi
ret
push 0x100bb044
call sym.kso.dll_std::sys::pal::windows::thread_local_key::StaticKey::init::ha446e86f87fe37fa
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 2
jae 0x1003b97a
mov eax, dword [0x100bb044]
test eax, eax
je 0x1003ba36
dec eax
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
je 0x1003ba53
mov edi, eax
test eax, eax
jne 0x1003b9ff
movzx eax, byte [sym.kso.dll___rust_no_alloc_shim_is_unstable]
push 4
push 0x10
call sym.kso.dll___rust_alloc
add esp, 8
test eax, eax
je 0x1003ba67
mov dword [eax], 0x100bb044
mov dword [eax + 4], 0
mov edi, eax
mov eax, dword [0x100bb044]
test eax, eax
je 0x1003ba58
dec eax
push edi
push eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
test esi, esi
je 0x1003ba1f
mov eax, dword [esi]
xor ecx, ecx
mov edx, 0
mov dword [esi], 0
cmp eax, 1
jne 0x1003ba23
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
jmp 0x1003ba23
xor ecx, ecx
xor edx, edx
lea eax, [edi + 8]
mov dword [edi + 4], 1
mov dword [edi + 8], ecx
mov byte [edi + 0xc], dl
pop esi
pop edi
ret
push 0x100bb044
call sym.kso.dll_std::sys::pal::windows::thread_local_key::StaticKey::init::ha446e86f87fe37fa
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
jne 0x1003b9bd
xor eax, eax
pop esi
pop edi
ret
push 0x100bb044
call sym.kso.dll_std::sys::pal::windows::thread_local_key::StaticKey::init::ha446e86f87fe37fa
add esp, 4
jmp 0x1003b9f7
push 0x10
push 4
call sym.kso.dll_alloc::alloc::handle_alloc_error::h0f7631ec9b341a7f
Function at 0x1003ba70
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push edi
push esi
sub esp, 8
mov eax, dword [0x100bb054]
mov esi, ecx
test eax, eax
je 0x1003bb4a
dec eax
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 2
jb 0x1003ba9d
cmp dword [eax + 4], 0
mov edi, eax
jne 0x1003bb45
mov eax, dword [0x100bb054]
test eax, eax
je 0x1003bb6c
dec eax
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
je 0x1003bb89
mov edi, eax
test eax, eax
jne 0x1003bb01
movzx eax, byte [sym.kso.dll___rust_no_alloc_shim_is_unstable]
push 4
push 0xc
call sym.kso.dll___rust_alloc
add esp, 8
test eax, eax
je 0x1003bba5
mov dword [eax], 0x100bb054
mov dword [eax + 4], 0
mov edi, eax
mov eax, dword [0x100bb054]
test eax, eax
je 0x1003bb93
dec eax
push edi
push eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
test esi, esi
je 0x1003bb16
mov eax, dword [esi]
mov dword [esi], 0
test eax, eax
je 0x1003bb18
mov eax, dword [esi + 4]
jmp 0x1003bb18
xor eax, eax
mov edx, dword [edi + 4]
mov ecx, dword [edi + 8]
test edx, edx
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [edi + 4], 1
mov dword [edi + 8], eax
je 0x1003bb45
test ecx, ecx
je 0x1003bb45
lock dec dword [ecx]
jne 0x1003bb45
lea ecx, [esp + 4]
call fcn.100098a0
add edi, 8
jmp 0x1003bb8b
push 0x100bb054
call sym.kso.dll_std::sys::pal::windows::thread_local_key::StaticKey::init::ha446e86f87fe37fa
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 2
jae 0x1003ba91
jmp 0x1003ba9d
push 0x100bb054
call sym.kso.dll_std::sys::pal::windows::thread_local_key::StaticKey::init::ha446e86f87fe37fa
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
jne 0x1003babb
xor edi, edi
mov eax, edi
add esp, 8
pop esi
pop edi
ret
push 0x100bb054
call sym.kso.dll_std::sys::pal::windows::thread_local_key::StaticKey::init::ha446e86f87fe37fa
add esp, 4
jmp 0x1003baf9
push 0xc
push 4
call sym.kso.dll_alloc::alloc::handle_alloc_error::h0f7631ec9b341a7f
int3
Function at 0x1003bbb0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push edi
push esi
mov eax, dword [0x100bb064]
mov esi, ecx
test eax, eax
je 0x1003bbd6
dec eax
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 2
jb 0x1003bbef
cmp byte [eax + 4], 0
je 0x1003bbef
add eax, 5
pop esi
pop edi
ret
push 0x100bb064
call sym.kso.dll_std::sys::pal::windows::thread_local_key::StaticKey::init::ha446e86f87fe37fa
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 2
jae 0x1003bbca
mov eax, dword [0x100bb064]
test eax, eax
je 0x1003bc62
dec eax
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
je 0x1003bc7b
mov edi, eax
test eax, eax
jne 0x1003bc40
movzx eax, byte [sym.kso.dll___rust_no_alloc_shim_is_unstable]
push 4
push 8
call sym.kso.dll___rust_alloc
add esp, 8
test eax, eax
je 0x1003bc8f
mov dword [eax], 0x100bb064
mov byte [eax + 4], 0
mov edi, eax
mov eax, dword [0x100bb064]
test eax, eax
je 0x1003bc80
dec eax
push edi
push eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
xor ecx, ecx
test esi, esi
je 0x1003bc55
cmp byte [esi], 0
mov byte [esi], 0
movzx eax, byte [esi + 1]
cmove eax, ecx
mov ecx, eax
lea eax, [edi + 5]
mov byte [edi + 4], 1
mov byte [edi + 5], cl
pop esi
pop edi
ret
push 0x100bb064
call sym.kso.dll_std::sys::pal::windows::thread_local_key::StaticKey::init::ha446e86f87fe37fa
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
jne 0x1003bc05
xor eax, eax
pop esi
pop edi
ret
push 0x100bb064
call sym.kso.dll_std::sys::pal::windows::thread_local_key::StaticKey::init::ha446e86f87fe37fa
add esp, 4
jmp 0x1003bc38
push 8
push 4
call sym.kso.dll_alloc::alloc::handle_alloc_error::h0f7631ec9b341a7f
int3
Function at 0x1003bca0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push esi
mov eax, dword [0x100bb074]
test eax, eax
je 0x1003bcc2
dec eax
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 2
jb 0x1003bcdb
cmp byte [eax + 4], 0
je 0x1003bcdb
add eax, 5
pop esi
ret
push 0x100bb074
call sym.kso.dll_std::sys::pal::windows::thread_local_key::StaticKey::init::ha446e86f87fe37fa
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 2
jae 0x1003bcb7
mov eax, dword [0x100bb074]
test eax, eax
je 0x1003bd51
dec eax
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
je 0x1003bd6a
mov esi, eax
test eax, eax
jne 0x1003bd2c
movzx eax, byte [sym.kso.dll___rust_no_alloc_shim_is_unstable]
push 4
push 8
call sym.kso.dll___rust_alloc
add esp, 8
test eax, eax
je 0x1003bd7d
mov dword [eax], 0x100bb074
mov byte [eax + 4], 0
mov esi, eax
mov eax, dword [0x100bb074]
test eax, eax
je 0x1003bd6e
dec eax
push esi
push eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov eax, dword [esp + 8]
xor ecx, ecx
test eax, eax
je 0x1003bd45
cmp byte [eax], 0
mov byte [eax], 0
movzx eax, byte [eax + 1]
cmove eax, ecx
mov ecx, eax
mov byte [esi + 4], 1
lea eax, [esi + 5]
mov byte [esi + 5], cl
pop esi
ret
push 0x100bb074
call sym.kso.dll_std::sys::pal::windows::thread_local_key::StaticKey::init::ha446e86f87fe37fa
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
jne 0x1003bcf1
xor eax, eax
pop esi
ret
push 0x100bb074
call sym.kso.dll_std::sys::pal::windows::thread_local_key::StaticKey::init::ha446e86f87fe37fa
add esp, 4
jmp 0x1003bd24
push 8
push 4
call sym.kso.dll_alloc::alloc::handle_alloc_error::h0f7631ec9b341a7f
int3