Skip to content

Instantly share code, notes, and snippets.

@ujjwal-kr
Last active December 4, 2021 11:02
Show Gist options
  • Save ujjwal-kr/a4e62a1ce5f4ac1b1f64dc6dc4374822 to your computer and use it in GitHub Desktop.
Save ujjwal-kr/a4e62a1ce5f4ac1b1f64dc6dc4374822 to your computer and use it in GitHub Desktop.
REV
void _ZN4core3ptr116drop_in_place$LT$core..future..from_generator..GenFuture$LT$sussy_malware..main..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17hf1a31799a84a7582E.llvm.11713022222054205904
(int64_t arg1)
{
int64_t *piVar1;
int64_t iVar2;
int64_t iVar3;
int64_t iVar4;
int64_t iVar5;
undefined8 *puVar6;
if (*(char *)(arg1 + 0x20) != '\x04') {
if (*(char *)(arg1 + 0x20) != '\x03') {
return;
}
if (*(char *)(arg1 + 0x188) == '\x03') {
if (*(int64_t *)(arg1 + 0x50) == 0) {
if ((9 < *(uint8_t *)(arg1 + 0x58)) && (*(int64_t *)(arg1 + 0x68) != 0)) {
(**(code **)0x33c070)(*(undefined8 *)(arg1 + 0x60), *(int64_t *)(arg1 + 0x68), 1);
}
if (*(int64_t *)(arg1 + 0x78) != 0) {
(**(code **)0x33c070)(*(undefined8 *)(arg1 + 0x70), *(int64_t *)(arg1 + 0x78), 1);
}
core::ptr::drop_in_place<http::header::map::HeaderMap>::h23f5ebd2eb3eba5d(arg1 + 200);
if ((*(int64_t *)(arg1 + 0x128) != 0) && (*(int64_t *)(arg1 + 0x148) != 0)) {
(**(code **)(*(int64_t *)(arg1 + 0x148) + 8))
(arg1 + 0x140, *(undefined8 *)(arg1 + 0x130), *(undefined8 *)(arg1 + 0x138));
}
iVar5 = *(int64_t *)(arg1 + 0x160);
if (iVar5 != 0) {
iVar2 = *(int64_t *)(arg1 + 0x150);
iVar4 = 0;
do {
iVar3 = *(int64_t *)(iVar2 + 8 + iVar4);
if (iVar3 != 0) {
__rust_dealloc(*(undefined8 *)(iVar2 + iVar4), iVar3, 1);
}
iVar4 = iVar4 + 0x58;
} while (iVar5 * 0x58 - iVar4 != 0);
}
if ((*(int64_t *)(arg1 + 0x158) != 0) && (iVar5 = *(int64_t *)(arg1 + 0x158) * 0x58, iVar5 != 0)) {
(**(code **)0x33c070)(*(undefined8 *)(arg1 + 0x150), iVar5, 8);
}
piVar1 = *(int64_t **)(arg1 + 0x168);
LOCK();
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
alloc::sync::Arc<T>::drop_slow::ha38273adbe08fc33(arg1 + 0x168);
}
(***(code ***)(arg1 + 0x178))(*(undefined8 *)(arg1 + 0x170));
iVar5 = *(int64_t *)(*(int64_t *)(arg1 + 0x178) + 8);
if (iVar5 != 0) {
(**(code **)0x33c070)
(*(undefined8 *)(arg1 + 0x170), iVar5, *(undefined8 *)(*(int64_t *)(arg1 + 0x178) + 0x10))
;
}
core::ptr::drop_in_place<core::option::Option<core::pin::Pin<alloc::boxed::Box<tokio::time::driver::sleep::Sleep>>>>::h73337cca111b50e3
(arg1 + 0x180, iVar5);
} else {
piVar1 = *(int64_t **)(arg1 + 0x58);
if (piVar1 != (int64_t *)0x0) {
if (*piVar1 != 0) {
(**(code **)piVar1[1])();
iVar5 = *(int64_t *)(piVar1[1] + 8);
if (iVar5 != 0) {
(**(code **)0x33c070)(*piVar1, iVar5, *(undefined8 *)(piVar1[1] + 0x10));
}
}
if ((*(int32_t *)(piVar1 + 10) != 2) && (piVar1[3] != 0)) {
(**(code **)0x33c070)(piVar1[2], piVar1[3], 1);
}
(**(code **)0x33c070)(*(undefined8 *)(arg1 + 0x58), 0x70, 8);
}
}
piVar1 = *(int64_t **)(arg1 + 0x38);
LOCK();
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
alloc::sync::Arc<T>::drop_slow::ha38273adbe08fc33(arg1 + 0x38);
}
*(undefined *)(arg1 + 0x189) = 0;
}
goto code_r0x0007a6d3;
}
if (*(char *)(arg1 + 0x2d0) == '\0') {
core::ptr::drop_in_place<http::header::map::HeaderMap>::h23f5ebd2eb3eba5d(arg1 + 0xd0);
puVar6 = *(undefined8 **)(arg1 + 0x130);
if (puVar6[1] != 0) {
(**(code **)0x33c070)(*puVar6, puVar6[1], 1);
puVar6 = *(undefined8 **)(arg1 + 0x130);
}
(**(code **)0x33c070)(puVar6, 0x58, 8);
if (*(int64_t *)(arg1 + 0x138) == 0) {
(**(code **)(*(int64_t *)(arg1 + 0x158) + 8))
(arg1 + 0x150, *(undefined8 *)(arg1 + 0x140), *(undefined8 *)(arg1 + 0x148));
} else {
(***(code ***)(arg1 + 0x148))(*(undefined8 *)(arg1 + 0x140));
iVar5 = *(int64_t *)(*(int64_t *)(arg1 + 0x148) + 8);
if (iVar5 != 0) {
(**(code **)0x33c070)
(*(undefined8 *)(arg1 + 0x140), iVar5, *(undefined8 *)(*(int64_t *)(arg1 + 0x148) + 0x10));
}
core::ptr::drop_in_place<core::option::Option<core::pin::Pin<alloc::boxed::Box<tokio::time::driver::sleep::Sleep>>>>::h73337cca111b50e3
(arg1 + 0x150, iVar5);
}
if (*(uint64_t *)(arg1 + 0x160) == 0) goto code_r0x0007a6d3;
puVar6 = (undefined8 *)(arg1 + 0x160);
<hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop::h6c677d072ff6415a(*(uint64_t *)(arg1 + 0x160));
} else {
if (*(char *)(arg1 + 0x2d0) != '\x03') goto code_r0x0007a6d3;
// switch table (6 cases) at 0x229c54
switch(*(undefined *)(arg1 + 0x288)) {
case 0:
if (*(int64_t *)(arg1 + 0x210) == 0) {
(**(code **)(*(int64_t *)(arg1 + 0x230) + 8))
(arg1 + 0x228, *(undefined8 *)(arg1 + 0x218), *(undefined8 *)(arg1 + 0x220));
} else {
(***(code ***)(arg1 + 0x220))(*(undefined8 *)(arg1 + 0x218));
iVar5 = *(int64_t *)(*(int64_t *)(arg1 + 0x220) + 8);
if (iVar5 != 0) {
(**(code **)0x33c070)
(*(undefined8 *)(arg1 + 0x218), iVar5, *(undefined8 *)(*(int64_t *)(arg1 + 0x220) + 0x10))
;
}
core::ptr::drop_in_place<core::option::Option<core::pin::Pin<alloc::boxed::Box<tokio::time::driver::sleep::Sleep>>>>::h73337cca111b50e3
(arg1 + 0x228, iVar5);
}
break;
case 5:
if (*(int64_t *)(arg1 + 0x2b8) != 0) {
(**(code **)0x33c070)(*(undefined8 *)(arg1 + 0x2b0), *(int64_t *)(arg1 + 0x2b8), 1);
}
*(undefined *)(arg1 + 0x28a) = 0;
case 4:
*(undefined *)(arg1 + 0x28b) = 0;
if (*(char *)(arg1 + 0x289) != '\0') {
(**(code **)(*(int64_t *)(arg1 + 0x280) + 8))
(arg1 + 0x278, *(undefined8 *)(arg1 + 0x268), *(undefined8 *)(arg1 + 0x270));
}
case 3:
*(undefined *)(arg1 + 0x289) = 0;
if (*(int64_t *)(arg1 + 0x238) == 0) {
(**(code **)(*(int64_t *)(arg1 + 600) + 8))
(arg1 + 0x250, *(undefined8 *)(arg1 + 0x240), *(undefined8 *)(arg1 + 0x248));
} else {
(***(code ***)(arg1 + 0x248))(*(undefined8 *)(arg1 + 0x240));
iVar5 = *(int64_t *)(*(int64_t *)(arg1 + 0x248) + 8);
if (iVar5 != 0) {
(**(code **)0x33c070)
(*(undefined8 *)(arg1 + 0x240), iVar5, *(undefined8 *)(*(int64_t *)(arg1 + 0x248) + 0x10))
;
}
core::ptr::drop_in_place<core::option::Option<core::pin::Pin<alloc::boxed::Box<tokio::time::driver::sleep::Sleep>>>>::h73337cca111b50e3
(arg1 + 0x250, iVar5);
}
}
core::ptr::drop_in_place<http::header::map::HeaderMap>::h23f5ebd2eb3eba5d(arg1 + 0x170);
puVar6 = *(undefined8 **)(arg1 + 0x1d0);
if (puVar6[1] != 0) {
(**(code **)0x33c070)(*puVar6, puVar6[1], 1);
puVar6 = *(undefined8 **)(arg1 + 0x1d0);
}
(**(code **)0x33c070)(puVar6, 0x58, 8);
if (*(uint64_t *)(arg1 + 0x200) == 0) goto code_r0x0007a6d3;
puVar6 = (undefined8 *)(arg1 + 0x200);
<hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop::h6c677d072ff6415a(*(uint64_t *)(arg1 + 0x200));
}
(**(code **)0x33c070)(*puVar6, 0x20, 8);
code_r0x0007a6d3:
if ((*(int64_t *)(arg1 + 8) != 0) && (iVar5 = *(int64_t *)(arg1 + 8) << 4, iVar5 != 0)) {
// WARNING: Treating indirect jump as call
(*_free)(*(undefined8 *)arg1, iVar5, 8);
return;
}
return;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment