joyce8/EMBER2024-capa huggingface dataset:
Function at 0x517e80
Capabilities:
Resolve dns

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1ac
movzx eax, word [edx + 8]
mov esi, ecx
mov ecx, dword [edx]
mov ebx, dword [edx + 4]
mov dword [ebp - 0x14], eax
mov eax, dword [0x5c610c]
cmp eax, 3
jne 0x51804e
cmp ebx, 0x17f
ja 0x518063
lea eax, [ebp - 0x1b8]
mov edi, ebx
push ebx
push ecx
push eax
call sym._memcpy
add esp, 0xc
lea eax, [ebx + 1]
cmp ebx, 6
mov byte [ebp + ebx - 0x1b8], 0
ja 0x517ef8
xor edx, edx
nop dword [eax]
cmp byte [ebp + edx - 0x1b8], 0
je 0x517fc0
inc edx
cmp eax, edx
jne 0x517ee0
jmp 0x518016
lea ecx, [ebp - 0x1b5]
lea edx, [ebp - 0x1b8]
mov dword [ebp - 0x10], esi
and ecx, 0xfffffffc
sub ecx, edx
je 0x517f3c
je 0x517f3c
xor edx, edx
nop word cs:[eax + eax]
nop dword [eax]
cmp byte [ebp + edx - 0x1b8], 0
je 0x517fbd
inc edx
cmp ecx, edx
jne 0x517f20
lea edx, [ebx - 7]
cmp ecx, edx
jbe 0x517f41
jmp 0x517f91
lea edx, [ebx - 7]
xor ecx, ecx
movdqa xmm0, xmmword [0x54bcb0]
movdqa xmm1, xmmword [0x54bcc0]
nop word cs:[eax + eax]
nop dword [eax + eax]
movq xmm2, qword [ebp + ecx - 0x1b8]
movdqa xmm3, xmm2
paddd xmm3, xmm0
pandn xmm2, xmm3
pand xmm2, xmm1
movd edi, xmm2
pshufd xmm2, xmm2, 0x55
movd esi, xmm2
or esi, edi
jne 0x517f91
add ecx, 8
cmp ecx, edx
jbe 0x517f60
mov esi, dword [ebp - 0x10]
sub eax, ecx
je 0x518016
lea edi, [ebp + ecx - 0x1b8]
xor edx, edx
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp byte [edi + edx], 0
je 0x518010
inc edx
cmp eax, edx
jne 0x517fb0
jmp 0x518016
mov esi, dword [ebp - 0x10]
cmp edx, ebx
jne 0x518016
pxor xmm0, xmm0
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 0
lea ecx, [ebp - 0x38]
movdqu xmmword [ebp - 0x38], xmm0
movdqu xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x30], 1
push eax
push ecx
push 0
lea eax, [ebp - 0x1b8]
push eax
call sub.WS2_32.dll_getaddrinfo
test eax, eax
je 0x51802f
call sub.WS2_32.dll_WSAGetLastError
mov dword [esi + 8], eax
mov dword [esi + 4], 0
mov eax, 1
jmp 0x518041
add edx, ecx
cmp edx, ebx
je 0x517fc4
mov eax, dword [0x5a0fa8]
mov ecx, dword [0x5a0fac]
mov dword [esi + 8], ecx
mov dword [esi + 4], eax
mov dword [esi], 1
jmp 0x518043
mov eax, dword [ebp - 0x18]
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x14]
mov word [esi + 0xc], ax
xor eax, eax
mov dword [esi], eax
add esp, 0x1ac
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, ecx
call dbg.initialize<unsafe extern "system" fn() -> i32, std::sync::once_lock::{impl#0}::get_or_init::{closure_env#0}<unsafe extern "system" fn() -> i32, std::sys::windows::net::init::{closure_env#0}>, !>
mov ecx, edi
cmp ebx, 0x17f
jbe 0x517eb4
mov edx, ecx
mov ecx, esi
push dword [ebp - 0x14]
push ebx
call dbg.run_with_cstr_allocating<std::sys_common::net::LookupHost, std::sys_common::net::{impl#6}::try_from::{closure_env#0}>
add esp, 0x1b4
jmp 0x518049
Function at 0x518480
Capabilities:
Resolve dns

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x30
mov esi, dword [ebp + 8]
mov edi, esi
inc edi
sete al
je 0x51867a
js 0x518693
mov byte [ebp - 0xd], al
mov dword [ebp - 0x14], ecx
mov ebx, edx
movzx eax, byte [0x5c6170]
mov eax, dword [0x5c6108]
test eax, eax
jne 0x5184c8
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x51866c
mov dword [0x5c6108], eax
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x51866c
push esi
push ebx
mov dword [ebp - 0x18], eax
push eax
call sym._memcpy
add esp, 0xc
cmp esi, 8
jae 0x518512
test esi, esi
je 0x5185a9
mov eax, esi
nop word cs:[eax + eax]
cmp byte [ebx], 0
je 0x518612
inc ebx
dec eax
jne 0x518500
jmp 0x5185a9
lea eax, [ebx + 3]
and eax, 0xfffffffc
sub eax, ebx
je 0x518546
cmp eax, esi
cmovae eax, esi
test eax, eax
je 0x518546
mov ecx, ebx
mov edx, eax
nop dword [eax]
cmp byte [ecx], 0
je 0x518612
inc ecx
dec edx
jne 0x518530
lea ecx, [esi - 8]
cmp eax, ecx
jbe 0x51854b
jmp 0x51858d
lea ecx, [esi - 8]
xor eax, eax
movdqa xmm0, xmmword [0x54bcd0]
movdqa xmm1, xmmword [0x54bce0]
nop dword [eax + eax]
movq xmm2, qword [ebx + eax]
movdqa xmm3, xmm2
paddd xmm3, xmm0
pandn xmm2, xmm3
pand xmm2, xmm1
movd edx, xmm2
pshufd xmm2, xmm2, 0x55
movd esi, xmm2
or esi, edx
jne 0x51858d
add eax, 8
cmp eax, ecx
jbe 0x518560
mov esi, dword [ebp + 8]
mov ecx, esi
sub ecx, eax
je 0x5185a9
add ebx, eax
nop dword [eax + eax]
cmp byte [ebx], 0
je 0x518612
inc ebx
dec ecx
jne 0x5185a0
mov eax, dword [ebp - 0x18]
lea ebx, [ebp - 0x3c]
mov ecx, ebx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x34], esi
call dbg._from_vec_unchecked
pxor xmm0, xmm0
mov esi, eax
mov edi, edx
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0
movdqu xmmword [ebp - 0x3c], xmm0
movdqu xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0x34], 1
push eax
push ebx
push 0
push esi
call sub.WS2_32.dll_getaddrinfo
test eax, eax
je 0x518637
call sub.WS2_32.dll_WSAGetLastError
mov edx, dword [ebp - 0x14]
mov dword [edx + 8], eax
mov dword [edx + 4], 0
mov eax, 1
test edi, edi
mov dword [edx], eax
mov byte [esi], 0
jne 0x518656
jmp 0x518664
cmp byte [ebp - 0xd], 0
mov eax, dword [0x5a0fa8]
mov edx, dword [ebp - 0x14]
mov ecx, dword [0x5a0fac]
mov dword [edx + 8], ecx
mov dword [edx + 4], eax
mov dword [edx], 1
jne 0x518664
push dword [ebp - 0x18]
jmp 0x518657
movzx eax, word [ebp + 0xc]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
mov dword [edx + 4], ecx
mov dword [edx + 8], ecx
mov word [edx + 0xc], ax
xor eax, eax
test edi, edi
mov dword [edx], eax
mov byte [esi], 0
je 0x518664
push esi
push 0
push dword [0x5c6108]
call sub.KERNEL32.dll_HeapFree
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, 1
mov edx, edi
call dbg.handle_alloc_error
ud2
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_std_src_threadmod.rs
mov edx, 0x2b
push 0x54ca34
call dbg.panic
add esp, 4
ud2
call sym.alloc::raw_vec::capacity_overflow::hd0578b62e5d0dfac
ud2
Function at 0x5186a0
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
sub esp, 0x1ac
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov esi, dword [eax]
mov dword [eax], 0
test esi, esi
je 0x5186f4
lea edi, [ebp - 0x1b4]
push 0x190
push 0
push edi
call sub.msvcrt.dll_memset
add esp, 0xc
push edi
push 0x202
call sub.WS2_32.dll_WSAStartup
test eax, eax
mov dword [ebp - 0xc], eax
jne 0x51870d
mov dword [esi], 0x5369e8
add esp, 0x1ac
pop esi
pop edi
pop ebp
ret
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_std_src_threadmod.rs
mov edx, 0x2b
push 0x5a0eb8
call dbg.panic
add esp, 4
ud2
mov dword [ebp - 0x24], 0
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0xc]
mov edx, 0x5a3254
push 0x5a19d0
push eax
call dbg.assert_failed<i32, i32>
add esp, 8
ud2

