Function at 0x54d160
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x68
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
xor ecx, 3
lock cmpxchg dword [esi], ecx
jne 0x54d170
test al, 1
je 0x54d292
test al, 2
jne 0x54d2a6
test al, 8
jne 0x54d1bc
mov dword [esp + 0x10], 2
mov ebx, dword [esi + 0x24]
mov edi, dword [esi + 0x20]
call sym.tokio::runtime::context::CONTEXT::__u7b__u7b_closure_u7d__u7d_::h945962da551a6765
test eax, eax
je 0x54d1d8
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
mov dword [eax + 0x18], edi
mov dword [eax + 0x1c], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
jmp 0x54d1e8
test al, 0x10
je 0x54d229
mov eax, dword [esi + 0x48]
test eax, eax
je 0x54d314
mov eax, dword [eax + 8]
push dword [esi + 0x4c]
call eax
add esp, 4
jmp 0x54d229
mov dword [esp + 4], 0
mov dword [esp + 8], 0
lea ebx, [esi + 0x28]
mov ecx, ebx
call sym.__ZN4core3ptr206drop_in_place_LT_tokio..runtime..task..core..Stage_LT_tokio..runtime..blocking..task..BlockingTask_LT_tokio..r
movsd xmm0, qword [esp + 0x20]
movsd qword [ebx + 0x10], xmm0
movsd xmm0, qword [esp + 0x10]
movsd xmm1, qword [esp + 0x18]
movsd qword [ebx + 8], xmm1
movsd qword [ebx], xmm0
call sym.tokio::runtime::context::CONTEXT::__u7b__u7b_closure_u7d__u7d_::h945962da551a6765
test eax, eax
je 0x54d229
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], edx
mov eax, dword [esi + 0x50]
test eax, eax
je 0x54d257
mov ecx, dword [esi + 0x54]
movsd xmm0, qword [esi + 0x20]
mov edx, dword [ecx + 8]
movsd qword [esp + 0x40], xmm0
mov ecx, dword [ecx + 0x14]
dec edx
and edx, 0xfffffff8
lea eax, [eax + edx + 8]
lea edx, [esp + 0x40]
push edx
push eax
call ecx
add esp, 8
mov dword [esp + 0xc], 1
mov eax, 0xffffffc0
lock xadd dword [esi], eax
shr eax, 6
cmp eax, dword [esp + 0xc]
jb 0x54d2ba
jne 0x54d28a
mov ecx, esi
call sym.__ZN4core3ptr260drop_in_place_LT_tokio..runtime..task..core..Cell_LT_tokio..runtime..blocking..task..BlockingTask_LT_tokio..ru
push dword [esi - 4]
push 0
push dword [0x5e1120]
call sub.kernel32.dll_HeapFree
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, str.assertion_failed:_prev.is_running__
mov edx, 0x23
push 0x5b5c74
call sym.core::panicking::panic::hf6244c8fb5815825
mov ecx, 0x5b5c84
mov edx, 0x25
push 0x5b5cac
call sym.core::panicking::panic::hf6244c8fb5815825
lea esi, [esp + 0x2c]
lea edi, [esp + 0xc]
mov dword [esp + 0x4c], 0x5b5ccc
mov dword [esp + 0x50], 2
mov dword [esp + 0x2c], eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x30], esi
lea esi, [esp + 0x30]
mov dword [esp + 0x34], sym.core::fmt::num::imp::__LT_impl_u20_core..fmt..Display_u20_for_u20_u32_GT_::fmt::h8917667e5366c09f
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], sym.core::fmt::num::imp::__LT_impl_u20_core..fmt..Display_u20_for_u20_u32_GT_::fmt::h8917667e5366c09f
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], 2
lea ecx, [esp + 0x4c]
mov edx, 0x5b5cdc
call sym.core::panicking::panic_fmt::hced28cb7137b21e1
mov dword [esp + 0x10], str.waker_missing
mov dword [esp + 0x14], 1
mov dword [esp + 0x20], 0
mov dword [esp + 0x18], 4
mov dword [esp + 0x1c], 0
lea ecx, [esp + 0x10]
mov edx, 0x5b5940
call sym.core::panicking::panic_fmt::hced28cb7137b21e1
ud2