Function at 0x518730
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
sub esp, 0x1ac
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov esi, dword [eax]
mov dword [eax], 0
test esi, esi
je 0x518784
lea edi, [ebp - 0x1b4]
push 0x190
push 0
push edi
call sub.msvcrt.dll_memset
add esp, 0xc
push edi
push 0x202
call sub.WS2_32.dll_WSAStartup
test eax, eax
mov dword [ebp - 0xc], eax
jne 0x51879d
mov dword [esi], 0x5369e8
add esp, 0x1ac
pop esi
pop edi
pop ebp
ret
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_std_src_threadmod.rs
mov edx, 0x2b
push 0x5a0eb8
call dbg.panic
add esp, 4
ud2
mov dword [ebp - 0x24], 0
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0xc]
mov edx, 0x5a3254
push 0x5a19d0
push eax
call dbg.assert_failed<i32, i32>
add esp, 8
ud2

Function at 0x518da0
Capabilities:
Generate random numbers via rtlgenrandom

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x40
mov esi, ecx
xorps xmm0, xmm0
movaps xmmword [esp], xmm0
mov eax, esp
push 0x10
push eax
call sub.ADVAPI32.dll_SystemFunction036
test al, al
je 0x518de5
mov eax, dword [esp]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov edi, dword [esp + 0xc]
mov dword [esi + 0xc], edi
mov dword [esi + 8], edx
mov dword [esi + 4], ecx
mov dword [esi], eax
mov eax, esi
lea esp, [ebp - 8]
pop esi
pop edi
pop ebp
ret
call sub.KERNEL32.dll_GetLastError
mov byte [esp + 0x20], 0
mov dword [esp + 0x24], eax
lea edi, [esp + 0x20]
lea eax, [esp + 0x18]
mov dword [esp + 0x28], 0x5a1b64
mov dword [esp + 0x2c], 1
mov dword [esp + 0x38], 0
mov dword [esp + 0x18], edi
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], sym.__LT_std..io..error..Error_u20_as_u20_core..fmt..Display_GT_::fmt::hba8fb6b1cfc1e601
mov dword [esp + 0x34], 1
lea ecx, [esp + 0x28]
mov edx, 0x5a1b90
call dbg.panic_fmt
ud2
Function at 0x51b820
Capabilities:
Create tcp socket
Create udp socket

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x24
movzx eax, byte [edx]
mov esi, ecx
cmp al, 4
jne 0x51b894
mov ebx, dword [edx + 4]
mov eax, dword [0x5c610c]
cmp eax, 3
jne 0x51b970
cmp word [ebx], 0
mov eax, 2
mov edi, 0x17
cmove edi, eax
push 0x81
push 0
push 0
push 0
push 2
push edi
call sub.WS2_32.dll_WSASocketW
cmp eax, 0xffffffff
mov dword [ebp - 0x10], eax
je 0x51b8b0
cmp word [ebx], 0
je 0x51b901
mov eax, dword [ebx + 0x18]
movups xmm0, xmmword [ebx + 4]
lea ecx, [ebx + 0x14]
add ebx, 0x1c
mov di, 0x17
mov dword [ebp - 0x14], eax
mov eax, 0x1c
jmp 0x51b913
movzx ecx, byte [edx + 3]
movzx edi, word [edx + 1]
mov edx, dword [edx + 4]
mov byte [esi + 3], cl
mov word [esi + 1], di
mov byte [esi], al
mov dword [esi + 4], edx
jmp 0x51b999
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x2739
je 0x51b8c7
cmp eax, 0x2726
jne 0x51b989
push 1
push 0
push 0
push 0
push 2
push edi
call sub.WS2_32.dll_WSASocketW
cmp eax, 0xffffffff
je 0x51b969
mov edi, eax
push 0
push 1
push eax
call sub.KERNEL32.dll_SetHandleInformation
test eax, eax
je 0x51b97a
mov dword [ebp - 0x10], edi
cmp word [ebx], 0
jne 0x51b879
lea ecx, [ebx + 2]
add ebx, 6
mov eax, 0x10
mov di, 2
xorps xmm0, xmm0
movzx ebx, word [ebx]
mov ecx, dword [ecx]
mov word [ebp - 0x30], di
rol bx, 8
mov word [ebp - 0x2e], bx
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x14]
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], ecx
lea ecx, [ebp - 0x30]
push eax
push ecx
mov edi, dword [ebp - 0x10]
push edi
call sub.WS2_32.dll_bind
cmp eax, 0xffffffff
je 0x51b94c
mov dword [esi + 4], edi
mov byte [esi], 4
jmp 0x51b999
call sub.WS2_32.dll_WSAGetLastError
mov byte [esi], 0
mov byte [esi + 3], 0
mov word [esi + 1], 0
mov dword [esi + 4], eax
push edi
call sub.WS2_32.dll_closesocket
jmp 0x51b999
call sub.WS2_32.dll_WSAGetLastError
jmp 0x51b989
call dbg.initialize<unsafe extern "system" fn() -> i32, std::sync::once_lock::{impl#0}::get_or_init::{closure_env#0}<unsafe extern "system" fn() -> i32, std::sys::windows::net::init::{closure_env#0}>, !>
jmp 0x51b843
call sub.KERNEL32.dll_GetLastError
mov ebx, eax
push edi
call sub.WS2_32.dll_closesocket
mov eax, ebx
mov byte [esi + 3], 0
mov word [esi + 1], 0
mov byte [esi], 0
mov dword [esi + 4], eax
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x51b9e0
Capabilities:
Generate random numbers via winapi
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
and esp, 0xfffffff0
sub esp, 0x30
mov eax, dword [0x54a2d4]
test eax, eax
je 0x51bad5
dec eax
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 2
jb 0x51ba10
mov esi, eax
mov eax, dword [eax]
or eax, dword [esi + 4]
jne 0x51bad0
mov eax, dword [0x54a2d4]
test eax, eax
je 0x51baf3
dec eax
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 1
je 0x51bb0c
mov esi, eax
test eax, eax
jne 0x51ba92
movzx eax, byte [0x5c6170]
mov eax, dword [0x5c6108]
test eax, eax
jne 0x51ba55
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x51bb25
mov dword [0x5c6108], eax
push 0x20
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x51bb25
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 0x18], 0x54a2d4
mov esi, eax
mov eax, dword [0x54a2d4]
test eax, eax
je 0x51bb16
dec eax
push esi
push eax
call sub.KERNEL32.dll_TlsSetValue
xorps xmm0, xmm0
mov eax, esp
movaps xmmword [esp], xmm0
push 2
push 0x10
push eax
push 0
call sub.bcrypt.dll_BCryptGenRandom
test eax, eax
js 0x51bab1
movaps xmm0, xmmword [esp]
jmp 0x51babf
lea ecx, [esp + 0x10]
call dbg.fallback_rng
movups xmm0, xmmword [esp + 0x10]
mov dword [esi + 4], 0
mov dword [esi], 1
movups xmmword [esi + 8], xmm0
add esi, 8
jmp 0x51bb0e
mov ecx, 0x54a2d4
call dbg.init
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 2
jae 0x51ba03
jmp 0x51ba10
mov ecx, 0x54a2d4
call dbg.init
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 1
jne 0x51ba2d
xor esi, esi
mov eax, esi
lea esp, [ebp - 4]
pop esi
pop ebp
ret
mov ecx, 0x54a2d4
call dbg.init
jmp 0x51ba8b
mov ecx, 8
mov edx, 0x20
call dbg.handle_alloc_error
ud2

Function at 0x51bb40
Capabilities:
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
sub esp, 0x2c
mov edi, dword [ebp + 8]
mov esi, dword [edi + 0x18]
mov eax, dword [esi]
test eax, eax
je 0x51bb57
dec eax
jmp 0x51bb5e
mov ecx, esi
call dbg.init
push 1
push eax
call sub.KERNEL32.dll_TlsSetValue
push edi
push 0
push dword [0x5c6108]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esi]
test eax, eax
je 0x51bb7d
dec eax
jmp 0x51bb84
mov ecx, esi
call dbg.init
push 0
push eax
call sub.KERNEL32.dll_TlsSetValue
add esp, 0x2c
pop esi
pop edi
pop ebp
ret
Function at 0x51ef00
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov eax, dword [0x54a2f4]
mov esi, ecx
test eax, eax
je 0x51ef29
dec eax
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 2
jb 0x51ef3e
cmp dword [eax + 4], 0
je 0x51ef3e
add eax, 8
pop esi
pop edi
pop ebp
ret
mov ecx, 0x54a2f4
call dbg.init
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 2
jae 0x51ef1c
mov eax, dword [0x54a2f4]
test eax, eax
je 0x51efd9
dec eax
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 1
je 0x51eff2
mov edi, eax
test eax, eax
jne 0x51efb1
movzx eax, byte [0x5c6170]
mov eax, dword [0x5c6108]
test eax, eax
jne 0x51ef83
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x51f004
mov dword [0x5c6108], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x51f004
mov dword [eax], 0x54a2f4
mov dword [eax + 4], 0
mov edi, eax
mov eax, dword [0x54a2f4]
test eax, eax
je 0x51eff8
dec eax
push edi
push eax
call sub.KERNEL32.dll_TlsSetValue
test esi, esi
je 0x51efc6
mov ecx, dword [esi]
mov dword [esi], 0
test ecx, ecx
je 0x51efc8
mov ecx, dword [esi + 4]
jmp 0x51efc8
xor ecx, ecx
lea eax, [edi + 8]
mov dword [edi + 4], 1
mov dword [edi + 8], ecx
pop esi
pop edi
pop ebp
ret
mov ecx, 0x54a2f4
call dbg.init
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 1
jne 0x51ef5b
xor eax, eax
pop esi
pop edi
pop ebp
ret
mov ecx, 0x54a2f4
call dbg.init
jmp 0x51efaa
mov ecx, 4
mov edx, 0xc
call dbg.handle_alloc_error
ud2

Function at 0x521940
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
push eax
mov esi, dword [ebp + 8]
mov eax, dword [esi]
nop dword [eax]
mov ecx, eax
xor edx, edx
test cl, 3
sete dl
or edx, eax
or edx, 0x20
lock cmpxchg dword [esi], edx
jne 0x521950
test cl, 3
je 0x52198e
mov eax, 0xffffffc0
lock xadd dword [esi], eax
cmp eax, 0x3f
jbe 0x5219ca
and eax, 0xffffffc0
cmp eax, 0x40
jne 0x5219c2
mov ecx, esi
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
jmp sym.tokio::runtime::task::harness::Harness_LT_T_C_S_GT_::dealloc::h9c571ec2bd1da375
lea edi, [esi + 0x20]
mov ecx, edi
call sym.__ZN4core3ptr254drop_in_place_LT_tokio..runtime..task..core..Stage_LT_tokio..runtime..blocking..task..BlockingTask_LT_tokio..n
mov dword [esi + 0x20], 4
mov ecx, edi
call sym.__ZN4core3ptr254drop_in_place_LT_tokio..runtime..task..core..Stage_LT_tokio..runtime..blocking..task..BlockingTask_LT_tokio..n
mov dword [esi + 0x20], 1
mov dword [esi + 0x24], 0
mov ecx, esi
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
jmp sym.tokio::runtime::task::harness::Harness_LT_T_C_S_GT_::complete::h094493b3099fbb80
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, str.assertion_failed:_prev.ref_count_____1
mov edx, 0x27
push 0x5a3e9c
call dbg.panic
add esp, 4
ud2
Function at 0x523420
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
push eax
mov esi, dword [ebp + 8]
mov eax, dword [esi]
nop dword [eax]
mov ecx, eax
xor edx, edx
test cl, 3
sete dl
or edx, eax
or edx, 0x20
lock cmpxchg dword [esi], edx
jne 0x523430
test cl, 3
je 0x52346e
mov eax, 0xffffffc0
lock xadd dword [esi], eax
cmp eax, 0x3f
jbe 0x5234aa
and eax, 0xffffffc0
cmp eax, 0x40
jne 0x5234a2
mov ecx, esi
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
jmp sym.tokio::runtime::task::harness::Harness_LT_T_C_S_GT_::dealloc::h77b00e0d43cc821c
lea edi, [esi + 0x20]
mov ecx, edi
call sym.__ZN4core3ptr194drop_in_place_LT_tokio..runtime..task..core..Stage_LT_tokio..runtime..blocking..task..BlockingTask_LT_tokio..r
mov dword [esi + 0x20], 4
mov ecx, edi
call sym.__ZN4core3ptr194drop_in_place_LT_tokio..runtime..task..core..Stage_LT_tokio..runtime..blocking..task..BlockingTask_LT_tokio..r
mov dword [esi + 0x20], 1
mov dword [esi + 0x24], 0
mov ecx, esi
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
jmp sym.tokio::runtime::task::harness::Harness_LT_T_C_S_GT_::complete::h3d79e42a40a83396
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, str.assertion_failed:_prev.ref_count_____1
mov edx, 0x27
push 0x5a3e9c
call dbg.panic
add esp, 4
ud2
Function at 0x530280
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 8]
pop ebp
jmp sym.std::sys::common::thread_local::os_local::Key_LT_T_GT_::get::h91912eafbfa1d342

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

Disassembly:
push ebp
mov ebp, esp
push esi
mov eax, dword [0x54a324]
test eax, eax
je 0x532aa3
dec eax
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 2
jb 0x532a25
cmp byte [eax + 4], 0
mov esi, eax
jne 0x532a9b
mov eax, dword [0x54a324]
test eax, eax
je 0x532ac1
dec eax
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 1
je 0x532ada
mov esi, eax
test eax, eax
jne 0x532a95
movzx eax, byte [0x5c6170]
mov eax, dword [0x5c6108]
test eax, eax
jne 0x532a6a
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x532aed
mov dword [0x5c6108], eax
push 8
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x532aed
mov dword [eax], 0x54a324
mov byte [eax + 4], 0
mov esi, eax
mov eax, dword [0x54a324]
test eax, eax
je 0x532ae1
dec eax
push esi
push eax
call sub.KERNEL32.dll_TlsSetValue
mov word [esi + 4], 1
add esi, 5
mov eax, esi
pop esi
pop ebp
ret
mov ecx, 0x54a324
call dbg.init
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 2
jae 0x532a1d
jmp 0x532a25
mov ecx, 0x54a324
call dbg.init
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 1
jne 0x532a42
xor esi, esi
mov eax, esi
pop esi
pop ebp
ret
mov ecx, 0x54a324
call dbg.init
jmp 0x532a8e
mov ecx, 4
mov edx, 8
call dbg.handle_alloc_error
ud2

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

Disassembly:
push ebp
mov ebp, esp
push esi
mov eax, dword [0x54a340]
test eax, eax
je 0x532ba3
dec eax
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 2
jb 0x532b25
cmp byte [eax + 4], 0
mov esi, eax
jne 0x532b9b
mov eax, dword [0x54a340]
test eax, eax
je 0x532bc1
dec eax
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 1
je 0x532bda
mov esi, eax
test eax, eax
jne 0x532b95
movzx eax, byte [0x5c6170]
mov eax, dword [0x5c6108]
test eax, eax
jne 0x532b6a
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x532bed
mov dword [0x5c6108], eax
push 8
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x532bed
mov dword [eax], 0x54a340
mov byte [eax + 4], 0
mov esi, eax
mov eax, dword [0x54a340]
test eax, eax
je 0x532be1
dec eax
push esi
push eax
call sub.KERNEL32.dll_TlsSetValue
mov word [esi + 4], 0x201
add esi, 5
mov eax, esi
pop esi
pop ebp
ret
mov ecx, 0x54a340
call dbg.init
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 2
jae 0x532b1d
jmp 0x532b25
mov ecx, 0x54a340
call dbg.init
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 1
jne 0x532b42
xor esi, esi
mov eax, esi
pop esi
pop ebp
ret
mov ecx, 0x54a340
call dbg.init
jmp 0x532b8e
mov ecx, 4
mov edx, 8
call dbg.handle_alloc_error
ud2
Function at 0x532c00
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov eax, dword [0x54a304]
mov esi, ecx
test eax, eax
je 0x532c29
dec eax
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 2
jb 0x532c3e
cmp dword [eax + 4], 0
je 0x532c3e
add eax, 8
pop esi
pop edi
pop ebp
ret
mov ecx, 0x54a304
call dbg.init
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 2
jae 0x532c1c
mov eax, dword [0x54a304]
test eax, eax
je 0x532cd9
dec eax
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 1
je 0x532cf2
mov edi, eax
test eax, eax
jne 0x532cb1
movzx eax, byte [0x5c6170]
mov eax, dword [0x5c6108]
test eax, eax
jne 0x532c83
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x532d04
mov dword [0x5c6108], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x532d04
mov dword [eax], 0x54a304
mov dword [eax + 4], 0
mov edi, eax
mov eax, dword [0x54a304]
test eax, eax
je 0x532cf8
dec eax
push edi
push eax
call sub.KERNEL32.dll_TlsSetValue
test esi, esi
je 0x532cc6
mov ecx, dword [esi]
mov dword [esi], 0
test ecx, ecx
je 0x532cc8
mov ecx, dword [esi + 4]
jmp 0x532cc8
xor ecx, ecx
lea eax, [edi + 8]
mov dword [edi + 4], 1
mov dword [edi + 8], ecx
pop esi
pop edi
pop ebp
ret
mov ecx, 0x54a304
call dbg.init
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 1
jne 0x532c5b
xor eax, eax
pop esi
pop edi
pop ebp
ret
mov ecx, 0x54a304
call dbg.init
jmp 0x532caa
mov ecx, 4
mov edx, 0xc
call dbg.handle_alloc_error
ud2
Function at 0x532d20
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
mov eax, dword [0x54a2e4]
test eax, eax
je 0x532d49
dec eax
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 2
jb 0x532d5e
cmp dword [eax + 4], 0
mov esi, eax
je 0x532d5e
add esi, 4
mov eax, esi
pop esi
pop ebp
ret
mov ecx, 0x54a2e4
call dbg.init
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 2
jae 0x532d39
mov eax, dword [0x54a2e4]
test eax, eax
je 0x532e4a
dec eax
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 1
je 0x532e63
mov esi, eax
test eax, eax
jne 0x532dd9
movzx eax, byte [0x5c6170]
mov eax, dword [0x5c6108]
test eax, eax
jne 0x532da3
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x532e8a
mov dword [0x5c6108], eax
push 8
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x532e8a
mov dword [eax], 0x54a2e4
mov dword [eax + 4], 0
mov esi, eax
mov eax, dword [0x54a2e4]
test eax, eax
je 0x532e6a
dec eax
push esi
push eax
call sub.KERNEL32.dll_TlsSetValue
movzx eax, byte [0x5c6170]
mov eax, dword [0x5c6108]
test eax, eax
jne 0x532dfb
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x532e79
mov dword [0x5c6108], eax
push 0x14
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x532e79
mov dword [eax], 1
mov dword [eax + 4], 1
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
add esi, 4
mov byte [eax + 0x10], 0
mov ecx, dword [esi]
mov dword [esi], eax
test ecx, ecx
je 0x532d44
lock dec dword [ecx]
jne 0x532d44
call dbg.drop_slow<core::mem::maybe_uninit::MaybeUninit<std::thread::Inner>, alloc::alloc::Global>
mov eax, esi
pop esi
pop ebp
ret
mov ecx, 0x54a2e4
call dbg.init
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 1
jne 0x532d7b
xor esi, esi
mov eax, esi
pop esi
pop ebp
ret
mov ecx, 0x54a2e4
call dbg.init
jmp 0x532dd2
mov ecx, 4
mov edx, 0x14
call dbg.handle_alloc_error
ud2
mov ecx, 4
mov edx, 8
call dbg.handle_alloc_error
ud2