借助代理辅助,自动逆向工程Hyperliquid风险引擎

osecio 发布于 2026-06-23 阅读 115

本文通过逆向工程深入分析了 Hyperliquid 永续合约交易所的风险引擎,特别是自动去杠杆(ADL)算法的实现。

在 AI Agent 的帮助下自动逆向 Hyperliquid 风险引擎

永续合约(Perps)允许交易者利用超出其抵押品的杠杆,直到市场突然转向且损失被追回。我们自动逆向了 Hyperliquid 的风险引擎,以展示其在偿付能力—公平性—收入这一三难困境下,如何对盈利用户进行排名和减仓。

Heading image of Auto reverse-engineering the Hyperliquid risk engine, with some agentic help

永续合约

永续合约是对价格的一种押注,通常带有杠杆,以稳定币结算,没有到期日:它是交易所账本中的一行,由保证金(头寸名义价值的一小部分)支持,其中一方的收益即为同一账本上另一方的损失。

这与逆向工程有什么关系?

Hyperliquid

Hyperliquid 是一个去中心化的永续合约交易所。它运行在自己的 L1 上,公开供任何人运行,但代码是闭源的。订单簿和风险引擎运行在链上,因此存在于 L1 节点二进制文件中,位于用户和他们所对赌的共享资产负债表之间。

该节点的任务是一个非常困难的问题:当杠杆使得每笔交易的一方损失可能超过其保证金覆盖范围时,如何保持账本平衡。

实现一个解决这个问题的正确算法正是保持交易所偿付能力的关键:这也是为什么从安全角度来看,窥探其实际实现是非常有趣的。

除此之外,hl-node 二进制文件还提供了额外的技术刺激:它是用 Rust 编写的,而众所周知 Rust 很难逆向。

带着好奇心、大量的推断以及合适的工具,我们将使用交互式界面进行深入研究,希望这能让重建的代码对任何人来说都更容易理解,同时也给逆向工程师提供一些学习内容和有趣的工具。

百万美元的问题

假设一个糟糕的交易者在 Hyperliquid 上开了一个 50x 杠杆的头寸。交易所如何避免因其最终的失败而亏损?

当市场对他们不利时,他们遇到的第一个检查是传统的清算:他们的头寸会自动以订单簿相反的一侧挂单。每当头寸的权益(equity)低于维持保证金时,就会发生这种情况,这在 compute_margin_requirement_by_mode 函数中有明确说明。

让我们考虑最简单的情况,即逐仓(isolated)头寸,它们在这个分支中处理:

提示

要更清晰地查看重建片段的逻辑,请点击它们以点击查看我们的 Rust 逆向 AI Agent执行的每个动作。点击 T 返回常规视图。

fncompute_account_value_for_direction(user_state: &UserState, is_isolated: bool, asset_idx: u64, mode: u8, oracle_data: &Vec<OracleEntry>) -> OptionUnitQty0x555556bb4d20 baseline· untouched HLILT thinking

baseline

0x555556bb4d20void\* compute_account_value_for_direction(void\* result, void\* user_state, uint8_tis_isolated, uint64_tasset_idx, uint32_tmargin_mode, void\* oracle_data)

{

0x555556bb4d2dvoid\* result_2 = result

0x555556bb4d33structOptionUnitQtylhs

0x555556bb4d33int128_tvar_138

0x555556bb4d33int64_trax_1

0x555556bb4d33int64_trcx

0x555556bb4d33int64_trdx_1

0x555556bb4d33boolcond:0_1

0x555556bb4d33if ((is_isolated & 1) == 0)

0x555556bb4dd5compute_user_margin_and_shortfall(&var_138, user_state, oracle_data, nullptr)

0x555556bb4de0int64_tvar_128

0x555556bb4de0lhs.value = var_128

0x555556bb4de5int128_tzmm0_1 = var_138

0x555556bb4dealhs.tag = zmm0_1.q

0x555556bb4dealhs.unit = zmm0_1:8.q

0x555556bb4deeint64_tvar_120

0x555556bb4deercx = var_120

0x555556bb4df3int64_tvar_118

0x555556bb4df3rdx_1 = var_118

0x555556bb4df8int64_tvar_110

0x555556bb4df8rax_1 = var_110

0x555556bb4dfdcond:0_1 = rax_1 == 0

0x555556bb4e00if (rax_1s&lt; 0)

0x555556bb4f38label_555556bb4f38:

0x555556bb4f38panic_unwrap_err(

0x555556bb4f38"called `Result::unwrap()` on an `Err` "

0x555556bb4f38"value/rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/iter/traits/accum."

0x555556bb4f38"rsTryFromIntErrorOkErr/home/ubuntu/.cargo/registry/src/index.crates."

0x555556bb4f38"io-6f17d22bba15001f/serde_jsonrc-0.1.0/src/read.rsPoisonErrorullrue/home/ubuntu/."

0x555556bb4f38"cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_jsonrc-0.1.0/src/de."

0x555556bb4f38"rs/home/ubuntu/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.14."

0x555556bb4f38"5/src/raw/mod.rs/home/ubuntu/hl/code_Testnet/l1/src/qtys.rsassertion failed:…",

0x555556bb4f380x2b, &var_138, &data_5555587fdcf0, &data_5555587ff0e0)

0x555556bb4f45label_555556bb4f45:

0x555556bb4f45__builtin_memcpy(result_2,

0x555556bb4f45"\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 0x10)

0x555556bb4f48 *(result_2 + 0x10) = 0

0x555556bb4e00else

0x555556bb4e06label_555556bb4e06:

0x555556bb4e06if (cond:0_1)

0x555556bb4e0frcx = 2

0x555556bb4e06else

0x555556bb4e08var_138:8.q = rdx_1

0x555556bb4e14int64_tvar_128_1 = rax_1

0x555556bb4e19var_138.q = rcx

0x555556bb4e26if (add_overflow(lhs.value, neg.q(rax_1)))

0x555556bb4f68panic_overflow_sub(&data_5555587fd610)

0x555556bb4f81panic_assertion_failed(

0x555556bb4f81"assertion failed: !position.leverage.is_cross()RawSignatureTracker() unique_key= has "

0x555556bb4f81"multiple values: . Is this a slashable "

0x555556bb4f81"event?/home/ubuntu/hl/code_Testnet/l1/src/raw_signature_track",

0x555556bb4f810x2f, &data_5555587ffbe0)

0x555556bb4f81noreturn

0x555556bb4e34int64_trax_2

0x555556bb4e34int64_trdx_2

0x555556bb4e34int64_tr14_3

0x555556bb4e34rax_2, rdx_2, result_2, r14_3 = option_unit_qty_add_a(&lhs, &var_138)

0x555556bb4e3cif (r14_3 == 0)

0x555556bb4e44rax_2 = 2

0x555556bb4e3celse

0x555556bb4e3e *(result_2 + 8) = rdx_2

0x555556bb4e49 *(result_2 + 0x10) = r14_3

0x555556bb4e4d *result_2 = rax_2

0x555556bb4f60returnresult_2

0x555556bb4d39void\* rax = *(user_state + 0x30)

0x555556bb4d40if (rax == 0)

0x555556bb4d40gotolabel_555556bb4f45

0x555556bb4d46int64_trdx = *(user_state + 0x38)

0x555556bb4d4fint64_tr11_1

0x555556bb4d4fwhile (true)

0x555556bb4d4fuint64_tr10_1 = zx.q(*(rax + 0x742))

0x555556bb4d61uint64_trdi_2 = -1

0x555556bb4d68r11_1 = 0

0x555556bb4d94booli

0x555556bb4d94do

0x555556bb4d73if (zx.q(r10_1.d &lt;&lt; 5) \* 5 == r11_1)

0x555556bb4db0rdi_2 = r10_1

0x555556bb4db0gotolabel_555556bb4db3

0x555556bb4d77int64_ttemp2_1 = *(rax + (rdi_2 &lt;&lt; 3) + 0x6f0)

0x555556bb4d7fi = temp2_1 != asset_idx

0x555556bb4d83if (temp2_1u> asset_idx)

0x555556bb4d83i = true

0x555556bb4d86rdi_2 += 1

0x555556bb4d89r11_1 += 0xa0

0x555556bb4d94while (i == 1)

0x555556bb4d9dif (zx.d(i) == 0)

0x555556bb4d9dbreak

0x555556bb4db3label_555556bb4db3:

0x555556bb4db3int64_ttemp3_1 = rdx

0x555556bb4db3rdx -= 1

0x555556bb4db7if (temp3_1u&lt; 1)

0x555556bb4db7gotolabel_555556bb4f45

0x555556bb4dbdrax = *(rax + (rdi_2 &lt;&lt; 3) + 0x748)

0x555556bb4e5bif (*(rax + r11_1 - 0x28) == 3)

0x555556bb4f81panic_assertion_failed(

0x555556bb4f81"assertion failed: !position.leverage.is_cross()RawSignatureTracker() unique_key= has multiple "

0x555556bb4f81"values: . Is this a slashable event?/home/ubuntu/hl/code_Testnet/l1/src/raw_signature_track",

0x555556bb4f810x2f, &data_5555587ffbe0)

0x555556bb4f81noreturn

0x555556bb4e7fint32_tleverage = memcpy(&var_138, rax + r11_1 - 0xa0, 0xa0)

0x555556bb4e85uint64_tlen = *(oracle_data + 0x10)

0x555556bb4e8fif (lenu&lt;= asset_idx)

0x555556bb4f8epanic_index_out_of_bounds(asset_idx, len, &data_5555587fede8)

0x555556bb4fa7panic_assertion_failed(

0x555556bb4fa7"internal error: entered unreachable "

0x555556bb4fa7"code/rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/sync/lazy_lock."

0x555556bb4fa7"rs/home/ubuntu/hl/code_Testnet/l1/src/agent_tracker."

0x555556bb4fa7"rs/home/ubuntu/hl/code_Testnet/l1/src/c_staking/pending_withdrawals.rs",

0x555556bb4fa70x28, &data_5555587ffbf8)

0x555556bb4fa7noreturn

0x555556bb4e95int64_trax_3 = *(oracle_data + 8)

0x555556bb4e9duint64_toracle_offset = asset_idx \* 0x60

0x555556bb4eabint128_tvar_148_1 = *(rax_3 + oracle_offset + 0x40)

0x555556bb4eb0int128_tsigned_notional = *(rax_3 + oracle_offset + 0x30)

0x555556bb4ecbint32_tresult_1

0x555556bb4ecbcompute_margin_requirement_by_mode(&result_1, &var_138, &signed_notional, zx.d(margin_mode.b),

0x555556bb4ecbleverage)

0x555556bb4ed9if (result_1 == 3)

0x555556bb4fa7panic_assertion_failed(

0x555556bb4fa7"internal error: entered unreachable "

0x555556bb4fa7"code/rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/sync/lazy_lock."

0x555556bb4fa7"rs/home/ubuntu/hl/code_Testnet/l1/src/agent_tracker."

0x555556bb4fa7"rs/home/ubuntu/hl/code_Testnet/l1/src/c_staking/pending_withdrawals.rs",

0x555556bb4fa70x28, &data_5555587ffbf8)

0x555556bb4fa7noreturn

0x555556bb4ee7int64_tvar_88

0x555556bb4ee7lhs.value = var_88

0x555556bb4eecint128_tzmm0_3 = result_1.o

0x555556bb4ef4lhs.tag = zmm0_3.q

0x555556bb4ef4lhs.unit = zmm0_3:8.q

0x555556bb4ef8int64_tvar_38

0x555556bb4ef8rcx = var_38

0x555556bb4f00int64_tvar_30

0x555556bb4f00rdx_1 = var_30

0x555556bb4f08int64_tvar_28

0x555556bb4f08rax_1 = var_28

0x555556bb4f10cond:0_1 = rax_1 == 0

0x555556bb4f13if (rax_1s>= 0)

0x555556bb4f13gotolabel_555556bb4e06

0x555556bb4f13gotolabel_555556bb4f38

0x555556bb4d33if ((is_isolated & 1) == 0)

0x555556bb4d33else

0x555556bb4e23int64_tequity_minus_margin = var_168_1 - rax_1

0x555556bb4f68noreturn

0x555556bb4f60returnresult

0x555556bb4f8enoreturn

}

这里的视图显示了重建的源代码,经历了从原始伪 C 代码开始的各个阶段,并由我们的 Rust 反编译器应用了几个经过验证的 AI Agent 动作。例如,你可以看到一些初步的 Rust 类型(如 OptionUnitQty)是如何恢复的:基于我们的测试框架,我们可以确定这些类型与原始源代码类型是兼容的。

如你所见,头寸的权益是其逐仓保证金加上其自身的盈亏(PnL),阈值简化为:

$$ liq_equity = 2 \cdot leverage \cdot |notional| $$

如果没有人想买入该头寸怎么办?

前一节中的市价单只是一个普通订单,仍然需要订单簿另一侧的人来成交。如果订单簿很薄,或者行情波动剧烈到扫清了所有被动买单,则只有部分(或完全没有)订单被成交,权益可能会继续下降。

当这种情况发生时,交易所基本上就剩下一个烫手山芋需要处理:它该如何处理这笔债务?

风险引擎

现在我们回到风险引擎:为了防止所有这些糟糕的交易者将系统推向毁灭,我们需要一些自动化的方法来预防和清理坏账。

清理坏账

Hyperliquid 文档解释说,低于 2/3 维持保证金的头寸会被备用清算(backstop-liquidated)到 HLP 清算人保险库中。当这都无法保持账本偿付能力时,自动减仓(ADL)会针对对手方交易者平仓。这到底是什么意思?

为了更好地了解这里发生了什么,我们转向二进制文件本身并追踪实际逻辑。一个简单的测试网同步给了我们很多上下文:在节点的 ABCI 状态中,我们可以看到一个名为 Clearinghouse 的相当复杂的结构,这是一个包含所有清算相关信息的结构体,嵌套在一个更大的 Exchange 数据结构中。这是它在运行时序列化为 MessagePack 时可能包含的内容示例。

这些数据对我们和 AI Agent 都会派上用场。

那么,风险引擎实际上何时检查头寸?我们可以通过从 Clearinghouse 中已知的字段字符串开始玩转交叉引用(xrefs)来回答这个问题。经过一些重命名后,我们可以推断出如下内容:

sub_555556262490 → clearinghouse_adl_orchestrator forward 1 path

exchange_end_block

clearinghouse_adl_orchestrator

2 hopsHLILMLIL

exchange_end_blockcallsclearinghouse_adl_orchestrator

0x555556265b59int128_tvar_668_1 = var_388;

0x555556265b6bvar_688.o = pxs_count_1.o;

0x555556265b97voidvar_b18;

0x555556265b97clearinghouse_adl_orchestrator(&result_out, &exchange_3->clearinghouse,

0x555556265b97&exchange_2->field_1078, &var_688, &var_3c0, r9_9, var_b18);

0x555556265b9duint8_t(*result_out_1)[0x42] = result_out;

0x555556265ba8structClearinghouse*r14_19;

我们有一个处理所有结算所操作的巨型函数,我们称之为 clearinghouse_adl_orchestrator。它在每个区块结束时由一个顶级方法(在其他地方被间接调用,很可能是一个 trait 方法)调用,我们称之为 exchange_end_block。因此,在每个区块结束时,我们都会运行一些检查。

提示

点击左侧的任何地址或行,以获取反编译或重建源代码的详细视图。

ADL 旨在作为一种紧急措施;与清算不同,它并不总是运行。请注意恢复的 clearinghouse.perform_auto_deleveraging 标志上的分支。

fnclearinghouse_adl_orchestrator(ch: &Clearinghouse, fill_ctx: &mutAdlFillTracker, oracle: &mutOracleData, candidates: &BTreeMap<[u8; 20], u64>) -> BTreeMap<(u64, u8), Vec<u8>>0x555556ac3850 4 / 4· rust source · ✓ accepted ×0.05T thinking

4 / 4

0x555556ac3850Clearinghouse\* clearinghouse_6

0x555556ac3850Clearinghouse\* clearinghouse_3 = clearinghouse_6

0x555556ac3871Clearinghouse\* clearinghouse = ch

0x555556ac387cint128_t\* deferred_cross_queue = nullptr

0x555556ac3888int128_t\* adl_was_triggered = nullptr

0x555556ac3894int64_tcpty_vec_cap = 0

0x555556ac38a0int128_t\* i_26 = 8

0x555556ac38acint64_tcpty_vec_len = 0

0x555556ac38bcuint64_tlength = adl_candidates->length

0x555556ac38c5int128_tvar_9c0 = adl_candidates->root_node_ptr.o

0x555556ac38caint128_t\* constvar_9c8 = 1

0x555556ac38dbint64_ttotal_shortfall_value_2 = 0

0x555556ac38e4int128_tresult_2

0x555556ac38e4adl_init_user_position_iterators(&result_2, ch, 0, &var_9c8)

0x555556ac38f2int128_ttotal_shortfall_tag = OPTION_UNIT_QTY_NONE

0x555556ac38fbint64_ttotal_shortfall_value = 0

0x555556ac3907int64_tlog_vec_cap = 0

0x555556ac3913int64_tlog_vec_ptr = 8

0x555556ac391fint64_tvar_840 = 0

0x555556ac392bint64_tdeferred_queue_len = 0

0x555556ac3937int64_t\* deferred_queue_cap = 8

0x555556ac3943int64_tdeferred_queue_buf = 0

0x555556ac395aClearinghouse\* clearinghouse_1 = clearinghouse

0x555556ac3962void\* constvar_9a0

0x555556ac3962int32_t\* str1_ptr_5

0x555556ac3962char\* logger_lock_ptr

0x555556ac3962int128_tvar_8f8

0x555556ac3962uint64_t\* var_8e0

0x555556ac3962int64_t\* logger_data_ptr

0x555556ac3962int32_t\* str1_ptr

0x555556ac3962int128_tvar_798

0x555556ac3962charvar_748

0x555556ac3962int128_t\* size_17

0x555556ac3962int128_tcounterparty_info

0x555556ac3962int128_tvar_558

0x555556ac3962int128_t\* shortfall_discriminant

0x555556ac3962int128_tcounterparty_info_1

0x555556ac3962int32_t\* str1_ptr_6

0x555556ac3962int64_tdeferred_queue_buf_1

0x555556ac3962if (deferred_queue_buf_1 != 0)

0x555556ac3968int32_t\* str1_ptr_4 = str1_ptr_6

0x555556ac3974void\* rax_3 = &str1_ptr_4[deferred_queue_buf_1 \* 0xa]

0x555556ac3980void\* __offset(Clearinghouse, 0x60) user_state_2 = clearinghouse + 0x60

0x555556ac398cvoid\* __offset(Clearinghouse, 0xd8) oracle_data = clearinghouse + 0xd8

0x555556ac39a7logger_lock_ptr = &TRACING_LOG_LOCK

0x555556ac39bblogger_data_ptr = &TRACING_LOG_DATA

0x555556ac3a1awhile (true)

0x555556ac3a1astr1_ptr = str1_ptr_4

0x555556ac3a26var_9c0:8.d = str1_ptr_4[8]

0x555556ac3a2astr1_ptr_5 = str1_ptr_4

0x555556ac3a38var_9c8.o = *(str1_ptr_4 + 0x10)

0x555556ac3a3evoid\* r13_1 = *(clearinghouse + 0x128)

0x555556ac3a48void\* user_state

0x555556ac3a48if (r13_1 == 0)

0x555556ac3af0user_state = nullptr

0x555556ac3a48else

0x555556ac3a4eint64_trbx_1 = *(clearinghouse + 0x130)

0x555556ac3a55while (true)

0x555556ac3a55void\* rsi = r13_1 + 0x428

0x555556ac3a5cuint64_trax_6 = zx.q(*(r13_1 + 0x506))

0x555556ac3a70uint64_tr15_1 = zx.q((rax_6 &lt;&lt; 2).d) \* 5

0x555556ac3a74user_state = r13_1 - 0x60

0x555556ac3a78uint64_tr14 = -1

0x555556ac3ab9booli

0x555556ac3ab9do

0x555556ac3a83if (r15_1 == 0)

0x555556ac3ad0r14 = rax_6

0x555556ac3ad5int64_ttemp2_1 = rbx_1

0x555556ac3ad5rbx_1 -= 1

0x555556ac3ad9if (temp2_1u&lt; 1)

0x555556ac3ad9gotolabel_555556ac8c5b

0x555556ac3ad9gotolabel_555556ac3adb

0x555556ac3a93int32_trax_8 = memcmp(&var_9c8, rsi, 0x14)

0x555556ac3a9di = rax_8 != 0

0x555556ac3aa5if (rax_8s&lt; 0)

0x555556ac3aa5i = true

0x555556ac3aa8r15_1 -= 0x14

0x555556ac3aacuser_state += 0x60

0x555556ac3ab0r14 += 1

0x555556ac3ab3rsi += 0x14

0x555556ac3ab9while (i == 1)

0x555556ac3ac0if (zx.d(i) == 0)

0x555556ac3ac0break

0x555556ac3ac2int64_ttemp7_1 = rbx_1

0x555556ac3ac2rbx_1 -= 1

0x555556ac3ac6if (temp7_1u&lt; 1)

0x555556ac3af4label_555556ac3af4:

0x555556ac3af4user_state = nullptr

0x555556ac3af6break

0x555556ac3adblabel_555556ac3adb:

0x555556ac3adbr13_1 = *(r13_1 + (r14 &lt;&lt; 3) + 0x508)

0x555556ac3b00clearinghouse = clearinghouse_1

0x555556ac3b0bif (user_state == 0)

0x555556ac3b0buser_state = user_state_2

0x555556ac3b14int64_t\* str1_ptr_11 = str1_ptr_5

0x555556ac3b36compute_account_value_for_direction(&var_9c8, user_state, (*str1_ptr_11).b, str1_ptr_11[1],

0x555556ac3b360, oracle_data)

0x555556ac3b3cint64_trcx_3 = var_9c0:8.q

0x555556ac3b44structOptionUnitQtyrhs

0x555556ac3b44int64_trax_11

0x555556ac3b44int64_trcx_5

0x555556ac3b44uint64_tlen_9

0x555556ac3b44uint64_tindex

0x555556ac3b44if (rcx_3 != 0)

0x555556ac3b49rax_11 = neg.q(rcx_3)

0x555556ac3b4cclearinghouse_6 = rust_dealloc

0x555556ac3b53if (neg.q(rcx_3) == -0x8000000000000000)

0x555556ac8c5blabel_555556ac8c5b:

0x555556ac8c5bpanic_negate_min(&data_5555587fd610)

0x555556ac8c69label_555556ac8c69:

0x555556ac8c69size_17 = &var_798

0x555556ac8c78void\* constvar_630_7 = &data_555556c328d0

0x555556ac8c88int32_t\*\* var_628_8 = &str1_ptr

0x555556ac8c97void\* constvar_620_1 = &data_5555560b930

0x555556ac8ca6var_8f8.q = &data_55555880a108

0x555556ac8caevar_8f8:8.q = 2

0x555556ac8cbaint64_tvar_8d8_5 = 0

0x555556ac8cceint128_t\*\* var_8e8_20 = &size_17

0x555556ac8cd6var_8e0 = 2

0x555556ac8cf1core::panicking::panic_fmt::h62f63d096dd276af(&var_8f8, &data_55555880a128)

0x555556ac8cf7label_555556ac8cf7:

0x555556ac8cf7var_8f8.q = 0

0x555556ac8d24panic_unit_mismatch_assertion(0, &var_798, &size_17, &var_8f8)

0x555556ac8d30label_555556ac8d30:

0x555556ac8d30panic_unwrap_none(&data_5555587fefc8)

0x555556ac8d30noreturn

0x555556ac3b59int64_tvar_8e8_1 = rax_11

0x555556ac3b61int128_tzmm0_2 = var_9c8.o

0x555556ac3b67var_8f8 = zmm0_2

0x555556ac3b73if (rcx_3s&lt;= 0)

0x555556ac3b79if (rcx_3 == 0)

0x555556ac3bb0rcx_5 = 2

0x555556ac3bb5rax_11 = 0

0x555556ac3b79else

0x555556ac3b83rhs.unit = var_8f8:8.q

0x555556ac3b8brcx_5 = zmm0_2.q

0x555556ac3b79gotolabel_555556ac3bc0

0x555556ac8d4bshortfall_discriminant = &var_8f8

0x555556ac8d5acounterparty_info_1.q = &data_555556b4bcb0

0x555556ac8d69var_9c8 = &data_555557dd1240

0x555556ac8d6evar_9c0.q = 1

0x555556ac8d77int64_tvar_9a8_21 = 0

0x555556ac8d88var_9c0:8.q = &shortfall_discriminant

0x555556ac8d8dlength = 1

0x555556ac8da2len_9, index =

0x555556ac8da2core::panicking::panic_fmt::h62f63d096dd276af(&var_9c8, &data_5555587fd610)

0x555556ac8daflabel_555556ac8daf:

0x555556ac8dafpanic_index_out_of_bounds(index, len_9, &data_5555587fee70)

0x555556ac8db5label_555556ac8db5:

0x555556ac8db5var_8f8.q = 0

0x555556ac8de2panic_unit_mismatch_lhs(0, &size_17, &var_748, &var_8f8, &data_55555880a0f0)

0x555556ac8de7label_555556ac8de7:

0x555556ac8de7var_8f8.q = 0

0x555556ac8e14panic_unit_mismatch_rhs(0, &var_748, &size_17, &var_8f8, &data_55555880a0d8)

0x555556ac8e23label_555556ac8e23:

0x555556ac8e23handle_alloc_error(1, 0x34)

0x555556ac8e30label_555556ac8e30:

0x555556ac8e30var_9c8 = &data_5555587f8190

0x555556ac8e35var_9c0.q = 1

0x555556ac8e46var_9c0:8.q = &str1_ptr

0x555556ac8e4flength.o = zx.o(0)

0x555556ac8e61core::panicking::panic_fmt::h62f63d096dd276af(&var_9c8, &data_5555587f81a0)

0x555556ac8e6elabel_555556ac8e6e:

0x555556ac8e6epanic_unwrap_none(&data_5555587f8178)

0x555556ac8e6enoreturn

0x555556ac3ba0rcx_5 = 2

0x555556ac3ba5rax_11 = 0

0x555556ac3ba7clearinghouse_6 = rust_dealloc

0x555556ac3bc0label_555556ac3bc0:

0x555556ac3bc0rhs.value = rax_11

0x555556ac3bc8rhs.tag = rcx_5

0x555556ac3bd0int32_t\* adl_was_triggered = str1_ptr

0x555556ac3bdbif (*adl_was_triggered == 1)

0x555556ac3be1index = *(adl_was_triggered + 8)

0x555556ac3be5len_9 = *(clearinghouse + 0xd0)

0x555556ac3befif (len_9u&lt;= index)

0x555556ac3befgotolabel_555556ac8daf

0x555556ac3c05if (*(*(clearinghouse + 0xc8) + (index &lt;&lt; 5) + 0x18) != 0)

0x555556ac3c14if (LOGGER_ONCE_CELL != 3)

0x555556ac41e5var_8f8.q = &data_55555885f728

0x555556ac41f5var_9c8 = &var_8f8

0x555556ac4216once_cell_get_or_init(&LOGGER_ONCE_CELL, 0, &var_9c8, &data_55555878bb08,

0x555556ac4216 &data_55555878c798)

0x555556ac3c21var_798 = data_55555885f730

0x555556ac3c30data_55555886bd41

0x555556ac3c38uint8_t\* rax_15 = rust_alloc(0x34)

0x555556ac3c41if (rax_15 == 0)

0x555556ac3c41gotolabel_555556ac8e23

0x555556ac3c64__builtin_strncpy(rax_15, "immediately auto-deleveraging only_isolated position",

0x555556ac3c640x34)

0x555556ac3c6ecounterparty_info.q = 0x34

0x555556ac3c7acounterparty_info:8.q = rax_15

0x555556ac3c82var_558.q = 0x34

0x555556ac3c8eshortfall_discriminant = nullptr

0x555556ac3c9acounterparty_info_1.q = 8

0x555556ac3ca6counterparty_info_1:8.q = 0

0x555556ac3cbavar_8f8.q = &str1_ptr

0x555556ac3cc9var_8f8:8.q = &data_555556bc9360

0x555556ac3cd8var_9c8 = &data_555557dd1240

0x555556ac3cddvar_9c0.q = 1

0x555556ac3ce6int64_tvar_9a8 = 0

0x555556ac3cf7var_9c0:8.q = &var_8f8

0x555556ac3cfclength = 1

0x555556ac3d1fvoidinput

0x555556ac3d1ffmt_arguments_new(&input, &var_9c8)

0x555556ac3d2dtruncate_str_to_char_limit(&var_8f8, &input, 0x2710)

0x555556ac3d33size_17 = &var_8f8

0x555556ac3d42void\* constvar_630_1 = &data_555556ab0390

0x555556ac3d51var_9c8 = &data_5555587f80f0

0x555556ac3d56var_9c0.q = 2

0x555556ac3d5fint64_tvar_9a8_1 = 0

0x555556ac3d70var_9c0:8.q = &size_17

0x555556ac3d75length = 1

0x555556ac3d89int128_tvar_1d0

0x555556ac3d89fmt_arguments_new(&var_1d0, &var_9c8)

0x555556ac3d8cint64_tsize = var_8f8.q

0x555556ac3d97if (size != 0)

0x555556ac3da3rust_dealloc(var_8f8:8.q, size, 0)

0x555556ac3da5void\* rbp = counterparty_info_1:8.q

0x555556ac3db5if (rbp == shortfall_discriminant)

0x555556ac3dbfvec_grow_string(&shortfall_discriminant)

0x555556ac3dc4int64_trax_16 = counterparty_info_1.q

0x555556ac3dd4void\* rcx_7 = rbp \* 3

0x555556ac3ddfint64_tvar_1c0

0x555556ac3ddf *(rax_16 + (rcx_7 &lt;&lt; 3) + 0x10) = var_1c0

0x555556ac3dec *(rax_16 + (rcx_7 &lt;&lt; 3)) = var_1d0

0x555556ac3df0clearinghouse_6 = rbp + 1

0x555556ac3df3counterparty_info_1:8.q = clearinghouse_6

0x555556ac3e18tracing_event_emit(&var_9c8, 8, clearinghouse_6,

0x555556ac3e18" @ \n由于 shortfall 是可接受的,不执行 Auto-deleveraging。"

0x555556ac3e18"Auto-deleveragings 触发 perform\_auto\_deleveraging=\[total\_shortfall: "\

0x555556ac3e18"\[asset\_and\_side\_to\_adl\_requirements: Bug! Auto-deleveraging liquidatable 已经 "\

0x555556ac3e18"具有比 max shortfall 更负的账户价值。\[liquidatable: 内部 "\

0x555556ac3e18"错误:进入了不可达代码:leve",\

0x555556ac3e183, fmt\_arguments\_new, &var\_8f8)

0x555556ac3e22int64\_tvar\_628\_1 = var\_9c0:8.q

0x555556ac3e30size\_17.o = var\_9c8.o

0x555556ac3e39int64\_ti\_33 = counterparty\_info\_1:8.q

0x555556ac3e4bif (i\_33 != 0)

0x555556ac3e59int64\_t\* r14\_3 = counterparty\_info\_1.q + 8

0x555556ac3e67int64\_ti\_1

0x555556ac3e67do

0x555556ac3e6dint64\_tsize\_1 = r14\_3[-1]

0x555556ac3e74if (size\_1 != 0)

0x555556ac3e7brust\_dealloc(*r14\_3, size\_1, 0)

0x555556ac3e60r14\_3 = &r14\_3[3]

0x555556ac3e64i\_1 = i\_33

0x555556ac3e64i\_33 -= 1

0x555556ac3e67while (i\_1 != 1)

0x555556ac3f80int128\_t\* shortfall\_discriminant\_1 = shortfall\_discriminant

0x555556ac3f8bif (shortfall\_discriminant\_1 != 0)

0x555556ac3f9frust\_dealloc(counterparty\_info\_1.q, shortfall\_discriminant\_1 \* 0x18, 0)

0x555556ac3faavar\_9c8 = &var\_798

0x555556ac3fb6var\_9c0.q = &data\_555556b50bd0

0x555556ac3fc3var\_9c0:8.q = &counterparty\_info

0x555556ac3fcflength = &data\_555556ab0390

0x555556ac3fdcint128\_t\*\* var\_9a8\_2 = &size\_17

0x555556ac3fe1var\_9a0 = &data\_555556ab0390

0x555556ac3fedvar\_8f8.q = &data\_5555587f7f98

0x555556ac3ff5var\_8f8:8.q = 4

0x555556ac4001int64\_tvar\_8d8\_1 = 0

0x555556ac4012int128\_t\* const\* var\_8e8\_2 = &var\_9c8

0x555556ac401avar\_8e0 = 3

0x555556ac4036int128\_tvar\_1e8

0x555556ac4036fmt\_arguments\_new(&var\_1e8, &var\_8f8)

0x555556ac403cint128\_t\* size\_2 = size\_17

0x555556ac4047clearinghouse = clearinghouse\_1

0x555556ac404fif (size\_2 != 0)

0x555556ac405brust\_dealloc(var\_630\_1, size\_2, 0)

0x555556ac405eint64\_tsize\_3 = counterparty\_info.q

0x555556ac4069if (size\_3 != 0)

0x555556ac4075rust\_dealloc(counterparty\_info:8.q, size\_3, 0)

0x555556ac4088if (var\_840 == log\_vec\_cap)

0x555556ac4092vec\_grow\_string(&log\_vec\_cap)

0x555556ac409fint64\_trcx\_8 = var\_840 \* 3

0x555556ac40abint64\_tvar\_1d8

0x555556ac40ab *(log\_vec\_ptr + (rcx\_8 &lt;&lt; 3) + 0x10) = var\_1d8

0x555556ac40b8 *(log\_vec\_ptr + (rcx\_8 &lt;&lt; 3)) = var\_1e8

0x555556ac40bfvar\_840 += 1

0x555556ac40c7int32\_t\* str1\_ptr\_1 = str1\_ptr

0x555556ac40d6var\_9c8.o = *str1\_ptr\_1

0x555556ac40dbvar\_9c0:8.o = *(str1\_ptr\_1 + 0x10)

0x555556ac40e0int128\_t\*\* rax\_25 = *(str1\_ptr\_1 + 0x20)

0x555556ac40f9if (deferred\_queue\_buf == deferred\_queue\_len)

0x555556ac4107vec\_grow\_0x28(&deferred\_queue\_len)

0x555556ac39d8int64\_trcx\_1 = deferred\_queue\_buf \* 5

0x555556ac39e1deferred\_queue\_cap[rcx\_1 + 4] = rax\_25

0x555556ac39e6int128\_tzmm0\_1 = var\_9c8.o

0x555556ac39f2 *(deferred\_queue\_cap + (rcx\_1 &lt;&lt; 3) + 0x10) = var\_9c0:8.o

0x555556ac39f8 *(deferred\_queue\_cap + (rcx\_1 &lt;&lt; 3)) = zmm0\_1

0x555556ac3a00deferred\_queue\_buf += 1

0x555556ac3a08str1\_ptr\_4 = &str1\_ptr\_11[5]

0x555556ac3a14if (str1\_ptr\_4 == rax\_3)

0x555556ac3a14break

0x555556ac3a14continue

0x555556ac3e90if (data\_55555885fb18 != 3)

0x555556ac4111var\_8f8.q = &data\_55555885f848

0x555556ac4121var\_9c8 = &var\_8f8

0x555556ac4142once\_cell\_get\_or_init(&data\_55555885fb18, 0, &var\_9c8, &data\_5555587f5940,

0x555556ac4142 &data\_5555587f7d38)

0x555556ac3e99int64\_trsi\_5 = tracing\_subscriber\_interest(&data\_55555885f848)

0x555556ac3ea8if (data\_55555885fb18 == 3)

0x555556ac3eb2boolz\_1

0x555556ac3eb2if (0 == TRACING\_LOG\_LOCK)

0x555556ac3eb2TRACING\_LOG\_LOCK = 1

0x555556ac3eb2z\_1 = true

0x555556ac3eb2else

0x555556ac3eb2int64\_trax\_20

0x555556ac3eb2rax\_20.b = TRACING\_LOG\_LOCK

0x555556ac3eb2z\_1 = false

0x555556ac3ebaif (not(z\_1))

0x555556ac3ebagotolabel\_555556ac41a3

0x555556ac3ebagotolabel\_555556ac3ece

0x555556ac414dvar\_8f8.q = &data\_55555885f848

0x555556ac415dvar\_9c8 = &var\_8f8

0x555556ac417ersi\_5 = once\_cell\_get\_or\_init(&data\_55555885fb18, 0, &var\_9c8, &data\_5555587f5940,

0x555556ac417e &data\_5555587f7d38)

0x555556ac4188boolz\_3

0x555556ac4188if (0 == TRACING\_LOG\_LOCK)

0x555556ac4188TRACING\_LOG\_LOCK = 1

0x555556ac4188z\_3 = true

0x555556ac4188else

0x555556ac4188int64\_trax\_26

0x555556ac4188rax\_26.b = TRACING\_LOG\_LOCK

0x555556ac4188z\_3 = false

0x555556ac4190if (z\_3)

0x555556ac3ecelabel\_555556ac3ece:

0x555556ac3ed5if (data\_55555885f9e0 != -0x7fffffffffffffff)

0x555556ac3ed7label\_555556ac3ed7:

0x555556ac3edeif (TRACING\_LOG\_DATA != -0x8000000000000000)

0x555556ac3ee8rwlock\_write\_unlock(logger\_data\_ptr, rust\_dealloc)

0x555556ac4190else

0x555556ac41a3label\_555556ac41a3:

0x555556ac41a3rwlock\_read\_lock(logger\_lock\_ptr, rsi\_5, 0x3b9aca00)

0x555556ac41beif (data\_55555885f9e0 != -0x7fffffffffffffff)

0x555556ac41begotolabel\_555556ac3ed7

0x555556ac3eeduint64\_trax\_21

0x555556ac3eedrax\_21.b = 1

0x555556ac3ef1boolz\_2

0x555556ac3ef1if (1 == TRACING\_LOG\_LOCK)

0x555556ac3ef1TRACING\_LOG\_LOCK = 0

0x555556ac3ef1z\_2 = true

0x555556ac3ef1else

0x555556ac3ef1rax\_21.b = TRACING\_LOG\_LOCK

0x555556ac3ef1z\_2 = false

0x555556ac3ef9if (not(z\_2))

0x555556ac41d3rwlock\_read\_unlock(logger\_lock\_ptr, 0)

0x555556ac3f07var\_9c0:8.q = total\_shortfall\_value

0x555556ac3f15var\_9c8.o = total\_shortfall\_tag

0x555556ac3f1bint64\_ttotal\_shortfall\_value\_3 = total\_shortfall\_value + rhs.value

0x555556ac3f23if (total\_shortfall\_value + rhs.valueu&lt; total\_shortfall\_value)

0x555556ac8bdflabel\_555556ac8bdf:

0x555556ac8bdfpanic\_overflow\_add(&data\_5555587fefb0)

0x555556ac8beclabel\_555556ac8bec:

0x555556ac8becpanic\_unwrap\_none(&data\_5555587f8148)

0x555556ac8becnoreturn

0x555556ac3f36int64\_trax\_22

0x555556ac3f36int64\_trdx\_4

0x555556ac3f36rax\_22, rdx\_4 = option\_unit\_qty\_add\_b(&var\_9c8, &rhs)

0x555556ac3f43if (total\_shortfall\_value\_3 == 0)

0x555556ac3f43rax\_22 = 2

0x555556ac3f47total\_shortfall\_tag.q = rax\_22

0x555556ac3f4ftotal\_shortfall\_tag:8.q = rdx\_4

0x555556ac3f57total\_shortfall\_value = total\_shortfall\_value\_3

0x555556ac3f5fstr1\_ptr\_4 = &str1\_ptr\_11[5]

0x555556ac3f6bif (str1\_ptr\_4 == rax\_3)

0x555556ac3f6bbreak

0x555556ac4221total\_shortfall\_value\_2 = total\_shortfall\_value

0x555556ac4229int64\_tr15\_2 = *(clearinghouse + 0x40)

0x555556ac4235var\_8f8 = total\_shortfall\_tag

0x555556ac423dint64\_ttotal\_shortfall\_value\_4 = total\_shortfall\_value\_2

0x555556ac424bvar\_9c8.o = *(clearinghouse + 0x30)

0x555556ac4251var\_9c0:8.q = r15\_2

0x555556ac4256int128\_t\* \_ret\_2 = &var\_8f8

0x555556ac4266uint64\_tr10\_1 = option\_unit\_qty\_add\_b(&var\_8f8, &var\_9c8)

0x555556ac427eif (total\_shortfall\_value\_2u>= r15\_2)

0x555556ac4280int64\_tdeferred\_queue\_len\_1 = deferred\_queue\_len

0x555556ac428bif (deferred\_queue\_len\_1 != 0)

0x555556ac429fr10\_1 = rust\_dealloc(deferred\_queue\_cap, deferred\_queue\_len\_1 \* 0x28, 0)

0x555556ac42addeferred\_queue\_buf = deferred\_queue\_buf\_1

0x555556ac42bedeferred\_queue\_len.o = result\_2

0x555556ac42c7int64\_tdeferred\_queue\_len\_2 = deferred\_queue\_len

0x555556ac42f2int128\_t\*\* asset\_idx\_2

0x555556ac42f2int64\_t\* i\_62

0x555556ac42f2void\* \_\_offset(Clearinghouse, 0x60) shortfall\_discriminant\_4

0x555556ac42f2int64\_tvar\_7d8

0x555556ac42f2int32\_t\* str1\_ptr\_8

0x555556ac42f2uint64\_tvar\_738

0x555556ac42f2uint64\_tcpty\_array\_offset\_1

0x555556ac42f2int128\_t\* size\_19

0x555556ac42f2int128\_tvar\_3b8

0x555556ac42f2int64\_t (\* user\_shortfall)(int64\_targ1, int64\_targ2, int32\_targ3)

0x555556ac42f2int64\_t\* i\_60

0x555556ac42f2int64\_tvar\_378

0x555556ac42f2if (deferred\_queue\_buf != 0)

0x555556ac4304void\* rax\_32 = &deferred\_queue\_cap[deferred\_queue\_buf \* 5]

0x555556ac4310void\* \_\_offset(Clearinghouse, 0x60) ch\_2 = clearinghouse + 0x60

0x555556ac4328char\* var\_820\_1 = &TRACING\_LOG\_LOCK

0x555556ac4330int64\_t\* deferred\_queue\_cap\_1 = deferred\_queue\_cap

0x555556ac43c5while (true)

0x555556ac43c5label\_555556ac43c5:

0x555556ac43c5int128\_t\* shortfall\_discriminant\_3 = \*deferred\_queue\_cap\_1

0x555556ac43ccvar\_558 = *(deferred\_queue\_cap\_1 + 0x18)

0x555556ac43d8counterparty\_info = *(deferred\_queue\_cap\_1 + 8)

0x555556ac43e4if (shortfall\_discriminant\_3 == 2)

0x555556ac43e4break

0x555556ac43eashortfall\_discriminant = shortfall\_discriminant\_3

0x555556ac440bint96\_tvar\_490\_1 = var\_558.12

0x555556ac4410counterparty\_info\_1 = counterparty\_info

0x555556ac441evar\_9c0:8.d = var\_558:8.d

0x555556ac4426var\_9c8.o = counterparty\_info:8.o

0x555556ac442fvoid\* r14\_4 = *(clearinghouse + 0x128)

0x555556ac4449void\* \_\_offset(Clearinghouse, 0x60) ch\_1

0x555556ac4449if (r14\_4 == 0)

0x555556ac4510ch\_1 = nullptr

0x555556ac4449else

0x555556ac444fshortfall\_discriminant\_4 = shortfall\_discriminant\_3

0x555556ac4457int64\_tr15\_3 = *(clearinghouse + 0x130)

0x555556ac445ewhile (true)

0x555556ac445evoid\* rsi\_11 = r14\_4 + 0x428

0x555556ac4465uint64\_trax\_35 = zx.q(*(r14\_4 + 0x506))

0x555556ac4479uint64\_trbx\_6 = zx.q((rax\_35 &lt;&lt; 2).d) \* 5

0x555556ac447dch\_1 = r14\_4 - 0x60

0x555556ac4481uint64\_trbp\_1 = -1

0x555556ac44d1booli\_2

0x555556ac44d1do

0x555556ac4493if (rbx\_6 == 0)

0x555556ac44f0rbp\_1 = rax\_35

0x555556ac44f5int64\_ttemp5\_1 = r15\_3

0x555556ac44f5r15\_3 -= 1

0x555556ac44f9if (temp5\_1u&lt; 1)

0x555556ac44f9gotolabel\_555556ac4515

0x555556ac44f9gotolabel\_555556ac44fb

0x555556ac44a3int32\_trax\_37 = memcmp(&var\_9c8, rsi\_11, 0x14)

0x555556ac44adi\_2 = rax\_37 != 0

0x555556ac44b5if (rax\_37s&lt; 0)

0x555556ac44b5i\_2 = true

0x555556ac44b8rbx\_6 -= 0x14

0x555556ac44bcch\_1 += 0x60

0x555556ac44c0rbp\_1 += 1

0x555556ac44c3rsi\_11 += 0x14

0x555556ac44c6\_ret\_2 = &var\_8f8

0x555556ac44d1while (i\_2 == 1)

0x555556ac44d8if (zx.d(i\_2) == 0)

0x555556ac44d8break

0x555556ac44daint64\_ttemp9\_1 = r15\_3

0x555556ac44dar15\_3 -= 1

0x555556ac44deif (temp9\_1u&lt; 1)

0x555556ac4515label\_555556ac4515:

0x555556ac4515ch\_1 = nullptr

0x555556ac4518break

0x555556ac44fblabel\_555556ac44fb:

0x555556ac44fbr14\_4 = *(r14\_4 + (rbp\_1 &lt;&lt; 3) + 0x508)

0x555556ac4520shortfall\_discriminant\_3 = shortfall\_discriminant\_4

0x555556ac452bif (ch\_1 == 0)

0x555556ac452bch\_1 = ch\_2

0x555556ac453fvar\_9c0:8.d = var\_558:8.d

0x555556ac4546var\_9c8.o = counterparty\_info:8.o

0x555556ac4563if (cpty\_vec\_len == cpty\_vec\_cap)

0x555556ac456dvec\_grow\_0x28(&cpty\_vec\_cap)

0x555556ac457aint64\_trcx\_13 = cpty\_vec\_len \* 5

0x555556ac4583 *(i\_26 + (rcx\_13 &lt;&lt; 3) + 0x10) = var\_9c0:8.q

0x555556ac458e *(i\_26 + (rcx\_13 &lt;&lt; 3)) = var\_9c8.o

0x555556ac4593 *(i\_26 + (rcx\_13 &lt;&lt; 3) + 0x18) = shortfall\_discriminant\_3

0x555556ac4598 *(i\_26 + (rcx\_13 &lt;&lt; 3) + 0x20) = counterparty\_info\_1.q

0x555556ac45a0cpty\_vec\_len += 1

0x555556ac45b0int128\_tzmm0\_6

0x555556ac45b0if ((shortfall\_discriminant.b & 1) == 0)

0x555556ac4650i\_60 = nullptr

0x555556ac465cvar\_378 = 0

0x555556ac4668uint64\_t\* i\_44 = *(ch\_1 + 0x30)

0x555556ac4670int64\_tvar\_6c0

0x555556ac4670uint64\_tlength\_11

0x555556ac4670int64\_trbx\_10

0x555556ac4670uint64\_tlen\_10

0x555556ac4670int128\_t\* constindex\_2

0x555556ac4670if (i\_44 != 0)

0x555556ac4676void\* \_\_offset(Clearinghouse, 0x60) r8\_1 = *(ch\_1 + 0x40)

0x555556ac467eif (r8\_1 != 0)

0x555556ac4684uint64\_ti\_45 = *(ch\_1 + 0x38)

0x555556ac468esize\_19 = 2

0x555556ac4696rbx\_10 = 0

0x555556ac4698uint64\_t\* i\_54 = nullptr

0x555556ac46cewhile (true)

0x555556ac46ceuint64\_ti\_51

0x555556ac46ceuint64\_t\* i\_58

0x555556ac46ceif (i\_54 == 0)

0x555556ac46f3if (i\_45 == 0)

0x555556ac472di\_54 = i\_44

0x555556ac46f3else

0x555556ac46f8i\_54 = i\_44

0x555556ac46fbint64\_trcx\_17 = i\_45 & 7

0x555556ac46ffuint64\_ti\_27

0x555556ac46ffif (rcx\_17 == 0)

0x555556ac4732i\_27 = i\_45

0x555556ac4739if (i\_45u>= 8)

0x555556ac477clabel\_555556ac477c:

0x555556ac477cuint64\_ti\_3

0x555556ac477cdo

0x555556ac4771i\_54 = \*(\*(\*(\*(\

0x555556ac4771 \*(\*(\*(i\_54[0xe9] + 0x748) + 0x748) + 0x748) + 0x748)\

0x555556ac4771 + 0x748) + 0x748) + 0x748)

0x555556ac4778i\_3 = i\_27

0x555556ac4778i\_27 -= 8

0x555556ac477cwhile (i\_3 != 8)

0x555556ac46ffelse

0x555556ac4701int64\_trdx\_16 = 0

0x555556ac471ddo

0x555556ac4710i\_54 = i\_54[0xe9]

0x555556ac4717rdx\_16 += 1

0x555556ac471dwhile (rcx\_17 != rdx\_16)

0x555556ac4722i\_27 = i\_45 - rdx\_16

0x555556ac4729if (i\_45u>= 8)

0x555556ac4729gotolabel\_555556ac477c

0x555556ac477ei\_44 = nullptr

0x555556ac478cif (0u>= zx.q(*(i\_54 + 0x742)))

0x555556ac478cgotolabel\_555556ac47c5

0x555556ac46e0i\_58 = i\_54

0x555556ac46e3i\_51 = 0

0x555556ac46ceelseif (i\_45u>= zx.q(*(i\_54 + 0x742)))

0x555556ac47c5label\_555556ac47c5:

0x555556ac47c5do

0x555556ac47a0i\_58 = i\_54[0xdc]

0x555556ac47aaif (i\_58 == 0)

0x555556ac8b8elabel\_555556ac8b8e:

0x555556ac8b8epanic\_unwrap\_none(&data\_5555587ff668)

0x555556ac8b8enoreturn

0x555556ac47b0i\_44 += 1

0x555556ac47b3i\_51 = zx.q(i\_54[0xe8].w)

0x555556ac47bai\_54 = i\_58

0x555556ac47c5while (i\_51.wu>= *(i\_58 + 0x742))

0x555556ac46daelse

0x555556ac46e0i\_58 = i\_54

0x555556ac46e3i\_51 = i\_45

0x555556ac47dbuint64\_ti\_48

0x555556ac47dbif (i\_44 == 0)

0x555556ac4870i\_48 = i\_51 + 1

0x555556ac47dbelse

0x555556ac47e5int64\_t\* rdx\_19 = &i\_58[i\_51 + 0xea]

0x555556ac47efvoid\* rsi\_14 = i\_44 & 7

0x555556ac47f3uint64\_t\* i\_38

0x555556ac47f3if (rsi\_14 == 0)

0x555556ac4a50i\_38 = i\_44

0x555556ac4a57if (i\_44u>= 8)

0x555556ac485flabel\_555556ac485f:

0x555556ac485fuint64\_t\* i\_4

0x555556ac485fdo

0x555556ac4854rdx\_19 = \*(\*(\*(\

0x555556ac4854 \*(\*(\*(\*(\*rdx\_19 + 0x748) + 0x748) + 0x748) + 0x748)\

0x555556ac4854 + 0x748) + 0x748) + 0x748) + 0x748

0x555556ac485bi\_4 = i\_38

0x555556ac485bi\_38 = &i\_38[-1]

0x555556ac485fwhile (i\_4 != 8)

0x555556ac47f3else

0x555556ac47f9int64\_trdi\_27 = 0

0x555556ac4810do

0x555556ac4803rdx\_19 = \*rdx\_19 + 0x748

0x555556ac480ardi\_27 += 1

0x555556ac4810while (rsi\_14 != rdi\_27)

0x555556ac4815i\_38 = i\_44 - rdi\_27

0x555556ac481cif (i\_44u>= 8)

0x555556ac481cgotolabel\_555556ac485f

0x555556ac4861i\_48 = 0

0x555556ac4883i\_58[i\_51 + 0xdd]

0x555556ac488buint64\_texpected\_kind = i\_58[i\_51 \* 0x14]

0x555556ac488fint64\_t\* expected\_asset = i\_58[i\_51 \* 0x14 + 1]

0x555556ac48a1var\_8f8.q = expected\_kind

0x555556ac48b1var\_8f8:8.q = expected\_asset

0x555556ac48b9int64\_tvar\_8e8\_3 = i\_58[i\_51 \* 0x14 + 2]

0x555556ac48c9var\_9c8.o = OPTION\_UNIT\_QTY\_NONE

0x555556ac48cfvar\_9c0:8.q = 0

0x555556ac48e5int64\_trbx\_12

0x555556ac48e5int64\_tr15\_4

0x555556ac48e5rbx\_12, i\_54, r15\_4 = option\_unit\_qty\_sub(&var\_8f8, &var\_9c8)

0x555556ac48fbif (rbx\_12 == 0 || *(r15\_4 + i\_51 \* 0xa0 + 0x78) != 3)

0x555556ac46a0\_ret\_2 = &var\_8f8

0x555556ac48fbelse

0x555556ac4909var\_8f8.q = expected\_kind

0x555556ac4921var\_8f8:8.q = expected\_asset

0x555556ac4931int64\_tvar\_8e8\_4 = rbx\_12

0x555556ac4941var\_9c8.o = OPTION\_UNIT\_QTY\_NONE

0x555556ac4947var\_9c0:8.q = 0

0x555556ac4950\_ret\_2 = &var\_8f8

0x555556ac4960int64\_trbx\_14

0x555556ac4960uint64\_tcpty\_array\_offset\_2

0x555556ac4960int64\_tr15\_7

0x555556ac4960rbx\_14, i\_54, cpty\_array\_offset\_2, index\_2, r15\_7 =

0x555556ac4960option\_unit\_qty\_sub(&var\_8f8, &var\_9c8)

0x555556ac4965var\_8f8.q = r15\_7

0x555556ac496dvar\_8f8:8.q = rbx\_14

0x555556ac4988uint8\_trax\_52 = (rbx\_12u>> 0x3f).b

0x555556ac498cint64\_t\* i\_64 = i\_60

0x555556ac4997void\* oracle\_asset\_data\_1

0x555556ac4997if (i\_64 != 0)

0x555556ac499duint64\_tlength\_12 = length\_11

0x555556ac49a5int128\_t\* rdi\_30

0x555556ac49a5while (true)

0x555556ac49a5uint64\_tcpty\_array\_offset\_3 = zx.q(*(i\_64 + 0x1c2))

0x555556ac49adcpty\_array\_offset\_1 = cpty\_array\_offset\_3

0x555556ac49b5uint64\_tr9\_1 = zx.q(cpty\_array\_offset\_3.d &lt;&lt; 4)

0x555556ac49b9rdi\_30 = &i\_64[0x14]

0x555556ac49c0cpty\_array\_offset\_2 = -1

0x555556ac49c7int64\_t\* i\_66 = i\_64

0x555556ac4a12chari\_5

0x555556ac4a12do

0x555556ac49d3if (r9\_1 == 0)

0x555556ac4a30cpty\_array\_offset\_2 = cpty\_array\_offset\_1

0x555556ac4a38uint64\_tlength\_13 = length\_12

0x555556ac4a38length\_12 -= 1

0x555556ac4a3cif (length\_13u&lt; 1)

0x555556ac4a3cgotolabel\_555556ac4a93

0x555556ac4a3cgotolabel\_555556ac4a3e

0x555556ac49d8int64\_ttemp28\_1 = *i\_66

0x555556ac49dbchari\_43 = (temp28\_1 != index\_2).b

0x555556ac49e5if (temp28\_1u> index\_2)

0x555556ac49e5i\_43 = -1

0x555556ac49ecchartemp29\_1 = i\_66[1].b

0x555556ac49f0i\_66 = &i\_66[2]

0x555556ac49f4i\_5 = temp29\_1 != rax\_52

0x555556ac49f8if (temp29\_1u> rax\_52)

0x555556ac49f8i\_5 = -1

0x555556ac49ffif (i\_43 != 0)

0x555556ac49ffi\_5 = i\_43

0x555556ac4a03r9\_1 -= 0x10

0x555556ac4a07rdi\_30 += 0x18

0x555556ac4a0bcpty\_array\_offset\_2 += 1

0x555556ac4a12while (i\_5 == 1)

0x555556ac4a1bif (zx.d(i\_5) == 0)

0x555556ac4a1bbreak

0x555556ac4a1duint64\_tlength\_14 = length\_12

0x555556ac4a1dlength\_12 -= 1

0x555556ac4a21if (length\_14u&lt; 1)

0x555556ac4a21gotolabel\_555556ac4a93

0x555556ac4a3elabel\_555556ac4a3e:

0x555556ac4a3ei\_64 = i\_64[cpty\_array\_offset\_2 + 0x39]

0x555556ac4a6ardi\_30[1].q = rbx\_12

0x555556ac4a77 *rdi\_30 = var\_8f8

0x555556ac4a7boracle\_asset\_data\_1 = oracle\_asset\_data

0x555556ac4a83len\_10 = *(oracle\_asset\_data\_1 + 0x10)

0x555556ac4a8aif (len\_10u> index\_2)

0x555556ac4a8agotolabel\_555556ac4ade

0x555556ac4a8agotolabel\_555556ac8c4e

0x555556ac4a91i\_64 = nullptr

0x555556ac4a93label\_555556ac4a93:

0x555556ac4a93var\_9c8 = i\_64

0x555556ac4a98var\_9c0.q = 0

0x555556ac4aa1var\_9c0:8.q = cpty\_array\_offset\_2

0x555556ac4aaelength = &i\_60

0x555556ac4ab3int128\_t\* constindex\_3 = index\_2

0x555556ac4ab8var\_9a0.b = rax\_52

0x555556ac4ac4btree\_insert\_adl\_result(&var\_9c8, &var\_8f8)

0x555556ac4ac9oracle\_asset\_data\_1 = oracle\_asset\_data

0x555556ac4ad1len\_10 = *(oracle\_asset\_data\_1 + 0x10)

0x555556ac4ad8if (len\_10u&lt;= index\_2)

0x555556ac8c4elabel\_555556ac8c4e:

0x555556ac8c4epanic\_index\_out\_of\_bounds(index\_2, len\_10, &data\_5555587fede8)

0x555556ac8c4egotolabel\_555556ac8c5b

0x555556ac4adelabel\_555556ac4ade:

0x555556ac4adevoid\* rcx\_26 = *(oracle\_asset\_data\_1 + 8)

0x555556ac4ae6int64\_trsi\_20 = index\_2 \* 0x60

0x555556ac4aedint64\_trax\_55 = neg.q(rbx\_12)

0x555556ac4af0if (rax\_55s&lt; 0)

0x555556ac4af0rax\_55 = rbx\_12

0x555556ac4af4int64\_trax\_56 = rax\_55 \* *(rcx\_26 + rsi\_20 + 0x48)

0x555556ac4af9if (mulu.dp.q(rax\_55, *(rcx\_26 + rsi\_20 + 0x48)) u>> 0x40 != zx.o(0))

0x555556ac8bd2label\_555556ac8bd2:

0x555556ac8bd2panic\_overflow\_mul(&data\_5555587fe628)

0x555556ac8bd2break

0x555556ac4b0evar\_9c0:8.q = *(rcx\_26 + rsi\_20 + 0x40)

0x555556ac4b17var\_9c8.o = *(rcx\_26 + rsi\_20 + 0x30)

0x555556ac4b32uint64\_trax\_59

0x555556ac4b32int64\_trdx\_21

0x555556ac4b32rax\_59, rdx\_21 =

0x555556ac4b32oracle\_price\_type\_validate(&var\_9c8, expected\_kind, expected\_asset)

0x555556ac4b3fif (rax\_56 == 0)

0x555556ac4b4brax\_59 = 2

0x555556ac4b3felse

0x555556ac4b41var\_8f8:8.q = rdx\_21

0x555556ac4b50int64\_tvar\_8e8\_6 = rax\_56

0x555556ac4b58var\_8f8.q = rax\_59

0x555556ac4b68var\_9c8 = size\_19

0x555556ac4b75var\_9c0.q = var\_6c0

0x555556ac4b7avar\_9c0:8.q = rbx\_10

0x555556ac4b7fint64\_ttemp31\_1 = rbx\_10

0x555556ac4b7frbx\_10 += rax\_56

0x555556ac4b82if (temp31\_1 + rax\_56u&lt; temp31\_1)

0x555556ac4b82break

0x555556ac4b90int128\_t\* size\_30

0x555556ac4b90int64\_trdx\_22

0x555556ac4b90size\_30, rdx\_22 = option\_unit\_qty\_add\_b(&var\_9c8, &var\_8f8)

0x555556ac4b95int128\_t\* size\_27 = size\_30

0x555556ac4b98var\_6c0 = rdx\_22

0x555556ac4ba8if (rbx\_10 == 0)

0x555556ac4ba8size\_27 = 2

0x555556ac4bacsize\_19 = size\_27

0x555556ac46b5i\_45 = i\_48

0x555556ac46bdi\_44 = nullptr

0x555556ac46c2void\* \_\_offset(Clearinghouse, 0x60) temp24\_1 = r8\_1

0x555556ac46c2r8\_1 -= 1

0x555556ac46c5if (temp24\_1 == 1)

0x555556ac46c5gotolabel\_555556ac4c89

0x555556ac47dbgotolabel\_555556ac8bdf

0x555556ac4c65size\_19 = 2

0x555556ac4c6drbx\_10 = 0

0x555556ac4c89label\_555556ac4c89:

0x555556ac4c89compute\_user\_margin\_and\_shortfall(&var\_9c8, ch\_1, oracle\_asset\_data, nullptr)

0x555556ac4c94user\_shortfall = var\_9c0:8.q

0x555556ac4ca1var\_3b8 = var\_9c8.o

0x555556ac4cb9if (data\_55555885fb18 != 3)

0x555556ac626evar\_8f8.q = &data\_55555885f848

0x555556ac6276var\_9c8 = &var\_8f8

0x555556ac6297once\_cell\_get\_or\_init(&data\_55555885fb18, 0, &var\_9c8, &data\_5555587f5940,

0x555556ac6297 &data\_5555587f7d38)

0x555556ac4cbfint64\_trsi\_53 = tracing\_subscriber\_interest(&data\_55555885f848)

0x555556ac4ce1if (data\_55555885fb18 == 3)

0x555556ac4cebboolz\_4

0x555556ac4cebif (0 == TRACING\_LOG\_LOCK)

0x555556ac4cebTRACING\_LOG\_LOCK = 1

0x555556ac4cebz\_4 = true

0x555556ac4cebelse

0x555556ac4cebint64\_trax\_67

0x555556ac4cebrax\_67.b = TRACING\_LOG\_LOCK

0x555556ac4cebz\_4 = false

0x555556ac4cf3if (not(z\_4))

0x555556ac4cf3gotolabel\_555556ac62fe

0x555556ac4cf3gotolabel\_555556ac4d07

0x555556ac62a9var\_8f8.q = &data\_55555885f848

0x555556ac62b1var\_9c8 = &var\_8f8

0x555556ac62d2rsi\_53 = once\_cell\_get\_or\_init(&data\_55555885fb18, 0, &var\_9c8, &data\_5555587f5940,

0x555556ac62d2 &data\_5555587f7d38)

0x555556ac62e3boolz\_6

0x555556ac62e3if (0 == TRACING\_LOG\_LOCK)

0x555556ac62e3TRACING\_LOG\_LOCK = 1

0x555556ac62e3z\_6 = true

0x555556ac62e3else

0x555556ac62e3int64\_trax\_127

0x555556ac62e3rax\_127.b = TRACING\_LOG\_LOCK

0x555556ac62e3z\_6 = false

0x555556ac62ebif (z\_6)

0x555556ac4d07label\_555556ac4d07:

0x555556ac4d0eif (data\_55555885f9e0 != -0x7fffffffffffffff)

0x555556ac4d10label\_555556ac4d10:

0x555556ac4d17if (TRACING\_LOG\_DATA != -0x8000000000000000)

0x555556ac4d22rwlock\_write\_unlock(&TRACING\_LOG\_DATA, rust\_dealloc)

0x555556ac62ebelse

0x555556ac62felabel\_555556ac62fe:

0x555556ac62ferwlock\_read\_lock(var\_820\_1, rsi\_53, 0x3b9aca00)

0x555556ac6319if (data\_55555885f9e0 != -0x7fffffffffffffff)

0x555556ac6319gotolabel\_555556ac4d10

0x555556ac4d27uint64\_trax\_68

0x555556ac4d27rax\_68.b = 1

0x555556ac4d2bboolz\_5

0x555556ac4d2bif (1 == TRACING\_LOG\_LOCK)

0x555556ac4d2bTRACING\_LOG\_LOCK = 0

0x555556ac4d2bz\_5 = true

0x555556ac4d2belse

0x555556ac4d2brax\_68.b = TRACING\_LOG\_LOCK

0x555556ac4d2bz\_5 = false

0x555556ac4d33if (not(z\_5))

0x555556ac632erwlock\_read\_unlock(var\_820\_1, 0)

0x555556ac4d4avar\_8f8 = var\_3b8

0x555556ac4d53uint64\_tvar\_8e8\_8 = user\_shortfall

0x555556ac4d5bvar\_9c8 = nullptr

0x555556ac4d6evar\_9c0:8.q = -0x746a528800

0x555556ac4d7bint64\_trbx\_18

0x555556ac4d7bint64\_tr14\_10

0x555556ac4d7brbx\_18, clearinghouse\_6, r14\_10, zmm0\_6 = option\_unit\_qty\_add\_a(&var\_8f8, &var\_9c8)

0x555556ac4d83int64\_t\* i\_63

0x555556ac4d83int64\_t\* i\_61 = i\_63

0x555556ac4d8bif (rbx\_18s&lt; r14\_10)

0x555556ac4d9aif (LOGGER\_ONCE\_CELL != 3)

0x555556ac6370var\_8f8.q = &data\_55555885f728

0x555556ac6378var\_9c8 = &var\_8f8

0x555556ac6399once\_cell\_get\_or\_init(&LOGGER\_ONCE\_CELL, 0, &var\_9c8, &data\_55555878bb08,

0x555556ac6399 &data\_55555878c798)

0x555556ac4da7var\_748.o = data\_55555885f730

0x555556ac4db6data\_55555886bd41

0x555556ac4dbeuint8\_t\* rax\_71 = rust\_alloc(0x67)

0x555556ac4dc7if (rax\_71 == 0)

0x555556ac8e8elabel\_555556ac8e8e:

0x555556ac8e8eint64\_trcx\_90

0x555556ac8e8eint64\_trdx\_104

0x555556ac8e8evoid\* rsi\_129

0x555556ac8e8eint64\_t\* rdi\_162

0x555556ac8e8eint64\_tr8\_19

0x555556ac8e8evoid\* r9\_9

0x555556ac8e8ercx\_90, rdx\_104, rsi\_129, rdi\_162, r8\_19, r9\_9 = handle\_alloc\_error(1, 0x67)

0x555556ac8e9ereturnsub\_555556ac8ea0(rdi\_162, rsi\_129, rdx\_104, rcx\_90, r8\_19, r9\_9)

0x555556ac8e9e\_\_tailcall

0x555556ac4e0b\_\_builtin\_strncpy(rax\_71,

0x555556ac4e0b"Bug! Auto-deleveraging liquidatable 已经具有比 max shortfall 更负的账户价值。",

0x555556ac4e0b0x67)

0x555556ac4e1cstr1\_ptr = 0x67

0x555556ac4e30var\_7d8 = 0x67

0x555556ac4e3csize\_17 = nullptr

0x555556ac4e48void\* var\_630\_3 = 8

0x555556ac4e54int64\_tvar\_628\_2 = 0

0x555556ac4e68var\_8f8.q = &shortfall\_discriminant

0x555556ac4e77var\_8f8:8.q = &data\_555556adafe0

0x555556ac4e86var\_9c8 = &data\_555557dd1240

0x555556ac4e8bvar\_9c0.q = 1

0x555556ac4e94int64\_tvar\_9a8\_3 = 0

0x555556ac4e9dvar\_9c0:8.q = &var\_8f8

0x555556ac4ea2length = 1

0x555556ac4ec5voidinput\_1

0x555556ac4ec5fmt\_arguments\_new(&input\_1, &var\_9c8)

0x555556ac4ed3truncate\_str\_to\_char\_limit(&var\_8f8, &input\_1, 0x2710)

0x555556ac4ed9var\_798.q = &var\_8f8

0x555556ac4ee8var\_798:8.q = &data\_555556ab0390

0x555556ac4ef7var\_9c8 = &data\_5555587f80f0

0x555556ac4efcvar\_9c0.q = 2

0x555556ac4f05int64\_tvar\_9a8\_4 = 0

0x555556ac4f16var\_9c0:8.q = &var\_798

0x555556ac4f1blength = 1

0x555556ac4f2fint128\_tvar\_1a0

0x555556ac4f2ffmt\_arguments\_new(&var\_1a0, &var\_9c8)

0x555556ac4f32int64\_trsi\_29 = var\_8f8.q

0x555556ac4f3dif (rsi\_29 != 0)

0x555556ac4f49clearinghouse\_6(var\_8f8:8.q, rsi\_29, 0)

0x555556ac4f5bif (var\_628\_2 == size\_17)

0x555556ac4f65vec\_grow\_string(&size\_17)

0x555556ac4f72int64\_trcx\_31 = var\_628\_2 \* 3

0x555556ac4f7eint64\_tvar\_190

0x555556ac4f7e *(var\_630\_3 + (rcx\_31 &lt;&lt; 3) + 0x10) = var\_190

0x555556ac4f8b *(var\_630\_3 + (rcx\_31 &lt;&lt; 3)) = var\_1a0

0x555556ac4fa2var\_8f8.q = &var\_3b8

0x555556ac4fb1var\_8f8:8.q = &data\_555556adf370

0x555556ac4fc0var\_9c8 = &data\_555557dd1240

0x555556ac4fc5var\_9c0.q = 1

0x555556ac4fceint64\_tvar\_9a8\_5 = 0

0x555556ac4fd7var\_9c0:8.q = &var\_8f8

0x555556ac4fdclength = 1

0x555556ac4fffvoidinput\_2

0x555556ac4ffffmt\_arguments\_new(&input\_2, &var\_9c8)

0x555556ac500dtruncate\_str\_to\_char\_limit(&var\_8f8, &input\_2, 0x2710)

0x555556ac5013var\_798.q = &var\_8f8

0x555556ac5022var\_798:8.q = &data\_555556ab0390

0x555556ac5031var\_9c8 = &data\_5555587f8110

0x555556ac5036var\_9c0.q = 2

0x555556ac503fint64\_tvar\_9a8\_6 = 0

0x555556ac5050var\_9c0:8.q = &var\_798

0x555556ac5055length = 1

0x555556ac5069int128\_tvar\_188

0x555556ac5069fmt\_arguments\_new(&var\_188, &var\_9c8)

0x555556ac506cint64\_trsi\_33 = var\_8f8.q

0x555556ac5077if (rsi\_33 != 0)

0x555556ac5083clearinghouse\_6(var\_8f8:8.q, rsi\_33, 0)

0x555556ac5095if (var\_628\_2 + 1 == size\_17)

0x555556ac509fvec\_grow\_string(&size\_17)

0x555556ac50acint64\_trcx\_32 = (var\_628\_2 + 1) \* 3

0x555556ac50b8int64\_tvar\_178

0x555556ac50b8 *(var\_630\_3 + (rcx\_32 &lt;&lt; 3) + 0x10) = var\_178

0x555556ac50c5 *(var\_630\_3 + (rcx\_32 &lt;&lt; 3)) = var\_188

0x555556ac50f1tracing\_event\_emit(&var\_9c8, var\_630\_3, var\_628\_2 + 2,

0x555556ac50f1" @ \\n由于 shortfall 是可接受的,不执行 Auto-deleveraging。"

0x555556ac50f1"Auto-deleveragings 触发 perform\_auto\_deleveraging=\[total\_shortfall: "

0x555556ac50f1"\[asset\_and\_side\_to\_adl\_requirements: Bug! Auto-deleveraging liquidatable 已经 "

0x555556ac50f1"具有比 max shortfall 更负的账户价值。\[liquidatable: 内部 "

0x555556ac50f1"错误:进入了不可达代码:leve",

0x555556ac50f13, &var\_9c0, fmt\_arguments\_new)

0x555556ac50fbint64\_tvar\_788\_1 = var\_9c0:8.q

0x555556ac5109var\_798 = var\_9c8.o

0x555556ac5112int64\_ti\_34 = var\_628\_2 + 2

0x555556ac511dif (i\_34 != 0)

0x555556ac5127int64\_t\* r14\_12 = var\_630\_3 + 8

0x555556ac5137int64\_ti\_6

0x555556ac5137do

0x555556ac5139int64\_trsi\_35 = r14\_12[-1]

0x555556ac5140if (rsi\_35 != 0)

0x555556ac5147clearinghouse\_6(*r14\_12, rsi\_35, 0)

0x555556ac5130r14\_12 = &r14\_12[3]

0x555556ac5134i\_6 = i\_34

0x555556ac5134i\_34 -= 1

0x555556ac5137while (i\_6 != 1)

0x555556ac5150int128\_t\* size\_20 = size\_17

0x555556ac515bif (size\_20 != 0)

0x555556ac516fclearinghouse\_6(var\_630\_3, size\_20 \* 0x18, 0)

0x555556ac5179var\_9c8 = &var\_748

0x555556ac5185var\_9c0.q = &data\_555556b50bd0

0x555556ac5192var\_9c0:8.q = &str1\_ptr

0x555556ac519elength = &data\_555556ab0390

0x555556ac51abint128\_t\* var\_9a8\_7 = &var\_798

0x555556ac51b0void\* constvar\_9a0\_1 = &data\_555556ab0390

0x555556ac51bcvar\_8f8.q = &data\_5555587f7f98

0x555556ac51c4var\_8f8:8.q = 4

0x555556ac51d0int64\_tvar\_8d8\_2 = 0

0x555556ac51e1var\_8e8\_8 = &var\_9c8

0x555556ac51e9var\_8e0 = 3

0x555556ac5200int128\_tvar\_1b8

0x555556ac5200fmt\_arguments\_new(&var\_1b8, &var\_8f8)

0x555556ac5206int64\_trsi\_38 = var\_798.q

0x555556ac5211i\_61 = i\_63

0x555556ac5219if (rsi\_38 != 0)

0x555556ac5225clearinghouse\_6(var\_798:8.q, rsi\_38, 0)

0x555556ac5227int32\_t\* str1\_ptr\_2 = str1\_ptr

0x555556ac5232if (str1\_ptr\_2 != 0)

0x555556ac523eclearinghouse\_6(rax\_71, str1\_ptr\_2, 0)

0x555556ac5250if (var\_840 == log\_vec\_cap)

0x555556ac525avec\_grow\_string(&log\_vec\_cap)

0x555556ac5267int64\_trcx\_33 = var\_840 \* 3

0x555556ac5273int64\_tvar\_1a8

0x555556ac5273 *(log\_vec\_ptr + (rcx\_33 &lt;&lt; 3) + 0x10) = var\_1a8

0x555556ac5278zmm0\_6 = var\_1b8

0x555556ac5281 *(log\_vec\_ptr + (rcx\_33 &lt;&lt; 3)) = zmm0\_6

0x555556ac5289var\_840 += 1

0x555556ac5291int64\_t\* i\_59 = i\_60

0x555556ac52a4uint64\_tlength\_10

0x555556ac52a4int64\_t\* i\_49

0x555556ac52a4int128\_t\*\* asset\_idx\_4

0x555556ac52a4uint64\_tlength\_7

0x555556ac52a4int64\_trbx\_25

0x555556ac52a4int64\_t\* i\_55

0x555556ac52a4if (i\_59 == 0)

0x555556ac54c9asset\_idx\_4 = nullptr

0x555556ac54cbrbx\_25 = 0

0x555556ac54cdlength\_7 = length\_10

0x555556ac54d5i\_55 = i\_49

0x555556ac52a4else

0x555556ac52aalength\_7 = length\_11

0x555556ac52b2rbx\_25 = var\_378

0x555556ac52baasset\_idx\_4 = 1

0x555556ac52bfi\_55 = i\_59

0x555556ac52c2i\_61 = i\_59

0x555556ac54ddvar\_9c8 = asset\_idx\_4

0x555556ac54e2var\_9c0.q = 0

0x555556ac54ebi\_49 = i\_55

0x555556ac54f3var\_9c0:8.q = i\_55

0x555556ac54f8length = length\_7

0x555556ac54fdasset\_idx\_2 = asset\_idx\_4

0x555556ac5502var\_9a0 = nullptr

0x555556ac550bi\_62 = i\_61

0x555556ac5510length\_10 = length\_7

0x555556ac5518uint64\_tlength\_8 = length\_7

0x555556ac551dint64\_tvar\_988\_1 = rbx\_25

0x555556ac5525i\_63 = i\_61

0x555556ac552duint64\_tvar\_810\_2

0x555556ac552duint64\_tlength\_1

0x555556ac552dint64\_t\* i\_8

0x555556ac552dint64\_t\* i\_52

0x555556ac552dint64\_trbx\_35

0x555556ac552dint64\_t\* i\_46

0x555556ac552dif (rbx\_25 == 0)

0x555556ac5e7fvar\_9c8 = nullptr

0x555556ac5e8bif (i\_59 == 0)

0x555556ac5f5blabel\_555556ac5f5b:

0x555556ac5f5bindex\_2 = nullptr

0x555556ac5f5erbx\_35 = 0

0x555556ac5e8belse

0x555556ac5e91length\_1 = length\_10

0x555556ac5e99i\_46 = i\_49

0x555556ac5ea4if (length\_1 != 0)

0x555556ac5eadlabel\_555556ac5ead:

0x555556ac5eadint64\_trcx\_47 = length\_1 & 7

0x555556ac5eb1uint64\_ti\_29

0x555556ac5eb1if (rcx\_47 == 0)

0x555556ac5f65i\_29 = length\_1

0x555556ac5f6cif (length\_1u>= 8)

0x555556ac5faclabel\_555556ac5fac:

0x555556ac5facuint64\_ti\_7

0x555556ac5facdo

0x555556ac5fa1i\_46 = \*(\*(\*(\

0x555556ac5fa1 \*(\*(\*(\*(i\_46[0x39] + 0x1c8) + 0x1c8) + 0x1c8) + 0x1c8)\

0x555556ac5fa1 + 0x1c8) + 0x1c8) + 0x1c8)

0x555556ac5fa8i\_7 = i\_29

0x555556ac5fa8i\_29 -= 8

0x555556ac5facwhile (i\_7 != 8)

0x555556ac5eb1else

0x555556ac5eb7int64\_trdx\_49 = 0

0x555556ac5ecddo

0x555556ac5ec0i\_46 = i\_46[0x39]

0x555556ac5ec7rdx\_49 += 1

0x555556ac5ecdwhile (rcx\_47 != rdx\_49)

0x555556ac5ed2i\_29 = length\_1 - rdx\_49

0x555556ac5ed9if (length\_1u>= 8)

0x555556ac5ed9gotolabel\_555556ac5fac

0x555556ac5faelabel\_555556ac5fae:

0x555556ac5faei\_52 = nullptr

0x555556ac5fb0i\_8 = i\_46[0x16]

0x555556ac5fbavar\_810\_2 = r10\_1

0x555556ac5fc2int64\_t\* i\_35

0x555556ac5fc2int64\_t\* i\_56

0x555556ac5fc2if (i\_8 != 0)

0x555556ac5f57label\_555556ac5f57:

0x555556ac5f57do

0x555556ac5f30i\_35 = i\_8

0x555556ac5f33i\_56 = i\_52 + 1

0x555556ac5f45clearinghouse\_6()

0x555556ac5f47i\_8 = i\_35[0x16]

0x555556ac5f51i\_52 = i\_56

0x555556ac5f57while (i\_8 != 0)

0x555556ac5f57gotolabel\_555556ac5fd7

0x555556ac5fc8label\_555556ac5fc8:

0x555556ac5fc8i\_56 = i\_52

0x555556ac5fcbi\_35 = i\_46

0x555556ac5fd7label\_555556ac5fd7:

0x555556ac5fd7int64\_trsi\_49 = 0x228

0x555556ac5fdcif (i\_56 == 0)

0x555556ac5fdcrsi\_49 = 0x1c8

0x555556ac5fe5zmm0\_6 = clearinghouse\_6(i\_35, rsi\_49, 0, i\_52)

0x555556ac5fe7index\_2 = var\_9c8

0x555556ac5fecrbx\_35 = var\_988\_1

0x555556ac5ff1r10\_1 = var\_810\_2

0x555556ac6010label\_555556ac6010:

0x555556ac6010while (true)

0x555556ac6010int64\_ttemp30\_1 = rbx\_35

0x555556ac6010rbx\_35 -= 1

0x555556ac6014if (temp30\_1u>= 1)

0x555556ac601aint64\_tvar\_988\_2 = rbx\_35

0x555556ac6023if ((index\_2.b & 1) == 0)

0x555556ac6023gotolabel\_555556ac8bb8

0x555556ac6032if (var\_9c0.q == 0)

0x555556ac6038void\* rax\_111 = var\_9c0:8.q

0x555556ac603duint64\_tlength\_5 = length

0x555556ac6045if (length\_5 != 0)

0x555556ac604aint64\_trdx\_51 = length\_5 & 7

0x555556ac604euint64\_ti\_32

0x555556ac604eif (rdx\_51 == 0)

0x555556ac5ffbi\_32 = length\_5

0x555556ac6002if (length\_5u>= 8)

0x555556ac60bclabel\_555556ac60bc:

0x555556ac60bcuint64\_ti\_9

0x555556ac60bcdo

0x555556ac60b1rax\_111 = \*(\*(\*(\*(\

0x555556ac60b1 \*(\*(\*(\*(rax\_111 + 0x1c8) + 0x1c8) + 0x1c8) + 0x1c8)\

0x555556ac60b1 + 0x1c8) + 0x1c8) + 0x1c8) + 0x1c8)

0x555556ac60b8i\_9 = i\_32

0x555556ac60b8i\_32 -= 8

0x555556ac60bcwhile (i\_9 != 8)

0x555556ac604eelse

0x555556ac6050int64\_trsi\_50 = 0

0x555556ac606ddo

0x555556ac6060rax\_111 = *(rax\_111 + 0x1c8)

0x555556ac6067rsi\_50 += 1

0x555556ac606dwhile (rdx\_51 != rsi\_50)

0x555556ac6072i\_32 = length\_5 - rsi\_50

0x555556ac6079if (length\_5u>= 8)

0x555556ac6079gotolabel\_555556ac60bc

0x555556ac60bevar\_9c8 = 1

0x555556ac60c7var\_9c0.q = rax\_111

0x555556ac60d0var\_9c0:8.o = \_mm\_xor\_pd(zmm0\_6, zmm0\_6)

0x555556ac60d7index\_2 = 1

0x555556ac60e3btree\_iterator\_advance(&var\_8f8, &var\_9c0)

0x555556ac60f1if (var\_8f8.q == 0)

0x555556ac60f1gotolabel\_555556ac8bc5

0x555556ac60fflength = var\_8e8\_8

0x555556ac6104zmm0\_6 = var\_8f8

0x555556ac610dvar\_9c0 = zmm0\_6

0x555556ac611fif (var\_8e0 != 0)

0x555556ac611fcontinue

0x555556ac6014elseif (index\_2 != 0)

0x555556ac6139void\* i\_53 = var\_9c0.q

0x555556ac613evoid\* i\_47 = var\_9c0:8.q

0x555556ac6146void\* i\_11

0x555556ac6146void\* i\_36

0x555556ac6146uint64\_tr12\_5

0x555556ac6146void\* i\_57

0x555556ac6146void\* i\_50

0x555556ac6146if (i\_53 == 0)

0x555556ac616cuint64\_tlength\_2 = length

0x555556ac6174if (length\_2 == 0)

0x555556ac634ai\_50 = nullptr

0x555556ac634cgotolabel\_555556ac6154

0x555556ac617dint64\_trcx\_50 = length\_2 & 7

0x555556ac6181uint64\_ti\_30

0x555556ac6181if (rcx\_50 == 0)

0x555556ac63a4i\_30 = length\_2

0x555556ac63b1if (length\_2u>= 8)

0x555556ac61eclabel\_555556ac61ec:

0x555556ac61ecuint64\_ti\_10

0x555556ac61ecdo

0x555556ac61e1i\_47 = \*(\*(\*(\*(\

0x555556ac61e1 \*(\*(\*(\*(i\_47 + 0x1c8) + 0x1c8) + 0x1c8) + 0x1c8)\

0x555556ac61e1 + 0x1c8) + 0x1c8) + 0x1c8) + 0x1c8)

0x555556ac61e8i\_10 = i\_30

0x555556ac61e8i\_30 -= 8

0x555556ac61ecwhile (i\_10 != 8)

0x555556ac6181else

0x555556ac6187int64\_trdx\_53 = 0

0x555556ac619ddo

0x555556ac6190i\_47 = *(i\_47 + 0x1c8)

0x555556ac6197rdx\_53 += 1

0x555556ac619dwhile (rcx\_50 != rdx\_53)

0x555556ac61a2i\_30 = length\_2 - rdx\_53

0x555556ac61a9if (length\_2u>= 8)

0x555556ac61a9gotolabel\_555556ac61ec

0x555556ac61eei\_50 = nullptr

0x555556ac61f0i\_11 = *(i\_47 + 0xb0)

0x555556ac61f7r12\_5 = r10\_1

0x555556ac61fdif (i\_11 != 0)

0x555556ac61fdgotolabel\_555556ac6227

0x555556ac622bi\_57 = i\_50

0x555556ac622ei\_36 = i\_47

0x555556ac6146else

0x555556ac6148i\_50 = i\_47

0x555556ac614bi\_47 = i\_53

0x555556ac6154label\_555556ac6154:

0x555556ac6154i\_11 = *(i\_47 + 0xb0)

0x555556ac615br12\_5 = r10\_1

0x555556ac6161if (i\_11 != 0)

0x555556ac6227label\_555556ac6227:

0x555556ac6227do

0x555556ac6200i\_36 = i\_11

0x555556ac6203i\_57 = i\_50 + 1

0x555556ac6215clearinghouse\_6()

0x555556ac6217i\_11 = *(i\_36 + 0xb0)

0x555556ac6221i\_50 = i\_57

0x555556ac6227while (i\_11 != 0)

0x555556ac6161else

0x555556ac622bi\_57 = i\_50

0x555556ac622ei\_36 = i\_47

0x555556ac6234int64\_trsi\_52 = 0x228

0x555556ac6239if (i\_57 == 0)

0x555556ac6239rsi\_52 = 0x1c8

0x555556ac6242clearinghouse\_6(i\_36, rsi\_52, 0, i\_11)

0x555556ac6244r10\_1 = r12\_5

0x555556ac6247clearinghouse = clearinghouse\_1

0x555556ac6257deferred\_queue\_cap\_1 = &deferred\_queue\_cap\_1[5]

0x555556ac6263if (deferred\_queue\_cap\_1 != rax\_32)

0x555556ac6263gotolabel\_555556ac43c5

0x555556ac6263break

0x555556ac4ce1break

0x555556ac5540zmm0\_6 = \_\_subpd\_xmmpd\_mempd(\

0x555556ac5540\_\_unpcklps\_xmmps\_memdq(zx.o(rbx\_10), data\_555557dd12e0[0x20][0].o),\

0x555556ac5540data\_555557dd1310)

0x555556ac5550int128\_tzmm1\_2

0x555556ac5550zmm1\_2.q = \_mm\_unpackhi\_pd(zmm0\_6, zmm0\_6.q).qf+ zmm0\_6.q

0x555556ac5554logger\_data\_ptr.o = zmm1\_2

0x555556ac55f3while (true)

0x555556ac55f3rbx\_35 = rbx\_25 - 1

0x555556ac55f6var\_988\_1 = rbx\_35

0x555556ac55fbindex\_2 = var\_9c8

0x555556ac5604if (index\_2 != 1)

0x555556ac5604gotolabel\_555556ac8bb8

0x555556ac5610if (var\_9c0.q == 0)

0x555556ac5616void\* rax\_80 = var\_9c0:8.q

0x555556ac561buint64\_tlength\_4 = length

0x555556ac5623if (length\_4 != 0)

0x555556ac5628int64\_trdx\_37 = length\_4 & 7

0x555556ac562cuint64\_ti\_31

0x555556ac562cif (rdx\_37 == 0)

0x555556ac5e66i\_31 = length\_4

0x555556ac5e6dif (length\_4u>= 8)

0x555556ac569clabel\_555556ac569c:

0x555556ac569cuint64\_ti\_12

0x555556ac569cdo

0x555556ac5691rax\_80 = \*(\*(\*(\*(\

0x555556ac5691 \*(\*(\*(\*(rax\_80 + 0x1c8) + 0x1c8) + 0x1c8) + 0x1c8) + 0x1c8)\

0x555556ac5691 + 0x1c8) + 0x1c8) + 0x1c8)

0x555556ac5698i\_12 = i\_31

0x555556ac5698i\_31 -= 8

0x555556ac569cwhile (i\_12 != 8)

0x555556ac562celse

0x555556ac5632int64\_trsi\_41 = 0

0x555556ac564ddo

0x555556ac5640rax\_80 = *(rax\_80 + 0x1c8)

0x555556ac5647rsi\_41 += 1

0x555556ac564dwhile (rdx\_37 != rsi\_41)

0x555556ac5652i\_31 = length\_4 - rsi\_41

0x555556ac5659if (length\_4u>= 8)

0x555556ac5659gotolabel\_555556ac569c

0x555556ac569evar\_9c8 = 1

0x555556ac56a7var\_9c0.q = rax\_80

0x555556ac56b0var\_9c0:8.o = \_mm\_xor\_pd(zmm0\_6, zmm0\_6)

0x555556ac56b7index\_2 = 1

0x555556ac56c6btree\_iterator\_advance(&var\_8f8, &var\_9c0)

0x555556ac56d4if (var\_8f8.q == 0)

0x555556ac8bc5label\_555556ac8bc5:

0x555556ac8bc5panic\_unwrap\_none(&data\_5555587ff650)

0x555556ac8bc5noreturn

0x555556ac56e2length = var\_8e8\_8

0x555556ac56e7zmm0\_6 = var\_8f8

0x555556ac56f0var\_9c0 = zmm0\_6

0x555556ac56f6uint64\_t\* rax\_89 = var\_8e0

0x555556ac5704if (rax\_89 == 0)

0x555556ac5704gotolabel\_555556ac6010

0x555556ac5712int64\_tvar\_8d0

0x555556ac5712int64\_trcx\_37 = var\_8d0 \* 3

0x555556ac5716void\* \_\_offset(Clearinghouse, 0x60) str1\_ptr\_7 = rax\_89[rcx\_37 + 0x17]

0x555556ac572aif (str1\_ptr\_7 == 3)

0x555556ac572agotolabel\_555556ac6010

0x555556ac5734uint64\_tindex\_1 = rax\_89[var\_8d0 \* 2]

0x555556ac5740uint64\_tlen\_11 = *(oracle\_asset\_data + 0x10)

0x555556ac5747if (len\_11u> index\_1)

0x555556ac574dindex\_2 = zx.q(rax\_89[var\_8d0 \* 2 + 1].b)

0x555556ac5753int128\_t\* size\_28 = rax\_89[rcx\_37 + 0x18]

0x555556ac575bint64\_tr8\_6 = rax\_89[rcx\_37 + 0x19]

0x555556ac5763int64\_trcx\_38 = *(oracle\_asset\_data + 8)

0x555556ac576buint64\_trdx\_42 = index\_1 \* 0x60

0x555556ac576fchar\* logger\_lock\_ptr\_5 = *(rcx\_38 + rdx\_42 + 0x40)

0x555556ac578eint64\_trbp\_8 = neg.q(r8\_6)

0x555556ac578eboolc\_3 = r8\_6 != 0

0x555556ac5799if (neg.q(r8\_6) s&lt; 0)

0x555556ac5799rbp\_8 = r8\_6

0x555556ac579dint128\_t\* size\_26

0x555556ac579dint128\_t\* size\_24 = size\_26

0x555556ac57adif (c\_3)

0x555556ac57adsize\_24 = size\_28

0x555556ac57b1int32\_t\* str1\_ptr\_3 = str1\_ptr\_7

0x555556ac57beif (not(c\_3))

0x555556ac57bestr1\_ptr\_3 = 2

0x555556ac57c5uint64\_trax\_91 = rbp\_8 \* *(rcx\_38 + rdx\_42 + 0x48)

0x555556ac57caif (mulu.dp.q(rbp\_8, *(rcx\_38 + rdx\_42 + 0x48)) u>> 0x40 != zx.o(0))

0x555556ac57cagotolabel\_555556ac8bd2

0x555556ac57dbchar\* logger\_lock\_ptr\_8 = logger\_lock\_ptr\_5

0x555556ac57ecvar\_798 = *(rcx\_38 + rdx\_42 + 0x30)

0x555556ac57f5str1\_ptr = str1\_ptr\_3

0x555556ac57fdint128\_t\* size\_25 = size\_24

0x555556ac5805int64\_trcx\_39 = 2

0x555556ac580echar\* logger_lock_ptr_1 = logger_lock_ptr

0x555556ac5816if (str1\_ptr\_3 != 2)

0x555556ac5818int128\_t\* size\_22 = var\_798:8.q

0x555556ac5820rcx\_39 = var\_798.q

0x555556ac582bif (rcx\_39 == 0)

0x555556ac5864if (str1\_ptr\_3 != 0)

0x555556ac5864gotolabel\_555556ac8c69

0x555556ac586avar\_748.q = size\_22

0x555556ac5872size\_17 = size\_24

0x555556ac587dif (size\_22 != size\_24)

0x555556ac587dgotolabel\_555556ac8de7

0x555556ac5883rcx\_39 = 0

0x555556ac5885logger\_lock\_ptr\_1 = logger\_lock\_ptr

0x555556ac582belse

0x555556ac5831if (str1\_ptr\_3 != 1)

0x555556ac5831gotolabel\_555556ac8c69

0x555556ac5837size\_17 = size\_22

0x555556ac583fchar\* logger\_lock\_ptr\_9 = logger\_lock\_ptr\_5

0x555556ac5847var\_748.q = size\_24

0x555556ac5852logger\_lock\_ptr\_1 = logger\_lock\_ptr

0x555556ac585aif (size\_22 != size\_24)

0x555556ac585agotolabel\_555556ac8db5

0x555556ac5890size\_26 = size\_24

0x555556ac589bif (rax\_91 != 0)

0x555556ac589blogger\_lock\_ptr\_1 = logger\_lock\_ptr\_5

0x555556ac589flogger\_lock\_ptr = logger\_lock\_ptr\_1

0x555556ac58a7int64\_trdi\_61 = rcx\_39

0x555556ac58afif (rax\_91 == 0)

0x555556ac58afrdi\_61 = 2

0x555556ac58b3int64\_trdx\_43 = var\_3b8.q

0x555556ac58c3int64\_t (\* user\_shortfall\_1)(int64\_targ1, int64\_targ2, int32\_targ3) =

0x555556ac58c3user\_shortfall

0x555556ac58ceint64\_tvar\_6d0

0x555556ac58ceif (index\_2.b == 0)

0x555556ac58delabel\_555556ac58de:

0x555556ac58devar\_6d0 = var\_3b8:8.q

0x555556ac58ecif (rbx\_10 == 0)

0x555556ac8c21panic\_unwrap\_none(&data\_5555587f8130)

0x555556ac8c21noreturn

0x555556ac58ceelse

0x555556ac58d3if (user\_shortfall\_1 != 0)

0x555556ac58d5int64\_t (\* user\_shortfall\_2)(int64\_targ1, int64\_targ2,

0x555556ac58d5int32\_targ3) = user\_shortfall\_1

0x555556ac58d5user\_shortfall\_1 = neg.q(user\_shortfall\_1)

0x555556ac58d8if (neg.q(user\_shortfall\_2) == -0x8000000000000000)

0x555556ac58d8gotolabel\_555556ac8c5b

0x555556ac58d8gotolabel\_555556ac58de

0x555556ac5900rdx\_43 = 2

0x555556ac590bif (rbx\_10 == 0)

0x555556ac8c21panic\_unwrap\_none(&data\_5555587f8130)

0x555556ac8c21noreturn

0x555556ac5915if (rdi\_61 != 2)

0x555556ac5917var\_798.q = rdi\_61

0x555556ac5927var\_798:8.q = logger\_lock\_ptr

0x555556ac593bif (size\_19 == 2)

0x555556ac593bgotolabel\_555556ac8d30

0x555556ac5945int64\_tr8\_7

0x555556ac5945r8\_7.b = size\_19 == 1

0x555556ac5949size\_17 = size\_19

0x555556ac5959int64\_tvar\_630\_4 = var\_6c0

0x555556ac5964char\* r9\_2

0x555556ac5964r9\_2.b = logger\_lock\_ptr != var\_6c0

0x555556ac596bif (rdi\_61 != size\_19)

0x555556ac596bgotolabel\_555556ac8cf7

0x555556ac5971r8\_7.b &= r9\_2.b

0x555556ac5974if (r8\_7.b != 0)

0x555556ac5974gotolabel\_555556ac8cf7

0x555556ac5987zmm0\_6 = \_\_subpd\_xmmpd\_mempd(\

0x555556ac5987\_\_punpckldq\_xmmdq\_memdq(zx.o(rax\_91), data\_555557dd12e0[0x20][0].o),\

0x555556ac5987data\_555557dd1310)

0x555556ac5997zmm1\_2.q = \_mm\_unpackhi\_pd(zmm0\_6, zmm0\_6.q).qf+ zmm0\_6.q

0x555556ac599bzmm1\_2.q = zmm1\_2.qf/ logger\_data\_ptr

0x555556ac59a7zmm0\_6.q = float.d(user\_shortfall\_1)

0x555556ac59aczmm0\_6.q = zmm0\_6.qf\* zmm1\_2.q

0x555556ac59c2zmm1\_2 = \_mm\_xor\_pd(zmm1\_2, zmm1\_2)

0x555556ac59d3if ((zmm0\_6.q & 0x7fffffffffffffff) s&lt;= 0x7fefffffffffffff)

0x555556ac59ebif (-0x3c20000000000000f> zmm0\_6.q || zmm0\_6.qf> 9.2233720368547758e+18)

0x555556ac5a14zmm1\_2 = \_mm\_min\_sd(0x43e0000000000000,

0x555556ac5a14\_mm\_max\_sd(-0x3c20000000000000, zmm0\_6.q))

0x555556ac59ebelse

0x555556ac59edzmm1\_2 = zmm0\_6

0x555556ac5a18int64\_trdi\_62 = int.q(zmm1\_2.q)

0x555556ac5a2fif (zmm1\_2.qf> 9.2233720368547748e+18)

0x555556ac5a2frdi\_62 = 0x7fffffffffffffff

0x555556ac5a37int64\_trsi\_45 = 0

0x555556ac5a3cif (is\_ordered.q(zmm1\_2.q, zmm1\_2.q))

0x555556ac5a3crsi\_45 = rdi\_62

0x555556ac5a43structOptionUnitQtyrhs\_1

0x555556ac5a43boolcond:61\_1

0x555556ac5a43if (rsi\_45 == 0)

0x555556ac5a75rhs\_1.value = rsi\_45

0x555556ac5a7drhs\_1.tag = 2

0x555556ac5a85cond:61\_1 = rax\_91 == 0

0x555556ac5a88if (rax\_91s&lt; 0)

0x555556ac8c14label\_555556ac8c14:

0x555556ac8c14panic\_unwrap\_err(\

0x555556ac8c14"在 \`Err\` 上调用了 \`Result::unwrap()\` "\

0x555556ac8c14"value/rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/iter/traits/accum."\

0x555556ac8c14"rsTryFromIntErrorOkErr/home/ubuntu/.cargo/registry/src/index.crates."\

0x555556ac8c14"io-6f17d22bba15001f/serde\_jsonrc-0.1.0/src/read."\

0x555556ac8c14"rsPoisonErrorullrue/home/ubuntu/.cargo/registry/src/index.crates."\

0x555556ac8c14"io-6f17d22bba15001f/serde\_jsonrc-0.1.0/src/de.rs/home/ubuntu/."\

0x555556ac8c14"cargo/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.14."\

0x555556ac8c14"5/src/raw/mod.rs/home/ubuntu/hl/code\_Testnet/l1/src/qtys.rsassertion "\

0x555556ac8c14"失败:…",\

0x555556ac8c140x2b, &str1\_ptr, &data\_5555587fdcf0, &data\_5555587ff0e0)

0x555556ac8c21panic\_unwrap\_none(&data\_5555587f8130)

0x555556ac8c21noreturn

0x555556ac5a43else

0x555556ac5a4drhs\_1.unit = var\_6d0

0x555556ac5a55rhs\_1.value = rsi\_45

0x555556ac5a5drhs\_1.tag = rdx\_43

0x555556ac5a65cond:61\_1 = rax\_91 == 0

0x555556ac5a68if (rax\_91s&lt; 0)

0x555556ac5a68gotolabel\_555556ac8c14

0x555556ac5a8eif (cond:61\_1)

0x555556ac5ac5var\_8e8\_8 = rax\_91

0x555556ac5acdvar\_8f8.q = 2

0x555556ac5ad8if (not(add\_overflow(rax\_91, neg.q(rsi\_45))))

0x555556ac5ae9label\_555556ac5ae9:

0x555556ac5ae9int64\_trax\_93

0x555556ac5ae9int64\_trdx\_44

0x555556ac5ae9int64\_trbx\_30

0x555556ac5ae9int64\_trbp\_9

0x555556ac5ae9charr14\_14

0x555556ac5ae9uint64\_tr15\_12

0x555556ac5ae9rax\_93, rdx\_44, rbx\_30, rbp\_9, r14\_14, r15\_12 =

0x555556ac5ae9option\_unit\_qty\_add\_a(&var\_8f8, &rhs\_1)

0x555556ac5aeeboolcond:63\_1 = rbx\_30s&lt;= 0

0x555556ac5af6if (rbx\_30s&lt;= 0)

0x555556ac5af6rbx\_30 = 0

0x555556ac5afaint128\_t\* size\_21 = 2

0x555556ac5affif (cond:63\_1)

0x555556ac5affrax\_93 = 2

0x555556ac5b03var\_798.q = rax\_93

0x555556ac5b0bvar\_798:8.q = rdx\_44

0x555556ac5b13int64\_tvar\_788\_2 = rbx\_30

0x555556ac5b1bint64\_trax\_94 = 0

0x555556ac5b29if (r8\_6 != 0)

0x555556ac5b33int128\_t\* size\_29 = size\_28

0x555556ac5b3brax\_94 = rbp\_9

0x555556ac5b3esize\_21 = str1\_ptr\_7

0x555556ac5b46int64\_tvar\_628\_6 = rax\_94

0x555556ac5b4esize\_17 = size\_21

0x555556ac5b56uint32\_trbp\_10 = zx.d(r14\_14)

0x555556ac5b6funit\_qty\_div(&var\_8f8, &var\_798, &size\_17, rbp\_10.b)

0x555556ac5b7cif (var\_8f8.d == 2)

0x555556ac5b7cgotolabel\_555556ac8bec

0x555556ac5b94var\_628\_6.o = var\_8e8\_8.o

0x555556ac5b9dsize\_17.o = var\_8f8

0x555556ac5ba6int64\_t\* deferred\_cross\_queue\_4 = deferred\_cross\_queue

0x555556ac5bb1int32\_t\* str1\_ptr\_10 = str1\_ptr\_5

0x555556ac5bb9structstd\_vec\_Vec\_\_u64\_\_12\_\_\* rbx\_31

0x555556ac5bb9if (deferred\_cross\_queue\_4 == 0)

0x555556ac5c90r10\_1 = r15\_12

0x555556ac5c93deferred\_cross\_queue\_4 = nullptr

0x555556ac5c95label\_555556ac5c95:

0x555556ac5c95var\_8f8.q = deferred\_cross\_queue\_4

0x555556ac5c9dvar\_8f8:8.q = str1\_ptr\_10

0x555556ac5ca5var\_8e8\_8 = r10\_1

0x555556ac5cb5var\_8e0 = &deferred\_cross\_queue

0x555556ac5cbduint64\_tindex\_4 = index\_1

0x555556ac5cc5var\_8d0.b = r14\_14

0x555556ac5cd0str1\_ptr\_5 = str1\_ptr\_10

0x555556ac5cd8if (deferred\_cross\_queue\_4 == 0)

0x555556ac5de4data\_55555886bd41

0x555556ac5decuint8\_t\* deferred\_cross\_queue\_1

0x555556ac5decdeferred\_cross\_queue\_1, zmm0\_6 = rust\_alloc(0x1c8)

0x555556ac5df5if (deferred\_cross\_queue\_1 == 0)

0x555556ac5df5gotolabel\_555556ac8bab

0x555556ac5dff *(deferred\_cross\_queue\_1 + 0xb0) = \_mm\_xor\_pd(zmm0\_6, zmm0\_6)

0x555556ac5e07 *(deferred\_cross\_queue\_1 + 0x1c2) = 1

0x555556ac5e10 *deferred\_cross\_queue\_1 = index\_1

0x555556ac5e13deferred\_cross\_queue\_1[8] = r14\_14

0x555556ac5e1arbx\_31 = &deferred\_cross\_queue\_1[0xb8]

0x555556ac5e21 *(deferred\_cross\_queue\_1 + 0xc0) = 8

0x555556ac5e2c *(deferred\_cross\_queue\_1 + 0xc8) = 0

0x555556ac5e37deferred\_cross\_queue = deferred\_cross\_queue\_1

0x555556ac5e3fstr1\_ptr\_8 = nullptr

0x555556ac5e4badl\_was\_triggered = 1

0x555556ac5e57clearinghouse\_6 = rust\_dealloc

0x555556ac5cd8else

0x555556ac5cdevar\_748.q = deferred\_cross\_queue\_4

0x555556ac5ce6int32\_t\* str1\_ptr\_14 = str1\_ptr\_10

0x555556ac5ceevar\_738 = r10\_1

0x555556ac5cf6var\_798.q = 0

0x555556ac5d02var\_798:8.q = 8

0x555556ac5d0eint64\_tvar\_788\_3 = 0

0x555556ac5d42btree\_insert\_adl\_entry(&str1\_ptr, &var\_748, index\_1, rbp\_10,

0x555556ac5d42 &var\_798, &var\_8e0)

0x555556ac5d62rbx\_31 = &str1\_ptr[var\_7d8 \* 6 + 0x2e]

0x555556ac5d69uint64\_t\* rax\_101 = var\_8e0

0x555556ac5d71rax\_101[2] += 1

0x555556ac5d75clearinghouse\_6 = rust\_dealloc

0x555556ac5bb9else

0x555556ac5bc7str1\_ptr\_5 = str1\_ptr\_8

0x555556ac5bcfwhile (true)

0x555556ac5bcfuint64\_trcx\_41 = zx.q(*(deferred\_cross\_queue\_4 + 0x1c2))

0x555556ac5bd8uint64\_trdx\_47 = zx.q(rcx\_41.d &lt;&lt; 4)

0x555556ac5bdbint64\_trax\_97 = -0xa0

0x555556ac5be2r10\_1 = -1

0x555556ac5be9int64\_t\* deferred\_cross\_queue\_6 = deferred\_cross\_queue\_4

0x555556ac5c31int32\_t\* str1\_ptr\_9

0x555556ac5c31chari\_13

0x555556ac5c31do

0x555556ac5bf3if (rdx\_47 == 0)

0x555556ac5c50r10\_1 = rcx\_41

0x555556ac5c5bstr1\_ptr\_9 = str1\_ptr\_5 - 1

0x555556ac5c5fif (str1\_ptr\_5u&lt; 1)

0x555556ac5e78label\_555556ac5e78:

0x555556ac5e78str1\_ptr\_10 = nullptr

0x555556ac5e7agotolabel\_555556ac5c95

0x555556ac5c65label\_555556ac5c65:

0x555556ac5c65str1\_ptr\_5 = str1\_ptr\_9

0x555556ac5c6ddeferred\_cross\_queue\_4 = deferred\_cross\_queue\_4[r10\_1 + 0x39]

0x555556ac5d75clearinghouse\_6 = rust\_dealloc

0x555556ac5d87var\_8e8\_8.d = var\_490\_1:8.d

0x555556ac5d92var\_8f8 = counterparty\_info\_1:8.o

0x555556ac5d9aint128\_tzmm2\_2 = shortfall\_discriminant.o

0x555556ac5da3uint64\_tlen\_7 = rbx\_31->len

0x555556ac5dafif (len\_7 == rbx\_31->buf.inner.cap.\_0)

0x555556ac5dbbint64\_tvar\_578

0x555556ac5dbbvar\_578.o = zmm2\_2

0x555556ac5dc4vec\_grow\_96(rbx\_31)

0x555556ac5dc9zmm2\_2 = var\_578.o

0x555556ac5570int128\_t\* pointer\_1 = rbx\_31->buf.inner.ptr.pointer.pointer

0x555556ac557czmm0\_6 = size\_17.o

0x555556ac558dpointer\_1[len\_7 \* 6 + 1] = var\_628\_6.o

0x555556ac5593pointer\_1[len\_7 \* 6] = zmm0\_6

0x555556ac5597pointer\_1[len\_7 \* 6 + 2] = zmm2\_2

0x555556ac55a5pointer\_1[len\_7 \* 6 + 3].q = str1\_ptr\_7

0x555556ac55b2 *(&pointer\_1[len\_7 \* 6] + 0x38) = size\_28

0x555556ac55bfpointer\_1[len\_7 \* 6 + 4].q = r8\_6

0x555556ac55c4zmm0\_6 = var\_8f8

0x555556ac55cd *(&pointer\_1[len\_7 \* 6] + 0x48) = zmm0\_6

0x555556ac55da *(&pointer\_1[len\_7 \* 6] + 0x58) = var\_8e8\_8.d

0x555556ac55e1rbx\_31->len = len\_7 + 1

0x555556ac55e5rbx\_25 = var\_988\_1

0x555556ac55edif (rbx\_25 != 0)

0x555556ac55edcontinue

0x555556ac5ee4i\_46 = var\_9c0.q

0x555556ac5ee9i\_52 = var\_9c0:8.q

0x555556ac5eeelength\_1 = length

0x555556ac5ef3boolcond:69\_1 = var\_9c8 == 0

0x555556ac5ef9var\_9c8 = nullptr

0x555556ac5f02if (cond:69\_1)

0x555556ac5f02gotolabel\_555556ac5f5b

0x555556ac5f07if (i\_46 == 0)

0x555556ac6339i\_46 = i\_52

0x555556ac633fif (length\_1 != 0)

0x555556ac633fgotolabel\_555556ac5ead

0x555556ac633fgotolabel\_555556ac5fae

0x555556ac5f0di\_8 = i\_46[0x16]

0x555556ac5f17var\_810\_2 = r10\_1

0x555556ac5f1fif (i\_8 == 0)

0x555556ac5f1fgotolabel\_555556ac5fc8

0x555556ac5f1fbreak

0x555556ac5a8eelse

0x555556ac5a90var\_8f8:8.q = logger\_lock\_ptr\_5

0x555556ac5a98var\_8e8\_8 = rax\_91

0x555556ac5aa0var\_8f8.q = rcx\_39

0x555556ac5aabif (not(add\_overflow(rax\_91, neg.q(rsi\_45))))

0x555556ac5aabgotolabel\_555556ac5ae9

0x555556ac8c2elen\_11 = panic\_overflow\_sub(&data\_5555587fd610)

0x555556ac8c3elen\_10 = panic\_index\_out\_of\_bounds(index\_1, len\_11, &data\_5555587fede8)

0x555556ac8c3egotolabel\_555556ac8c4e

0x555556ac5604gotolabel\_555556ac5f57

0x555556ac45b6void\* rax\_41 = *(ch\_1 + 0x30)

0x555556ac45beif (rax\_41 == 0)

0x555556ac8d3dlabel\_555556ac8d3d:

0x555556ac8d3dpanic\_unwrap\_none(&data\_5555587f8160)

0x555556ac8d3dnoreturn

0x555556ac45c4int64\_trbx\_9 = counterparty\_info\_1.q

0x555556ac45ccint64\_trcx\_14 = *(ch\_1 + 0x38)

0x555556ac45d1int64\_trsi\_12

0x555556ac45d1while (true)

0x555556ac45d1uint64\_trdi\_25 = zx.q(*(rax\_41 + 0x742))

0x555556ac45e1uint64\_trdx\_15 = -1

0x555556ac45e8rsi\_12 = 0

0x555556ac461cbooli\_14

0x555556ac461cdo

0x555556ac45f3if (zx.q(rdi\_25.d &lt;&lt; 5) \* 5 == rsi\_12)

0x555556ac4630rdx\_15 = rdi\_25

0x555556ac4630gotolabel\_555556ac4633

0x555556ac45f8int64\_ttemp11\_1 = *(rax\_41 + (rdx\_15 &lt;&lt; 3) + 0x6f0)

0x555556ac4600i\_14 = temp11\_1 != rbx\_9

0x555556ac460aif (temp11\_1u> rbx\_9)

0x555556ac460ai\_14 = true

0x555556ac460erdx\_15 += 1

0x555556ac4611rsi\_12 += 0xa0

0x555556ac461cwhile (i\_14 == 1)

0x555556ac4624if (zx.d(i\_14) == 0)

0x555556ac4624break

0x555556ac4633label\_555556ac4633:

0x555556ac4633int64\_ttemp14\_1 = rcx\_14

0x555556ac4633rcx\_14 -= 1

0x555556ac4637if (temp14\_1u&lt; 1)

0x555556ac4637gotolabel\_555556ac8d3d

0x555556ac463drax\_41 = *(rax\_41 + (rdx\_15 &lt;&lt; 3) + 0x748)

0x555556ac4bc9if (*(rax\_41 + rsi\_12 - 0x28) == 3)

0x555556ac4bc9gotolabel\_555556ac8e30

0x555556ac4bcf *(rax\_41 + rsi\_12 - 0x18)

0x555556ac4bd4 *(rax\_41 + rsi\_12 - 0x20)

0x555556ac4bd9int64\_trcx\_28 = *(rax\_41 + rsi\_12 - 0xa0)

0x555556ac4be1void\* \_\_offset(Clearinghouse, 0x60) rdx\_23 = *(rax\_41 + rsi\_12 - 0x98)

0x555556ac4be9int64\_trax\_62 = *(rax\_41 + rsi\_12 - 0x90)

0x555556ac4bf4var\_8f8.q = rcx\_28

0x555556ac4c04var\_8f8:8.q = rdx\_23

0x555556ac4c11int64\_tvar\_8e8\_7 = rax\_62

0x555556ac4c20var\_9c8.o = OPTION\_UNIT\_QTY\_NONE

0x555556ac4c25var\_9c0:8.q = 0

0x555556ac4c36int128\_t\*\* asset\_idx\_6

0x555556ac4c36int128\_t\* size\_23

0x555556ac4c36int64\_tr14\_9

0x555556ac4c36int64\_tr15\_9

0x555556ac4c36asset\_idx\_6, size\_23, r14\_9, r15\_9 = option\_unit\_qty\_sub(&var\_8f8, &var\_9c8)

0x555556ac4c3bint64\_trax\_63 = 2

0x555556ac4c43int64\_trcx\_30

0x555556ac4c43if (r15\_9 == 0)

0x555556ac52carcx\_30 = 0

0x555556ac52ccsize\_23 = 2

0x555556ac4c43else

0x555556ac4c4crcx\_30 = neg.q(r15\_9)

0x555556ac4c4fif (rcx\_30s&lt; 0)

0x555556ac4c4frcx\_30 = r15\_9

0x555556ac4c53int64\_tvar\_630\_2 = r14\_9

0x555556ac52d1clearinghouse = clearinghouse\_1

0x555556ac52d9int64\_tvar\_628\_5 = rcx\_30

0x555556ac52e1size\_17 = size\_23

0x555556ac52f4int64\_trdx\_30

0x555556ac52f4void\* \_\_offset(Clearinghouse, 0x60) r12\_4

0x555556ac52f4if (rax\_62 == 0)

0x555556ac5315rdx\_30 = 0

0x555556ac5317r12\_4 = rdx\_23

0x555556ac52f4else

0x555556ac52f9rdx\_30 = neg.q(rax\_62)

0x555556ac52fcif (rdx\_30s&lt; 0)

0x555556ac52fcrdx\_30 = rax\_62

0x555556ac5300r12\_4 = rdx\_23

0x555556ac5308var\_8f8:8.q = r12\_4

0x555556ac5310rax\_63 = rcx\_28

0x555556ac5327int64\_tvar\_8e8\_9 = rdx\_30

0x555556ac532fvar\_8f8.q = rax\_63

0x555556ac5347unit\_qty\_div(&var\_9c8, &size\_17, &var\_8f8, rax\_62s&lt;= 0)

0x555556ac5351if (var\_9c8.d == 2)

0x555556ac5351gotolabel\_555556ac8e6e

0x555556ac535aboolrax\_77 = rax\_62s&lt;= 0

0x555556ac5369var\_8e8\_9.o = var\_9c0:8.o

0x555556ac5372var\_8f8 = var\_9c8.o

0x555556ac537bint128\_t\* deferred\_cross\_queue\_3 = deferred\_cross\_queue

0x555556ac5386if (deferred\_cross\_queue\_3 == 0)

0x555556ac5450var\_9c8 = nullptr

0x555556ac5461label\_555556ac5461:

0x555556ac5461length = &deferred\_cross\_queue

0x555556ac5466asset\_idx\_2 = asset\_idx\_6

0x555556ac5386else

0x555556ac538cint32\_t\* str1\_ptr\_15 = str1\_ptr\_8

0x555556ac5394while (true)

0x555556ac5394uint64\_trdi\_55 = zx.q(*(deferred\_cross\_queue\_3 + 0x1c2))

0x555556ac539euint64\_tr8\_5 = zx.q(rdi\_55.d &lt;&lt; 4)

0x555556ac53a2uint64\_trsi\_40 = -1

0x555556ac53a9int128\_t\* deferred\_cross\_queue\_7 = deferred\_cross\_queue\_3

0x555556ac53edbooli\_15

0x555556ac53eddo

0x555556ac53b3if (r8\_5 == 0)

0x555556ac5410rsi\_40 = rdi\_55

0x555556ac5413int32\_t\* str1\_ptr\_16 = str1\_ptr\_15

0x555556ac5413str1\_ptr\_15 -= 1

0x555556ac5417if (str1\_ptr\_16u&lt; 1)

0x555556ac6351gotolabel\_555556ac6351

0x555556ac5417gotolabel\_555556ac541d

0x555556ac53b8int64\_ttemp36\_1 = \*deferred\_cross\_queue\_7

0x555556ac53bbchari\_41 = (temp36\_1 != asset\_idx\_6).b

0x555556ac53c4if (temp36\_1u> asset\_idx\_6)

0x555556ac53c4i\_41 = -1

0x555556ac53cbchartemp38\_1 = *(deferred\_cross\_queue\_7 + 8)

0x555556ac53cfi\_15 = temp38\_1 != rax\_77

0x555556ac53d3if (temp38\_1u> rax\_77)

0x555556ac53d3i\_15 = true

0x555556ac53d7deferred\_cross\_queue\_7 = &deferred\_cross\_queue\_7[1]

0x555556ac53deif (i\_41 != 0)

0x555556ac53dei\_15 = i\_41

0x555556ac53e2r8\_5 -= 0x10

0x555556ac53e6rsi\_40 += 1

0x555556ac53edwhile (i\_15 == 1)

0x555556ac53f5if (zx.d(i\_15) == 0)

0x555556ac5430var\_9c8 = deferred\_cross\_queue\_3

0x555556ac5435var\_9c0.q = str1\_ptr\_15

0x555556ac543avar\_9c0:8.q = rsi\_40

0x555556ac5447length = &deferred\_cross\_queue

0x555556ac544crax\_77 = true

0x555556ac544ebreak

0x555556ac53f7int32\_t\* str1\_ptr\_17 = str1\_ptr\_15

0x555556ac53f7str1\_ptr\_15 -= 1

0x555556ac53fbif (str1\_ptr\_17u&lt; 1)

0x555556ac6351label\_555556ac6351:

0x555556ac6351var\_9c8 = deferred\_cross\_queue\_3

0x555556ac6356var\_9c0.q = 0

0x555556ac635fvar\_9c0:8.q = rsi\_40

0x555556ac6364gotolabel\_555556ac5461

0x555556ac541dlabel\_555556ac541d:

0x555556ac541ddeferred\_cross\_queue\_3 = *(deferred\_cross\_queue\_3 + (rsi\_40 &lt;&lt; 3) + 0x1c8)

0x555556ac546bvar\_9a0.b = rax\_77

0x555556ac5474structstd\_vec\_Vec\_\_u64\_\_12\_\_\* rax\_78 = adl\_btree\_get\_or\_insert(&var\_9c8)

0x555556ac5487var\_9c0:8.d = var\_490\_1:8.d

0x555556ac548fvar\_9c8.o = counterparty\_info\_1:8.o

0x555556ac5494int128\_tzmm2\_1 = shortfall\_discriminant.o

0x555556ac549duint64\_tlen\_6 = rax\_78->len

0x555556ac54a4if (len\_6 == rax\_78->buf.inner.cap.\_0)

0x555556ac54adshortfall\_discriminant\_4.o = zmm2\_1

0x555556ac54b6vec\_grow\_96(rax\_78)

0x555556ac54bbzmm2\_1 = shortfall\_discriminant\_4.o

0x555556ac4340void\* pointer = rax\_78->buf.inner.ptr.pointer.pointer

0x555556ac434fuint64\_trcx\_12 = len\_6 \* 0x60

0x555556ac4353zmm0\_6 = var\_8f8

0x555556ac4364 *(pointer + rcx\_12 + 0x10) = var\_8e8\_9.o

0x555556ac436a *(pointer + rcx\_12) = zmm0\_6

0x555556ac436e *(pointer + rcx\_12 + 0x20) = zmm2\_1

0x555556ac4374 *(pointer + rcx\_12 + 0x30) = rcx\_28

0x555556ac4379 *(pointer + rcx\_12 + 0x38) = r12\_4

0x555556ac4383 *(pointer + rcx\_12 + 0x40) = rax\_62

0x555556ac438e *(pointer + rcx\_12 + 0x48) = var\_9c8.o

0x555556ac4398 *(pointer + rcx\_12 + 0x58) = var\_9c0:8.d

0x555556ac439cclearinghouse\_6 = len\_6 + 1

0x555556ac439frax\_78->len = clearinghouse\_6

0x555556ac43b3deferred\_queue\_cap\_1 = &deferred\_queue\_cap\_1[5]

0x555556ac43bfif (deferred\_queue\_cap\_1 == rax\_32)

0x555556ac43bfbreak

0x555556ac63c7if (deferred\_queue\_len\_2 != 0)

0x555556ac63dbrust\_dealloc(deferred\_queue\_cap, deferred\_queue\_len\_2 \* 0x28, 0)

0x555556ac63eaint128\_t\* rbx\_38

0x555556ac63eaint64\_tr14\_17

0x555556ac63eaif (adl\_was\_triggered != 0)

0x555556ac63f9if (LOGGER\_ONCE\_CELL != 3)

0x555556ac88e0var\_8f8.q = &data\_55555885f728

0x555556ac88e8var\_9c8 = &var\_8f8

0x555556ac8909once\_cell\_get\_or\_init(&LOGGER\_ONCE\_CELL, 0, &var\_9c8, &data\_55555878bb08,

0x555556ac8909 &data\_55555878c798)

0x555556ac6406var\_798 = data\_55555885f730

0x555556ac6415var\_8f8.q = clearinghouse + 0x210

0x555556ac6424var\_8f8:8.q = &data\_555555974790

0x555556ac6433var\_9c8 = &data\_5555587f80a0

0x555556ac6438var\_9c0.q = 1

0x555556ac6441int64\_tvar\_9a8\_8 = 0

0x555556ac644avar\_9c0:8.q = &var\_8f8

0x555556ac644flength = 1

0x555556ac646cint128\_tcounterparty\_info\_3

0x555556ac646cfmt\_arguments\_new(&counterparty\_info\_3, &var\_9c8)

0x555556ac6477counterparty\_info = counterparty\_info\_3

0x555556ac6487int64\_tvar\_160

0x555556ac6487var\_558.q = var\_160

0x555556ac648fshortfall\_discriminant = nullptr

0x555556ac649bcounterparty\_info\_1.q = 8

0x555556ac64a7counterparty\_info\_1:8.q = 0

0x555556ac64bbvar\_8f8.q = &total\_shortfall\_tag

0x555556ac64cavar\_8f8:8.q = &data\_555556adf460

0x555556ac64dcvar\_9c8 = &data\_555557dd1240

0x555556ac64e1var\_9c0.q = 1

0x555556ac64eaint64\_tvar\_9a8\_9 = 0

0x555556ac64f3var\_9c0:8.q = &var\_8f8

0x555556ac64f8length = 1

0x555556ac6511voidinput\_3

0x555556ac6511fmt\_arguments\_new(&input\_3, &var\_9c8)

0x555556ac651ftruncate\_str\_to\_char\_limit(&var\_8f8, &input\_3, 0x2710)

0x555556ac6525size\_17 = &var\_8f8

0x555556ac6534void\* constvar\_630\_5 = &data\_555556ab0390

0x555556ac6543var\_9c8 = &data\_5555587f80b0

0x555556ac6548var\_9c0.q = 2

0x555556ac6551int64\_tvar\_9a8\_10 = 0

0x555556ac6562var\_9c0:8.q = &size\_17

0x555556ac6567length = 1

0x555556ac657dint128\_tvar\_158

0x555556ac657dfmt\_arguments\_new(&var\_158, &var\_9c8)

0x555556ac6580int64\_tsize\_4 = var\_8f8.q

0x555556ac658bif (size\_4 != 0)

0x555556ac6597rust\_dealloc(var\_8f8:8.q, size\_4, 0)

0x555556ac659dint64\_trbx\_36 = counterparty\_info\_1:8.q

0x555556ac65adif (rbx\_36 == shortfall\_discriminant)

0x555556ac65b7vec\_grow\_string(&shortfall\_discriminant)

0x555556ac65bcint64\_trax\_133 = counterparty\_info\_1.q

0x555556ac65c4int64\_trcx\_52 = rbx\_36 \* 3

0x555556ac65d0int64\_tvar\_148

0x555556ac65d0 *(rax\_133 + (rcx\_52 &lt;&lt; 3) + 0x10) = var\_148

0x555556ac65dd *(rax\_133 + (rcx\_52 &lt;&lt; 3)) = var\_158

0x555556ac65e4counterparty\_info\_1:8.q = rbx\_36 + 1

0x555556ac65f4var\_8f8.q = &deferred\_cross\_queue

0x555556ac6603var\_8f8:8.q = &data\_555556addb60

0x555556ac660bvar\_9c8 = &data\_555557dd1240

0x555556ac6610var\_9c0.q = 1

0x555556ac6619int64\_tvar\_9a8\_11 = 0

0x555556ac662avar\_9c0:8.q = &var\_8f8

0x555556ac662flength = 1

0x555556ac6648voidinput\_4

0x555556ac6648fmt\_arguments\_new(&input\_4, &var\_9c8)

0x555556ac6656truncate\_str\_to\_char\_limit(&var\_8f8, &input\_4, 0x2710)

0x555556ac665csize\_17 = &var\_8f8

0x555556ac6664void\* constvar\_630\_6 = &data\_555556ab0390

0x555556ac6673var\_9c8 = &data\_5555587f80d0

0x555556ac6678var\_9c0.q = 2

0x555556ac6681int64\_tvar\_9a8\_12 = 0

0x555556ac668avar\_9c0:8.q = &size\_17

0x555556ac668flength = 1

0x555556ac66a5int128\_tvar\_140

0x555556ac66a5fmt\_arguments\_new(&var\_140, &var\_9c8)

0x555556ac66a8int64\_tsize\_5 = var\_8f8.q

0x555556ac66b3if (size\_5 != 0)

0x555556ac66bfrust\_dealloc(var\_8f8:8.q, size\_5, 0)

0x555556ac66c5void\* r14\_15 = counterparty\_info\_1:8.q

0x555556ac66d5if (r14\_15 == shortfall\_discriminant)

0x555556ac66dfvec\_grow\_string(&shortfall\_discriminant)

0x555556ac66e4int64\_trax\_134 = counterparty\_info\_1.q

0x555556ac66ecvoid\* rcx\_53 = r14\_15 \* 3

0x555556ac66f8int64\_tvar\_130

0x555556ac66f8 *(rax\_134 + (rcx\_53 &lt;&lt; 3) + 0x10) = var\_130

0x555556ac6705 *(rax\_134 + (rcx\_53 &lt;&lt; 3)) = var\_140

0x555556ac670ccounterparty\_info\_1:8.q = r14\_15 + 1

0x555556ac6734tracing\_event\_emit(&var\_9c8, 8, r14\_15 + 1,

0x555556ac6734" @ \\n由于 shortfall 是可接受的,不执行 Auto-deleveraging。Auto-deleveragings "

0x555556ac6734"触发 perform\_auto\_deleveraging=\[total\_shortfall: \[asset\_and\_side\_to\_adl\_requirements: Bug! "

0x555556ac6734"Auto-deleveraging liquidatable 已经具有比 max "

0x555556ac6734"shortfall 更负的账户价值。\[liquidatable: 内部错误:进入了不可达代码:leve",

0x555556ac67343, &size\_17, r14\_15 + 1)

0x555556ac673eint64\_tvar\_628\_7 = var\_9c0:8.q

0x555556ac674bsize\_17.o = var\_9c8.o

0x555556ac6753int64\_ti\_42 = counterparty\_info\_1:8.q

0x555556ac675eif (i\_42 != 0)

0x555556ac6768int64\_t\* r13\_6 = counterparty\_info\_1.q + 8

0x555556ac676cclearinghouse\_6 = rust\_dealloc

0x555556ac6787int64\_ti\_16

0x555556ac6787do

0x555556ac6789int64\_tsize\_6 = r13\_6[-1]

0x555556ac6790if (size\_6 != 0)

0x555556ac6798rust\_dealloc(*r13\_6, size\_6, 0)

0x555556ac6780r13\_6 = &r13\_6[3]

0x555556ac6784i\_16 = i\_42

0x555556ac6784i\_42 -= 1

0x555556ac6787while (i\_16 != 1)

0x555556ac679cint128\_t\* shortfall\_discriminant\_2 = shortfall\_discriminant

0x555556ac67a7if (shortfall\_discriminant\_2 != 0)

0x555556ac67bbrust\_dealloc(counterparty\_info\_1.q, shortfall\_discriminant\_2 \* 0x18, 0)

0x555556ac67c9var\_9c8 = &var\_798

0x555556ac67d5var\_9c0.q = &data\_555556b50bd0

0x555556ac67e2var\_9c0:8.q = &counterparty\_info

0x555556ac67e7length = &data\_555556ab0390

0x555556ac67ecasset\_idx\_2 = &size\_17

0x555556ac67f1void\* constvar\_9a0\_2 = &data\_555556ab0390

0x555556ac67fdvar\_8f8.q = &data\_5555587f7f98

0x555556ac6805var\_8f8:8.q = 4

0x555556ac6811int64\_tvar\_8d8\_3 = 0

0x555556ac681dint128\_t\* const\* var\_8e8\_10 = &var\_9c8

0x555556ac6825var\_8e0 = 3

0x555556ac6831voidvar\_90

0x555556ac6831rbx\_38 = &var\_90

0x555556ac6844fmt\_arguments\_new(&var\_90, &var\_8f8)

0x555556ac684aint128\_t\* size\_7 = size\_17

0x555556ac6855if (size\_7 != 0)

0x555556ac6861rust\_dealloc(var\_630\_6, size\_7, 0)

0x555556ac6867int64\_tsize\_8 = counterparty\_info.q

0x555556ac6872if (size\_8 != 0)

0x555556ac687erust\_dealloc(counterparty\_info:8.q, size\_8, 0)

0x555556ac6884r14\_17 = var\_840

0x555556ac6894\_ret\_2 = &var\_8f8

0x555556ac689cif (r14\_17 != log\_vec\_cap)

0x555556ac689cgotolabel\_555556ac68b3

0x555556ac689cgotolabel\_555556ac68a6

0x555556ac8731var\_8f8 = total\_shortfall\_tag

0x555556ac8739int64\_ttotal\_shortfall\_value\_1 = total\_shortfall\_value

0x555556ac8748var\_9c8.o = OPTION\_UNIT\_QTY\_NONE

0x555556ac874dvar\_9c0:8.q = 0

0x555556ac8766option\_unit\_qty\_add\_b(&var\_8f8, &var\_9c8)

0x555556ac876eif (total\_shortfall\_value != 0)

0x555556ac877dif (LOGGER\_ONCE\_CELL != 3)

0x555556ac8b2cvar\_8f8.q = &data\_55555885f728

0x555556ac8b34var\_9c8 = &var\_8f8

0x555556ac8b55once\_cell\_get\_or\_init(&LOGGER\_ONCE\_CELL, 0, &var\_9c8, &data\_55555878bb08,

0x555556ac8b55 &data\_55555878c798)

0x555556ac878asize\_17.o = data\_55555885f730

0x555556ac879avar\_8f8.q = &total\_shortfall\_tag

0x555556ac87a9var\_8f8:8.q = &data\_555556adf460

0x555556ac87b8var\_9c8 = &data\_5555587f8050

0x555556ac87bdvar\_9c0.q = 2

0x555556ac87c6int64\_tvar\_9a8\_20 = 0

0x555556ac87cfvar\_9c0:8.q = &var\_8f8

0x555556ac87d4length = 1

0x555556ac87f1int128\_tvar\_128

0x555556ac87f1fmt\_arguments\_new(&var\_128, &var\_9c8)

0x555556ac87fcshortfall\_discriminant.o = var\_128

0x555556ac880cint64\_tvar\_118

0x555556ac880ccounterparty\_info\_1:8.q = var\_118

0x555556ac881ccounterparty\_info.q = &shortfall\_discriminant

0x555556ac882cvar\_8f8.q = &size\_17

0x555556ac883bvar\_8f8:8.q = &data\_555556b50bd0

0x555556ac884bint128\_t\* var\_8e8\_19 = &counterparty\_info

0x555556ac885avar\_8e0 = &data\_555556aa3960

0x555556ac8869var\_9c8 = &data\_5555587f8070

0x555556ac886evar\_9c0.q = 3

0x555556ac8877asset\_idx\_2 = nullptr

0x555556ac8880var\_9c0:8.q = &var\_8f8

0x555556ac8885length = 2

0x555556ac888evoidvar\_48

0x555556ac888erbx\_38 = &var\_48

0x555556ac889efmt\_arguments\_new(&var\_48, &var\_9c8)

0x555556ac88a1int128\_t\* size\_15 = shortfall\_discriminant

0x555556ac88acif (size\_15 != 0)

0x555556ac88b8rust\_dealloc(counterparty\_info\_1.q, size\_15, 0)

0x555556ac88ber14\_17 = var\_840

0x555556ac88ceif (r14\_17 != log\_vec\_cap)

0x555556ac88cegotolabel\_555556ac68b3

0x555556ac68a6label\_555556ac68a6:

0x555556ac68a6vec\_grow\_string(&log\_vec\_cap)

0x555556ac68b3label\_555556ac68b3:

0x555556ac68b3int64\_trcx\_54 = r14\_17 \* 3

0x555556ac68bb *(log\_vec\_ptr + (rcx\_54 &lt;&lt; 3) + 0x10) = rbx\_38[1].q

0x555556ac68c3 *(log\_vec\_ptr + (rcx\_54 &lt;&lt; 3)) = \*rbx\_38

0x555556ac68cavar\_840 = r14\_17 + 1

0x555556ac68d2int128\_t\* deferred\_cross\_queue\_2 = deferred\_cross\_queue

0x555556ac68e2int128\_t\* adl\_was\_triggered\_1 = deferred\_cross\_queue\_2

0x555556ac68f0if (deferred\_cross\_queue\_2 != 0)

0x555556ac68f2adl\_was\_triggered\_1 = adl\_was\_triggered

0x555556ac68faint64\_tcpty\_vec\_cap\_1 = cpty\_vec\_cap

0x555556ac6932structstd\_vec\_Vec\_std\_string\_String\_var\_5a8

0x555556ac6932var\_5a8.len = var\_840

0x555556ac693aint128\_tzmm0\_18 = log\_vec\_cap.o

0x555556ac6943var\_5a8.buf.inner.cap.\_0 = zmm0\_18.q

0x555556ac6943var\_5a8.buf.inner.ptr.pointer.pointer = zmm0\_18:8.q

0x555556ac694cint128\_t\*\*\* var\_650 = nullptr

0x555556ac6958uint64\_tvar\_640\_1 = 0

0x555556ac696cint64\_trsi\_67 = *(adl\_fill\_ctx + 0x48)

0x555556ac697bint32\_tvar\_3f0\_1 = *(adl\_fill\_ctx + 0x50)

0x555556ac6982int32\_trsi\_68

0x555556ac6982rsi\_68.b = deferred\_cross\_queue\_2 != 0

0x555556ac6986uint64\_trsi\_69 = zx.q(rsi\_68.b)

0x555556ac698avar\_798.q = rsi\_69

0x555556ac6992var\_798:8.q = 0

0x555556ac69a6int32\_t\* str1\_ptr\_12 = str1\_ptr\_8

0x555556ac69aeuint64\_tvar\_778\_1 = rsi\_69

0x555556ac69b6int64\_tvar\_770\_1 = 0

0x555556ac69c2int128\_t\* deferred\_cross\_queue\_5 = deferred\_cross\_queue\_2

0x555556ac69caint32\_t\* str1\_ptr\_13 = str1\_ptr\_8

0x555556ac69d2int128\_t\* adl\_was\_triggered\_2 = adl\_was\_triggered\_1

0x555556ac69daClearinghouse\* clearinghouse\_5 = clearinghouse\_1

0x555556ac69edint64\_tfill\_list\_idx\_2 = *(adl\_fill\_ctx + 0x30)

0x555556ac69ffbtree\_iter\_next\_consume(&var\_9c8, &var\_798)

0x555556ac6a04int128\_t\* constrax\_140 = var\_9c8

0x555556ac6a0cint128\_t\* \_ret

0x555556ac6a0cstructstd\_vec\_Vec\_std\_string\_String\_var\_808

0x555556ac6a0cint128\_tresult\_1

0x555556ac6a0cint64\_tsize\_18

0x555556ac6a0cint128\_tvar\_3e8

0x555556ac6a0cint64\_tvar\_3d8

0x555556ac6a0cint128\_tvar\_348

0x555556ac6a0cint64\_tvar\_338

0x555556ac6a0cint128\_tcounterparty\_info\_2

0x555556ac6a0cif (rax\_140 == 0)

0x555556ac7cb4label\_555556ac7cb4:

0x555556ac7cb4btree\_iter\_next\_consume(&var\_9c8, &var\_798)

0x555556ac7cc1for (int128\_t\* consti\_17 = var\_9c8; i\_17 != 0; i\_17 = var\_9c8)

0x555556ac7cfaint64\_trdx\_88 = var\_9c0:8.q \* 3

0x555556ac7cfeint64\_trcx\_79 = *(i\_17 + (rdx\_88 &lt;&lt; 3) + 0xb8)

0x555556ac7d09if (rcx\_79 != 0)

0x555556ac7d23rust\_dealloc(*(i\_17 + (rdx\_88 &lt;&lt; 3) + 0xc0), rcx\_79 \* 0x60, 0)

0x555556ac7ce6btree\_iter\_next\_consume(&var\_9c8, &var\_798)

0x555556ac7d27Clearinghouse\* clearinghouse\_7 = clearinghouse\_1

0x555556ac7d2fcharrax\_199 = *(clearinghouse\_7 + 0x210)

0x555556ac7d37logger\_lock\_ptr.b = rax\_199

0x555556ac7d40int128\_tzmm0\_26

0x555556ac7d40if (rax\_199 != 0)

0x555556ac7d51if (cpty\_vec\_len != 0)

0x555556ac7d6fvoid\* oracle\_data\_1 = clearinghouse\_7 + 0xd8

0x555556ac7d85clearinghouse\_6 = truncate\_str\_to\_char\_limit

0x555556ac7d8cint128\_t\* i\_18 = i\_26

0x555556ac7de6do

0x555556ac7decint32\_trax\_203 = (i\_18[1].q).d

0x555556ac7e03int64\_trdx\_90 = *(i\_18 + 0x18)

0x555556ac7e0bif (rdx\_90 == 2)

0x555556ac7e0bbreak

0x555556ac7e11uint64\_tasset\_idx = i\_18[2].q

0x555556ac7e1cint32\_tvar\_238\_1 = rax\_203

0x555556ac7e23zmm0\_26 = \*i\_18

0x555556ac7e2cint128\_tvar\_248 = zmm0\_26

0x555556ac7e35int64\_tvar\_2a8 = rdx\_90

0x555556ac7e3duint64\_tasset\_idx\_3 = asset\_idx

0x555556ac7e45var\_9c0:8.d = rax\_203

0x555556ac7e49var\_9c8.o = zmm0\_26

0x555556ac7e4fvoid\* r15\_25 = *(clearinghouse\_7 + 0x128)

0x555556ac7e61void\* \_\_offset(Clearinghouse, 0x60) user\_state\_1

0x555556ac7e61if (r15\_25 == 0)

0x555556ac7f20user\_state\_1 = nullptr

0x555556ac7e61else

0x555556ac7e77int64\_tr13\_9 = *(clearinghouse\_7 + 0x130)

0x555556ac7e7ewhile (true)

0x555556ac7e7evoid\* rsi\_101 = r15\_25 + 0x428

0x555556ac7e85uint64\_trax\_205 = zx.q(*(r15\_25 + 0x506))

0x555556ac7e99uint64\_trbp\_14 = zx.q((rax\_205 &lt;&lt; 2).d) \* 5

0x555556ac7e9duser\_state\_1 = r15\_25 - 0x60

0x555556ac7ea1uint64\_trbx\_48 = -1

0x555556ac7ee9boolj

0x555556ac7ee9do

0x555556ac7eb3if (rbp\_14 == 0)

0x555556ac7f00rbx\_48 = rax\_205

0x555556ac7f05int64\_ttemp16\_1 = r13\_9

0x555556ac7f05r13\_9 -= 1

0x555556ac7f09if (temp16\_1u&lt; 1)

0x555556ac7f25gotolabel\_555556ac7f25

0x555556ac7f09gotolabel\_555556ac7f0b

0x555556ac7ec3int32\_trax\_207 = memcmp(&var\_9c8, rsi\_101, 0x14)

0x555556ac7ecdj = rax\_207 != 0

0x555556ac7ed5if (rax\_207s&lt; 0)

0x555556ac7ed5j = true

0x555556ac7ed8rbp\_14 -= 0x14

0x555556ac7edcuser\_state\_1 += 0x60

0x555556ac7ee0rbx\_48 += 1

0x555556ac7ee3rsi\_101 += 0x14

0x555556ac7ee9while (j == 1)

0x555556ac7ef0if (zx.d(j) == 0)

0x555556ac7ef0break

0x555556ac7ef2int64\_ttemp23\_1 = r13\_9

0x555556ac7ef2r13\_9 -= 1

0x555556ac7ef6if (temp23\_1u&lt; 1)

0x555556ac7f25label\_555556ac7f25:

0x555556ac7f25user\_state\_1 = nullptr

0x555556ac7f28break

0x555556ac7f0blabel\_555556ac7f0b:

0x555556ac7f0br15\_25 = *(r15\_25 + (rbx\_48 &lt;&lt; 3) + 0x508)

0x555556ac7f30\_ret\_2 = &var\_8f8

0x555556ac7f59if (user\_state\_1 == 0)

0x555556ac7f59user\_state\_1 = clearinghouse\_1 + 0x60

0x555556ac7f78compute\_account\_value\_for\_direction(&result\_1, user\_state\_1, rdx\_90.b, asset\_idx,

0x555556ac7f780, oracle\_data\_1)

0x555556ac7f8evar\_8f8 = result\_1

0x555556ac7f96int64\_tvar\_4f8

0x555556ac7f96int64\_tvar\_8e8\_16 = var\_4f8

0x555556ac7fa6var\_9c8.o = OPTION\_UNIT\_QTY\_NONE

0x555556ac7facvar\_9c0:8.q = 0

0x555556ac7fbdint64\_trbx\_50

0x555556ac7fbdrbx\_50, clearinghouse\_6 = option\_unit\_qty\_add\_a(\_ret\_2, &var\_9c8)

0x555556ac7fcdint128\_t\* (\* r15\_26)(int128\_t\* arg1, int64\_t\* arg2) = fmt\_arguments\_new

0x555556ac7fd4int64\_trbx\_52

0x555556ac7fd4if (rbx\_50s>= 0)

0x555556ac7fe7var\_8f8 = result\_1

0x555556ac7ff0int64\_tvar\_8e8\_17 = var\_4f8

0x555556ac7ff8var\_9c8 = nullptr

0x555556ac8001var\_9c0:8.q = 0xf4240

0x555556ac8012rbx\_52, clearinghouse\_6, clearinghouse\_7, r15\_26 =

0x555556ac8012option\_unit\_qty\_add\_a(\_ret\_2, &var\_9c8)

0x555556ac801eif (rbx\_50s&lt; 0 || rbx\_52s>= 0xf4241)

0x555556ac802dif (LOGGER\_ONCE\_CELL != 3)

0x555556ac85f8var\_8f8.q = &data\_55555885f728

0x555556ac8600var\_9c8 = \_ret\_2

0x555556ac8621once\_cell\_get\_or\_init(&LOGGER\_ONCE\_CELL, 0, &var\_9c8, &data\_55555878bb08,

0x555556ac8621 &data\_55555878c798)

0x555556ac803aint128\_tvar\_110 = data\_55555885f730

0x555556ac8049data\_55555886bd41

0x555556ac8051uint8\_t\* rax\_211 = rust\_alloc(0x33)

0x555556ac805aif (rax\_211 == 0)

0x555556ac8e7ehandle\_alloc\_error(1, 0x33)

0x555556ac8e7egotolabel\_555556ac8e8e

0x555556ac807d\_\_builtin\_strncpy(rax\_211,

0x555556ac807d"BUG: Auto-deleveraging 导致了非零余额", 0x33)

0x555556ac8087size\_18 = 0x33

0x555556ac809bint64\_tvar\_4d8\_1 = 0x33

0x555556ac80a7var\_808.buf.inner.cap.\_0 = 0

0x555556ac80b3var\_808.buf.inner.ptr.pointer.pointer = 8

0x555556ac80bfvar\_808.len = 0

0x555556ac80d3var\_8f8.q = &var\_248

0x555556ac80e2var\_8f8:8.q = adl\_requirement\_display

0x555556ac80eavar\_9c8 = &data\_555557dd1240

0x555556ac80efvar\_9c0.q = 1

0x555556ac80f8int64\_tvar\_9a8\_13 = 0

0x555556ac8101var\_9c0:8.q = \_ret\_2

0x555556ac8106length = 1

0x555556ac8122r15\_26(&counterparty\_info\_2, &var\_9c8)

0x555556ac8130clearinghouse\_6(\_ret\_2, &counterparty\_info\_2, 0x2710)

0x555556ac8132\_ret = \_ret\_2

0x555556ac8141void\* constvar\_860 = &data\_555556ab0390

0x555556ac8150var\_9c8 = &data\_5555587f7f78

0x555556ac8155var\_9c0.q = 2

0x555556ac815eint64\_tvar\_9a8\_14 = 0

0x555556ac816fvar\_9c0:8.q = &\_ret

0x555556ac8174length = 1

0x555556ac8188r15\_26(&var\_348, &var\_9c8)

0x555556ac818bint64\_tsize\_9 = var\_8f8.q

0x555556ac8196if (size\_9 != 0)

0x555556ac81a2rust\_dealloc(var\_8f8:8.q, size\_9, 0)

0x555556ac81a8uint64\_tlen\_1 = var\_808.len

0x555556ac81b8if (len\_1 == var\_808.buf.inner.cap.\_0)

0x555556ac81c2vec\_grow\_string(&var\_808)

0x555556ac81c7void\* pointer\_3 = var\_808.buf.inner.ptr.pointer.pointer

0x555556ac81cfuint64\_trcx\_83 = len\_1 \* 3

0x555556ac81db \*(pointer\_3 + (rcx\_83 &lt;&lt; 3) + 0x10) = var\_338

0x555556ac81e8 \*(pointer\_3 + (rcx\_83 &lt;&lt; 3)) = var\_348

0x555556ac81efvar\_808.len = len\_1 + 1

0x555556ac81ffvar\_8f8.q = &var\_2a8

0x555556ac820evar\_8f8:8.q = &data\_555556adb0c0

0x555556ac8216var\_9c8 = &data\_555557dd1240

0x555556ac821bvar\_9c0.q = 1

0x555556ac8224int64\_tvar\_9a8\_15 = 0

0x555556ac822dvar\_9c0:8.q = \_ret\_2

0x555556ac8232length = 1

0x555556ac824er15\_26(&str1\_ptr, &var\_9c8)

0x555556ac825cclearinghouse\_6(\_ret\_2, &str1\_ptr, 0x2710)

0x555556ac825e\_ret = \_ret\_2

0x555556ac826dvoid\* constvar\_860\_1 = &data\_555556ab0390

0x555556ac827cvar\_9c8 = &data\_5555587f81b8

0x555556ac8281var\_9c0.q = 2

0x555556ac828aint64\_tvar\_9a8\_16 = 0

0x555556ac829bvar\_9c0:8.q = &\_ret

0x555556ac82a0length = 1

0x555556ac82b4r15\_26(&var\_748, &var\_9c8)

0x555556ac82b7int64\_tsize\_10 = var\_8f8.q

0x555556ac82c2if (size\_10 != 0)

0x555556ac82cerust\_dealloc(var\_8f8:8.q, size\_10, 0)

0x555556ac82d4uint64\_tlen\_2 = var\_808.len

0x555556ac82e4if (len\_2 == var\_808.buf.inner.cap.\_0)

0x555556ac82eevec\_grow\_string(&var\_808)

0x555556ac82f3void\* pointer\_4 = var\_808.buf.inner.ptr.pointer.pointer

0x555556ac82fbuint64\_trcx\_84 = len\_2 \* 3

0x555556ac8307 \*(pointer\_4 + (rcx\_84 &lt;&lt; 3) + 0x10) = var\_738

0x555556ac8314 \*(pointer\_4 + (rcx\_84 &lt;&lt; 3)) = var\_748.o

0x555556ac831bvar\_808.len = len\_2 + 1

0x555556ac832bvar\_8f8.q = &result\_1

0x555556ac833avar\_8f8:8.q = &data\_555556adf370

0x555556ac8342var\_9c8 = &data\_555557dd1240

0x555556ac8347var\_9c0.q = 1

0x555556ac8350int64\_tvar\_9a8\_17 = 0

0x555556ac8359var\_9c0:8.q = \_ret\_2

0x555556ac835elength = 1

0x555556ac837ar15\_26(&counterparty\_info, &var\_9c8)

0x555556ac8388clearinghouse\_6(\_ret\_2, &counterparty\_info, 0x2710)

0x555556ac838a\_ret = \_ret\_2

0x555556ac8399void\* constvar\_860\_2 = &data\_555556ab0390

0x555556ac83a8var\_9c8 = &data\_5555587f8110

0x555556ac83advar\_9c0.q = 2

0x555556ac83b6int64\_tvar\_9a8\_18 = 0

0x555556ac83c7var\_9c0:8.q = &\_ret

0x555556ac83cclength = 1

0x555556ac83e0r15\_26(&var\_798, &var\_9c8)

0x555556ac83e3int64\_tsize\_11 = var\_8f8.q

0x555556ac83eeif (size\_11 != 0)

0x555556ac83farust\_dealloc(var\_8f8:8.q, size\_11, 0)

0x555556ac8400uint64\_tlen\_8 = var\_808.len

0x555556ac8410if (len\_8 == var\_808.buf.inner.cap.\_0)

0x555556ac841avec\_grow\_string(&var\_808)

0x555556ac841fvoid\* pointer\_5 = var\_808.buf.inner.ptr.pointer.pointer

0x555556ac8427uint64\_trcx\_85 = len\_8 \* 3

0x555556ac8433 \*(pointer\_5 + (rcx\_85 &lt;&lt; 3) + 0x10) = deferred\_cross\_queue\_2

0x555556ac8440 \*(pointer\_5 + (rcx\_85 &lt;&lt; 3)) = var\_798

0x555556ac8447var\_808.len = len\_8 + 1

0x555556ac846ctracing\_event\_emit(&var\_9c8, var\_808.buf.inner.ptr.pointer.pointer, len\_8 + 1,

0x555556ac846c" @ \\n由于 shortfall 是可接受的,不执行 Auto-deleveraging。"

0x555556ac846c"Auto-deleveragings 触发 perform\_auto\_deleveraging=\[total\_shortfall: "

0x555556ac846c"\[asset\_and\_side\_to\_adl\_requirements: Bug! Auto-deleveraging liquidatable "

0x555556ac846c"已经具有比 max shortfall 更负的账户价值。"

0x555556ac846c"\[liquidatable: 内部错误:进入了不可达代码:leve",

0x555556ac846c3, &data\_555557dd1240, len\_8 + 1)

0x555556ac8476void\* var\_858 = var\_9c0:8.q

0x555556ac8484\_ret.o = var\_9c8.o

0x555556ac848duint64\_tlen\_3 = var\_808.len

0x555556ac8498if (len\_3 != 0)

0x555556ac84a2int64\_t\* r14\_28 = var\_808.buf.inner.ptr.pointer.pointer + 8

0x555556ac84b7uint64\_tj\_1

0x555556ac84b7do

0x555556ac84b9int64\_tsize\_12 = r14\_28[-1]

0x555556ac84c0if (size\_12 != 0)

0x555556ac84c7rust\_dealloc(\*r14\_28, size\_12, 0)

0x555556ac84b0r14\_28 = &r14\_28[3]

0x555556ac84b4j\_1 = len\_3

0x555556ac84b4len\_3 -= 1

0x555556ac84b7while (j\_1 != 1)

0x555556ac84d0uint64\_t\_0 = var\_808.buf.inner.cap.\_0

0x555556ac84dbif (\_0 != 0)

0x555556ac84efrust\_dealloc(var\_808.buf.inner.ptr.pointer.pointer, \_0 \* 0x18, 0)

0x555556ac84fdvar\_9c8 = &var\_110

0x555556ac8509var\_9c0.q = &data\_555556b50bd0

0x555556ac8516var\_9c0:8.q = &size\_18

0x555556ac8522length = &data\_555556ab0390

0x555556ac852fint128\_t\*\* var\_9a8\_19 = &\_ret

0x555556ac8534void\* constvar\_9a0\_4 = &data\_555556ab0390

0x555556ac8540var\_8f8.q = &data\_5555587f7f98

0x555556ac8548var\_8f8:8.q = 4

0x555556ac8554int64\_tvar\_8d8\_4 = 0

0x555556ac8565int128\_t\* const\* var\_8e8\_18 = &var\_9c8

0x555556ac856dvar\_8e0 = 3

0x555556ac8584r15\_26(&var\_3e8, \_ret\_2)

0x555556ac8587int128\_t\* size\_13 = \_ret

0x555556ac8592clearinghouse\_7 = clearinghouse\_1

0x555556ac859aif (size\_13 != 0)

0x555556ac85a6rust\_dealloc(var\_860\_2, size\_13, 0)

0x555556ac85acint64\_tsize\_14 = size\_18

0x555556ac85b7if (size\_14 != 0)

0x555556ac85c3rust\_dealloc(rax\_211, size\_14, 0)

0x555556ac85c9uint64\_tlen\_4 = var\_5a8.len

0x555556ac85d9if (len\_4 == var\_5a8.buf.inner.cap.\_0)

0x555556ac85e7vec\_grow\_string(&var\_5a8)

0x555556ac7da0void\* pointer\_2 = var\_5a8.buf.inner.ptr.pointer.pointer

0x555556ac7da8uint64\_trcx\_82 = len\_4 \* 3

0x555556ac7db4 *(pointer\_2 + (rcx\_82 &lt;&lt; 3) + 0x10) = var\_3d8

0x555556ac7dc2 *(pointer\_2 + (rcx\_82 &lt;&lt; 3)) = var\_3e8

0x555556ac7dcavar\_5a8.len = len\_4 + 1

0x555556ac7ddai\_18 += 0x28

0x555556ac7de6while (i\_18 != i\_26 + cpty\_vec\_len \* 0x28)

0x555556ac8635if (cpty\_vec\_cap\_1 != 0)

0x555556ac8655rust\_dealloc(i\_26, cpty\_vec\_cap\_1 \* 0x28, 0)

0x555556ac8664if (var\_640\_1 != 0)

0x555556ac867aif (data\_55555885fb18 != 3)

0x555556ac8914var\_8f8.q = &data\_55555885f848

0x555556ac891cvar\_9c8 = \_ret\_2

0x555556ac893donce\_cell\_get\_or\_init(&data\_55555885fb18, 0, &var\_9c8, &data\_5555587f5940,

0x555556ac893d &data\_5555587f7d38)

0x555556ac8683int64\_trsi\_118 = tracing\_subscriber\_interest(&data\_55555885f848)

0x555556ac8692if (data\_55555885fb18 == 3)

0x555556ac869cboolz\_7

0x555556ac869cif (0 == TRACING\_LOG\_LOCK)

0x555556ac869cTRACING\_LOG\_LOCK = 1

0x555556ac869cz\_7 = true

0x555556ac869celse

0x555556ac869cint64\_trax\_218

0x555556ac869crax\_218.b = TRACING\_LOG\_LOCK

0x555556ac869cz\_7 = false

0x555556ac86a4if (not(z\_7))

0x555556ac86a4gotolabel\_555556ac899a

0x555556ac86a4gotolabel\_555556ac86b8

0x555556ac8948var\_8f8.q = &data\_55555885f848

0x555556ac8950var\_9c8 = \_ret\_2

0x555556ac8971rsi\_118 = once\_cell\_get\_or\_init(&data\_55555885fb18, 0, &var\_9c8, &data\_5555587f5940,

0x555556ac8971 &data\_5555587f7d38)

0x555556ac897bboolz\_9

0x555556ac897bif (0 == TRACING\_LOG\_LOCK)

0x555556ac897bTRACING\_LOG\_LOCK = 1

0x555556ac897bz\_9 = true

0x555556ac897belse

0x555556ac897bint64\_trax\_223

0x555556ac897brax\_223.b = TRACING\_LOG\_LOCK

0x555556ac897bz\_9 = false

0x555556ac8983if (z\_9)

0x555556ac86b8label\_555556ac86b8:

0x555556ac86bfif (data\_55555885f9e0 != -0x7fffffffffffffff)

0x555556ac86c1label\_555556ac86c1:

0x555556ac86c8if (TRACING\_LOG\_DATA != -0x8000000000000000)

0x555556ac86d6rwlock\_write\_unlock(&TRACING\_LOG\_DATA, clearinghouse\_6)

0x555556ac8983else

0x555556ac899alabel\_555556ac899a:

0x555556ac899arwlock\_read\_lock(&TRACING\_LOG\_LOCK, rsi\_118, 0x3b9aca00)

0x555556ac89b5if (data\_55555885f9e0 != -0x7fffffffffffffff)

0x555556ac89b5gotolabel\_555556ac86c1

0x555556ac86dduint64\_trax\_219

0x555556ac86ddrax\_219.b = 1

0x555556ac86dfboolz\_8

0x555556ac86dfif (1 == TRACING\_LOG\_LOCK)

0x555556ac86dfTRACING\_LOG\_LOCK = 0

0x555556ac86dfz\_8 = true

0x555556ac86dfelse

0x555556ac86dfrax\_219.b = TRACING\_LOG\_LOCK

0x555556ac86dfz\_8 = false

0x555556ac86e7if (not(z\_8))

0x555556ac89cerwlock\_read\_unlock(&TRACING\_LOG\_LOCK, 0)

0x555556ac89dcif (\*(clearinghouse\_7 + 0x210) == 1)

0x555556ac89dcgotolabel\_555556ac870b

0x555556ac89dcgotolabel\_555556ac89ea

0x555556ac86f5if (\*(clearinghouse\_7 + 0x210) != 1)

0x555556ac89ealabel\_555556ac89ea:

0x555556ac89earesult->root\_node\_ptr = 0

0x555556ac89f1result->length = 0

0x555556ac8a01btree\_drop\_adl\_results(&var\_650)

0x555556ac86f5else

0x555556ac870blabel\_555556ac870b:

0x555556ac870bresult->length = var\_640\_1

0x555556ac870fzmm0\_26 = var\_650.o

0x555556ac8718result->root\_node\_ptr = zmm0\_26.q

0x555556ac8718result->height = zmm0\_26:8.q

0x555556ac8a16uint64\_tlen\_5 = var\_5a8.len

0x555556ac8a21if (len\_5 != 0)

0x555556ac8a2bint64\_t\* r14\_31 = var\_5a8.buf.inner.ptr.pointer.pointer + 8

0x555556ac8a47uint64\_ti\_19

0x555556ac8a47do

0x555556ac8a49int64\_tsize\_16 = r14\_31[-1]

0x555556ac8a50if (size\_16 != 0)

0x555556ac8a57rust\_dealloc(\*r14\_31, size\_16, 0)

0x555556ac8a40r14\_31 = &r14\_31[3]

0x555556ac8a44i\_19 = len\_5

0x555556ac8a44len\_5 -= 1

0x555556ac8a47while (i\_19 != 1)

0x555556ac8a5cuint64\_t\_0\_1 = var\_5a8.buf.inner.cap.\_0

0x555556ac8a67if (\_0\_1 != 0)

0x555556ac8a7brust\_dealloc(var\_5a8.buf.inner.ptr.pointer.pointer, \_0\_1 \* 0x18, 0)

0x555556ac8a84\_0\_1.b = cpty\_vec\_cap\_1 == 0

0x555556ac8a92if ((logger\_lock\_ptr.b | \_0\_1.b) == 0)

0x555556ac8aa6rust\_dealloc(i\_26, cpty\_vec\_cap\_1 \* 0x28, 0)

0x555556ac8ab4if (total\_shortfall\_value\_2u&lt; r15\_2)

0x555556ac8ab6int64\_trax\_226 = result\_2.q

0x555556ac8ac1if (rax\_226 != 0)

0x555556ac8ad5rust\_dealloc(str1\_ptr\_6, rax\_226 \* 0x28, 0)

0x555556ac8ae3int64\_trax\_228 = \*oracle\_asset\_data

0x555556ac8ae9if (rax\_228 != 0)

0x555556ac8af9rust\_dealloc(*(oracle\_asset\_data + 8), rax\_228 \* 0x60, 0)

0x555556ac8b06btree\_drop\_0x60(oracle\_asset\_data + 0x18)

0x555556ac8b24returnresult

0x555556ac6a3ewhile (true)

0x555556ac6a3eint64\_trdx\_62 = var\_9c0:8.q

0x555556ac6a43int64\_trcx\_56 = rdx\_62 \* 3

0x555556ac6a47int64\_trdi\_95 = *(rax\_140 + (rcx\_56 &lt;&lt; 3) + 0xb8)

0x555556ac6a64if (rdi\_95 == -0x8000000000000000)

0x555556ac6a64gotolabel\_555556ac7cb4

0x555556ac6a6eint32\_t\* rsi\_72 = rax\_140[rdx\_62].q

0x555556ac6a7auint32\_tr11\_2 = zx.d(*(&rax\_140[rdx\_62] + 8))

0x555556ac6a80int128\_t\* rdi\_96 = *(rax\_140 + (rcx\_56 &lt;&lt; 3) + 0xc0)

0x555556ac6a88uint64\_trbx\_39 = *(rax\_140 + (rcx\_56 &lt;&lt; 3) + 0xc8)

0x555556ac6a98counterparty\_info.q = &str1\_ptr

0x555556ac6aa4int128\_t\* var\_870 = rdi\_96

0x555556ac6aacshortfall\_discriminant\_4.b = r11\_2.b

0x555556ac6ab4uint64\_trax\_141

0x555556ac6ab4Clearinghouse\* clearinghouse\_4

0x555556ac6ab4if (rbx\_39u>= 2)

0x555556ac6ad4int128\_tzmm0\_19

0x555556ac6ad4if (rbx\_39u>= 0x15)

0x555556ac6c1bsort\_counterparties(rdi\_96, rbx\_39, &counterparty\_info)

0x555556ac6c20r11\_2 = zx.d(shortfall\_discriminant\_4.b)

0x555556ac6c29rdi\_96 = var\_870

0x555556ac6ad4else

0x555556ac6ae5int128\_t\* i\_20 = &rdi\_96[6]

0x555556ac6ae9void\* rdx\_64 = 0x60

0x555556ac6b4ddo

0x555556ac6b53int64\_trsi\_73 = *(i\_20 + 0x18)

0x555556ac6b5bif (rsi\_73u&lt; *(i\_20 - 0x48))

0x555556ac6b60var\_8f8 = \*i\_20

0x555556ac6b68int64\_tr8\_11 = i\_20[1].q

0x555556ac6b84var\_9c8.o = i\_20[2]

0x555556ac6b89var\_9c0:8.o = i\_20[3]

0x555556ac6b8easset\_idx\_2.o = i\_20[4]

0x555556ac6b93i\_62.o = i\_20[5]

0x555556ac6b98void\* r8\_12 = rdx\_64

0x555556ac6ba0int128\_t\* r8\_10

0x555556ac6ba0void\* r10\_3

0x555556ac6ba0int128\_tzmm1\_4

0x555556ac6ba0while (true)

0x555556ac6ba0r10\_3 = r8\_12

0x555556ac6ba9 *(rdi\_96 + r8\_12 + 0x50) = *(rdi\_96 + r8\_12 - 0x10)

0x555556ac6bb5 *(rdi\_96 + r8\_12 + 0x40) = *(rdi\_96 + r8\_12 - 0x20)

0x555556ac6bbbzmm0\_19 = *(rdi\_96 + r8\_12 - 0x60)

0x555556ac6bc2zmm1\_4 = *(rdi\_96 + r8\_12 - 0x50)

0x555556ac6bc9int128\_tzmm2\_4 = *(rdi\_96 + r8\_12 - 0x40)

0x555556ac6bd6 *(rdi\_96 + r8\_12 + 0x30) = *(rdi\_96 + r8\_12 - 0x30)

0x555556ac6bdc *(rdi\_96 + r8\_12 + 0x20) = zmm2\_4

0x555556ac6be3 *(rdi\_96 + r8\_12 + 0x10) = zmm1\_4

0x555556ac6bea *(rdi\_96 +```
0x555556ac61a9gotolabel_555556ac61ec\

0x555556ac61eei_50 = nullptr\

0x555556ac61f0i_11 = *(i_47 + 0xb0)\

0x555556ac61f7r12_5 = r10_1\

0x555556ac61fdif (i_11 != 0)\

0x555556ac61fdgotolabel_555556ac6227\

0x555556ac622bi_57 = i_50\

0x555556ac622ei_36 = i_47\

0x555556ac6146else\

0x555556ac6148i_50 = i_47\

0x555556ac614bi_47 = i_53\

0x555556ac6154label_555556ac6154:\

0x555556ac6154i_11 = *(i_47 + 0xb0)\

0x555556ac615br12_5 = r10_1\

0x555556ac6161if (i_11 != 0)\

0x555556ac6227label_555556ac6227:\

0x555556ac6227do\

0x555556ac6200i_36 = i_11\

0x555556ac6203i_57 = i_50 + 1\

0x555556ac6215clearinghouse_6()\

0x555556ac6217i_11 = *(i_36 + 0xb0)\

0x555556ac6221i_50 = i_57\

0x555556ac6227while (i_11 != 0)\

0x555556ac6161else\

0x555556ac622bi_57 = i_50\

0x555556ac622ei_36 = i_47\

0x555556ac6234int64_trsi_52 = 0x228\

0x555556ac6239if (i_57 == 0)\

0x555556ac6239rsi_52 = 0x1c8\

0x555556ac6242clearinghouse_6(i_36, rsi_52, 0, i_11)\

0x555556ac6244r10_1 = r12_5\

0x555556ac6247clearinghouse = clearinghouse_1\

0x555556ac6257deferred_queue_cap_1 = &deferred_queue_cap_1[5]\

0x555556ac6263if (deferred_queue_cap_1 != rax_32)\

0x555556ac6263gotolabel_555556ac43c5\

0x555556ac6263break\

0x555556ac4ce1break\

0x555556ac5540zmm0_6 = __subpd_xmmpd_mempd(\

0x555556ac5540__unpcklps_xmmps_memdq(zx.o(rbx_10), data_555557dd12e0[0x20][0].o),\

0x555556ac5540data_555557dd1310)\

0x555556ac5550int128_tzmm1_2\

0x555556ac5550zmm1_2.q = _mm_unpackhi_pd(zmm0_6, zmm0_6.q).qf+ zmm0_6.q\

0x555556ac5554logger_data_ptr.o = zmm1_2\

0x555556ac55f3while (true)\

0x555556ac55f3rbx_35 = rbx_25 - 1\

0x555556ac55f6var_988_1 = rbx_35\

0x555556ac55fbindex_2 = var_9c8\

0x555556ac5604if (index_2 != 1)\

0x555556ac5604gotolabel_555556ac8bb8\

0x555556ac5610if (var_9c0.q == 0)\

0x555556ac5616void\* rax_80 = var_9c0:8.q\

0x555556ac561buint64_tlength_4 = length\

0x555556ac5623if (length_4 != 0)\

0x555556ac5628int64_trdx_37 = length_4 & 7\

0x555556ac562cuint64_ti_31\

0x555556ac562cif (rdx_37 == 0)\

0x555556ac5e66i_31 = length_4\

0x555556ac5e6dif (length_4u>= 8)\

0x555556ac569clabel_555556ac569c:\

0x555556ac569cuint64_ti_12\

0x555556ac569cdo\

0x555556ac5691rax_80 = *(*(*(*(\

0x555556ac5691 *(*(*(*(rax_80 + 0x1c8) + 0x1c8) + 0x1c8) + 0x1c8) + 0x1c8)\

0x555556ac5691 + 0x1c8) + 0x1c8) + 0x1c8)\

0x555556ac5698i_12 = i_31\

0x555556ac5698i_31 -= 8\

0x555556ac569cwhile (i_12 != 8)\

0x555556ac562celse\

0x555556ac5632int64_trsi_41 = 0\

0x555556ac564ddo\

0x555556ac5640rax_80 = *(rax_80 + 0x1c8)\

0x555556ac5647rsi_41 += 1\

0x555556ac564dwhile (rdx_37 != rsi_41)\

0x555556ac5652i_31 = length_4 - rsi_41\

0x555556ac5659if (length_4u>= 8)\

0x555556ac5659gotolabel_555556ac569c\

0x555556ac569evar_9c8 = 1\

0x555556ac56a7var_9c0.q = rax_80\

0x555556ac56b0var_9c0:8.o = _mm_xor_pd(zmm0_6, zmm0_6)\

0x555556ac56b7index_2 = 1\

0x555556ac56c6btree_iterator_advance(&var_8f8, &var_9c0)\

0x555556ac56d4if (var_8f8.q == 0)\

0x555556ac8bc5label_555556ac8bc5:\

0x555556ac8bc5panic_unwrap_none(&data_5555587ff650)\

0x555556ac8bc5noreturn\

0x555556ac56e2length = var_8e8_8\

0x555556ac56e7zmm0_6 = var_8f8\

0x555556ac56f0var_9c0 = zmm0_6\

0x555556ac5f06uint64_t\* rax_89 = var_8e0\

0x555556ac5704if (rax_89 == 0)\

0x555556ac5704gotolabel_555556ac6010\

0x555556ac5712int64_tvar_8d0\

0x555556ac5712int64_trcx_37 = var_8d0 * 3\

0x555556ac5716void\* __offset(Clearinghouse, 0x60) str1_ptr_7 = rax_89[rcx_37 + 0x17]\

0x555556ac572aif (str1_ptr_7 == 3)\

0x555556ac572agotolabel_555556ac6010\

0x555556ac5734uint64_tindex_1 = rax_89[var_8d0 * 2]\

0x555556ac5740uint64_tlen_11 = *(oracle_asset_data + 0x10)\

0x555556ac5747if (len_11u> index_1)\

0x555556ac574dindex_2 = zx.q(rax_89[var_8d0 * 2 + 1].b)\

0x555556ac5753int128_t\* size_28 = rax_89[rcx_37 + 0x18]\

0x555556ac575bint64_tr8_6 = rax_89[rcx_37 + 0x19]\

0x555556ac5763int64_trcx_38 = *(oracle_asset_data + 8)\

0x555556ac576buint64_trdx_42 = index_1 * 0x60\

0x555556ac576fchar\* logger_lock_ptr_5 = *(rcx_38 + rdx_42 + 0x40)\

0x555556ac578eint64_trbp_8 = neg.q(r8_6)\

0x555556ac578eboolc_3 = r8_6 != 0\

0x555556ac5799if (neg.q(r8_6) s&lt; 0)\

0x555556ac5799rbp_8 = r8_6\

0x555556ac579dint128_t\* size_26\

0x555556ac579dint128_t\* size_24 = size_26\

0x555556ac57adif (c_3)\

0x555556ac57adsize_24 = size_28\

0x555556ac57b1int32_t\* str1_ptr_3 = str1_ptr_7\

0x555556ac57beif (not(c_3))\

0x555556ac57bestr1_ptr_3 = 2\

0x555556ac57c5uint64_trax_91 = rbp_8 * *(rcx_38 + rdx_42 + 0x48)\

0x555556ac57caif (mulu.dp.q(rbp_8, *(rcx_38 + rdx_42 + 0x48)) u>> 0x40 != zx.o(0))\

0x555556ac57cagotolabel_555556ac8bd2\

0x555556ac57dbchar\* logger_lock_ptr_8 = logger_lock_ptr_5\

0x555556ac57ecvar_798 = *(rcx_38 + rdx_42 + 0x30)\

0x555556ac57f5str1_ptr = str1_ptr_3\

0x555556ac57fdint128_t\* size_25 = size_24\

0x555556ac5805int64_trcx_39 = 2\

0x555556ac580echar\* logger_lock_ptr_1 = logger_lock_ptr\

0x555556ac5816if (str1_ptr_3 != 2)\

0x555556ac5818int128_t\* size_22 = var_798:8.q\

0x555556ac5820rcx_39 = var_798.q\

0x555556ac582bif (rcx_39 == 0)\

0x555556ac5864if (str1_ptr_3 != 0)\

0x555556ac5864gotolabel_555556ac8c69\

0x555556ac586avar_748.q = size_22\

0x555556ac5872size_17 = size_24\

0x555556ac587dif (size_22 != size_24)\

0x555556ac587dgotolabel_555556ac8de7\

0x555556ac5883rcx_39 = 0\

0x555556ac5885logger_lock_ptr_1 = logger_lock_ptr\

0x555556ac582belse\

0x555556ac5831if (str1_ptr_3 != 1)\

0x555556ac5831gotolabel_555556ac8c69\

0x555556ac5837size_17 = size_22\

0x555556ac583fchar\* logger_lock_ptr_9 = logger_lock_ptr_5\

0x555556ac5847var_748.q = size_24\

0x555556ac5852logger_lock_ptr_1 = logger_lock_ptr\

0x555556ac585aif (size_22 != size_24)\

0x555556ac585agotolabel_555556ac8db5\

0x555556ac5890size_26 = size_24\

0x555556ac589bif (rax_91 != 0)\

0x555556ac589blogger_lock_ptr_1 = logger_lock_ptr_5\

0x555556ac589flogger_lock_ptr = logger_lock_ptr_1\

0x555556ac58a7int64_trdi_61 = rcx_39\

0x555556ac58afif (rax_91 == 0)\

0x555556ac58afrdi_61 = 2\

0x555556ac58b3int64_trdx_43 = var_3b8.q\

0x555556ac58c3int64_t (* user_shortfall_1)(int64_targ1, int64_targ2, int32_targ3) =\

0x555556ac58c3user_shortfall\

0x555556ac58ceint64_tvar_6d0\

0x555556ac58ceif (index_2.b == 0)\

0x555556ac58delabel_555556ac58de:\

0x555556ac58devar_6d0 = var_3b8:8.q\

0x555556ac58ecif (rbx_10 == 0)\

0x555556ac8c21panic_unwrap_none(&data_5555587f8130)\

0x555556ac8c21noreturn\

0x555556ac58ceelse\

0x555556ac58d3if (user_shortfall_1 != 0)\

0x555556ac58d5int64_t (* user_shortfall_2)(int64_targ1, int64_targ2,\

0x555556ac58d5int32_targ3) = user_shortfall_1\

0x555556ac58d5user_shortfall_1 = neg.q(user_shortfall_1)\

0x555556ac58d8if (neg.q(user_shortfall_2) == -0x8000000000000000)\

0x555556ac58d8gotolabel_555556ac8c5b\

0x555556ac58d8gotolabel_555556ac58de\

0x555556ac5900rdx_43 = 2\

0x555556ac590bif (rbx_10 == 0)\

0x555556ac8c21panic_unwrap_none(&data_5555587f8130)\

0x555556ac8c21noreturn\

0x555556ac5915if (rdi_61 != 2)\

0x555556ac5917var_798.q = rdi_61\

0x555556ac5927var_798:8.q = logger_lock_ptr\

0x555556ac593bif (size_19 == 2)\

0x555556ac593bgotolabel_555556ac8d30\

0x555556ac5945int64_tr8_7\

0x555556ac5945r8_7.b = size_19 == 1\

0x555556ac5949size_17 = size_19\

0x555556ac5959int64_tvar_630_4 = var_6c0\

0x555556ac5964char* r9_2\

0x555556ac5964r9_2.b = logger_lock_ptr != var_6c0\

0x555556ac596bif (rdi_61 != size_19)\

0x555556ac596bgotolabel_555556ac8cf7\

0x555556ac5971r8_7.b &= r9_2.b\

0x555556ac5974if (r8_7.b != 0)\

0x555556ac5974gotolabel_555556ac8cf7\

0x555556ac5987zmm0_6 = __subpd_xmmpd_mempd(\

0x555556ac5987__punpckldq_xmmdq_memdq(zx.o(rax_91), data_555557dd12e0[0x20][0].o),\

0x555556ac5987data_555557dd1310)\

0x555556ac5997zmm1_2.q = _mm_unpackhi_pd(zmm0_6, zmm0_6.q).qf+ zmm0_6.q\

0x555556ac599bzmm1_2.q = zmm1_2.qf/ logger_data_ptr\

0x555556ac59a7zmm0_6.q = float.d(user_shortfall_1)\

0x555556ac59aczmm0_6.q = zmm0_6.qf\* zmm1_2.q\

0x555556ac59c2zmm1_2 = _mm_xor_pd(zmm1_2, zmm1_2)\

0x555556ac59d3if ((zmm0_6.q & 0x7fffffffffffffff) s&lt;= 0x7fefffffffffffff)\

0x555556ac59ebif (-0x3c20000000000000f> zmm0_6.q || zmm0_6.qf> 9.2233720368547758e+18)\

0x555556ac5a14zmm1_2 = _mm_min_sd(0x43e0000000000000,\

0x555556ac5a14_mm_max_sd(-0x3c20000000000000, zmm0_6.q))\

0x555556ac59ebelse\

0x555556ac59edzmm1_2 = zmm0_6\

0x555556ac5a18int64_trdi_62 = int.q(zmm1_2.q)\

0x555556ac5a2fif (zmm1_2.qf> 9.2233720368547748e+18)\

0x555556ac5a2frdi_62 = 0x7fffffffffffffff\

0x555556ac5a37int64_trsi_45 = 0\

0x555556ac5a3cif (is_ordered.q(zmm1_2.q, zmm1_2.q))\

0x555556ac5a3crsi_45 = rdi_62\

0x555556ac5a43structOptionUnitQtyrhs_1\

0x555556ac5a43boolcond:61_1\

0x555556ac5a43if (rsi_45 == 0)\

0x555556ac5a75rhs_1.value = rsi_45\

0x555556ac5a7drhs_1.tag = 2\

0x555556ac5a85cond:61_1 = rax_91 == 0\

0x555556ac5a88if (rax_91s&lt; 0)\

0x555556ac8c14label_555556ac8c14:\

0x555556ac8c14panic_unwrap_err(\

0x555556ac8c14"called `Result::unwrap()` on an `Err` "\

0x555556ac8c14"value/rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/iter/traits/accum."\

0x555556ac8c14"rsTryFromIntErrorOkErr/home/ubuntu/.cargo/registry/src/index.crates."\

0x555556ac8c14"io-6f17d22bba15001f/serde_jsonrc-0.1.0/src/read."\

0x555556ac8c14"rsPoisonErrorullrue/home/ubuntu/.cargo/registry/src/index.crates."\

0x555556ac8c14"io-6f17d22bba15001f/serde_jsonrc-0.1.0/src/de.rs/home/ubuntu/."\

0x555556ac8c14"cargo/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.14."\

0x555556ac8c14"5/src/raw/mod.rs/home/ubuntu/hl/code_Testnet/l1/src/qtys.rsassertion "\

0x555556ac8c14"failed:…",\

0x555556ac8c140x2b, &str1_ptr, &data_5555587fdcf0, &data_5555587ff0e0)\

0x555556ac8c21panic_unwrap_none(&data_5555587f8130)\

0x555556ac8c21noreturn\

0x555556ac5a43else\

0x555556ac5a4drhs_1.unit = var_6d0\

0x555556ac5a55rhs_1.value = rsi_45\

0x555556ac5a5drhs_1.tag = rdx_43\

0x555556ac5a65cond:61_1 = rax_91 == 0\

0x555556ac5a68if (rax_91s&lt; 0)\

0x555556ac5a68gotolabel_555556ac8c14\

0x555556ac5a8eif (cond:61_1)\

0x555556ac5ac5var_8e8_8 = rax_91\

0x555556ac5acdvar_8f8.q = 2\

0x555556ac5ad8if (not(add_overflow(rax_91, neg.q(rsi_45))))\

0x555556ac5ae9label_555556ac5ae9:\

0x555556ac5ae9int64_trax_93\

0x555556ac5ae9int64_trdx_44\

0x555556ac5ae9int64_trbx_30\

0x555556ac5ae9int64_trbp_9\

0x555556ac5ae9charr14_14\

0x555556ac5ae9uint64_tr15_12\

0x555556ac5ae9rax_93, rdx_44, rbx_30, rbp_9, r14_14, r15_12 =\

0x555556ac5ae9option_unit_qty_add_a(&var_8f8, &rhs_1)\

0x555556ac5aeeboolcond:63_1 = rbx_30s&lt;= 0\

0x555556ac5af6if (rbx_30s&lt;= 0)\

0x555556ac5af6rbx_30 = 0\

0x555556ac5afaint128_t\* size_21 = 2\

0x555556ac5affif (cond:63_1)\

0x555556ac5affrax_93 = 2\

0x555556ac5b03var_798.q = rax_93\

0x555556ac5b0bvar_798:8.q = rdx_44\

0x555556ac5b13int64_tvar_788_2 = rbx_30\

0x555556ac5b1bint64_trax_94 = 0\

0x555556ac5b29if (r8_6 != 0)\

0x555556ac5b33int128_t\* size_29 = size_28\

0x555556ac5b3brax_94 = rbp_9\

0x555556ac5b3esize_21 = str1_ptr_7\

0x555556ac5b46int64_tvar_628_6 = rax_94\

0x555556ac5b4esize_17 = size_21\

0x555556ac5b56uint32_trbp_10 = zx.d(r14_14)\

0x555556ac5b6funit_qty_div(&var_8f8, &var_798, &size_17, rbp_10.b)\

0x555556ac5b7cif (var_8f8.d == 2)\

0x555556ac5b7cgotolabel_555556ac8bec\

0x555556ac5b94var_628_6.o = var_8e8_8.o\

0x555556ac5b9dsize_17.o = var_8f8\

0x555556ac5ba6int64_t\* deferred_cross_queue_4 = deferred_cross_queue\

0x555556ac5bb1int32_t\* str1_ptr_10 = str1_ptr_5\

0x555556ac5bb9structstd_vec_Vec__u64__12__\* rbx_31\

0x555556ac5bb9if (deferred_cross_queue_4 == 0)\

0x555556ac5c90r10_1 = r15_12\

0x555556ac5c93deferred_cross_queue_4 = nullptr\

0x555556ac5c95label_555556ac5c95:\

0x555556ac5c95var_8f8.q = deferred_cross_queue_4\

0x555556ac5c9dvar_8f8:8.q = str1_ptr_10\

0x555556ac5ca5var_8e8_8 = r10_1\

0x555556ac5cb5var_8e0 = &deferred_cross_queue\

0x555556ac5cbduint64_tindex_4 = index_1\

0x555556ac5cc5var_8d0.b = r14_14\

0x555556ac5cd0str1_ptr_5 = str1_ptr_10\

0x555556ac5cd8if (deferred_cross_queue_4 == 0)\

0x555556ac5de4data_55555886bd41\

0x555556ac5decuint8_t\* deferred_cross_queue_1\

0x555556ac5decdeferred_cross_queue_1, zmm0_6 = rust_alloc(0x1c8)\

0x555556ac5df5if (deferred_cross_queue_1 == 0)\

0x555556ac5df5gotolabel_555556ac8bab\

0x555556ac5dff *(deferred_cross_queue_1 + 0xb0) = _mm_xor_pd(zmm0_6, zmm0_6)\

0x555556ac5e07 *(deferred_cross_queue_1 + 0x1c2) = 1\

0x555556ac5e10 *deferred_cross_queue_1 = index_1\

0x555556ac5e13deferred_cross_queue_1[8] = r14_14\

0x555556ac5e1arbx_31 = &deferred_cross_queue_1[0xb8]\

0x555556ac5e21 *(deferred_cross_queue_1 + 0xc0) = 8\

0x555556ac5e2c *(deferred_cross_queue_1 + 0xc8) = 0\

0x555556ac5e37deferred_cross_queue = deferred_cross_queue_1\

0x555556ac5e3fstr1_ptr_8 = nullptr\

0x555556ac5e4badl_was_triggered = 1\

0x555556ac5e57clearinghouse_6 = rust_dealloc\

0x555556ac5cd8else\

0x555556ac5cdevar_748.q = deferred_cross_queue_4\

0x555556ac5ce6int32_t\* str1_ptr_14 = str1_ptr_10\

0x555556ac5ceevar_738 = r10_1\

0x555556ac5cf6var_798.q = 0\

0x555556ac5d02var_798:8.q = 8\

0x555556ac5d0eint64_tvar_788_3 = 0\

0x555556ac5d42btree_insert_adl_entry(&str1_ptr, &var_748, index_1, rbp_10,\

0x555556ac5d42 &var_798, &var_8e0)\

0x555556ac5d62rbx_31 = &str1_ptr[var_7d8 * 6 + 0x2e]\

0x555556ac5d69uint64_t\* rax_101 = var_8e0\

0x555556ac5d71rax_101[2] += 1\

0x555556ac5d75clearinghouse_6 = rust_dealloc\

0x555556ac5bb9else\

0x555556ac5bc7str1_ptr_5 = str1_ptr_8\

0x555556ac5bcfwhile (true)\

0x555556ac5bcfuint64_trcx_41 = zx.q(*(deferred_cross_queue_4 + 0x1c2))\

0x555556ac5bd8uint64_trdx_47 = zx.q(rcx_41.d &lt;&lt; 4)\

0x555556ac5bdbint64_trax_97 = -0xa0\

0x555556ac5be2r10_1 = -1\

0x555556ac5be9int64_t\* deferred_cross_queue_6 = deferred_cross_queue_4\

0x555556ac5c31int32_t\* str1_ptr_9\

0x555556ac5c31chari_13\

0x555556ac5c31do\

0x555556ac5bf3if (rdx_47 == 0)\

0x555556ac5c50r10_1 = rcx_41\

0x555556ac5c5bstr1_ptr_9 = str1_ptr_5 - 1\

0x555556ac5c5fif (str1_ptr_5u&lt; 1)\

0x555556ac5c5fgotolabel_555556ac5e78\

0x555556ac5c5fgotolabel_555556ac5c65\

0x555556ac5bf8int64_ttemp71_1 = *deferred_cross_queue_6\

0x555556ac5bfbchari_39 = (temp71_1 != index_1).b\

0x555556ac5c05if (temp71_1u> index_1)\

0x555556ac5c05i_39 = -1\

0x555556ac5c0bchartemp72_1 = deferred_cross_queue_6[1].b\

0x555556ac5c0fdeferred_cross_queue_6 = &deferred_cross_queue_6[2]\

0x555556ac5c13i_13 = temp72_1 != r14_14\

0x555556ac5c17if (temp72_1u> r14_14)\

0x555556ac5c17i_13 = -1\

0x555556ac5c1eif (i_39 != 0)\

0x555556ac5c1ei_13 = i_39\

0x555556ac5c22rdx_47 -= 0x10\

0x555556ac5c26rax_97 -= 0x18\

0x555556ac5c2ar10_1 += 1\

0x555556ac5c31while (i_13 == 1)\

0x555556ac5c39if (zx.d(i_13) == 0)\

0x555556ac5c80rbx_31 = deferred_cross_queue_4 - rax_97\

0x555556ac5c83break\

0x555556ac5c43str1_ptr_9 = str1_ptr_5 - 1\

0x555556ac5c47if (str1_ptr_5u&lt; 1)\

0x555556ac5e78label_555556ac5e78:\

0x555556ac5e78str1_ptr_10 = nullptr\

0x555556ac5e7agotolabel_555556ac5c95\

0x555556ac5c65label_555556ac5c65:\

0x555556ac5c65str1_ptr_5 = str1_ptr_9\

0x555556ac5c6ddeferred_cross_queue_4 = deferred_cross_queue_4[r10_1 + 0x39]\

0x555556ac5d75clearinghouse_6 = rust_dealloc\

0x555556ac5d87var_8e8_8.d = var_490_1:8.d\

0x555556ac5d92var_8f8 = counterparty_info_1:8.o\

0x555556ac5d9aint128_tzmm2_2 = shortfall_discriminant.o\

0x555556ac5da3uint64_tlen_7 = rbx_31->len\

0x555556ac5dafif (len_7 == rbx_31->buf.inner.cap._0)\

0x555556ac5dbbint64_tvar_578\

0x555556ac5dbbvar_578.o = zmm2_2\

0x555556ac5dc4vec_grow_96(rbx_31)\

0x555556ac5dc9zmm2_2 = var_578.o\

0x555556ac5570int128_t* pointer_1 = rbx_31->buf.inner.ptr.pointer.pointer\

0x555556ac557czmm0_6 = size_17.o\

0x555556ac558dpointer_1[len_7 * 6 + 1] = var_628_6.o\

0x555556ac5593pointer_1[len_7 * 6] = zmm0_6\

0x555556ac5597pointer_1[len_7 * 6 + 2] = zmm2_2\

0x555556ac55a5pointer_1[len_7 * 6 + 3].q = str1_ptr_7\

0x555556ac55b2 *(&pointer_1[len_7 * 6] + 0x38) = size_28\

0x555556ac55bfpointer_1[len_7 * 6 + 4].q = r8_6\

0x555556ac55c4zmm0_6 = var_8f8\

0x555556ac55cd *(&pointer_1[len_7 * 6] + 0x48) = zmm0_6\

0x555556ac55da *(&pointer_1[len_7 * 6] + 0x58) = var_8e8_8.d\

0x555556ac55e1rbx_31->len = len_7 + 1\

0x555556ac55e5rbx_25 = var_988_1\

0x555556ac55edif (rbx_25 != 0)\

0x555556ac55edcontinue\

0x555556ac5ee4i_46 = var_9c0.q\

0x555556ac5ee9i_52 = var_9c0:8.q\

0x555556ac5eeelength_1 = length\

0x555556ac5ef3boolcond:69_1 = var_9c8 == 0\

0x555556ac5ef9var_9c8 = nullptr\

0x555556ac5f02if (cond:69_1)\

0x555556ac5f02gotolabel_555556ac5f5b\

0x555556ac5f07if (i_46 == 0)\

0x555556ac6339i_46 = i_52\

0x555556ac633fif (length_1 != 0)\

0x555556ac633fgotolabel_555556ac5ead\

0x555556ac633fgotolabel_555556ac5fae\

0x555556ac5f0di_8 = i_46[0x16]\

0x555556ac5f17var_810_2 = r10_1\

0x555556ac5f1fif (i_8 == 0)\

0x555556ac5f1fgotolabel_555556ac5fc8\

0x555556ac5f1fbreak\

0x555556ac5a8eelse\

0x555556ac5a90var_8f8:8.q = logger_lock_ptr_5\

0x555556ac5a98var_8e8_8 = rax_91\

0x555556ac5aa0var_8f8.q = rcx_39\

0x555556ac5aabif (not(add_overflow(rax_91, neg.q(rsi_45))))\

0x555556ac5aabgotolabel_555556ac5ae9\

0x555556ac8c2elen_11 = panic_overflow_sub(&data_5555587fd610)\

0x555556ac8c3elen_10 = panic_index_out_of_bounds(index_1, len_11, &data_5555587fede8)\

0x555556ac8c3egotolabel_555556ac8c4e\

0x555556ac5604gotolabel_555556ac5f57\

0x555556ac45b6void* rax_41 = *(ch_1 + 0x30)\

0x555556ac45beif (rax_41 == 0)\

0x555556ac8d3dlabel_555556ac8d3d:\

0x555556ac8d3dpanic_unwrap_none(&data_5555587f8160)\

0x555556ac8d3dnoreturn\

0x555556ac45c4int64_trbx_9 = counterparty_info_1.q\

0x555556ac45ccint64_trcx_14 = *(ch_1 + 0x38)\

0x555556ac45d1int64_trsi_12\

0x555556ac45d1while (true)\

0x555556ac45d1uint64_trdi_25 = zx.q(*(rax_41 + 0x742))\

0x555556ac45e1uint64_trdx_15 = -1\

0x555556ac45e8rsi_12 = 0\

0x555556ac461cbooli_14\

0x555556ac461cdo\

0x555556ac45f3if (zx.q(rdi_25.d &lt;&lt; 5) * 5 == rsi_12)\

0x555556ac4630rdx_15 = rdi_25\

0x555556ac4630gotolabel_555556ac4633\

0x555556ac45f8int64_ttemp11_1 = *(rax_41 + (rdx_15 &lt;&lt; 3) + 0x6f0)\

0x555556ac4600i_14 = temp11_1 != rbx_9\

0x555556ac460aif (temp11_1u> rbx_9)\

0x555556ac460ai_14 = true\

0x555556ac460erdx_15 += 1\

0x555556ac4611rsi_12 += 0xa0\

0x555556ac461cwhile (i_14 == 1)\

0x555556ac4624if (zx.d(i_14) == 0)\

0x555556ac4624break\

0x555556ac4633label_555556ac4633:\

0x555556ac4633int64_ttemp14_1 = rcx_14\

0x555556ac4633rcx_14 -= 1\

0x555556ac4637if (temp14_1u&lt; 1)\

0x555556ac4637gotolabel_555556ac8d3d\

0x555556ac463drax_41 = *(rax_41 + (rdx_15 &lt;&lt; 3) + 0x748)\

0x555556ac4bc9if (*(rax_41 + rsi_12 - 0x28) == 3)\

0x555556ac4bc9gotolabel_555556ac8e30\

0x555556ac4bcf *(rax_41 + rsi_12 - 0x18)\

0x555556ac4bd4 *(rax_41 + rsi_12 - 0x20)\

0x555556ac4bd9int64_trcx_28 = *(rax_41 + rsi_12 - 0xa0)\

0x555556ac4be1void* __offset(Clearinghouse, 0x60) rdx_23 = *(rax_41 + rsi_12 - 0x98)\

0x555556ac4be9int64_trax_62 = *(rax_41 + rsi_12 - 0x90)\

0x555556ac4bf4var_8f8.q = rcx_28\

0x555556ac4c04var_8f8:8.q = rdx_23\

0x555556ac4c11int64_tvar_8e8_7 = rax_62\

0x555556ac4c20var_9c8.o = OPTION_UNIT_QTY_NONE\

0x555556ac4c25var_9c0:8.q = 0\

0x555556ac4c36int128_t** asset_idx_6\

0x555556ac4c36int128_t* size_23\

0x555556ac4c36int64_tr14_9\

0x555556ac4c36int64_tr15_9\

0x555556ac4c36asset_idx_6, size_23, r14_9, r15_9 = option_unit_qty_sub(&var_8f8, &var_9c8)\

0x555556ac4c3bint64_trax_63 = 2\

0x555556ac4c43int64_trcx_30\

0x555556ac4c43if (r15_9 == 0)\

0x555556ac52carcx_30 = 0\

0x555556ac52ccsize_23 = 2\

0x555556ac4c43else\

0x555556ac4c4crcx_30 = neg.q(r15_9)\

0x555556ac4c4fif (rcx_30s&lt; 0)\

0x555556ac4c4frcx_30 = r15_9\

0x555556ac4c53int64_tvar_630_2 = r14_9\

0x555556ac52d1clearinghouse = clearinghouse_1\

0x555556ac52d9int64_tvar_628_5 = rcx_30\

0x555556ac52e1size_17 = size_23\

0x555556ac52f4int64_trdx_30\

0x555556ac52f4void* __offset(Clearinghouse, 0x60) r12_4\

0x555556ac52f4if (rax_62 == 0)\

0x555556ac5315rdx_30 = 0\

0x555556ac5317r12_4 = rdx_23\

0x555556ac52f4else\

0x555556ac52f9rdx_30 = neg.q(rax_62)\

0x555556ac52fcif (rdx_30s&lt; 0)\

0x555556ac52fcrdx_30 = rax_62\

0x555556ac5300r12_4 = rdx_23\

0x555556ac5308var_8f8:8.q = r12_4\

0x555556ac5310rax_63 = rcx_28\

0x555556ac5327int64_tvar_8e8_9 = rdx_30\

0x555556ac532fvar_8f8.q = rax_63\

0x555556ac5347unit_qty_div(&var_9c8, &size_17, &var_8f8, rax_62s&lt;= 0)\

0x555556ac5351if (var_9c8.d == 2)\

0x555556ac5351gotolabel_555556ac8e6e\

0x555556ac535aboolrax_77 = rax_62s&lt;= 0\

0x555556ac5369var_8e8_9.o = var_9c0:8.o\

0x555556ac5372var_8f8 = var_9c8.o\

0x555556ac537bint128_t* deferred_cross_queue_3 = deferred_cross_queue\

0x555556ac5386if (deferred_cross_queue_3 == 0)\

0x555556ac5450var_9c8 = nullptr\

0x555556ac5461label_555556ac5461:\

0x555556ac5461length = &deferred_cross_queue\

0x555556ac5466asset_idx_2 = asset_idx_6\

0x555556ac5386else\

0x555556ac538cint32_t* str1_ptr_15 = str1_ptr_8\

0x555556ac5394while (true)\

0x555556ac5394uint64_trdi_55 = zx.q(*(deferred_cross_queue_3 + 0x1c2))\

0x555556ac539euint64_tr8_5 = zx.q(rdi_55.d &lt;&lt; 4)\

0x555556ac53a2uint64_trsi_40 = -1\

0x555556ac53a9int128_t* deferred_cross_queue_7 = deferred_cross_queue_3\

0x555556ac53edbooli_15\

0x555556ac53eddo\

0x555556ac53b3if (r8_5 == 0)\

0x555556ac5410rsi_40 = rdi_55\

0x555556ac5413int32_t* str1_ptr_16 = str1_ptr_15\

0x555556ac5413str1_ptr_15 -= 1\

0x555556ac5417if (str1_ptr_16u&lt; 1)\

0x555556ac6351gotolabel_555556ac6351\

0x555556ac5417gotolabel_555556ac541d\

0x555556ac53b8int64_ttemp36_1 = *deferred_cross_queue_7\

0x555556ac53bbchari_41 = (temp36_1 != asset_idx_6).b\

0x555556ac53c4if (temp36_1u> asset_idx_6)\

0x555556ac53c4i_41 = -1\

0x555556ac53cbchartemp38_1 = *(deferred_cross_queue_7 + 8)\

0x555556ac53cfi_15 = temp38_1 != rax_77\

0x555556ac53d3if (temp38_1u> rax_77)\

0x555556ac53d3i_15 = true\

0x555556ac53d7deferred_cross_queue_7 = &deferred_cross_queue_7[1]\

0x555556ac53deif (i_41 != 0)\

0x555556ac53dei_15 = i_41\

0x555556ac53e2r8_5 -= 0x10\

0x555556ac53e6rsi_40 += 1\

0x555556ac53edwhile (i_15 == 1)\

0x555556ac53f5if (zx.d(i_15) == 0)\

0x555556ac5430var_9c8 = deferred_cross_queue_3\

0x555556ac5435var_9c0.q = str1_ptr_15\

0x555556ac543avar_9c0:8.q = rsi_40\

0x555556ac5447length = &deferred_cross_queue\

0x555556ac544crax_77 = true\

0x555556ac544ebreak\

0x555556ac53f7int32_t* str1_ptr_17 = str1_ptr_15\

0x555556ac53f7str1_ptr_15 -= 1\

0x555556ac53fbif (str1_ptr_17u&lt; 1)\

0x555556ac6351label_555556ac6351:\

0x555556ac6351var_9c8 = deferred_cross_queue_3\

0x555556ac6356var_9c0.q = 0\

0x555556ac635fvar_9c0:8.q = rsi_40\

0x555556ac6364gotolabel_555556ac5461\

0x555556ac541dlabel_555556ac541d:\

0x555556ac541ddeferred_cross_queue_3 = *(deferred_cross_queue_3 + (rsi_40 &lt;&lt; 3) + 0x1c8)\

0x555556ac546bvar_9a0.b = rax_77\

0x555556ac5474structstd_vec_Vec__u64__12__* rax_78 = adl_btree_get_or_insert(&var_9c8)\

0x555556ac5487var_9c0:8.d = var_490_1:8.d\

0x555556ac548fvar_9c8.o = counterparty_info_1:8.o\

0x555556ac5494int128_tzmm2_1 = shortfall_discriminant.o\

0x555556ac549duint64_tlen_6 = rax_78->len\

0x555556ac54a4if (len_6 == rax_78->buf.inner.cap._0)\

0x555556ac54adshortfall_discriminant_4.o = zmm2_1\

0x555556ac54b6vec_grow_96(rax_78)\

0x555556ac54bbzmm2_1 = shortfall_discriminant_4.o\

0x555556ac4340void* pointer = rax_78->buf.inner.ptr.pointer.pointer\

0x555556ac434fuint64_trcx_12 = len_6 * 0x60\

0x555556ac4353zmm0_6 = var_8f8\

0x555556ac4364 *(pointer + rcx_12 + 0x10) = var_8e8_9.o\

0x555556ac436a *(pointer + rcx_12) = zmm0_6\

0x555556ac436e *(pointer + rcx_12 + 0x20) = zmm2_1\

0x555556ac4374 *(pointer + rcx_12 + 0x30) = rcx_28\

0x555556ac4379 *(pointer + rcx_12 + 0x38) = r12_4\

0x555556ac4383 *(pointer + rcx_12 + 0x40) = rax_62\

0x555556ac438e *(pointer + rcx_12 + 0x48) = var_9c8.o\

0x555556ac4398 *(pointer + rcx_12 + 0x58) = var_9c0:8.d\

0x555556ac439cclearinghouse_6 = len_6 + 1\

0x555556ac439frax_78->len = clearinghouse_6\

0x555556ac43b3deferred_queue_cap_1 = &deferred_queue_cap_1[5]\

0x555556ac43bfif (deferred_queue_cap_1 == rax_32)\

0x555556ac43bfbreak\

0x555556ac63c7if (deferred_queue_len_2 != 0)\

0x555556ac63dbrust_dealloc(deferred_queue_cap, deferred_queue_len_2 * 0x28, 0)\

0x555556ac63eaint128_t* rbx_38\

0x555556ac63eaint64_tr14_17\

0x555556ac63eaif (adl_was_triggered != 0)\

0x555556ac63f9if (LOGGER_ONCE_CELL != 3)\

0x555556ac88e0var_8f8.q = &data_55555885f728\

0x555556ac88e8var_9c8 = &var_8f8\

0x555556ac8909once_cell_get_or_init(&LOGGER_ONCE_CELL, 0, &var_9c8, &data_55555878bb08,\

0x555556ac8909 &data_55555878c798)\

0x555556ac6406var_798 = data_55555885f730\

0x555556ac6415var_8f8.q = clearinghouse + 0x210\

0x555556ac6424var_8f8:8.q = &data_555555974790\

0x555556ac6433var_9c8 = &data_5555587f80a0\

0x555556ac6438var_9c0.q = 1\

0x555556ac6441int64_tvar_9a8_8 = 0\

0x555556ac644avar_9c0:8.q = &var_8f8\

0x555556ac644flength = 1\

0x555556ac646cint128_tcounterparty_info_3\

0x555556ac646cfmt_arguments_new(&counterparty_info_3, &var_9c8)\

0x555556ac6477counterparty_info = counterparty_info_3\

0x555556ac6487int64_tvar_160\

0x555556ac6487var_558.q = var_160\

0x555556ac648fshortfall_discriminant = nullptr\

0x555556ac649bcounterparty_info_1.q = 8\

0x555556ac64a7counterparty_info_1:8.q = 0\

0x555556ac64bbvar_8f8.q = &total_shortfall_tag\

0x555556ac64cavar_8f8:8.q = &data_555556adf460\

0x555556ac64dcvar_9c8 = &data_555557dd1240\

0x555556ac64e1var_9c0.q = 1\

0x555556ac64eaint64_tvar_9a8_9 = 0\

0x555556ac64f3var_9c0:8.q = &var_8f8\

0x555556ac64f8length = 1\

0x555556ac6511voidinput_3\

0x555556ac6511fmt_arguments_new(&input_3, &var_9c8)\

0x555556ac651ftruncate_str_to_char_limit(&var_8f8, &input_3, 0x2710)\

0x555556ac6525size_17 = &var_8f8\

0x555556ac6534void\* constvar_630_5 = &data_555556ab0390\

0x555556ac6543var_9c8 = &data_5555587f80b0\

0x555556ac6548var_9c0.q = 2\

0x555556ac6551int64_tvar_9a8_10 = 0\

0x555556ac6562var_9c0:8.q = &size_17\

0x555556ac6567length = 1\

0x555556ac657dint128_tvar_158\

0x555556ac657dfmt_arguments_new(&var_158, &var_9c8)\

0x555556ac6580int64_tsize_4 = var_8f8.q\

0x555556ac658bif (size_4 != 0)\

0x555556ac6597rust_dealloc(var_8f8:8.q, size_4, 0)\

0x555556ac659dint64_trbx_36 = counterparty_info_1:8.q\

0x555556ac65adif (rbx_36 == shortfall_discriminant)\

0x555556ac65b7vec_grow_string(&shortfall_discriminant)\

0x555556ac65bcint64_trax_133 = counterparty_info_1.q\

0x555556ac65c4int64_trcx_52 = rbx_36 * 3\

0x555556ac65d0int64_tvar_148\

0x555556ac65d0 *(rax_133 + (rcx_52 &lt;&lt; 3) + 0x10) = var_148\

0x555556ac65dd *(rax_133 + (rcx_52 &lt;&lt; 3)) = var_158\

0x555556ac65e4counterparty_info_1:8.q = rbx_36 + 1\

0x555556ac65f4var_8f8.q = &deferred_cross_queue\

0x555556ac6603var_8f8:8.q = &data_555556addb60\

0x555556ac660bvar_9c8 = &data_555557dd1240\

0x555556ac6610var_9c0.q = 1\

0x555556ac6619int64_tvar_9a8_11 = 0\

0x555556ac662avar_9c0:8.q = &var_8f8\

0x555556ac662flength = 1\

0x555556ac6648voidinput_4\

0x555556ac6648fmt_arguments_new(&input_4, &var_9c8)\

0x555556ac6656truncate_str_to_char_limit(&var_8f8, &input_4, 0x2710)\

0x555556ac665csize_17 = &var_8f8\

0x555556ac6664void\* constvar_630_6 = &data_555556ab0390\

0x555556ac6673var_9c8 = &data_5555587f80d0\

0x555556ac6678var_9c0.q = 2\

0x555556ac6681int64_tvar_9a8_12 = 0\

0x555556ac668avar_9c0:8.q = &size_17\

0x555556ac668flength = 1\

0x555556ac66a5int128_tvar_140\

0x555556ac66a5fmt_arguments_new(&var_140, &var_9c8)\

0x555556ac66a8int64_tsize_5 = var_8f8.q\

0x555556ac66b3if (size_5 != 0)\

0x555556ac66bfrust_dealloc(var_8f8:8.q, size_5, 0)\

0x555556ac66c5void\* r14_15 = counterparty_info_1:8.q\

0x555556ac66d5if (r14_15 == shortfall_discriminant)\

0x555556ac66dfvec_grow_string(&shortfall_discriminant)\

0x555556ac66e4int64_trax_134 = counterparty_info_1.q\

0x555556ac66ecvoid\* rcx_53 = r14_15 * 3\

0x555556ac66f8int64_tvar_130\

0x555556ac66f8 *(rax_134 + (rcx_53 &lt;&lt; 3) + 0x10) = var_130\

0x555556ac6705 *(rax_134 + (rcx_53 &lt;&lt; 3)) = var_140\

0x555556ac670ccounterparty_info_1:8.q = r14_15 + 1\

0x555556ac6734tracing_event_emit(&var_9c8, 8, r14_15 + 1,\

0x555556ac6734" @ \nNot performing auto-deleveraging because shortfall= is acceptable.Auto-deleveragings "\

0x555556ac6734"triggered perform_auto_deleveraging=[total_shortfall: [asset_and_side_to_adl_requirements: Bug! "\

0x555556ac6734"Auto-deleveraging liquidatable already has account value that is more negative than max "\

0x555556ac6734"shortfall.[liquidatable: internal error: entered unreachable code: leve",\

0x555556ac67343, &size_17, r14_15 + 1)\

0x555556ac673eint64_tvar_628_7 = var_9c0:8.q\

0x555556ac674bsize_17.o = var_9c8.o\

0x555556ac6753int64_ti_42 = counterparty_info_1:8.q\

0x555556ac675eif (i_42 != 0)\

0x555556ac6768int64_t* r13_6 = counterparty_info_1.q + 8\

0x555556ac676cclearinghouse_6 = rust_dealloc\

0x555556ac6787int64_ti_16\

0x555556ac6787do\

0x555556ac6789int64_tsize_6 = r13_6[-1]\

0x555556ac6790if (size_6 != 0)\

0x555556ac6798rust_dealloc(*r13_6, size_6, 0)\

0x555556ac6780r13_6 = &r13_6[3]\

0x555556ac6784i_16 = i_42\

0x555556ac6784i_42 -= 1\

0x555556ac6787while (i_16 != 1)\

0x555556ac679cint128_t* shortfall_discriminant_2 = shortfall_discriminant\

0x555556ac67a7if (shortfall_discriminant_2 != 0)\

0x555556ac67bbrust_dealloc(counterparty_info_1.q, shortfall_discriminant_2 * 0x18, 0)\

0x555556ac67c9var_9c8 = &var_798\

0x555556ac67d5var_9c0.q = &data_555556b50bd0\

0x555556ac67e2var_9c0:8.q = &counterparty_info\

0x555556ac67e7length = &data_555556ab0390\

0x555556ac67ecasset_idx_2 = &size_17\

0x555556ac67f1void* constvar_9a0_2 = &data_555556ab0390\

0x555556ac67fdvar_8f8.q = &data_5555587f7f98\

0x555556ac6805var_8f8:8.q = 4\

0x555556ac6811int64_tvar_8d8_3 = 0\

0x555556ac681dint128_t* const* var_8e8_10 = &var_9c8\

0x555556ac6825var_8e0 = 3\

0x555556ac6831voidvar_90\

0x555556ac6831rbx_38 = &var_90\

0x555556ac6844fmt_arguments_new(&var_90, &var_8f8)\

0x555556ac684aint128_t* size_7 = size_17\

0x555556ac6855if (size_7 != 0)\

0x555556ac6861rust_dealloc(var_630_6, size_7, 0)\

0x555556ac6867int64_tsize_8 = counterparty_info.q\

0x555556ac6872if (size_8 != 0)\

0x555556ac687erust_dealloc(counterparty_info:8.q, size_8, 0)\

0x555556ac6884r14_17 = var_840\

0x555556ac6894_ret_2 = &var_8f8\

0x555556ac689cif (r14_17 != log_vec_cap)\

0x555556ac689cgotolabel_555556ac68b3\

0x555556ac689cgotolabel_555556ac68a6\

0x555556ac8731var_8f8 = total_shortfall_tag\

0x555556ac8739int64_ttotal_shortfall_value_1 = total_shortfall_value\

0x555556ac8748var_9c8.o = OPTION_UNIT_QTY_NONE\

0x555556ac874dvar_9c0:8.q = 0\

0x555556ac8766option_unit_qty_add_b(&var_8f8, &var_9c8)\

0x555556ac876eif (total_shortfall_value != 0)\

0x555556ac877dif (LOGGER_ONCE_CELL != 3)\

0x555556ac8b2cvar_8f8.q = &data_55555885f728\

0x555556ac8b34var_9c8 = &var_8f8\

0x555556ac8b55once_cell_get_or_init(&LOGGER_ONCE_CELL, 0, &var_9c8, &data_55555878bb08,\

0x555556ac8b55 &data_55555878c798)\

0x555556ac878asize_17.o = data_55555885f730\

0x555556ac879avar_8f8.q = &total_shortfall_tag\

0x555556ac87a9var_8f8:8.q = &data_555556adf460\

0x555556ac87b8var_9c8 = &data_5555587f8050\

0x555556ac87bdvar_9c0.q = 2\

0x555556ac87c6int64_tvar_9a8_20 = 0\

0x555556ac87cfvar_9c0:8.q = &var_8f8\

0x555556ac87d4length = 1\

0x555556ac87f1int128_tvar_128\

0x555556ac87f1fmt_arguments_new(&var_128, &var_9c8)\

0x555556ac87fcshortfall_discriminant.o = var_128\

0x555556ac880cint64_tvar_118\

0x555556ac880ccounterparty_info_1:8.q = var_118\

0x555556ac881ccounterparty_info.q = &shortfall_discriminant\

0x555556ac882cvar_8f8.q = &size_17\

0x555556ac883bvar_8f8:8.q = &data_555556b50bd0\

0x555556ac884bint128_t* var_8e8_19 = &counterparty_info\

0x555556ac885avar_8e0 = &data_555556aa3960\

0x555556ac8869var_9c8 = &data_5555587f8070\

0x555556ac886evar_9c0.q = 3\

0x555556ac8877asset_idx_2 = nullptr\

0x555556ac8880var_9c0:8.q = &var_8f8\

0x555556ac8885length = 2\

0x555556ac888evoidvar_48\

0x555556ac888erbx_38 = &var_48\

0x555556ac889efmt_arguments_new(&var_48, &var_9c8)\

0x555556ac88a1int128_t* size_15 = shortfall_discriminant\

0x555556ac88acif (size_15 != 0)\

0x555556ac88b8rust_dealloc(counterparty_info_1.q, size_15, 0)\

0x555556ac88ber14_17 = var_840\

0x555556ac88ceif (r14_17 != log_vec_cap)\

0x555556ac88cegotolabel_555556ac68b3\

0x555556ac68a6label_555556ac68a6:\

0x555556ac68a6vec_grow_string(&log_vec_cap)\

0x555556ac68b3label_555556ac68b3:\

0x555556ac68b3int64_trcx_54 = r14_17 * 3\

0x555556ac68bb *(log_vec_ptr + (rcx_54 &lt;&lt; 3) + 0x10) = rbx_38[1].q\

0x555556ac68c3 *(log_vec_ptr + (rcx_54 &lt;&lt; 3)) = *rbx_38\

0x555556ac68cavar_840 = r14_17 + 1\

0x555556ac68d2int128_t* deferred_cross_queue_2 = deferred_cross_queue\

0x555556ac68e2int128_t* adl_was_triggered_1 = deferred_cross_queue_2\

0x555556ac68f0if (deferred_cross_queue_2 != 0)\

0x555556ac68f2adl_was_triggered_1 = adl_was_triggered\

0x555556ac68faint64_tcpty_vec_cap_1 = cpty_vec_cap\

0x555556ac6932structstd_vec_Vec_std_string_String_var_5a8\

0x555556ac6932var_5a8.len = var_840\

0x555556ac693aint128_tzmm0_18 = log_vec_cap.o\

0x555556ac6943var_5a8.buf.inner.cap._0 = zmm0_18.q\

0x555556ac6943var_5a8.buf.inner.ptr.pointer.pointer = zmm0_18:8.q\

0x555556ac694cint128_t*** var_650 = nullptr\

0x555556ac6958uint64_tvar_640_1 = 0\

0x555556ac696cint64_trsi_67 = *(adl_fill_ctx + 0x48)\

0x555556ac697bint32_tvar_3f0_1 = *(adl_fill_ctx + 0x50)\

0x555556ac6982int32_trsi_68\

0x555556ac6982rsi_68.b = deferred_cross_queue_2 != 0\

0x555556ac6986uint64_trsi_69 = zx.q(rsi_68.b)\

0x555556ac698avar_798.q = rsi_69\

0x555556ac6992var_798:8.q = 0\

0x555556ac69a6int32_t* str1_ptr_12 = str1_ptr_8\

0x555556ac69aeuint64_tvar_778_1 = rsi_69\

0x555556ac69b6int64_tvar_770_1 = 0\

0x555556ac69c2int128_t* deferred_cross_queue_5 = deferred_cross_queue_2\

0x555556ac69caint32_t* str1_ptr_13 = str1_ptr_8\

0x555556ac69d2int128_t* adl_was_triggered_2 = adl_was_triggered_1\

0x555556ac69daClearinghouse* clearinghouse_5 = clearinghouse_1\

0x555556ac69edint64_tfill_list_idx_2 = *(adl_fill_ctx + 0x30)\

0x555556ac69ffbtree_iter_next_consume(&var_9c8, &var_798)\

0x555556ac6a04int128_t* constrax_140 = var_9c8\

0x555556ac6a0cint128_t* _ret\

0x555556ac6a0cstructstd_vec_Vec_std_string_String_var_808\

0x555556ac6a0cint128_tresult_1\

0x555556ac6a0cint64_tsize_18\

0x555556ac6a0cint128_tvar_3e8\

0x555556ac6a0cint64_tvar_3d8\

0x555556ac6a0cint128_tvar_348\

0x555556ac6a0cint64_tvar_338\

0x555556ac6a0cint128_tcounterparty_info_2\

0x555556ac6a0cif (rax_140 == 0)\

0x555556ac7cb4label_555556ac7cb4:\

0x555556ac7cb4btree_iter_next_consume(&var_9c8, &var_798)\

0x555556ac7cc1for (int128_t* consti_17 = var_9c8; i_17 != 0; i_17 = var_9c8)\

0x555556ac7cfaint64_trdx_88 = var_9c0:8.q * 3\

0x555556ac7cfeint64_trcx_79 = *(i_17 + (rdx_88 &lt;&lt; 3) + 0xb8)\

0x555556ac7d09if (rcx_79 != 0)\

0x555556ac7d23rust_dealloc(*(i_17 + (rdx_88 &lt;&lt; 3) + 0xc0), rcx_79 * 0x60, 0)\

0x555556ac7ce6btree_iter_next_consume(&var_9c8, &var_798)\

0x555556ac7d27Clearinghouse* clearinghouse_7 = clearinghouse_1\

0x555556ac7d2fcharrax_199 = *(clearinghouse_7 + 0x210)\

0x555556ac7d37logger_lock_ptr.b = rax_199\

0x555556ac7d40int128_tzmm0_26\

0x555556ac7d40if (rax_199 != 0)\

0x555556ac7d51if (cpty_vec_len != 0)\

0x555556ac7d6fvoid* oracle_data_1 = clearinghouse_7 + 0xd8\

0x555556ac7d85clearinghouse_6 = truncate_str_to_char_limit\

0x555556ac7d8cint128_t* i_18 = i_26\

0x555556ac7de6do\

0x555556ac7decint32_trax_203 = (i_18[1].q).d\

0x555556ac7e03int64_trdx_90 = *(i_18 + 0x18)\

0x555556ac7e0bif (rdx_90 == 2)\

0x555556ac7e0bbreak\

0x555556ac7e11uint64_tasset_idx = i_18[2].q\

0x555556ac7e1cint32_tvar_238_1 = rax_203\

0x555556ac7e23zmm0_26 = *i_18\

0x555556ac7e2cint128_tvar_248 = zmm0_26\

0x555556ac7e35int64_tvar_2a8 = rdx_90\

0x555556ac7e3duint64_tasset_idx_3 = asset_idx\

0x555556ac7e45var_9c0:8.d = rax_203\

0x555556ac7e49var_9c8.o = zmm0_26\

0x555556ac7e4fvoid* r15_25 = *(clearinghouse_7 + 0x128)\

0x555556ac7e61void* __offset(Clearinghouse, 0x60) user_state_1\

0x555556ac7e61if (r15_25 == 0)\

0x555556ac7f20user_state_1 = nullptr\

0x555556ac7e61else\

0x555556ac7e77int64_tr13_9 = *(clearinghouse_7 + 0x130)\

0x555556ac7e7ewhile (true)\

0x555556ac7e7evoid* rsi_101 = r15_25 + 0x428\

0x555556ac7e85uint64_trax_205 = zx.q(*(r15_25 + 0x506))\

0x555556ac7e99uint64_trbp_14 = zx.q((rax_205 &lt;&lt; 2).d) * 5\

0x555556ac7e9duser_state_1 = r15_25 - 0x60\

0x555556ac7ea1uint64_trbx_48 = -1\

0x555556ac7ee9boolj\

0x555556ac7ee9do\

0x555556ac7eb3if (rbp_14 == 0)\

0x555556ac7f00rbx_48 = rax_205\

0x555556ac7f05int64_ttemp16_1 = r13_9\

0x555556ac7f05r13_9 -= 1\

0x555556ac7f09if (temp16_1u&lt; 1)\

0x555556ac7f09gotolabel_555556ac7f25\

0x555556ac7f09gotolabel_555556ac7f0b\

0x555556ac7ec3int32_trax_207 = memcmp(&var_9c8, rsi_101, 0x14)\

0x555556ac7ecdj = rax_207 != 0\

0x555556ac7ed5if (rax_207s&lt; 0)\

0x555556ac7ed5j = true\

0x555556ac7ed8rbp_14 -= 0x14\

0x555556ac7edcuser_state_1 += 0x60\

0x555556ac7ee0rbx_48 += 1\

0x555556ac7ee3rsi_101 += 0x14\

0x555556ac7ee9while (j == 1)\

0x555556ac7ef0if (zx.d(j) == 0)\

0x555556ac7ef0break\

0x555556ac7ef2int64_ttemp23_1 = r13_9\

0x555556ac7ef2r13_9 -= 1\

0x555556ac7ef6if (temp23_1u&lt; 1)\

0x555556ac7f25label_555556ac7f25:\

0x555556ac7f25user_state_1 = nullptr\

0x555556ac7f28break\

0x555556ac7f0blabel_555556ac7f0b:\

0x555556ac7f0br15_25 = *(r15_25 + (rbx_48 &lt;&lt; 3) + 0x508)\

0x555556ac7f30_ret_2 = &var_8f8\

0x555556ac7f59if (user_state_1 == 0)\

0x555556ac7f59user_state_1 = clearinghouse_1 + 0x60\

0x555556ac7f78compute_account_value_for_direction(&result_1, user_state_1, rdx_90.b, asset_idx,\

0x555556ac7f780, oracle_data_1)\

0x555556ac7f8evar_8f8 = result_1\

0x555556ac7f96int64_tvar_4f8\

0x555556ac7f96int64_tvar_8e8_16 = var_4f8\

0x555556ac7fa6var_9c8.o = OPTION_UNIT_QTY_NONE\

0x555556ac7facvar_9c0:8.q = 0\

0x555556ac7fbdint64_trbx_50\

0x555556ac7fbdrbx_50, clearinghouse_6 = option_unit_qty_add_a(_ret_2, &var_9c8)\

0x555556ac7fcdint128_t* (* r15_26)(int128_t* arg1, int64_t* arg2) = fmt_arguments_new\

0x555556ac7fd4int64_trbx_52\

0x555556ac7fd4if (rbx_50s>= 0)\

0x555556ac7fe7var_8f8 = result_1\

0x555556ac7ff0int64_tvar_8e8_17 = var_4f8\

0x555556ac7ff8var_9c8 = nullptr\

0x555556ac8001var_9c0:8.q = 0xf4240\

0x555556ac8012rbx_52, clearinghouse_6, clearinghouse_7, r15_26 =\

0x555556ac8012option_unit_qty_add_a(_ret_2, &var_9c8)\

0x555556ac801eif (rbx_50s&lt; 0 || rbx_52s>= 0xf4241)\

0x555556ac802dif (LOGGER_ONCE_CELL != 3)\

0x555556ac85f8var_8f8.q = &data_55555885f728\

0x555556ac8600var_9c8 = _ret_2\

0x555556ac8621once_cell_get_or_init(&LOGGER_ONCE_CELL, 0, &var_9c8, &data_55555878bb08,\

0x555556ac8621 &data_55555878c798)\

0x555556ac803aint128_tvar_110 = data_55555885f730\

0x555556ac8049data_55555886bd41\

0x555556ac8051uint8_t* rax_211 = rust_alloc(0x33)\

0x555556ac805aif (rax_211 == 0)\

0x555556ac8e7ehandle_alloc_error(1, 0x33)\

0x555556ac8e7egotolabel_555556ac8e8e\

0x555556ac807d__builtin_strncpy(rax_211,\

0x555556ac807d"BUG: Auto-deleveraging resulted in non-zero balance", 0x33)\

0x555556ac8087size_18 = 0x33\

0x555556ac809bint64_tvar_4d8_1 = 0x33\

0x555556ac80a7var_808.buf.inner.cap._0 = 0\

0x555556ac80b3var_808.buf.inner.ptr.pointer.pointer = 8\

0x555556ac80bfvar_808.len = 0\

0x555556ac80d3var_8f8.q = &var_248\

0x555556ac80e2var_8f8:8.q = adl_requirement_display\

0x555556ac80eavar_9c8 = &data_555557dd1240\

0x555556ac80efvar_9c0.q = 1\

0x555556ac80f8int64_tvar_9a8_13 = 0\

0x555556ac8101var_9c0:8.q = _ret_2\

0x555556ac8106length = 1\

0x555556ac8122r15_26(&counterparty_info_2, &var_9c8)\

0x555556ac8130clearinghouse_6(_ret_2, &counterparty_info_2, 0x2710)\

0x555556ac8132_ret = _ret_2\

0x555556ac8141void* constvar_860 = &data_555556ab0390\

0x555556ac8150var_9c8 = &data_5555587f7f78\

0x555556ac8155var_9c0.q = 2\

0x555556ac815eint64_tvar_9a8_14 = 0\

0x555556ac816fvar_9c0:8.q = &_ret\

0x555556ac8174length = 1\

0x555556ac8188r15_26(&var_348, &var_9c8)\

0x555556ac818bint64_tsize_9 = var_8f8.q\

0x555556ac8196if (size_9 != 0)\

0x555556ac81a2rust_dealloc(var_8f8:8.q, size_9, 0)\

0x555556ac81a8uint64_tlen_1 = var_808.len\

0x555556ac81b8if (len_1 == var_808.buf.inner.cap._0)\

0x555556ac81c2vec_grow_string(&var_808)\

0x555556ac81c7void* pointer_3 = var_808.buf.inner.ptr.pointer.pointer\

0x555556ac81cfuint64_trcx_83 = len_1 * 3\

0x555556ac81db *(pointer_3 + (rcx_83 &lt;&lt; 3) + 0x10) = var_338\

0x555556ac81e8 *(pointer_3 + (rcx_83 &lt;&lt; 3)) = var_348\

0x555556ac81efvar_808.len = len_1 + 1\

0x555556ac81ffvar_8f8.q = &var_2a8\

0x555556ac820evar_8f8:8.q = &data_555556adb0c0\

0x555556ac8216var_9c8 = &data_555557dd1240\

0x555556ac821bvar_9c0.q = 1\

0x555556ac8224int64_tvar_9a8_15 = 0\

0x555556ac822dvar_9c0:8.q = _ret_2\

0x555556ac8232length = 1\

0x555556ac824er15_26(&str1_ptr, &var_9c8)\

0x555556ac825cclearinghouse_6(_ret_2, &str1_ptr, 0x2710)\

0x555556ac825e_ret = _ret_2\

0x555556ac826dvoid* constvar_860_1 = &data_555556ab0390\

0x555556ac827cvar_9c8 = &data_5555587f81b8\

0x555556ac8281var_9c0.q = 2\

0x555556ac828aint64_tvar_9a8_16 = 0\

0x555556ac829bvar_9c0:8.q = &_ret\

0x555556ac82a0length = 1\

0x555556ac82b4r15_26(&var_748, &var_9c8)\

0x555556ac82b7int64_tsize_10 = var_8f8.q\

0x555556ac82c2if (size_10 != 0)\

0x555556ac82cerust_dealloc(var_8f8:8.q, size_10, 0)\

0x555556ac82d4uint64_tlen_2 = var_808.len\

0x555556ac82e4if (len_2 == var_808.buf.inner.cap._0)\

0x555556ac82eevec_grow_string(&var_808)\

0x555556ac82f3void* pointer_4 = var_808.buf.inner.ptr.pointer.pointer\

0x555556ac82fbuint64_trcx_84 = len_2 * 3\

0x555556ac8307 *(pointer_4 + (rcx_84 &lt;&lt; 3) + 0x10) = var_738\

0x555556ac8314 *(pointer_4 + (rcx_84 &lt;&lt; 3)) = var_748.o\

0x555556ac831bvar_808.len = len_2 + 1\

0x555556ac832bvar_8f8.q = &result_1\

0x555556ac833avar_8f8:8.q = &data_555556adf370\

0x555556ac8342var_9c8 = &data_555557dd1240\

0x555556ac8347var_9c0.q = 1\

0x555556ac8350int64_tvar_9a8_17 = 0\

0x555556ac8359var_9c0:8.q = _ret_2\

0x555556ac835elength = 1\

0x555556ac837ar15_26(&counterparty_info, &var_9c8)\

0x555556ac8388clearinghouse_6(_ret_2, &counterparty_info, 0x2710)\

0x555556ac838a_ret = _ret_2\

0x555556ac8399void* constvar_860_2 = &data_555556ab0390\

0x555556ac83a8var_9c8 = &data_5555587f8110\

0x555556ac83advar_9c0.q = 2\

0x555556ac83b6int64_tvar_9a8_18 = 0\

0x555556ac83c7var_9c0:8.q = &_ret\

0x555556ac83cclength = 1\

0x555556ac83e0r15_26(&var_798, &var_9c8)\

0x555556ac83e3int64_tsize_11 = var_8f8.q\

0x555556ac83eeif (size_11 != 0)\

0x555556ac83farust_dealloc(var_8f8:8.q, size_11, 0)\

0x555556ac8400uint64_tlen_8 = var_808.len\

0x555556ac8410if (len_8 == var_808.buf.inner.cap._0)\

0x555556ac841avec_grow_string(&var_808)\

0x555556ac841fvoid* pointer_5 = var_808.buf.inner.ptr.pointer.pointer\

0x555556ac8427uint64_trcx_85 = len_8 * 3\

0x555556ac8433 *(pointer_5 + (rcx_85 &lt;&lt; 3) + 0x10) = deferred_cross_queue_2\

0x555556ac8440 *(pointer_5 + (rcx_85 &lt;&lt; 3)) = var_798\

0x555556ac8447var_808.len = len_8 + 1\

0x555556ac846ctracing_event_emit(&var_9c8, var_808.buf.inner.ptr.pointer.pointer, len_8 + 1,\

0x555556ac846c" @ \nNot performing auto-deleveraging because shortfall= is acceptable."\

0x555556ac846c"Auto-deleveragings triggered perform_auto_deleveraging=[total_shortfall: "\

0x555556ac846c"[asset_and_side_to_adl_requirements: Bug! Auto-deleveraging liquidatable "\

0x555556ac846c"already has account value that is more negative than max shortfall."\

0x555556ac846c"[liquidatable: internal error: entered unreachable code: leve",\

0x555556ac846c3, &data_555557dd1240, len_8 + 1)\

0x555556ac8476void* var_858 = var_9c0:8.q\

0x555556ac8484_ret.o = var_9c8.o\

0x555556ac848duint64_tlen_3 = var_808.len\

0x555556ac8498if (len_3 != 0)\

0x555556ac84a2int64_t* r14_28 = var_808.buf.inner.ptr.pointer.pointer + 8\

0x555556ac84b7uint64_tj_1\

0x555556ac84b7do\

0x555556ac84b9int64_tsize_12 = r14_28[-1]\

0x555556ac84c0if (size_12 != 0)\

0x555556ac84c7rust_dealloc(*r14_28, size_12, 0)\

0x555556ac84b0r14_28 = &r14_28[3]\

0x555556ac84b4j_1 = len_3\

0x555556ac84b4len_3 -= 1\

0x555556ac84b7while (j_1 != 1)\

0x555556ac84d0uint64_t_0 = var_808.buf.inner.cap._0\

0x555556ac84dbif (_0 != 0)\

0x555556ac84efrust_dealloc(var_808.buf.inner.ptr.pointer.pointer, _0 * 0x18, 0)\

0x555556ac84fdvar_9c8 = &var_110\

0x555556ac8509var_9c0.q = &data_555556b50bd0\

0x555556ac8516var_9c0:8.q = &size_18\

0x555556ac8522length = &data_555556ab0390\

0x555556ac852fint128_t** var_9a8_19 = &_ret\

0x555556ac8534void* constvar_9a0_4 = &data_555556ab0390\

0x555556ac8540var_8f8.q = &data_5555587f7f98\

0x555556ac8548var_8f8:8.q = 4\

0x555556ac8554int64_tvar_8d8_4 = 0\

0x555556ac8565int128_t* const* var_8e8_18 = &var_9c8\

0x555556ac856dvar_8e0 = 3\

0x555556ac8584r15_26(&var_3e8, _ret_2)\

0x555556ac8587int128_t* size_13 = _ret\

0x555556ac8592clearinghouse_7 = clearinghouse_1\

0x555556ac859aif (size_13 != 0)\

0x555556ac85a6rust_dealloc(var_860_2, size_13, 0)\

0x555556ac85acint64_tsize_14 = size_18\

0x555556ac85b7if (size_14 != 0)\

0x555556ac85c3rust_dealloc(rax_211, size_14, 0)\

0x555556ac85c9uint64_tlen_4 = var_5a8.len\

0x555556ac85d9if (len_4 == var_5a8.buf.inner.cap._0)\

0x555556ac85e7vec_grow_string(&var_5a8)\

0x555556ac7da0void* pointer_2 = var_5a8.buf.inner.ptr.pointer.pointer\

0x555556ac7da8uint64_trcx_82 = len_4 * 3\

0x555556ac7db4 *(pointer_2 + (rcx_82 &lt;&lt; 3) + 0x10) = var_3d8\

0x555556ac7dc2 *(pointer_2 + (rcx_82 &lt;&lt; 3)) = var_3e8\

0x555556ac7dcavar_5a8.len = len_4 + 1\

0x555556ac7ddai_18 += 0x28\

0x555556ac7de6while (i_18 != i_26 + cpty_vec_len * 0x28)\

0x555556ac8635if (cpty_vec_cap_1 != 0)\

0x555556ac8655rust_dealloc(i_26, cpty_vec_cap_1 * 0x28, 0)\

0x555556ac8664if (var_640_10x555556ac7cb4btree_iter_next_consume(&var_9c8, &var_798)\

0x555556ac7cc1for (int128_t* consti_17 = var_9c8; i_17 != 0; i_17 = var_9c8)\

0x555556ac7cfaint64_trdx_88 = var_9c0:8.q * 3\

0x555556ac7cfeint64_trcx_79 = *(i_17 + (rdx_88 &lt;&lt; 3) + 0xb8)\

0x555556ac7d09if (rcx_79 != 0)\

0x555556ac7d23rust_dealloc(*(i_17 + (rdx_88 &lt;&lt; 3) + 0xc0), rcx_79 * 0x60, 0)\

0x555556ac7ce6btree_iter_next_consume(&var_9c8, &var_798)\

0x555556ac7d27Clearinghouse* clearinghouse_7 = clearinghouse_1\

0x555556ac7d2fcharrax_199 = *(clearinghouse_7 + 0x210)\

0x555556ac7d37logger_lock_ptr.b = rax_199\

0x555556ac7d40int128_tzmm0_26\

0x555556ac7d40if (rax_199 != 0)\

0x555556ac7d51if (cpty_vec_len != 0)\

0x555556ac7d6fvoid* oracle_data_1 = clearinghouse_7 + 0xd8\

0x555556ac7d85clearinghouse_6 = truncate_str_to_char_limit\

0x555556ac7d8cint128_t* i_18 = i_26\

0x555556ac7de6do\

0x555556ac7decint32_trax_203 = (i_18[1].q).d\

0x555556ac7e03int64_trdx_90 = *(i_18 + 0x18)\

0x555556ac7e0bif (rdx_90 == 2)\

0x555556ac7e0bbreak\

0x555556ac7e11uint64_tasset_idx = i_18[2].q\

0x555556ac7e1cint32_tvar_238_1 = rax_203\

0x555556ac7e23zmm0_26 = *i_18\

0x555556ac7e2cint128_tvar_248 = zmm0_26\

0x555556ac7e35int64_tvar_2a8 = rdx_90\

0x555556ac7e3duint64_tasset_idx_3 = asset_idx\

0x555556ac7e45var_9c0:8.d = rax_203\

0x555556ac7e49var_9c8.o = zmm0_26\

0x555556ac7e4fvoid* r15_25 = *(clearinghouse_7 + 0x128)\

0x555556ac7e61void* __offset(Clearinghouse, 0x60) user_state_1\

0x555556ac7e61if (r15_25 == 0)\

0x555556ac7f20user_state_1 = nullptr\

0x555556ac7e61else\

0x555556ac7e77int64_tr13_9 = *(clearinghouse_7 + 0x130)\

0x555556ac7e7ewhile (true)\

0x555556ac7e7evoid* rsi_101 = r15_25 + 0x428\

0x555556ac7e85uint64_trax_205 = zx.q(*(r15_25 + 0x506))\

0x555556ac7e99uint64_trbp_14 = zx.q((rax_205 &lt;&lt; 2).d) * 5\

0x555556ac7e9duser_state_1 = r15_25 - 0x60\

0x555556ac7ea1uint64_trbx_48 = -1\

0x555556ac7ee9boolj\

0x555556ac7ee9do\

0x555556ac7eb3if (rbp_14 == 0)\

0x555556ac7f00rbx_48 = rax_205\

0x555556ac7f05int64_ttemp16_1 = r13_9\

0x555556ac7f05r13_9 -= 1\

0x555556ac7f09if (temp16_1u&lt; 1)\

0x555556ac7f09gotolabel_555556ac7f25\

0x555556ac7f09gotolabel_555556ac7f0b\

0x555556ac7ec3int32_trax_207 = memcmp(&var_9c8, rsi_101, 0x14)\

0x555556ac7ecdj = rax_207 != 0\

0x555556ac7ed5if (rax_207s&lt; 0)\

0x555556ac7ed5j = true\

0x555556ac7ed8rbp_14 -= 0x14\

0x555556ac7edcuser_state_1 += 0x60\

0x555556ac7ee0rbx_48 += 1\

0x555556ac7ee3rsi_101 += 0x14\

0x555556ac7ee9while (j == 1)\

0x555556ac7ef0if (zx.d(j) == 0)\

0x555556ac7ef0break\

0x555556ac7ef2int64_ttemp23_1 = r13_9\

0x555556ac7ef2r13_9 -= 1\

0x555556ac7ef6if (temp23_1u&lt; 1)\

0x555556ac7f25label_555556ac7f25:\

0x555556ac7f25user_state_1 = nullptr\

0x555556ac7f28break\

0x555556ac7f0blabel_555556ac7f0b:\

0x555556ac7f0br15_25 = *(r15_25 + (rbx_48 &lt;&lt; 3) + 0x508)\

0x555556ac7f30_ret_2 = &var_8f8\

0x555556ac7f59if (user_state_1 == 0)\

0x555556ac7f59user_state_1 = clearinghouse_1 + 0x60\

0x555556ac7f78compute_account_value_for_direction(&result_1, user_state_1, rdx_90.b, asset_idx,\

0x555556ac7f780, oracle_data_1)\

0x555556ac7f8evar_8f8 = result_1\

0x555556ac7f96int64_tvar_4f8\

0x555556ac7f96int64_tvar_8e8_16 = var_4f8\

0x555556ac7fa6var_9c8.o = OPTION_UNIT_QTY_NONE\

0x555556ac7facvar_9c0:8.q = 0\

0x555556ac7fbdint64_trbx_50\

0x555556ac7fbdrbx_50, clearinghouse_6 = option_unit_qty_add_a(_ret_2, &var_9c8)\

0x555556ac7fcdint128_t* (* r15_26)(int128_t* arg1, int64_t* arg2) = fmt_arguments_new\

0x555556ac7fd4int64_trbx_52\

0x555556ac7fd4if (rbx_50s>= 0)\

0x555556ac7fe7var_8f8 = result_1\

0x555556ac7ff0int64_tvar_8e8_17 = var_4f8\

0x555556ac7ff8var_9c8 = nullptr\

0x555556ac8001var_9c0:8.q = 0xf4240\

0x555556ac8012rbx_52, clearinghouse_6, clearinghouse_7, r15_26 =\

0x555556ac8012option_unit_qty_add_a(_ret_2, &var_9c8)\

0x555556ac801eif (rbx_50s&lt; 0 || rbx_52s>= 0xf4241)\

0x555556ac802dif (LOGGER_ONCE_CELL != 3)\

0x555556ac85f8var_8f8.q = &data_55555885f728\

0x555556ac8600var_9c8 = _ret_2\

0x555556ac8621once_cell_get_or_init(&LOGGER_ONCE_CELL, 0, &var_9c8, &data_55555878bb08,\

0x555556ac8621 &data_55555878c798)\

0x555556ac803aint128_tvar_110 = data_55555885f730\

0x555556ac8049data_55555886bd41\

0x555556ac8051uint8_t* rax_211 = rust_alloc(0x33)\

0x555556ac805aif (rax_211 == 0)\

0x555556ac8e7ehandle_alloc_error(1, 0x33)\

0x555556ac8e7egotolabel_555556ac8e8e\

0x555556ac807d__builtin_strncpy(rax_211,\

0x555556ac807d"BUG: Auto-deleveraging resulted in non-zero balance", 0x33)\

0x555556ac8087size_18 = 0x33\

0x555556ac809bint64_tvar_4d8_1 = 0x33\

0x555556ac80a7var_808.buf.inner.cap._0 = 0\

0x555556ac80b3var_808.buf.inner.ptr.pointer.pointer = 8\

0x555556ac80bfvar_808.len = 0\

0x555556ac80d3var_8f8.q = &var_248\

0x555556ac80e2var_8f8:8.q = adl_requirement_display\

0x555556ac80eavar_9c8 = &data_555557dd1240\

0x555556ac80efvar_9c0.q = 1\

0x555556ac80f8int64_tvar_9a8_13 = 0\

0x555556ac8101var_9c0:8.q = _ret_2\

0x555556ac8106length = 1\

0x555556ac8122r15_26(&counterparty_info_2, &var_9c8)\

0x555556ac8130clearinghouse_6(_ret_2, &counterparty_info_2, 0x2710)\

0x555556ac8132_ret = _ret_2\

0x555556ac8141void* constvar_860 = &data_555556ab0390\

0x555556ac8150var_9c8 = &data_5555587f7f78\

0x555556ac8155var_9c0.q = 2\

0x555556ac815eint64_tvar_9a8_14 = 0\

0x555556ac816fvar_9c0:8.q = &_ret\

0x555556ac8174length = 1\

0x555556ac8188r15_26(&var_348, &var_9c8)\

0x555556ac818bint64_tsize_9 = var_8f8.q\

0x555556ac8196if (size_9 != 0)\

0x555556ac81a2rust_dealloc(var_8f8:8.q, size_9, 0)\

0x555556ac81a8uint64_tlen_1 = var_808.len\

0x555556ac81b8if (len_1 == var_808.buf.inner.cap._0)\

0x555556ac81c2vec_grow_string(&var_808)\

0x555556ac81c7void* pointer_3 = var_808.buf.inner.ptr.pointer.pointer\

0x555556ac81cfuint64_trcx_83 = len_1 * 3\

0x555556ac81db *(pointer_3 + (rcx_83 &lt;&lt; 3) + 0x10) = var_338\

0x555556ac81e8 *(pointer_3 + (rcx_83 &lt;&lt; 3)) = var_348\

0x555556ac81efvar_808.len = len_1 + 1\

0x555556ac81ffvar_8f8.q = &var_2a8\

0x555556ac820evar_8f8:8.q = &data_555556adb0c0\

0x555556ac8216var_9c8 = &data_555557dd1240\

0x555556ac821bvar_9c0.q = 1\

0x555556ac8224int64_tvar_9a8_15 = 0\

0x555556ac822dvar_9c0:8.q = _ret_2\

0x555556ac8232length = 1\

0x555556ac824er15_26(&str1_ptr, &var_9c8)\

0x555556ac825cclearinghouse_6(_ret_2, &str1_ptr, 0x2710)\

0x555556ac825e_ret = _ret_2\

0x555556ac826dvoid* constvar_860_1 = &data_555556ab0390\

0x555556ac827cvar_9c8 = &data_5555587f81b8\

0x555556ac8281var_9c0.q = 2\

0x555556ac828aint64_tvar_9a8_16 = 0\

0x555556ac829bvar_9c0:8.q = &_ret\

0x555556ac82a0length = 1\

0x555556ac82b4r15_26(&var_748, &var_9c8)\

0x555556ac82b7int64_tsize_10 = var_8f8.q\

0x555556ac82c2if (size_10 != 0)\

0x555556ac82cerust_dealloc(var_8f8:8.q, size_10, 0)\

0x555556ac82d4uint64_tlen_2 = var_808.len\

0x555556ac82e4if (len_2 == var_808.buf.inner.cap._0)\

0x555556ac82eevec_grow_string(&var_808)\

0x555556ac82f3void* pointer_4 = var_808.buf.inner.ptr.pointer.pointer\

0x555556ac82fbuint64_trcx_84 = len_2 * 3\

0x555556ac8307 *(pointer_4 + (rcx_84 &lt;&lt; 3) + 0x10) = var_738\

0x555556ac8314 *(pointer_4 + (rcx_84 &lt;&lt; 3)) = var_748.o\

0x555556ac831bvar_808.len = len_2 + 1\

0x555556ac832bvar_8f8.q = &result_1\

0x555556ac833avar_8f8:8.q = &data_555556adf370\

0x555556ac8342var_9c8 = &data_555557dd1240\

0x555556ac8347var_9c0.q = 1\

0x555556ac8350int64_tvar_9a8_17 = 0\

0x555556ac8359var_9c0:8.q = _ret_2\

0x555556ac835elength = 1\

0x555556ac837ar15_26(&counterparty_info, &var_9c8)\

0x555556ac8388clearinghouse_6(_ret_2, &counterparty_info, 0x2710)\

0x555556ac838a_ret = _ret_2\

0x555556ac8399void* constvar_860_2 = &data_555556ab0390\

0x555556ac83a8var_9c8 = &data_5555587f8110\

0x555556ac83advar_9c0.q = 2\

0x555556ac83b6int64_tvar_9a8_18 = 0\

0x555556ac83c7var_9c0:8.q = &_ret\

0x555556ac83cclength = 1\

0x555556ac83e0r15_26(&var_798, &var_9c8)\

0x555556ac83e3int64_tsize_11 = var_8f8.q\

0x555556ac83eeif (size_11 != 0)\

0x555556ac83farust_dealloc(var_8f8:8.q, size_11, 0)\

0x555556ac8400uint64_tlen_8 = var_808.len\

0x555556ac8410if (len_8 == var_808.buf.inner.cap._0)\

0x555556ac841avec_grow_string(&var_808)\

0x555556ac841fvoid* pointer_5 = var_808.buf.inner.ptr.pointer.pointer\

0x555556ac8427uint64_trcx_85 = len_8 * 3\

0x555556ac8433 *(pointer_5 + (rcx_85 &lt;&lt; 3) + 0x10) = deferred_cross_queue_2\

0x555556ac8440 *(pointer_5 + (rcx_85 &lt;&lt; 3)) = var_798\

0x555556ac8447var_808.len = len_8 + 1\

0x555556ac846ctracing_event_emit(&var_9c8, var_808.buf.inner.ptr.pointer.pointer, len_8 + 1,\

0x555556ac846c" @ \nNot performing auto-deleveraging because shortfall= is acceptable."\

0x555556ac846c"Auto-deleveragings triggered perform_auto_deleveraging=[total_shortfall: "\

0x555556ac846c"[asset_and_side_to_adl_requirements: Bug! Auto-deleveraging liquidatable "\

0x555556ac846c"already has account value that is more negative than max shortfall."\

0x555556ac846c"[liquidatable: internal error: entered unreachable code: leve",\

0x555556ac846c3, &data_555557dd1240, len_8 + 1)\

0x555556ac8476void* var_858 = var_9c0:8.q\

0x555556ac8484_ret.o = var_9c8.o\

0x555556ac848duint64_tlen_3 = var_808.len\

0x555556ac8498if (len_3 != 0)\

0x555556ac84a2int64_t* r14_28 = var_808.buf.inner.ptr.pointer.pointer + 8\

0x555556ac84b7uint64_tj_1\

0x555556ac84b7do\

0x555556ac84b9int64_tsize_12 = r14_28[-1]\

0x555556ac84c0if (size_12 != 0)\

0x555556ac84c7rust_dealloc(*r14_28, size_12, 0)\

0x555556ac84b0r14_28 = &r14_28[3]\

0x555556ac84b4j_1 = len_3\

0x555556ac84b4len_3 -= 1\

0x555556ac84b7while (j_1 != 1)\

0x555556ac84d0uint64_t_0 = var_808.buf.inner.cap._0\

0x555556ac84dbif (_0 != 0)\

0x555556ac84efrust_dealloc(var_808.buf.inner.ptr.pointer.pointer, _0 * 0x18, 0)\

0x555556ac84fdvar_9c8 = &var_110\

0x555556ac8509var_9c0.q = &data_555556b50bd0\

0x555556ac8516var_9c0:8.q = &size_18\

0x555556ac8522length = &data_555556ab0390\

0x555556ac852fint128_t** var_9a8_19 = &_ret\

0x555556ac8534void* constvar_9a0_4 = &data_555556ab0390\

0x555556ac8540var_8f8.q = &data_5555587f7f98\

0x555556ac8548var_8f8:8.q = 4\

0x555556ac8554int64_tvar_8d8_4 = 0\

0x555556ac8565int128_t* const* var_8e8_18 = &var_9c8\

0x555556ac856dvar_8e0 = 3\

0x555556ac8584r15_26(&var_3e8, _ret_2)\

0x555556ac8587int128_t* size_13 = _ret\

0x555556ac8592clearinghouse_7 = clearinghouse_1\

0x555556ac859aif (size_13 != 0)\

0x555556ac85a6rust_dealloc(var_860_2, size_13, 0)\

0x555556ac85acint64_tsize_14 = size_18\

0x555556ac85b7if (size_14 != 0)\

0x555556ac85c3rust_dealloc(rax_211, size_14, 0)\

0x555556ac85c9uint64_tlen_4 = var_5a8.len\

0x555556ac85d9if (len_4 == var_5a8.buf.inner.cap._0)\

0x555556ac85e7vec_grow_string(&var_5a8)\

0x555556ac7da0void* pointer_2 = var_5a8.buf.inner.ptr.pointer.pointer\

0x555556ac7da8uint64_trcx_82 = len_4 * 3\

0x555556ac7db4 *(pointer_2 + (rcx_82 &lt;&lt; 3) + 0x10) = var_3d8\

0x555556ac7dc2 *(pointer_2 + (rcx_82 &lt;&lt; 3)) = var_3e8\

0x555556ac7dcavar_5a8.len = len_4 + 1\

0x555556ac7ddai_18 += 0x28\

0x555556ac7de6while (i_18 != i_26 + cpty_vec_len * 0x28)\

0x555556ac8635if (cpty_vec_cap_1 != 0)\

0x555556ac8655rust_dealloc(i_26, cpty_vec_cap_1 * 0x28, 0)\

0x555556ac8664if (var_640_1 != 0)\

0x555556ac867aif (data_55555885fb18 != 3)\

0x555556ac8914var_8f8.q = &data_55555885f848\

0x555556ac891cvar_9c8 = _ret_2\

0x555556ac893donce_cell_get_or_init(&data_55555885fb18, 0, &var_9c8, &data_5555587f5940,\

0x555556ac893d &data_5555587f7d38)\

0x555556ac8683int64_trsi_118 = tracing_subscriber_interest(&data_55555885f848)\

0x555556ac8692if (data_55555885fb18 == 3)\

0x555556ac869cboolz_7\

0x555556ac869cif (0 == TRACING_LOG_LOCK)\

0x555556ac869cTRACING_LOG_LOCK = 1\

0x555556ac869cz_7 = true\

0x555556ac869celse\

0x555556ac869cint64_trax_218\

0x555556ac869crax_218.b = TRACING_LOG_LOCK\

0x555556ac869cz_7 = false\

0x555556ac86a4if (not(z_7))\

0x555556ac86a4gotolabel_555556ac899a\

0x555556ac86a4gotolabel_555556ac86b8\

0x555556ac8948var_8f8.q = &data_55555885f848\

0x555556ac8950var_9c8 = _ret_2\

0x555556ac8971rsi_118 = once_cell_get_or_init(&data_55555885fb18, 0, &var_9c8, &data_5555587f5940,\

0x555556ac8971 &data_5555587f7d38)\

0x555556ac897bboolz_9\

0x555556ac897bif (0 == TRACING_LOG_LOCK)\

0x555556ac897bTRACING_LOG_LOCK = 1\

0x555556ac897bz_9 = true\

0x555556ac897belse\

0x555556ac897bint64_trax_223\

0x555556ac897brax_223.b = TRACING_LOG_LOCK\

0x555556ac897bz_9 = false\

0x555556ac8983if (z_9)\

0x555556ac86b8label_555556ac86b8:\

0x555556ac86bfif (data_55555885f9e0 != -0x7fffffffffffffff)\

0x555556ac86c1label_555556ac86c1:\

0x555556ac86c8if (TRACING_LOG_DATA != -0x8000000000000000)\

0x555556ac86d6rwlock_write_unlock(&TRACING_LOG_DATA, clearinghouse_6)\

0x555556ac8983else\

0x555556ac899alabel_555556ac899a:\

0x555556ac899arwlock_read_lock(&TRACING_LOG_LOCK, rsi_118, 0x3b9aca00)\

0x555556ac89b5if (data_55555885f9e0 != -0x7fffffffffffffff)\

0x555556ac89b5gotolabel_555556ac86c1\

0x555556ac86dduint64_trax_219\

0x555556ac86ddrax_219.b = 1\

0x555556ac86dfboolz_8\

0x555556ac86dfif (1 == TRACING_LOG_LOCK)\

0x555556ac86dfTRACING_LOG_LOCK = 0\

0x555556ac86dfz_8 = true\

0x555556ac86dfelse\

0x555556ac86dfrax_219.b = TRACING_LOG_LOCK\

0x555556ac86dfz_8 = false\

0x555556ac86e7if (not(z_8))\

0x555556ac89cerwlock_read_unlock(&TRACING_LOG_LOCK, 0)\

0x555556ac89dcif (*(clearinghouse_7 + 0x210) == 1)\

0x555556ac89dcgotolabel_555556ac870b\

0x555556ac89dcgotolabel_555556ac89ea\

0x555556ac86f5if (*(clearinghouse_7 + 0x210) != 1)\

0x555556ac89ealabel_555556ac89ea:\

0x555556ac89earesult->root_node_ptr = 0\

0x555556ac89f1result->length = 0\

0x555556ac8a01btree_drop_adl_results(&var_650)\

0x555556ac86f5else\

0x555556ac870blabel_555556ac870b:\

0x555556ac870bresult->length = var_640_1\

0x555556ac870fzmm0_26 = var_650.o\

0x555556ac8718result->root_node_ptr = zmm0_26.q\

0x555556ac8718result->height = zmm0_26:8.q\

0x555556ac8a16uint64_tlen_5 = var_5a8.len\

0x555556ac8a21if (len_5 != 0)\

0x555556ac8a2bint64_t* r14_31 = var_5a8.buf.inner.ptr.pointer.pointer + 8\

0x555556ac8a47uint64_ti_19\

0x555556ac8a47do\

0x555556ac8a49int64_tsize_16 = r14_31[-1]\

0x555556ac8a50if (size_16 != 0)\

0x555556ac8a57rust_dealloc(*r14_31, size_16, 0)\

0x555556ac8a40r14_31 = &r14_31[3]\

0x555556ac8a44i_19 = len_5\

0x555556ac8a44len_5 -= 1\

0x555556ac8a47while (i_19 != 1)\

0x555556ac8a5cuint64_t_0_1 = var_5a8.buf.inner.cap._0\

0x555556ac8a67if (_0_1 != 0)\

0x555556ac8a7brust_dealloc(var_5a8.buf.inner.ptr.pointer.pointer, _0_1 * 0x18, 0)\

0x555556ac8a84_0_1.b = cpty_vec_cap_1 == 0\

0x555556ac8a92if ((logger_lock_ptr.b | _0_1.b) == 0)\

0x555556ac8aa6rust_dealloc(i_26, cpty_vec_cap_1 * 0x28, 0)\

0x555556ac8ab4if (total_shortfall_value_2u&lt; r15_2)\

0x555556ac8ab6int64_trax_226 = result_2.q\

0x555556ac8ac1if (rax_226 != 0)\

0x555556ac8ad5rust_dealloc(str1_ptr_6, rax_226 * 0x28, 0)\

0x555556ac8ae3int64_trax_228 = *oracle_asset_data\

0x555556ac8ae9if (rax_228 != 0)\

0x555556ac8af9rust_dealloc(*(oracle_asset_data + 8), rax_228 * 0x60, 0)\

0x555556ac8b06btree_drop_0x60(oracle_asset_data + 0x18)\

0x555556ac8b24returnresult\

0x555556ac6a3ewhile (true)\

0x555556ac6a3eint64_trdx_62 = var_9c0:8.q\

0x555556ac6a43int64_trcx_56 = rdx_62 * 3\

0x555556ac6a47int64_trdi_95 = *(rax_140 + (rcx_56 &lt;&lt; 3) + 0xb8)\

0x555556ac6a64if (rdi_95 == -0x8000000000000000)\

0x555556ac6a64gotolabel_555556ac7cb4\

0x555556ac6a6eint32_t* rsi_72 = rax_140[rdx_62].q\

0x555556ac6a7auint32_tr11_2 = zx.d(*(&rax_140[rdx_62] + 8))\

0x555556ac6a80int128_t* rdi_96 = *(rax_140 + (rcx_56 &lt;&lt; 3) + 0xc0)\

0x555556ac6a88uint64_trbx_39 = *(rax_140 + (rcx_56 &lt;&lt; 3) + 0xc8)\

0x555556ac6a98counterparty_info.q = &str1_ptr\

0x555556ac6aa4int128_t* var_870 = rdi_96\

0x555556ac6aacshortfall_discriminant_4.b = r11_2.b\

0x555556ac6ab4uint64_trax_141\

0x555556ac6ab4Clearinghouse* clearinghouse_4\

0x555556ac6ab4if (rbx_39u>= 2)\

0x555556ac6ad4int128_tzmm0_19\

0x555556ac6ad4if (rbx_39u>= 0x15)\

0x555556ac6c1bsort_counterparties(rdi_96, rbx_39, &counterparty_info)\

0x555556ac6c20r11_2 = zx.d(shortfall_discriminant_4.b)\

0x555556ac6c29rdi_96 = var_870\

0x555556ac6ad4else\

0x555556ac6ae5int128_t* i_20 = &rdi_96[6]\

0x555556ac6ae9void* rdx_64 = 0x60\

0x555556ac6b4ddo\

0x555556ac6b53int64_trsi_73 = *(i_20 + 0x18)\

0x555556ac6b5bif (rsi_73u&lt; *(i_20 - 0x48))\

0x555556ac6b60var_8f8 = *i_20\

0x555556ac6b68int64_tr8_11 = i_20[1].q\

0x555556ac6b84var_9c8.o = i_20[2]\

0x555556ac6b89var_9c0:8.o = i_20[3]\

0x555556ac6b8easset_idx_2.o = i_20[4]\

0x555556ac6b93i_62.o = i_20[5]\

0x555556ac6b98void* r8_12 = rdx_64\

0x555556ac6ba0int128_t* r8_10\

0x555556ac6ba0void* r10_3\

0x555556ac6ba0int128_tzmm1_4\

0x555556ac6ba0while (true)\

0x555556ac6ba0r10_3 = r8_12\

0x555556ac6ba9 *(rdi_96 + r8_12 + 0x50) = *(rdi_96 + r8_12 - 0x10)\

0x555556ac6bb5 *(rdi_96 + r8_12 + 0x40) = *(rdi_96 + r8_12 - 0x20)\

0x555556ac6bbbzmm0_19 = *(rdi_96 + r8_12 - 0x60)\

0x555556ac6bc2zmm1_4 = *(rdi_96 + r8_12 - 0x50)\

0x555556ac6bc9int128_tzmm2_4 = *(rdi_96 + r8_12 - 0x40)\

0x555556ac6bd6 *(rdi_96 + r8_12 + 0x30) = *(rdi_96 + r8_12 - 0x30)\

0x555556ac6bdc *(rdi_96 + r8_12 + 0x20) = zmm2_4\

0x555556ac6be3 *(rdi_96 + r8_12 + 0x10) = zmm1_4\

0x555556ac6bea *(rdi_96 + r8_12) = zmm0_19\

0x555556ac6bf4if (r8_12 == 0x60)\

0x555556ac6af0r8_10 = rdi_96\

0x555556ac6af0break\

0x555556ac6bfar8_12 = r10_3 - 0x60\

0x555556ac6c06if (rsi_73u>= *(rdi_96 + r10_3 - 0xa8))\

0x555556ac6c08r8_10 = r8_12 + rdi_96\

0x555556ac6c0bbreak\

0x555556ac6afbr8_10[1].q = r8_11\

0x555556ac6b07 *r8_10 = var_8f8\

0x555556ac6b0b *(rdi_96 + r10_3 - 0x48) = rsi_73\

0x555556ac6b16zmm1_4 = var_9c0:8.o\

0x555556ac6b27 *(rdi_96 + r10_3 - 0x40) = var_9c8.o\

0x555556ac6b2e *(rdi_96 + r10_3 - 0x30) = zmm1_4\

0x555556ac6b35 *(rdi_96 + r10_3 - 0x20) = asset_idx_2.o\

0x555556ac6b3c *(rdi_96 + r10_3 - 0x10) = i_62.o\

0x555556ac6b42i_20 = &i_20[6]\

0x555556ac6b46rdx_64 += 0x60\

0x555556ac6b4dwhile (i_20 != &rdi_96[rbx_39 * 6])\

0x555556ac6c31rax_141.b = 1\

0x555556ac6c36clearinghouse_4 = clearinghouse_5\

0x555556ac6c39if (r11_2.b == 0)\

0x555556ac6c42uint64_ti_28 = rbx_39u>> 1\

0x555556ac6c45int128_t* rcx_57 = &rdi_96[5]\

0x555556ac6c54int128_t* rdx_69 = &rdi_96[rbx_39 * 6 - 1]\

0x555556ac6ccbuint64_ti_21\

0x555556ac6ccbdo\

0x555556ac6c60zmm0_19 = rcx_57[-5]\

0x555556ac6c68rcx_57[-5] = rdx_69[-5]\

0x555556ac6c6crdx_69[-5] = zmm0_19\

0x555556ac6c70zmm0_19 = rcx_57[-4]\

0x555556ac6c78rcx_57[-4] = rdx_69[-4]\

0x555556ac6c7crdx_69[-4] = zmm0_19\

0x555556ac6c80zmm0_19 = rcx_57[-3]\

0x555556ac6c88rcx_57[-3] = rdx_69[-3]\

0x555556ac6c8crdx_69[-3] = zmm0_19\

0x555556ac6c90zmm0_19 = rcx_57[-2]\

0x555556ac6c98rcx_57[-2] = rdx_69[-2]\

0x555556ac6c9crdx_69[-2] = zmm0_19\

0x555556ac6ca0zmm0_19 = rcx_57[-1]\

0x555556ac6ca8rcx_57[-1] = rdx_69[-1]\

0x555556ac6cacrdx_69[-1] = zmm0_19\

0x555556ac6cb0zmm0_19 = *rcx_57\

0x555556ac6cb8 *rcx_57 = *rdx_69\

0x555556ac6cbc *rdx_69 = zmm0_19\

0x555556ac6cc0rcx_57 = &rcx_57[6]\

0x555556ac6cc4rdx_69 = &rdx_69[-6]\

0x555556ac6cc8i_21 = i_28\

0x555556ac6cc8i_28 -= 1\

0x555556ac6ccbwhile (i_21 != 1)\

0x555556ac6ccdrax_141 = 0\

0x555556ac6ab4else\

0x555556ac6ab6rax_141 = zx.q(r11_2)\

0x555556ac6ab9clearinghouse_4 = clearinghouse_5\

0x555556ac6ce0str1_ptr = rsi_72\

0x555556ac6ce8var_748 = rax_141.b\

0x555556ac6cefint64_t* i_65 = *(clearinghouse_4 + 0x128)\

0x555556ac6cf6uint64_tlength_6 = *(clearinghouse_4 + 0x130)\

0x555556ac6cffint64_t* i_67 = i_65\

0x555556ac6d05rdi_96.b = i_65 != 0\

0x555556ac6d09if (i_65 != 0)\

0x555556ac6d0bi_67 = *(clearinghouse_4 + 0x138)\

0x555556ac6d12int128_t* asset_idx_5\

0x555556ac6d12asset_idx_5.b = rdi_96.b\

0x555556ac6d15var_9c8 = asset_idx_5\

0x555556ac6d1avar_9c0.q = 0\

0x555556ac6d23var_9c0:8.q = i_65\

0x555556ac6d28length = length_6\

0x555556ac6d2dasset_idx_2 = asset_idx_5\

0x555556ac6d32int64_tvar_9a0_3 = 0\

0x555556ac6d3bi_62 = i_65\

0x555556ac6d40uint64_tlength_9 = length_6\

0x555556ac6d45int64_t* i_68 = i_67\

0x555556ac6d52int32_t** var_980_1 = &str1_ptr\

0x555556ac6d5fchar* var_978_1 = &var_748\

0x555556ac6d71clearinghouse_6 = clearinghouse_4\

0x555556ac6d74uint64_tr12_7\

0x555556ac6d74int64_tr14_19\

0x555556ac6d74int64_tr15_16\

0x555556ac6d74r12_7, r14_19, r15_16 = btree_collect_adl_fills(&_ret, &var_9c8)\

0x555556ac6d89var_8f8.q = clearinghouse_6\

0x555556ac6d91var_8f8:8.q = r14_19\

0x555556ac6d99int64_tvar_8e8_12 = r15_16\

0x555556ac6da1counterparty_info.q = _ret_2\

0x555556ac6daduint32_t (* counterparty_array)[0x4]\

0x555556ac6dadvoid* counterparty_count\

0x555556ac6daduint64_trax_193\

0x555556ac6dadif (counterparty_countu>= 2)\

0x555556ac6db3if (counterparty_countu>= 0x15)\

0x555556ac7c1badl_quicksort_by_ranking(counterparty_array, counterparty_count, &counterparty_info)\

0x555556ac7c20rax_193 = rbx_39\

0x555556ac7c2bif (rax_193 != 0)\

0x555556ac7c2bgotolabel_555556ac6e01\

0x555556ac7c2bgotolabel_555556ac7c31\

0x555556ac6dc1int64_ti_22 = 0x14\

0x555556ac6de6do\

0x555556ac6ddadriftsort_smallsort_insertion_by_adl_ranking(counterparty_array,\

0x555556ac6ddacounterparty_array + i_22, _ret_2)\

0x555556ac6ddfi_22 += 0x14\

0x555556ac6de6while (counterparty_count * 0x14 != i_22)\

0x555556ac6de6gotolabel_555556ac6de8\

0x555556ac6de8label_555556ac6de8:\

0x555556ac6de8rax_193 = rbx_39\

0x555556ac6df3int64_tfill_list_idx_1\

0x555556ac6df3int128_t* rdi_99\

0x555556ac6df3if (rax_193 != 0)\

0x555556ac6e01label_555556ac6e01:\

0x555556ac6e01rdi_99 = var_870\

0x555556ac6e14chartemp13_1 = shortfall_discriminant_4.b\

0x555556ac6e24int128_tcounterparty_addr\

0x555556ac6e24int128_t* rsi_79 = &counterparty_addr\

0x555556ac6e27int128_tcpty_addr_bytes\

0x555556ac6e27int128_t* rdx_71 = &cpty_addr_bytes\

0x555556ac6e2fif (temp13_1 == 0)\

0x555556ac6e2frsi_79 = &cpty_addr_bytes\

0x555556ac6e43int128_tvar_540\

0x555556ac6e43int128_t* r8_13 = &var_540:8\

0x555556ac6e46int128_tOPTION_UNIT_QTY_NONE_1\

0x555556ac6e46int128_t* rsi_80 = &OPTION_UNIT_QTY_NONE_1\

0x555556ac6e4eif (temp13_1 == 0)\

0x555556ac6e4er8_13 = &OPTION_UNIT_QTY_NONE_1\

0x555556ac6e5aif (temp13_1 == 0)\

0x555556ac6e5ardx_71 = &counterparty_addr\

0x555556ac6e66if (temp13_1 == 0)\

0x555556ac6e66rsi_80 = &var_540:8\

0x555556ac6e72fill_list_idx_1 = fill_list_idx_2\

0x555556ac6e77int64_tfill_list_idx = fill_list_idx_1\

0x555556ac6e7fint128_t* rdx_72 = rdi_99\

0x555556ac6e82clearinghouse_5 = clearinghouse_1\

0x555556ac6e8astructOptionUnitQty* rhs_2 = &var_9c8\

0x555556ac6ecfwhile (true)\

0x555556ac6ecfint64_trax_148 = *rdx_72\

0x555556ac6ed6if (rax_148 == 2)\

0x555556ac6ed6gotolabel_555556ac7c4b\

0x555556ac6edccounterparty_info.q = rax_148\

0x555556ac6ef3int64_tvar_510_1 = *(rdx_72 + 0x58)\

0x555556ac6efbcounterparty_addr = *(rdx_72 + 0x48)\

0x555556ac6effint128_tzmm0_20 = *(rdx_72 + 8)\

0x555556ac6f03int128_tzmm1_5 = *(rdx_72 + 0x18)\

0x555556ac6f11int128_tvar_530_1 = *(rdx_72 + 0x38)\

0x555556ac6f15var_540 = *(rdx_72 + 0x28)\

0x555556ac6f1avar_558:8.o = zmm1_5\

0x555556ac6f1fcounterparty_info:8.o = zmm0_20\

0x555556ac6f36var_8f8 = rdx_72[3]\

0x555556ac6f3eint64_tvar_8e8_13 = var_530_1:8.q\

0x555556ac6f4evar_9c8.o = OPTION_UNIT_QTY_NONE\

0x555556ac6f54var_9c0:8.q = 0\

0x555556ac6f60int64_tfill_list_idx_4\

0x555556ac6f60int64_tremaining_shortfall_2\

0x555556ac6f60fill_list_idx_4, clearinghouse_6, remaining_shortfall_2 =\

0x555556ac6f60option_unit_qty_sub(_ret_2, rhs_2)\

0x555556ac6f65fill_list_idx_1 = fill_list_idx_4\

0x555556ac6f68int64_tremaining_shortfall = remaining_shortfall_2\

0x555556ac6f73if (remaining_shortfall_2 != 0)\

0x555556ac6f93while (true)\

0x555556ac6f93if (counterparty_count != 0)\

0x555556ac6facvoid* rcx_61 = (counterparty_count - 1) * 5\

0x555556ac6fb4cpty_addr_bytes = *(counterparty_array + (rcx_61 &lt;&lt; 2))\

0x555556ac6fc0int32_tvar_2f8_1 = (*counterparty_array)[rcx_61 + 4]\

0x555556ac6fcbvar_9c0:8.d = (*counterparty_array)[rcx_61 + 4]\

0x555556ac6fd4var_9c8.o = *(counterparty_array + (rcx_61 &lt;&lt; 2))\

0x555556ac6fdavoid* r15_17 = *(clearinghouse_1 + 0x128)\

0x555556ac6fe4void* __offset(Clearinghouse, 0x60) r13_7\

0x555556ac6fe4if (r15_17 == 0)\

0x555556ac70b0label_555556ac70b0:\

0x555556ac70b0r13_7 = nullptr\

0x555556ac6fe4else\

0x555556ac6ff1int64_tvar_9d0_6 = *(clearinghouse_1 + 0x130)\

0x555556ac6ff6while (true)\

0x555556ac6ff6void* rsi_82 = r15_17 + 0x428\

0x555556ac6ffduint64_trax_152 = zx.q(*(r15_17 + 0x506))\

0x555556ac7014uint64_trbx_42 = zx.q((rax_152 &lt;&lt; 2).d) * 5\

0x555556ac7018r13_7 = r15_17 - 0x60\

0x555556ac701cuint64_tr14_22 = -1\

0x555556ac7069int64_trax_157\

0x555556ac7069booli_23\

0x555556ac7069do\

0x555556ac7033if (rbx_42 == 0)\

0x555556ac7080r14_22 = rax_152\

0x555556ac708drax_157 = var_9d0_6 - 1\

0x555556ac7091if (var_9d0_6u&lt; 1)\

0x555556ac7091gotolabel_555556ac70b0\

0x555556ac7091gotolabel_555556ac7093\

0x555556ac7043int32_trax_154 = memcmp(&var_9c8, rsi_82, 0x14)\

0x555556ac704di_23 = rax_154 != 0\

0x555556ac7055if (rax_154s&lt; 0)\

0x555556ac7055i_23 = true\

0x555556ac7058rbx_42 -= 0x14\

0x555556ac705cr13_7 += 0x60\

0x555556ac7060r14_22 += 1\

0x555556ac7063rsi_82 += 0x14\

0x555556ac7069while (i_23 == 1)\

0x555556ac7070if (zx.d(i_23) == 0)\

0x555556ac7070break\

0x555556ac7077rax_157 = var_9d0_6 - 1\

0x555556ac707bif (var_9d0_6u&lt; 1)\

0x555556ac707bgotolabel_555556ac70b0\

0x555556ac7093label_555556ac7093:\

0x555556ac7093var_9d0_6 = rax_157\

0x555556ac7098r15_17 = *(r15_17 + (r14_22 &lt;&lt; 3) + 0x508)\

0x555556ac70b6if (r13_7 == 0)\

0x555556ac70b6r13_7 = clearinghouse_1 + 0x60\

0x555556ac70bfvoid* cpty_positions_root = *(r13_7 + 0x30)\

0x555556ac70c6int64_tcpty_abs_position_2\

0x555556ac70c6int64_trax_159\

0x555556ac70c6uint64_tcpty_array_offset\

0x555556ac70c6int64_tcpty_abs_position\

0x555556ac70c6structOptionUnitQty* rdi_103\

0x555556ac70c6int128_t** asset_idx_1\

0x555556ac70c6if (cpty_positions_root == 0)\

0x555556ac71b7label_555556ac71b7:\

0x555556ac71b7OPTION_UNIT_QTY_NONE_1 = OPTION_UNIT_QTY_NONE\

0x555556ac71bfcpty_abs_position_2 = 0\

0x555556ac71cbrax_159 = 2\

0x555556ac71d0cpty_abs_position = 0\

0x555556ac71d2rdi_103 = &var_8f8\

0x555556ac71dfcpty_array_offset = cpty_array_offset_1\

0x555556ac71e7asset_idx_1 = rsi_72\

0x555556ac70c6else\

0x555556ac70ccint64_trcx_62 = *(r13_7 + 0x38)\

0x555556ac70d5while (true)\

0x555556ac70d5asset_idx_1 = rsi_72\

0x555556ac70dduint64_trsi_83 = zx.q(*(cpty_positions_root + 0x742))\

0x555556ac70eduint64_trdx_78 = -1\

0x555556ac70f4int64_trdi_102 = 0\

0x555556ac7126booli_24\

0x555556ac7126do\

0x555556ac7103if (zx.q(rsi_83.d &lt;&lt; 5) * 5 == rdi_102)\

0x555556ac7140rdx_78 = rsi_83\

0x555556ac7143int64_ttemp41_1 = rcx_62\

0x555556ac7143rcx_62 -= 1\

0x555556ac7147if (temp41_1u&lt; 1)\

0x555556ac7147gotolabel_555556ac71b7\

0x555556ac7147gotolabel_555556ac7149\

0x555556ac7108int64_ttemp42_1 =\

0x555556ac7108 *(cpty_positions_root + (rdx_78 &lt;&lt; 3) + 0x6f0)\

0x555556ac7110i_24 = temp42_1 != asset_idx_1\

0x555556ac7114if (temp42_1u> index)\

0x555556ac7114i_24 = true\

0x555556ac7118rdx_78 += 1\

0x555556ac711brdi_102 += 0xa0\

0x555556ac7126while (i_24 == 1)\

0x555556ac712eif (zx.d(i_24) == 0)\

0x555556ac7168OPTION_UNIT_QTY_NONE_1 = *(cpty_positions_root + rdi_102 - 0xa0)\

0x555556ac7170int64_tcpty_abs_position_1 =\

0x555556ac7170 *(cpty_positions_root + rdi_102 - 0x90)\

0x555556ac7178cpty_abs_position_2 = cpty_abs_position_1\

0x555556ac7183if (cpty_abs_position_1 == 0)\

0x555556ac7200rax_159 = 2\

0x555556ac7205cpty_abs_position = 0\

0x555556ac7207rdi_103 = &var_8f8\

0x555556ac720fcpty_array_offset = cpty_array_offset_1\

0x555556ac7183else\

0x555556ac7188cpty_abs_position = neg.q(cpty_abs_position_1)\

0x555556ac718bif (cpty_abs_positions&lt; 0)\

0x555556ac718bcpty_abs_position = cpty_abs_position_1\

0x555556ac718frax_159 = OPTION_UNIT_QTY_NONE_1.q\

0x555556ac7197cpty_array_offset = OPTION_UNIT_QTY_NONE_1:8.q\

0x555556ac719frdi_103 = &var_8f8\

0x555556ac7183break\

0x555556ac7130int64_ttemp54_1 = rcx_62\

0x555556ac7130rcx_62 -= 1\

0x555556ac7134if (temp54_1u&lt; 1)\

0x555556ac7134gotolabel_555556ac71b7\

0x555556ac7149label_555556ac7149:\

0x555556ac7149cpty_positions_root = *(cpty_positions_root + (rdx_78 &lt;&lt; 3) + 0x748)\

0x555556ac7222int64_tremaining_shortfall_3 = neg.q(remaining_shortfall)\

0x555556ac7225if (remaining_shortfall_3s&lt; 0)\

0x555556ac7225remaining_shortfall_3 = remaining_shortfall\

0x555556ac7229var_8f8.q = rax_159\

0x555556ac7231cpty_array_offset_1 = cpty_array_offset\

0x555556ac7239var_8f8:8.q = cpty_array_offset\

0x555556ac7252int128_tvar_538\

0x555556ac7252var_9c8.o = var_538\

0x555556ac7258var_9c0:8.q = remaining_shortfall_3\

0x555556ac7262int64_trbx_44\

0x555556ac7262chari_37\

0x555556ac7262int64_tr14_24\

0x555556ac7262int64_tr15_19\

0x555556ac7262rbx_44, i_37, r14_24, r15_19 =\

0x555556ac7262option_unit_qty_merge_units(rdi_103, &var_9c8)\

0x555556ac726astructOptionUnitQtyfill_delta\

0x555556ac726aint64_tfill_list_idx_3\

0x555556ac726achar\* logger_lock_ptr_2\

0x555556ac726aClearinghouse\* clearinghouse_2\

0x555556ac726aint64_tr9_5\

0x555556ac726aint128_tOPTION_UNIT_QTY_NONE_2\

0x555556ac726aif (rbx_44u&lt;= r14_24)\

0x555556ac72d8counterparty_count -= 1\

0x555556ac72e0OPTION_UNIT_QTY_NONE_2 = OPTION_UNIT_QTY_NONE_1\

0x555556ac72e9fill_delta.tag = OPTION_UNIT_QTY_NONE_2.q\

0x555556ac72e9fill_delta.unit = OPTION_UNIT_QTY_NONE_2:8.q\

0x555556ac72fafill_delta.value = cpty_abs_position_2\

0x555556ac7302clearinghouse_2 = clearinghouse_1\

0x555556ac730flogger_lock_ptr_2 = logger_lock_ptr\

0x555556ac7317r9_5 = zx.q(shortfall_discriminant_4.b)\

0x555556ac7328fill_list_idx_3 = fill_list_idx + 1\

0x555556ac732bif (fill_list_idx == -1)\

0x555556ac8b81panic_overflow_add(&data_5555587f82b0)\

0x555556ac8b81gotolabel_555556ac8b8e\

0x555556ac726aelse\

0x555556ac726fclearinghouse_2 = clearinghouse_1\

0x555556ac727clogger_lock_ptr_2 = logger_lock_ptr\

0x555556ac7284r9_5 = zx.q(shortfall_discriminant_4.b)\

0x555556ac728dif (r15_19 == 0)\

0x555556ac7340fill_delta.value = 0\

0x555556ac734cfill_delta.tag = 2\

0x555556ac7360fill_list_idx_3 = fill_list_idx + 1\

0x555556ac7363if (fill_list_idx == -1)\

0x555556ac8b81panic_overflow_add(&data_5555587f82b0)\

0x555556ac8b81gotolabel_555556ac8b8e\

0x555556ac728delse\

0x555556ac7296if (neg.q(r15_19) == -0x8000000000000000)\

0x555556ac8b9bpanic_negate_min(&data_5555587fd628)\

0x555556ac8b9bbreak\

0x555556ac8b9bbreak\

0x555556ac72a5fill_delta.value = neg.q(r15_19)\

0x555556ac72adfill_delta.tag = var_538.q\

0x555556ac72adfill_delta.unit = var_538:8.q\

0x555556ac72befill_list_idx_3 = fill_list_idx + 1\

0x555556ac72c1if (fill_list_idx == -1)\

0x555556ac8b81panic_overflow_add(&data_5555587f82b0)\

0x555556ac8b81gotolabel_555556ac8b8e\

0x555556ac7376 *(adl_fill_ctx + 0x30) = fill_list_idx_3\

0x555556ac7382int32_trax_163 = rsi_79[1].d\

0x555556ac738fint128_tvar_2c8_1 = *rsi_79\

0x555556ac73abvar_8e0 = r8_13[1].q\

0x555556ac73b2var_8f8:8.o = *r8_13\

0x555556ac73bdint32_trax_165 = rdx_71[1].d\

0x555556ac73caint128_tvar_2e8_1 = *rdx_71\

0x555556ac73e3length = rsi_80[1].q\

0x555556ac73eavar_9c0 = *rsi_80\

0x555556ac73fdint128_tvar_208_1 = var_8f8\

0x555556ac7405int128_tvar_1f8_1 = cpty_abs_position.o\

0x555556ac7419int128_tvar_218_1 = var_9c0:8.o\

0x555556ac7422int128_tvar_228_1 = var_9c8.o\

0x555556ac7432if (*(clearinghouse_2 + 0x210) != 0)\

0x555556ac7453int64_tr9_6\

0x555556ac7453int128_tzmm0_21\

0x555556ac7453r9_6, zmm0_21 = adl_process_counterparty_position(clearinghouse_2,\

0x555556ac7453asset_idx_1, &counterparty_info, &fill_delta, &counterparty_addr,\

0x555556ac7453r9_5)\

0x555556ac7458int64_tvalue = fill_delta.value\

0x555556ac7463if (value == 0)\

0x555556ac7490var_9c0:8.q = 0\

0x555556ac7499var_9c8 = 2\

0x555556ac7463else\

0x555556ac7468if (neg.q(value) == -0x8000000000000000)\

0x555556ac8b9bpanic_negate_min(&data_5555587fd628)\

0x555556ac8b9bbreak\

0x555556ac8b9bbreak\

0x555556ac746evar_9c0:8.q = neg.q(value)\

0x555556ac7473zmm0_21.q = fill_delta.tag\

0x555556ac7473zmm0_21:8.q = fill_delta.unit\

0x555556ac747cvar_9c8.o = zmm0_21\

0x555556ac74c0adl_process_counterparty_position(clearinghouse_1, asset_idx_1,\

0x555556ac74c0 &counterparty_info, &var_9c8, &cpty_addr_bytes, r9_6)\

0x555556ac74c5r9_5 = zx.d(shortfall_discriminant_4.b)\

0x555556ac74ceint128_t*** r15_21 = var_650\

0x555556ac74d9structstd_vec_Vec_AdlFillEntry_* r15_22\

0x555556ac74d9char* logger_lock_ptr_4\

0x555556ac74d9if (r15_21 == 0)\

0x555556ac7590r15_21 = nullptr\

0x555556ac7593label_555556ac7593:\

0x555556ac7593var_9c8 = r15_21\

0x555556ac7598var_9c0.q = logger_lock_ptr_2\

0x555556ac759dvar_9c0:8.q = r12_7\

0x555556ac75aalength = &var_650\

0x555556ac75afasset_idx_2 = asset_idx_1\

0x555556ac75b4var_9a0_3.b = r9_5.b\

0x555556ac75bcif (r15_21 == 0)\

0x555556ac765bdata_55555886bd41\

0x555556ac7663int128_t*** rax_171\

0x555556ac7663rax_171, OPTION_UNIT_QTY_NONE_2 = rust_alloc(0x1c8)\

0x555556ac766cif (rax_171 == 0)\

0x555556ac766cbreak\

0x555556ac7676 *(rax_171 + 0xb0) =\

0x555556ac7676_mm_xor_pd(OPTION_UNIT_QTY_NONE_2, OPTION_UNIT_QTY_NONE_2)\

0x555556ac767e *(rax_171 + 0x1c2) = 1\

0x555556ac7687 *rax_171 = asset_idx_1\

0x555556ac7692rax_171[1].b = shortfall_discriminant_4.b\

0x555556ac7698r15_22 = &rax_171[0x17]\

0x555556ac769frax_171[0x18] = 8\

0x555556ac76aarax_171[0x19] = 0\

0x555556ac76b5var_650 = rax_171\

0x555556ac76bdlogger_lock_ptr_4 = nullptr\

0x555556ac76c9var_640_1 = 1\

0x555556ac75bcelse\

0x555556ac75c2var_748.q = r15_21\

0x555556ac75cachar* logger_lock_ptr_3 = logger_lock_ptr_2\

0x555556ac75d2var_738 = r12_7\

0x555556ac75davar_8f8.q = 0\

0x555556ac75e6var_8f8:8.q = 8\

0x555556ac75f2int64_tvar_8e8_15 = 0\

0x555556ac7622btree_insert_adl_entry(&str1_ptr, &var_748, asset_idx_1,\

0x555556ac7622zx.d(r9_5.b), &var_8f8, &length)\

0x555556ac763fr15_22 = &str1_ptr[var_7d8 * 6 + 0x2e]\

0x555556ac7646uint64_tlength_3 = length\

0x555556ac764b *(length_3 + 0x10) += 1\

0x555556ac74d9else\

0x555556ac74dflogger_lock_ptr_2 = logger_lock_ptr_4\

0x555556ac74e7while (true)\

0x555556ac74e7uint64_trcx_70 = zx.q(*(r15_21 + 0x1c2))\

0x555556ac74f1uint64_trdx_84 = zx.q(rcx_70.d &lt;&lt; 4)\

0x555556ac74f4int64_trax_168 = -0xa0\

0x555556ac74fbr12_7 = -1\

0x555556ac7502int128_t*** rdi_105 = r15_21\

0x555556ac754achari_25\

0x555556ac754ado\

0x555556ac7513if (rdx_84 == 0)\

0x555556ac7560r12_7 = rcx_70\

0x555556ac7563char* logger_lock_ptr_6 = logger_lock_ptr_2\

0x555556ac7563logger_lock_ptr_2 -= 1\

0x555556ac7567if (logger_lock_ptr_6u&lt; 1)\

0x555556ac7567gotolabel_555556ac7bff\

0x555556ac7567gotolabel_555556ac756d\

0x555556ac7518int128_t** temp59_1 = *rdi_105\

0x555556ac751bchari_40 = (temp59_1 != asset_idx_1).b\

0x555556ac751fif (temp59_1u> asset_idx_1)\

0x555556ac751fi_40 = i_37\

0x555556ac7525chartemp61_1 = rdi_105[1].b\

0x555556ac7529rdi_105 = &rdi_105[2]\

0x555556ac752di_25 = temp61_1 != r9_5.b\

0x555556ac7531if (temp61_1u> r9_5.b)\

0x555556ac7531i_25 = i_37\

0x555556ac7537if (i_40 != 0)\

0x555556ac7537i_25 = i_40\

0x555556ac753brdx_84 -= 0x10\

0x555556ac753frax_168 -= 0x18\

0x555556ac7543r12_7 += 1\

0x555556ac754awhile (i_25 == 1)\

0x555556ac7552if (zx.d(i_25) == 0)\

0x555556ac7580r15_22 = r15_21 - rax_168\

0x555556ac7583break\

0x555556ac7554char* logger_lock_ptr_7 = logger_lock_ptr_2\

0x555556ac7554logger_lock_ptr_2 -= 1\

0x555556ac7558if (logger_lock_ptr_7u&lt; 1)\

0x555556ac7bfflabel_555556ac7bff:\

0x555556ac7bfflogger_lock_ptr_2 = nullptr\

0x555556ac7c01gotolabel_555556ac7593\

0x555556ac756dlabel_555556ac756d:\

0x555556ac756dr15_21 = r15_21[r12_7 + 0x39]\

0x555556ac76e0logger_lock_ptr = logger_lock_ptr_2\

0x555556ac76f8counterparty_info_2 = counterparty_info\

0x555556ac7708uint64_tunit = fill_delta.unit\

0x555556ac7718int64_tvalue_1 = fill_delta.value\

0x555556ac7723int64_tvalue_4 = neg.q(value_1)\

0x555556ac7726if (neg.q(value_1) s&lt; 0)\

0x555556ac7726value_4 = value_1\

0x555556ac7732uint64_ttag = 2\

0x555556ac7737if (value_1 != 0)\

0x555556ac7739tag = fill_delta.tag\

0x555556ac7759var_348 = var_208_1\

0x555556ac7761var_338.o = var_1f8_1\

0x555556ac7780memcpy(&var_9c8, &shortfall_discriminant, 0x88)\

0x555556ac7792str1_ptr.o = var_3b8\

0x555556ac779avar_7d8.o = user_shortfall.o\

0x555556ac77basize_18.o = var_2c8_1\

0x555556ac77d8int128_tresult_3\

0x555556ac77d8result_1 = result_3\

0x555556ac77e7result_1:0xf.d = result_3:0xf.d\

0x555556ac7fevar_808.buf.inner.cap._0 = var_228_1.q\

0x555556ac7fevar_808.buf.inner.ptr.pointer.pointer = var_228_1:8.q\

0x555556ac7806var_808.len.o = var_218_1\

0x555556ac7823memcpy(&var_8f8, &size_17, 0x88)\

0x555556ac7835var_748.o = i_60.o\

0x555556ac783dvar_738.o = var_378.o\

0x555556ac785dvar_3e8 = var_2e8_1\

0x555556ac786cvar_3d8.d = rax_165\

0x555556ac787aint128_tvar_418\

0x555556ac787aint32_tvar_ef\

0x555556ac787avar_418:0xf.d = var_ef\

0x555556ac7899int128_tvar_548\

0x555556ac7899size_19.o = var_548\

0x555556ac78a1uint64_tlen = r15_22->len\

0x555556ac78a8if (len == r15_22->buf.inner.cap._0)\

0x555556ac78advec_grow_adl_fill_entry(r15_22)\

0x555556ac78b2int128_t* pointer_6 = r15_22->buf.inner.ptr.pointer.pointer\

0x555556ac78b6int64_trbp_13 = len * 0x278\

0x555556ac78bdint128_tcounterparty_info_4 = counterparty_info_2\

0x555556ac78cd *(pointer_6 + rbp_13 + 0x10) = var_558\

0x555556ac78d3 *(pointer_6 + rbp_13) = counterparty_info_4\

0x555556ac78d9 *(pointer_6 + rbp_13 + 0x20) = 0\

0x555556ac78f2 *(pointer_6 + rbp_13 + 0x28) = var_348\

0x555556ac78f8 *(pointer_6 + rbp_13 + 0x38) = var_338.o\

0x555556ac78fe *(pointer_6 + rbp_13 + 0x48) = 3\

0x555556ac791bmemcpy(pointer_6 + rbp_13 + 0x50, &var_9c8, 0x88)\

0x555556ac7921 *(pointer_6 + rbp_13 + 0xd8) = 2\

0x555556ac793a *(pointer_6 + rbp_13 + 0xd9) = str1_ptr.o\

0x555556ac7943 *(pointer_6 + rbp_13 + 0xe9) = var_7d8.o\

0x555556ac7954int64_tvar_399\

0x555556ac7954 *(pointer_6 + rbp_13 + 0xf8) = var_399\

0x555556ac796c *(pointer_6 + rbp_13 + 0x100) = fill_list_idx\

0x555556ac797b *(pointer_6 + rbp_13 + 0x118) = rax_163\

0x555556ac798b *(pointer_6 + rbp_13 + 0x108) = size_18.o\

0x555556ac7994 *(pointer_6 + rbp_13 + 0x11c) = 0\

0x555556ac79a4 *(pointer_6 + rbp_13 + 0x12c) = result_1:0xf.d\

0x555556ac79b4 *(pointer_6 + rbp_13 + 0x11d) = result_1\

0x555556ac79bd *(pointer_6 + rbp_13 + 0x130) = 0\

0x555556ac79c9int128_tzmm0_23\

0x555556ac79c9zmm0_23.q = var_808.buf.inner.cap._0\

0x555556ac79c9zmm0_23:8.q = var_808.buf.inner.ptr.pointer.pointer\

0x555556ac79d9 *(pointer_6 + rbp_13 + 0x148) = var_808.len.o\

0x555556ac79e2 *(pointer_6 + rbp_13 + 0x138) = zmm0_23\

0x555556ac79eb *(pointer_6 + rbp_13 + 0x158) = 3\

0x555556ac7a1cmemcpy(pointer_6 + rbp_13 + 0x160, &var_8f8, 0x88)\

0x555556ac7a1e *(pointer_6 + rbp_13 + 0x1e8) = 2\

0x555556ac7a38 *(pointer_6 + rbp_13 + 0x1e9) = var_748.o\

0x555556ac7a41 *(pointer_6 + rbp_13 + 0x1f9) = var_738.o\

0x555556ac7a53int64_tvar_369\

0x555556ac7a53 *(pointer_6 + rbp_13 + 0x208) = var_369\

0x555556ac7a5b *(pointer_6 + rbp_13 + 0x210) = fill_list_idx\

0x555556ac7a6b *(pointer_6 + rbp_13 + 0x218) = var_3e8\

0x555556ac7a7b *(pointer_6 + rbp_13 + 0x228) = var_3d8.d\

0x555556ac7a83 *(pointer_6 + rbp_13 + 0x22c) = 0\

0x555556ac7a94int128_tvar_fe\

0x555556ac7a94 *(pointer_6 + rbp_13 + 0x22d) = var_fe\

0x555556ac7aa4 *(pointer_6 + rbp_13 + 0x23c) = var_fe:0xf.d\

0x555556ac7ab4 *(pointer_6 + rbp_13 + 0x240) = tag\

0x555556ac7ac4 *(pointer_6 + rbp_13 + 0x248) = unit\

0x555556ac7ad4 *(pointer_6 + rbp_13 + 0x250) = value_4\

0x555556ac7ae3 *(pointer_6 + rbp_13 + 0x260) = var_3f0_1\

0x555556ac7af3 *(pointer_6 + rbp_13 + 0x258) = rsi_67\

0x555556ac7b03 *(pointer_6 + rbp_13 + 0x264) = shortfall_discriminant_4.b\

0x555556ac7b13 *(pointer_6 + rbp_13 + 0x268) = size_19.o\

0x555556ac7b2fr15_22->len = len + 1\

0x555556ac7b33int64_tvalue_2 = fill_delta.value\

0x555556ac7b3bint64_tvalue_3 = value_2\

0x555556ac7b43int128_tzmm0_24\

0x555556ac7b43zmm0_24.q = fill_delta.tag\

0x555556ac7b43zmm0_24:8.q = fill_delta.unit\

0x555556ac7b4bvar_8f8 = zmm0_24\

0x555556ac7b5bint64_tr13_8 = var_530_1:8.q\

0x555556ac7b5fvar_9c0:8.q = r13_8\

0x555556ac7b67var_9c8.o = var_538\

0x555556ac7b6cint64_tremaining_shortfall_1 = r13_8 + value_2\

0x555556ac7b6fif (add_overflow(r13_8, value_2))\

0x555556ac8b67panic_overflow_add(&data_5555587fd598)\

0x555556ac7b6felse\

0x555556ac7b7bint64_trax_192\

0x555556ac7b7bint64_trdx_86\

0x555556ac7b7bint128_t* rbx_46\

0x555556ac7b7bstructOptionUnitQty* lhs\

0x555556ac7b7bstructOptionUnitQty* rhs_3\

0x555556ac7b7brax_192, rdx_86, rbx_46, lhs, rhs_3 =\

0x555556ac7b7boption_unit_qty_sub(&var_9c8, &var_8f8)\

0x555556ac7b88if (remaining_shortfall_1 == 0)\

0x555556ac7b88rax_192 = 2\

0x555556ac7b8cvar_538.q = rax_192\

0x555556ac7b94var_530_1.q = rdx_86\

0x555556ac7b9cvar_530_1:8.q = remaining_shortfall_1\

0x555556ac7ba7var_8f8 = *rbx_46\

0x555556ac7bafint64_tremaining_shortfall_4 = remaining_shortfall_1\

0x555556ac7bbfvar_9c8.o = OPTION_UNIT_QTY_NONE\

0x555556ac7bc5var_9c0:8.q = 0\

0x555556ac7bd4int128_t* _ret_3\

0x555556ac7bd4clearinghouse_6, _ret_3 = option_unit_qty_sub(lhs, rhs_3)\

0x555556ac7bd9fill_list_idx_1 = fill_list_idx_3\

0x555556ac7bdefill_list_idx = fill_list_idx_1\

0x555556ac7be6remaining_shortfall = remaining_shortfall_1\

0x555556ac7bf1_ret_2 = _ret_3\

0x555556ac7bf4if (remaining_shortfall_1 == 0)\

0x555556ac7bf4gotolabel_555556ac6ea8\

0x555556ac7bf4continue\

0x555556ac8b74panic_unwrap_none(&data_5555587f81d8)\

0x555556ac8b74noreturn\

0x555556ac8b74break\

0x555556ac6ea8label_555556ac6ea8:\

0x555556ac6ea8rdx_72 = &rdx_72[6]\

0x555556ac6eb4rhs_2 = &var_9c8\

0x555556ac6eb9rdi_99 = var_870\

0x555556ac6ec1clearinghouse_5 = clearinghouse_1\

0x555556ac6ec9if (rdx_72 == &rdi_99[rax_193 * 6])\

0x555556ac6ec9gotolabel_555556ac7c4b\

0x555556ac6e4ebreak\

0x555556ac7c31label_555556ac7c31:\

0x555556ac7c31clearinghouse_5 = clearinghouse_1\

0x555556ac7c3erdi_99 = var_870\

0x555556ac7c46fill_list_idx_1 = fill_list_idx_2\

0x555556ac7c4blabel_555556ac7c4b:\

0x555556ac7c4bfill_list_idx_2 = fill_list_idx_1\

0x555556ac7c5bif (rdi_95 != 0)\

0x555556ac7c6arust_dealloc(rdi_99, rdi_95 * 0x60, 0)\

0x555556ac7c73int128_t* _ret_1 = _ret\

0x555556ac7c7eif (_ret_1 != 0)\

0x555556ac7c99rust_dealloc(counterparty_array, _ret_1 * 0x14, 0)\

0x555556ac6a2bbtree_iter_next_consume(&var_9c8, &var_798)\

0x555556ac6a30rax_140 = var_9c8\

0x555556ac6a38if (rax_140 == 0)\

0x555556ac6a38gotolabel_555556ac7cb4\

0x555556ac8bablabel_555556ac8bab:\

0x555556ac8babhandle_alloc_error_oom(8, 0x1c8)\

0x555556ac8bb8label_555556ac8bb8:\

0x555556ac8bb8panic_unwrap_none(&data_5555587ff698)\

0x555556ac8bb8noreturn\
fn ouq_value(quote: &OptionUnitQty) -> i64 { quote.value }

fn account_value_for_direction(_user: &UserState, _asset_idx: u64, _oracle: &OracleData) -> OptionUnitQty {
    OptionUnitQty { tag: 0, unit: 0, value: 0 }
}

fn margin_and_shortfall(_user: &UserState, _oracle: &OracleData) -> OptionUnitQty {
    OptionUnitQty { tag: 0, unit: 0, value: 0 }
}

fn build_counterparty_fills(_ch: &Clearinghouse, _ctx: &mut AdlFillTracker, _oracle: &mut OracleData, _addr: &[u8; 20], _asset_idx: u64) -> Vec&lt;u8> {
    Vec::new()
}

fn process_counterparty_fill(_ch: &Clearinghouse, _ctx: &mut AdlFillTracker, _oracle: &mut OracleData, _asset_idx: u64, _direction: u8, _byte: u8) -> i64 {
    0
}

fn lookup_user_state&lt;'a>(ch: &'a Clearinghouse, counterparty_addr: &[u8; 20]) -> &'a UserState {
    ch.user_states.get(counterparty_addr).unwrap_or(&ch.default_user_state)
}

fn asset_strict_isolated(ch: &Clearinghouse, asset_idx: u64) -> bool {
    ch.assets.get(asset_idx as usize).map(|a| a.strict_isolated).unwrap_or(false)
}

pub fn clearinghouse_adl_orchestrator(ch: &Clearinghouse, fill_ctx: &mut AdlFillTracker, oracle: &mut OracleData, candidates: &BTreeMap&lt;[u8; 20], u64>) -> BTreeMap&lt;(u64, u8), Vec&lt;u8>> {
    let mut result: BTreeMap&lt;(u64, u8), Vec&lt;u8>> = BTreeMap::new();
    let mut total_shortfall_value: i64 = 0;
    let mut deferred_cross_queue: Vec&lt;([u8; 20], u64)> = Vec::new();

    // 第 1 阶段:对每个候选者进行分类;只有 only_isolated 条目立即排队,
    // 跨保证金(cross-margin)欠资条目累积到 total_shortfall 中。
    let mut pointer = candidates.iter();
    while let Some((counterparty_addr, asset_idx)) = pointer.next() {
        let user_state = lookup_user_state(ch, counterparty_addr);
        let user_shortfall = account_value_for_direction(user_state, *asset_idx, oracle);
        let value = ouq_value(&user_shortfall);
        if value > 0 {
            panic!("Bug! ADL candidate account value was not negative");
        }
        if asset_strict_isolated(ch, *asset_idx) {
            fill_ctx.log_lines.push(String::from("immediately auto-deleveraging only_isolated"));
            deferred_cross_queue.push((*counterparty_addr, *asset_idx));
        } else {
            total_shortfall_value = total_shortfall_value.wrapping_sub(value);
        }
    }

    // 第 2 阶段:门控。超过预算时,对每个候选者进行 ADL;低于预算时,仅对
    // 排队的 only_isolated 条目进行 ADL。
    let remaining_shortfall = ch.adl_shortfall_remaining.value;
    let adl_was_triggered = total_shortfall_value >= remaining_shortfall;
    if adl_was_triggered {
        deferred_cross_queue.clear();
        let mut pointer_1 = candidates.iter();
        while let Some((counterparty_addr, asset_idx)) = pointer_1.next() {
            deferred_cross_queue.push((*counterparty_addr, *asset_idx));
        }
    }

    // 第 3 阶段:针对每个延迟用户,查找状态并构建每个资产的成交数据。
    let mut counterparty_array: Vec&lt;[u8; 20]> = Vec::new();
    let mut pointer_2 = deferred_cross_queue.iter();
    while let Some(&(counterparty_addr, asset_idx)) = pointer_2.next() {
        let user_state = lookup_user_state(ch, &counterparty_addr);
        let cpty_abs_position = margin_and_shortfall(user_state, oracle);
        let _ = cpty_abs_position;
        counterparty_array.push(counterparty_addr);
        let counterparty_info = build_counterparty_fills(ch, fill_ctx, oracle, &counterparty_addr, asset_idx);
        result.insert((asset_idx, 0u8), counterparty_info);
    }
    let counterparty_count = counterparty_array.len();
    let _ = counterparty_count;

    // 第 4 阶段:按(资产,方向)执行成交。
    let mut pointer_3 = result.iter_mut();
    while let Some((&(asset_idx, expected_kind), counterparty_info)) = pointer_3.next() {
        let length = counterparty_info.len();
        let mut i: usize = 0;
        while i &lt; length {
            let cpty_addr_bytes = counterparty_info[i];
            let fill_delta = process_counterparty_fill(ch, fill_ctx, oracle, asset_idx, expected_kind, cpty_addr_bytes);
            let _ = fill_delta;
            i = i.wrapping_add(1);
        }
    }

    if !ch.perform_auto_deleveraging {
        result.clear();
    }
    result
}
use std::collections::{BTreeMap, HashMap};

pub struct OptionUnitQty {
    pub tag: u64,
    pub unit: u64,
    pub value: i64,
}

pub struct UserState {
    pub acct_value: OptionUnitQty,
    pub margin_used: OptionUnitQty,
    pub positions: BTreeMap&lt;u64, [u64; 17]>,
    pub funding_state: OptionUnitQty,
}

pub struct AssetConfig {
    pub coin: String,
    pub strict_isolated: bool,
    pub spot_only: bool,
    pub max_leverage: u16,
    pub asset_flags: u32,
}

pub struct OraclePrice {
    pub mark: u64,
    pub oracle: u64,
    pub mid: u64,
    pub funding_rate: u64,
    pub spot: u64,
    pub last_trade: u64,
    pub min_size: u64,
    pub tick_size: u64,
    pub szi: u64,
    pub usd_value: u64,
    pub interest: u64,
    pub volume: u64,
}

pub struct OracleData {
    pub prices: Vec&lt;OraclePrice>,
    pub recent_oi: BTreeMap&lt;u64, OptionUnitQty>,
}

pub struct AdlFillTracker {
    pub log_lines: Vec&lt;String>,
    pub pending_fills: Vec&lt;u64>,
    pub fill_list_idx: u64,
    pub asset_to_fills: String,
    pub block_time_us: u64,
}

pub struct Clearinghouse {
    pub total_net_deposit: OptionUnitQty,
    pub total_non_bridge_deposit: OptionUnitQty,
    pub adl_shortfall_remaining: OptionUnitQty,
    pub bridge2_withdraw_fee: OptionUnitQty,
    pub default_user_state: UserState,
    pub lookup_asset_ref: u64,
    pub assets: &'static [AssetConfig],
    pub oracle_prices: Vec&lt;OraclePrice>,
    pub oracle_funding: OptionUnitQty,
    pub oracle_misc: OptionUnitQty,
    pub margin_tables: BTreeMap&lt;u64, u64>,
    pub user_states: BTreeMap&lt;[u8; 20], UserState>,
    pub vault_states: HashMap&lt;[u8; 20], u64>,
    pub spot_balances: HashMap&lt;[u8; 20], u64>,
    pub spot_meta: HashMap&lt;u64, u64>,
    pub builder_fees: BTreeMap&lt;u64, u64>,
    pub asset_recent_oi: BTreeMap&lt;u64, u64>,
    pub perform_auto_deleveraging: bool,
}

比率 1:有效杠杆

$$ effective\ leverage = \frac{|notional|}{account\ value} $$

我们可以在下面的反编译中看到,通过 SIMD 噪声,$abs_notional$(无符号)和 $float.d(rbx)$ 是 $account_value$(有符号);除法是 $\frac{abs_notional}{account_value}$。

这告诉我们用户为该仓位承担的风险乘数。

fncompute_adl_ranking_score(ch: &Clearinghouse, who: &Address, asset_id: u64, direction: bool) -> f640x555556abb140 4 / 4· rust 源码 · ✓ 已接受 ×0.43

4 / 4

0x555556abb151uint64_tindex = arg3

0x555556abb157uint64_tlen = *(clearinghouse_ptr + 0xe8)

0x555556abb161if (lenu&lt;= arg3)

0x555556abb161gotolabel_555556abb9ef

0x555556abb167int64_trdx = *(clearinghouse_ptr + 0xe0)

0x555556abb172int64_trsi_1 = index * 0x60

0x555556abb176int64_tentry_notional_4 = *(rdx + rsi_1 + 0x40)

0x555556abb188doublevar_1b8_1[0x2] = *(rdx + rsi_1 + 0x30)

0x555556abb19auint64_tresult_1 = *(rdx + rsi_1 + 0x48)

0x555556abb19fuint64_tresult_3 = result_1

0x555556abb1a7void\* rdx_1 = *(clearinghouse_ptr + 0x128)

0x555556abb1b5Clearinghouse\* ch_1

0x555556abb1b5if (rdx_1 == 0)

0x555556abb277ch_1 = nullptr

0x555556abb1b5else

0x555556abb1c7uint64_tresult_2 = *(clearinghouse_ptr + 0x130)

0x555556abb1ccwhile (true)

0x555556abb1ccvoid\* rsi_2 = rdx_1 + 0x428

0x555556abb1d3uint64_trax_2 = zx.q(*(rdx_1 + 0x506))

0x555556abb1e6uint64_trbp_1 = zx.q((rax_2 &lt;&lt; 2).d) * 5

0x555556abb1efch_1 = rdx_1 - 0x60

0x555556abb1f3uint64_tr13_1 = -1

0x555556abb237booli

0x555556abb237do

0x555556abb203if (rbp_1 == 0)

0x555556abb250r13_1 = rax_2

0x555556abb250gotolabel_555556abb25a

0x555556abb211int32_trax_4 = memcmp(arg2, rsi_2, 0x14)

0x555556abb21bi = rax_4 != 0

0x555556abb223if (rax_4s&lt; 0)

0x555556abb223i = true

0x555556abb226rbp_1 -= 0x14

0x555556abb22ach_1 += 0x60

0x555556abb22er13_1 += 1

0x555556abb231rsi_2 += 0x14

0x555556abb237while (i == 1)

0x555556abb239result_1 = zx.q(i)

0x555556abb23eif (result_1.d == 0)

0x555556abb23ebreak

0x555556abb25alabel_555556abb25a:

0x555556abb25aresult_1 = result_2 - 1

0x555556abb25eif (result_2u&lt; 1)

0x555556abb27cch_1 = nullptr

0x555556abb27cbreak

0x555556abb260result_2 = result_1

0x555556abb26ardx_1 = *(rdx_1 + (r13_1 &lt;&lt; 3) + 0x508)

0x555556abb284Clearinghouse\* ch = clearinghouse_ptr + 0x60

0x555556abb28bif (ch_1 != 0)

0x555556abb28bch = ch_1

0x555556abb28fvoid\* btree_node = *(ch +0x555556abb44fvar\_288.o = \*(btree\_node \+ rbp\_2 \- 0xa0)\
\
0x555556abb454int64\_tvar\_210\_1 = rbx\_2\
\
0x555556abb462doublevar\_208\_1\[0x2\] = \*(btree\_node \+ rbp\_2 \- 0x20)\
\
0x555556abb46fint64\_tvar\_1f8\_1 = \*(btree\_node \+ rbp\_2 \- 0x10)\
\
0x555556abb47cint64\_tvar\_1f0\_1 = rdx\_3\
\
0x555556abb488structOptionUnitQtyvar\_198\
\
0x555556abb488var\_198.value = \*(result\_1 \+ 0x10)\
\
0x555556abb490doublezmm0\[0x2\] = \*result\_1\
\
0x555556abb493var\_198.tag = zmm0\[0\]\
\
0x555556abb493var\_198.unit = zmm0\[1\]\
\
0x555556abb4a3uint64\_tresult\_6 = result\_3\
\
0x555556abb4c5int32\_tresult\
\
0x555556abb4c5int32\_tleverage = compute\_margin\_requirement\_by\_mode(&result, &var\_288, &var\_198, 2, r8\_1.d)\
\
0x555556abb4cfint64\_tentry\_notional\_3 = entry\_notional\
\
0x555556abb4d7int64\_tentry\_notional\_1\
\
0x555556abb4d7int64\_tvar\_1e8\_1\
\
0x555556abb4d7structOptionUnitQtyvar\_1d8\
\
0x555556abb4d7int64\_taccount\_value\
\
0x555556abb4d7int64\_tabs\_notional\
\
0x555556abb4d7uint64\_ttag\
\
0x555556abb4d7uint64\_tunit\
\
0x555556abb4d7if (rbx\_2 != 3)\
\
0x555556abb53evar\_288 = expected\_kind\
\
0x555556abb548uint64\_texpected\_asset\_1 = expected\_asset\
\
0x555556abb552entry\_notional\_1 = entry\_notional\_6\
\
0x555556abb579entry\_notional\_1:8.o = var\_f8\_1\
\
0x555556abb57evar\_268\_1:8.o = var\_e8\_1\
\
0x555556abb584var\_258\_1:8.o = var\_d8\_1\
\
0x555556abb58dvar\_248\_1\[1\].o = var\_c8\_1\
\
0x555556abb59dvar\_238\_1\[1\] = rcx\_2\
\
0x555556abb5aavar\_228\_1\[0\] = btree\_node\_2\
\
0x555556abb5b7var\_228\_1\[1\] = index\_3\
\
0x555556abb5bfint64\_tentry\_notional\_2 = entry\_notional\
\
0x555556abb5c7int64\_tvar\_210\_2 = rbx\_2\
\
0x555556abb5d7doublevar\_208\_2\[0x2\] = var\_118\_1\
\
0x555556abb5e7int64\_tvar\_1f8\_2 = rcx\_3\
\
0x555556abb5f4int64\_tvar\_1f0\_2 = rdx\_3\
\
0x555556abb604var\_1d8.value = entry\_notional\_4\
\
0x555556abb614var\_1d8.tag = var\_1b8\_1\[0\]\
\
0x555556abb614var\_1d8.unit = var\_1b8\_1\[1\]\
\
0x555556abb61cuint64\_tresult\_5 = result\_3\
\
0x555556abb62centry\_notional = &var\_288\
\
0x555556abb641compute\_margin\_requirement\_by\_mode(&var\_198, &var\_288, &var\_1d8, 1, leverage)\
\
0x555556abb647tag = var\_198.tag\
\
0x555556abb653if (tag == 3)\
\
0x555556abb653gotolabel\_555556abbaa8\
\
0x555556abb659unit = var\_198.unit\
\
0x555556abb661abs\_notional = var\_198.value\
\
0x555556abb679int64\_tvar\_160\
\
0x555556abb679var\_1e8\_1 = var\_160\
\
0x555556abb681int64\_taccount\_value\_1\
\
0x555556abb681account\_value = account\_value\_1\
\
0x555556abb4d7else\
\
0x555556abb4f1compute\_user\_margin\_and\_shortfall(&var\_288, ch, clearinghouse\_ptr \+ 0xd8, nullptr)\
\
0x555556abb4ffif (result != 3)\
\
0x555556abba74var\_288 = &data\_5555587f7ee0\
\
0x555556abba79int64\_tvar\_280 = 1\
\
0x555556abba82entry\_notional\_1 = &var\_288\
\
0x555556abba8aentry\_notional\_1:8.o = zx.o(0)\
\
0x555556abba9bcore::panicking::panic\_fmt::h62f63d096dd276af(&var\_288, &data\_5555587f7ef0)\
\
0x555556abbaa8label\_555556abbaa8:\
\
0x555556abbaa8var\_288 = &data\_5555587f7f20\
\
0x555556abbaadint64\_tvar\_280\_1 = 1\
\
0x555556abbab6entry\_notional\_1 = entry\_notional\
\
0x555556abbabeentry\_notional\_1:8.o = zx.o(0)\
\
0x555556abbacfint64\_t\\* rcx\_9\
\
0x555556abbacfint64\_t\\* rdx\_13\
\
0x555556abbacfvoid\\* rsi\_14\
\
0x555556abbacfint64\_t\\* rdi\_14\
\
0x555556abbacfrcx\_9, rdx\_13, rsi\_14, rdi\_14 =\
\
0x555556abbacfcore::panicking::panic\_fmt::h62f63d096dd276af(&var\_288, &data\_5555587f7f30)\
\
0x555556abbadfreturnsub\_555556abbae0(rdi\_14, rsi\_14, rdx\_13, rcx\_9) \_\_tailcall\
\
0x555556abb505tag = var\_288\
\
0x555556abb50auint64\_tunit\_1\
\
0x555556abb50aunit = unit\_1\
\
0x555556abb50fabs\_notional = abs\_notional\_1\
\
0x555556abb524int64\_tvar\_68\
\
0x555556abb524var\_1e8\_1 = var\_68\
\
0x555556abb52cint64\_taccount\_value\_2\
\
0x555556abb52caccount\_value = account\_value\_2\
\
0x555556abb68evar\_198.tag = tag\
\
0x555556abb696var\_198.unit = unit\
\
0x555556abb69evar\_198.value = abs\_notional\
\
0x555556abb6aevar\_288.o = OPTION\_UNIT\_QTY\_NONE\
\
0x555556abb6b4entry\_notional\_1 = 0\
\
0x555556abb6caint64\_trbx\_3\
\
0x555556abb6caint64\_trbp\_3\
\
0x555556abb6caint64\_tr14\_1\
\
0x555556abb6cauint64\_tzmm0\_3\[0x2\]\
\
0x555556abb6carbx\_3, rbp\_3, r14\_1, index, zmm0\_3 = option\_unit\_qty\_add\_a(&var\_198, &var\_288)\
\
0x555556abb6d3int64\_tratio1\_margin\_ratio\
\
0x555556abb6d3ratio1\_margin\_ratio.o = \_mm\_xor\_pd(zmm0\_3, zmm0\_3)\
\
0x555556abb6dcif (rbx\_3s\> 0)\
\
0x555556abb6e6if (index != 2)\
\
0x555556abb6e8var\_1d8.tag = index\
\
0x555556abb6f8var\_1d8.unit = var\_1e8\_1\
\
0x555556abb704if (tag == 2)\
\
0x555556abba5apanic\_unwrap\_none(&data\_5555587fefc8)\
\
0x555556abba5anoreturn\
\
0x555556abb70avar\_198.tag = tag\
\
0x555556abb712var\_198.unit = r14\_1\
\
0x555556abb72cif (index != tag \|\| (tag == 1 && var\_1e8\_1 != r14\_1))\
\
0x555556abb71dgotolabel\_555556abb9f5\
\
0x555556abb73fzmm0\_3 = \_\_subpd\_xmmpd\_mempd(\
\
0x555556abb73f\_\_unpcklps\_xmmps\_memdq(zx.o(account\_value), data\_555557dd12e0\[0x20\]\[0\].o),\
\
0x555556abb73fdata\_555557dd1310)\
\
0x555556abb74bdoublezmm1\_1\[0x2\] = \_mm\_unpackhi\_pd(zmm0\_3, zmm0\_3\[0\])\
\
0x555556abb74fzmm1\_1\[0\] = zmm1\_1\[0\] f\+ zmm0\_3\[0\]\
\
0x555556abb753zmm0\_3 = zx.o(0)\
\
0x555556abb756zmm0\_3\[0\] = float.d(rbx\_3)\
\
0x555556abb75bzmm1\_1\[0\] = zmm1\_1\[0\] f/ zmm0\_3\[0\]\
\
0x555556abb75fratio1\_margin\_ratio.o = zmm1\_1\
\
0x555556abb76dint64\_trbx\_4 = \*(btree\_node \+ rbp\_3 \- 0x30)\
\
0x555556abb772zmm0\_3 = \*(btree\_node \+ rbp\_3 \- 0x40)\
\
0x555556abb775var\_198.tag = zmm0\_3\[0\]\
\
0x555556abb775var\_198.unit = zmm0\_3\[1\]\
\
0x555556abb77dvar\_198.value = rbx\_4\
\
0x555556abb78dvar\_288.o = OPTION\_UNIT\_QTY\_NONE\
\
0x555556abb793entry\_notional\_1 = 0\
\
0x555556abb7a9uint64\_tzmm2\_2\[0x2\]\
\
0x555556abb7a9result\_1, zmm2\_2 = option\_unit\_qty\_add\_b(&var\_198, &var\_288)\
\
0x555556abb7aezmm2\_2 = \_mm\_xor\_pd(zmm2\_2, zmm2\_2)\
\
0x555556abb7b5if (rbx\_4 == 0)\
\
0x555556abb7b5gotolabel\_555556abb952\
\
0x555556abb7c6if (result\_3s&lt; 0)\
\
0x555556abba40panic\_unwrap\_err(\
\
0x555556abba40"called \`Result::unwrap()\` on an \`Err\` "\
\
0x555556abba40"\
\
0x555556abba40value/rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/iter/traits/accum."\
\
0x555556abba40"rsTryFromIntErrorOkErr/home/ubuntu/.cargo/registry/src/index.crates."\
\
0x555556abba40"io-6f17d22bba15001f/serde\_jsonrc-0.1.0/src/read.rsPoisonErrorullrue/home/ubuntu/."\
\
0x555556abba40"cargo/registry/src/index.crates.io-6f17d22bba15001f/serde\_jsonrc-0.1.0/src/de.rs/home/ubuntu/."\
\
0x555556abba40"cargo/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.14.5/src/raw/mod."\
\
0x555556abba40"rs/home/ubuntu/hl/code\_Testnet/l1/src/qtys.rsassertion failed:…",\
\
0x555556abba400x2b, &var\_288, &data\_5555587fdcf0, &data\_5555587fe640)\
\
0x555556abb7c6else\
\
0x555556abb7ccint64\_trbx\_5 = result\_3 \\* entry\_notional\_6\
\
0x555556abb7ccboolo\_1 = unimplemented {imulrbx, qword \[rsp+0x18\]}\
\
0x555556abb7e8if (not(o\_1))\
\
0x555556abb7f6entry\_notional\_1 = entry\_notional\_4\
\
0x555556abb804var\_288.o = var\_1b8\_1\
\
0x555556abb80fuint64\_trax\_23\
\
0x555556abb80fint64\_trdx\_8\
\
0x555556abb80frax\_23, rdx\_8 = oracle\_price\_type\_validate(&var\_288, expected\_kind, expected\_asset)\
\
0x555556abb817if (rbx\_5 != 0)\
\
0x555556abb81dvar\_198.unit = rdx\_8\
\
0x555556abb825var\_198.value = rbx\_5\
\
0x555556abb82dvar\_198.tag = rax\_23\
\
0x555556abb838if (entry\_notional\_3s&lt; 0)\
\
0x555556abb838gotolabel\_555556abb9b5\
\
0x555556abb838gotolabel\_555556abb83e\
\
0x555556abb97dvar\_198.value = rbx\_5\
\
0x555556abb985var\_198.tag = 2\
\
0x555556abb990if (entry\_notional\_3s>= 0)\
\
0x555556abb83elabel\_555556abb83e:\
\
0x555556abb841if (arg4 == 0)\
\
0x555556abb878index = index\_3\
\
0x555556abb87dbtree\_node = btree\_node\_2\
\
0x555556abb882if (entry\_notional\_3 == 0)\
\
0x555556abb882gotolabel\_555556abb9bb\
\
0x555556abb88bint64\_tentry\_notional\_5 = neg.q(entry\_notional\_3)\
\
0x555556abb88eentry\_notional\_1 = entry\_notional\_5\
\
0x555556abb893var\_288 = btree\_node\
\
0x555556abb898uint64\_tindex\_2 = index\
\
0x555556abb8a0if (add\_overflow(rbx\_5, neg.q(entry\_notional\_5)))\
\
0x555556abb8a0gotolabel\_555556abb9df\
\
0x555556abb8a0gotolabel\_555556abb8b3\
\
0x555556abb846uint64\_tbtree\_node\_1 = 2\
\
0x555556abb84bbtree\_node = btree\_node\_2\
\
0x555556abb850if (entry\_notional\_3 != 0)\
\
0x555556abb850btree\_node\_1 = btree\_node\
\
0x555556abb854var\_288 = btree\_node\_1\
\
0x555556abb859index = index\_3\
\
0x555556abb85euint64\_tindex\_1 = index\
\
0x555556abb863entry\_notional\_1 = entry\_notional\_3\
\
0x555556abb86eif (not(add\_overflow(rbx\_5, neg.q(entry\_notional\_3))))\
\
0x555556abb86egotolabel\_555556abb8b3\
\
0x555556abb86egotolabel\_555556abb9df\
\
0x555556abb9b5label\_555556abb9b5:\
\
0x555556abb9b5panic\_unwrap\_err(\
\
0x555556abb9b5"called \`Result::unwrap()\` on an \`Err\` "\
\
0x555556abb9b5"value/rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/iter/traits/accum."\
\
0x555556abb9b5"rsTryFromIntErrorOkErr/home/ubuntu/.cargo/registry/src/index.crates."\
\
0x555556abb9b5"io-6f17d22bba15001f/serde\_jsonrc-0.1.0/src/read.rsPoisonErrorullrue/home/ubuntu/."\
\
0x555556abb9b5"cargo/registry/src/index.crates.io-6f17d22bba15001f/serde\_jsonrc-0.1.0/src/de."\
\
0x555556abb9b5"rs/home/ubuntu/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.14."\
\
0x555556abb9b5"5/src/raw/mod.rs/home/ubuntu/hl/code\_Testnet/l1/src/qtys.rsassertion failed:…",\
\
0x555556abb9b50x2b, &var\_288, &data\_5555587fdcf0, &data\_5555587ff0e0)\
\
0x555556abb9bblabel\_555556abb9bb:\
\
0x555556abb9bbentry\_notional\_1 = 0\
\
0x555556abb9c4var\_288 = 2\
\
0x555556abb9d2if (not(add\_overflow(rbx\_5, 0)))\
\
0x555556abb8b3label\_555556abb8b3:\
\
0x555556abb8b3int64\_trdx\_9\
\
0x555556abb8b3int64\_trbx\_7\
\
0x555556abb8b3int64\_tr14\_3\
\
0x555556abb8b3int64\_tr15\_3\
\
0x555556abb8b3result\_1, rdx\_9, rbx\_7, r14\_3, r15\_3 = option\_unit\_qty\_add_a(&var\_198, &var\_288)\
\
0x555556abb8b8int64\_trcx\_7 = 0\
\
0x555556abb8bduint64\_tresult\_4 = 2\
\
0x555556abb8c2if (rbx\_7s\> 0)\
\
0x555556abb8c2result\_4 = result\_1\
\
0x555556abb8c6if (rbx\_7s\> 0)\
\
0x555556abb8c6rcx\_7 = rbx\_7\
\
0x555556abb8cdif (r14\_3 == 0)\
\
0x555556abba67panic\_unwrap\_none(&data\_5555587f7f08)\
\
0x555556abba67noreturn\
\
0x555556abb8d7if (result\_4 != 2)\
\
0x555556abb8d9var\_1d8.tag = result\_4\
\
0x555556abb8e1var\_1d8.unit = rdx\_9\
\
0x555556abb8edif (btree\_node == 2)\
\
0x555556abba5apanic\_unwrap\_none(&data\_5555587fefc8)\
\
0x555556abba5anoreturn\
\
0x555556abb8f3var\_198.tag = btree\_node\
\
0x555556abb8fbvar\_198.unit = r15\_3\
\
0x555556abb915if (result\_4 != btree\_node \|\| (btree\_node == 1 && rdx\_9 != r15\_3))\
\
0x555556abb906gotolabel\_555556abb9f5\
\
0x555556abb928doublezmm0\_4\[0x2\] = \_\_subpd\_xmmpd\_mempd(\
\
0x555556abb928\_\_punpckldq\_xmmdq\_memdq(zx.o(rcx\_7), data\_555557dd12e0\[0x20\]\[0\].o),\
\
0x555556abb928data\_555557dd1310)\
\
0x555556abb934zmm2\_2 = \_mm\_unpackhi\_pd(zmm0\_4, zmm0\_4\[0\])\
\
0x555556abb938zmm2\_2\[0\] = zmm2\_2\[0\] f\+ zmm0\_4\[0\]\
\
0x555556abb93czmm0\_4 = zx.o(0)\
\
0x555556abb93fzmm0\_4\[0\] = float.d(r14\_3)\
\
0x555556abb944zmm2\_2\[0\] = zmm2\_2\[0\] f/ zmm0\_4\[0\]\
\
0x555556abb952label\_555556abb952:\
\
0x555556abb952doublezmm1\_2\[0x2\] = \_\_maxpd\_xmmpd\_mempd(\
\
0x555556abb952\_mm\_unpacklo\_pd(ratio1\_margin\_ratio.o, zmm2\_2\[0\]), ADL\_SCORE_CLAMP\_1E\_NEG8)\
\
0x555556abb95ezmm0\_4 = \_mm\_unpackhi\_pd(zmm1\_2, zmm1\_2\[0\])\
\
0x555556abb962zmm0\_4\[0\] = zmm0\_4\[0\] \\* zmm1\_2\[0\]\
\
0x555556abb977returnresult\_1\
\
0x555556abb9dflabel\_555556abb9df:\
\
0x555556abb9dflen = panic\_overflow\_sub(&data\_5555587fd610)\
\
0x555556abb9eflabel\_555556abb9ef:\
\
0x555556abb9efpanic\_index\_out\_of\_bounds(index, len, &data\_5555587fede8)\
\
0x555556abb9f5label\_555556abb9f5:\
\
0x555556abb9f5var\_288 = 0\
\
0x555556abba1cpanic\_unit\_mismatch\_assertion(0, &var\_1d8, &var\_198, &var\_288)\
\
0x555556abba40panic\_unwrap\_err(\
\
0x555556abba40"called \`Result::unwrap()\` on an \`Err\` "\
\
0x555556abba40"value/rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/iter/traits/accum."\
\
0x555556abba40"rsTryFromIntErrorOkErr/home/ubuntu/.cargo/registry/src/index.crates."\
\
0x555556abba40"io-6f17d22bba15001f/serde\_jsonrc-0.1.0/src/read.rsPoisonErrorullrue/home/ubuntu/."\
\
0x555556abba40"cargo/registry/src/index.crates.io-6f17d22bba15001f/serde\_jsonrc-0.1.0/src/de."\
\
0x555556abba40"rs/home/ubuntu/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.14."\
\
0x555556abba40"5/src/raw/mod.rs/home/ubuntu/hl/code\_Testnet/l1/src/qtys.rsassertion failed:…",\
\
0x555556abba400x2b, &var\_288, &data\_5555587fdcf0, &data\_5555587fe640)\
\
0x555556abba4dpanic\_overflow\_mul(&data\_5555587fe658)\
\
0x555556abba5apanic\_unwrap\_none(&data\_5555587fefc8)\
\
0x555556abba5anoreturn\
1fn lookup_user_state&lt;'a>(ch: &'a Clearinghouse, who: &Address) -> Option&lt;&'a UserState> {
2    let _ = (ch, who);
3    None
4}
5
6pub fn compute_adl_ranking_score(ch: &Clearinghouse, who: &Address, asset_id: u64, direction: bool) -> f64 {
7    let index = asset_id as usize;
8    let len = ch.meta.universe.len();
9    if index >= len {
10        panic!("index out of bounds: {}/{}", index, len);
11    }
12    let expected_asset = &ch.meta.universe[index];
13    let entry_notional_4 = expected_asset.oracle_price.qty;
14    let result_1 = expected_asset.oracle_price.unit;
15    let result_3 = result_1;
16
17    let ch_1 = lookup_user_state(ch, who);
18    let result_2 = ch_1.unwrap_or(&ch.default_user_state);
19    let btree_node = &result_2.positions;
20
21    let mut entry_notional_3: i64 = 0;
22    let mut signed_notional_product: i64 = 0;
23    let mut unit: u64 = 0;
24    let mut tag: u64 = 0;
25    let mut i: usize = 0;
26    while i &lt; btree_node.len() {
27        let position_value = &btree_node[i];
28        if position_value.entry_notional.unit == result_3 {
29            entry_notional_3 = position_value.entry_notional.qty;
30            signed_notional_product = position_value.signed_notional.qty;
31            unit = position_value.signed_notional.unit;
32            tag = 2;
33            break;
34        }
35        i += 1;
36    }
37
38    let entry_notional_5 = -entry_notional_3;
39    let entry_notional_1 = if direction { entry_notional_5 } else { entry_notional_3 };
40
41    let abs_notional = (signed_notional_product as f64).abs();
42    let account_value = result_2.account_value_unit.qty as f64;
43    let ratio1_margin_ratio = (abs_notional / account_value).max(1e-8);
44
45    let result_4 = (signed_notional_product + entry_notional_1).max(0) as f64;
46    let result = ratio1_margin_ratio * (result_4 / (entry_notional_4 as f64)).max(1e-8);
47    let _ = (unit, tag);
48    result
49}
use std::collections::{BTreeMap, HashMap};

#[repr(C)]
pub struct Address {
    pub hi: u64,
    pub mid: u64,
    pub lo: u32,
}

#[repr(C)]
pub struct UnitQty {
    pub unit: u64,
    pub qty: i64,
}

#[repr(C)]
pub struct OptionUnitQty {
    pub tag: u64,
    pub unit: u64,
    pub value: i64,
}

#[repr(C)]
pub struct Asset {
    pub name: String,
    pub sz_decimals: u32,
    pub margin_table_id: u32,
    pub oracle_price: UnitQty,
    pub mark_px: UnitQty,
    pub funding_rate: UnitQty,
    pub last_growth_mode_change_time: Option&lt;u64>,
}

#[repr(C)]
pub struct PerpPosition {
    pub signed_notional: UnitQty,
    pub entry_notional: UnitQty,
    pub entry_funding: UnitQty,
    pub margin_mode_tag: UnitQty,
    pub accumulated_margin: UnitQty,
    pub leverage_config: UnitQty,
    pub maintenance_margin: UnitQty,
    pub initial_margin: UnitQty,
    pub realized_pnl: UnitQty,
    pub fee_paid: UnitQty,
}

#[repr(C)]
pub struct UserState {
    pub equity_balance: UnitQty,
    pub vault_balance: UnitQty,
    pub vault_metadata: UnitQty,
    pub positions: Vec&lt;PerpPosition>,
    pub account_value_unit: UnitQty,
    pub margin_summary: UnitQty,
}

#[repr(C)]
pub struct PerAssetMargin {
    pub recent_prices: Vec&lt;UnitQty>,
    pub price_index: HashMap&lt;u64, u64>,
    pub volume_24h: UnitQty,
    pub oracle_average: UnitQty,
    pub recent_funding: Vec&lt;UnitQty>,
    pub trade_log: HashMap&lt;u64, UnitQty>,
    pub aggregated_flags: UnitQty,
    pub aggregated_state: UnitQty,
    pub last_change: u64,
}

#[repr(C)]
pub struct Meta {
    pub universe: Vec&lt;Asset>,
    pub pdi: u64,
    pub margin_table_id_to_margin_table: Vec&lt;u64>,
    pub collateral_token_id: u64,
    pub collateral_is_aligned_quote_token: bool,
    pub collateral_token_name: String,
    pub asset_id_to_pair: Vec&lt;u64>,
}

#[repr(C)]
pub struct Clearinghouse {
    pub total_net_deposit: UnitQty,
    pub total_non_bridge_deposit: UnitQty,
    pub adl_shortfall_remaining: UnitQty,
    pub usdc_ntl_scale: UnitQty,
    pub max_withdraw_leverage: u64,
    pub last_set_global_time: u64,
    pub default_user_state: UserState,
    pub oracle: Vec&lt;u8>,
    pub meta: Meta,
    pub user_states: Vec&lt;UserState>,
    pub daily_exchange_scaled_and_raw_vlms: Vec&lt;u64>,
    pub override_max_signed_distances_from_oracle: Vec&lt;u64>,
    pub isolated_external: Vec&lt;u64>,
    pub isolated_oracle: Vec&lt;u64>,
    pub halted_assets: Vec&lt;u64>,
    pub znfn: Vec&lt;u64>,
    pub moh: HashMap&lt;u64, u64>,
    pub fees: Vec&lt;u64>,
    pub funding_state: HashMap&lt;u64, u64>,
    pub vault_states: Vec&lt;u64>,
    pub liquidator_set: BTreeMap&lt;Address, u64>,
    pub recent_oracle_updates: Vec&lt;UnitQty>,
    pub perform_auto_deleveraging: bool,
    pub asset_margin_states: [PerAssetMargin; 97],
    pub last_recovery_checkpoint: UnitQty,
    pub global_volume_aggregate: UnitQty,
    pub recovery_history: Vec&lt;UnitQty>,
    pub spot_state_registry: HashMap&lt;u64, UnitQty>,
}

比例 2:利润率

$$ profit\ ratio = \frac{\max(pnl,0)}{entry\ notional} $$

它使用入场名义价值 (r14_2) 作为除数。在除法之前,PNL 被限制为非负数。

这基本上告诉我们用户的下注表现如何。

0x555556abb76d0x555556abb76d 基线· 未触动的 HLILT 思考

基线

0x555556abb76duint64\_tcompute\_adl\_ranking\_score(void\\* clearinghouse\_ptr, int64\_targ2, int64\_targ3, chararg4)

{

0x555556abb151uint64\_tindex = arg3

0x555556abb157uint64\_tlen = \*(clearinghouse\_ptr \+ 0xe8)

0x555556abb161if (lenu&lt;= arg3)

0x555556abb161gotolabel\_555556abb9ef

0x555556abb167int64\_trdx = \*(clearinghouse\_ptr \+ 0xe0)

0x555556abb172int64\_trsi\_1 = index \\* 0x60

0x555556abb176int64\_tentry\_notional\_4 = \*(rdx \+ rsi\_1 \+ 0x40)

0x555556abb188doublevar\_1b8\_1\[0x2\] = \*(rdx \+ rsi\_1 \+ 0x30)

0x555556abb19auint64\_tresult\_1 = \*(rdx \+ rsi\_1 \+ 0x48)

0x555556abb19fuint64\_tresult\_3 = result\_1

0x555556abb1a7void\\* rdx\_1 = \*(clearinghouse\_ptr \+ 0x128)

0x555556abb1b5Clearinghouse\\* ch\_1

0x555556abb1b5if (rdx\_1 == 0)

0x555556abb277ch\_1 = nullptr

0x555556abb1b5else

0x555556abb1c7uint64\_tresult\_2 = \*(clearinghouse\_ptr \+ 0x130)

0x555556abb1ccwhile (true)

0x555556abb1ccvoid\\* rsi\_2 = rdx\_1 \+ 0x428

0x555556abb1d3uint64\_trax\_2 = zx.q(\*(rdx\_1 \+ 0x506))

0x555556abb1e6uint64\_trbp\_1 = zx.q((rax\_2 &lt;&lt; 2).d) \\* 5

0x555556abb1efch\_1 = rdx\_1 \- 0x60

0x555556abb1f3uint64\_tr13\_1 = -1

0x555556abb237booli

0x555556abb237do

0x555556abb203if (rbp\_1 == 0)

0x555556abb250r13\_1 = rax\_2

0x555556abb250gotolabel\_555556abb25a

0x555556abb211int32\_trax\_4 = memcmp(arg2, rsi\_2, 0x14)

0x555556abb21bi = rax\_4 != 0

0x555556abb223if (rax\_4s&lt; 0)

0x555556abb223i = true

0x555556abb226rbp\_1 -= 0x14

0x555556abb22ach\_1 += 0x60

0x555556abb22er13\_1 += 1

0x555556abb231rsi\_2 += 0x14

0x555556abb237while (i == 1)

0x555556abb239result\_1 = zx.q(i)

0x555556abb23eif (result\_1.d == 0)

0x555556abb23ebreak

0x555556abb25alabel\_555556abb25a:

0x555556abb25aresult\_1 = result\_2 \- 1

0x555556abb25eif (result\_2u&lt; 1)

0x555556abb27cch\_1 = nullptr

0x555556abb27cbreak

0x555556abb260result\_2 = result\_1

0x555556abb26ardx\_1 = \*(rdx\_1 \+ (r13\_1 &lt;&lt; 3) \+ 0x508)

0x555556abb284Clearinghouse\\* ch = clearinghouse\_ptr \+ 0x60

0x555556abb28bif (ch\_1 != 0)

0x555556abb28bch = ch\_1

0x555556abb28fvoid\\* btree\_node = \*(ch \+ 0x30)

0x555556abb299if (btree\_node == 0)

0x555556abb977returnresult\_1

0x555556abb2b8result\_1 = rdx \+ rsi\_1 \+ 0x30

0x555556abb2bcint64\_trcx\_1 = \*(ch \+ 0x38)

0x555556abb2c5int64\_trbp\_2

0x555556abb2c5uint64\_tr8\_1

0x555556abb2c5while (true)

0x555556abb2c5uint64\_trdi\_2 = zx.q(\*(btree\_node \+ 0x742))

0x555556abb2d3r8\_1 = zx.q(rdi\_2.d &lt;&lt; 5) \\* 5

0x555556abb2d7uint64\_trsi\_5 = -1

0x555556abb2derbp\_2 = 0

0x555556abb306booli\_1

0x555556abb306do

0x555556abb2e3if (r8\_1 == rbp\_2)

0x555556abb320rsi\_5 = rdi\_2

0x555556abb320gotolabel\_555556abb323

0x555556abb2e8int64\_ttemp2\_1 = \*(btree\_node \+ (rsi\_5 &lt;&lt; 3) \+ 0x6f0)

0x555556abb2f0i\_1 = temp2\_1 != index

0x555556abb2f4if (temp2\_1u\> index)

0x555556abb2f4i\_1 = true

0x555556abb2f8rsi\_5 += 1

0x555556abb2fbrbp\_2 += 0xa0

0x555556abb306while (i\_1 == 1)

0x555556abb30eif (zx.d(i\_1) == 0)

0x555556abb30ebreak

0x555556abb323label\_555556abb323:

0x555556abb323int64\_ttemp3\_1 = rcx\_1

0x555556abb323rcx\_1 -= 1

0x555556abb327if (temp3\_1u&lt; 1)

0x555556abb977returnresult\_1

0x555556abb32dbtree\_node = \*(btree\_node \+ (rsi\_5 &lt;&lt; 3) \+ 0x748)

0x555556abb337uint64\_texpected\_kind = \*(btree\_node \+ rbp\_2 \- 0xa0)

0x555556abb344uint64\_texpected\_asset = \*(btree\_node \+ rbp\_2 \- 0x98)

0x555556abb351int64\_tentry\_notional\_6 = \*(btree\_node \+ rbp\_2 \- 0x90)

0x555556abb35eint64\_trcx\_2 = \*(btree\_node \+ rbp\_2 \- 0x48)

0x555556abb371doublevar\_c8\_1\[0x2\] = \*(btree\_node \+ rbp\_2 \- 0x58)

0x555556abb37fdoublevar\_d8\_1\[0x2\] = \*(btree\_node \+ rbp\_2 \- 0x68)

0x555556abb38ddoublevar\_e8\_1\[0x2\] = \*(btree\_node \+ rbp\_2 \- 0x78)

0x555556abb39edoublevar\_f8\_1\[0x2\] = \*(btree\_node \+ rbp\_2 \- 0x88)

0x555556abb3a6void\\* btree\_node\_2 = \*(btree\_node \+ rbp\_2 \- 0x40)

0x555556abb3b0uint64\_tindex\_3 = \*(btree\_node \+ rbp\_2 \- 0x38)

0x555556abb3baint64\_tentry\_notional = \*(btree\_node \+ rbp\_2 \- 0x30)

0x555556abb3bfint64\_trbx\_2 = \*(btree\_node \+ rbp\_2 \- 0x28)

0x555556abb3c4int64\_trcx\_3 = \*(btree\_node \+ rbp\_2 \- 0x10)

0x555556abb3d7doublevar\_118\_1\[0x2\] = \*(btree\_node \+ rbp\_2 \- 0x20)

0x555556abb3dfint64\_trdx\_3 = \*(btree\_node \+ rbp\_2 \- 8)

0x555556abb3e9int64\_tvar\_218\_1 = \*(btree\_node \+ rbp\_2 \- 0x30)

0x555556abb3f7doublevar\_228\_1\[0x2\] = \*(btree\_node \+ rbp\_2 \- 0x40)

0x555556abb405doublevar\_238\_1\[0x2\] = \*(btree\_node \+ rbp\_2 \- 0x50)

0x555556abb413doublevar\_248\_1\[0x2\] = \*(btree\_node \+ rbp\_2 \- 0x60)

0x555556abb424int64\_tabs\_notional\_1 = (\*(btree\_node \+ rbp\_2 \- 0x90)).q

0x555556abb43bint128\_tvar\_258\_1 = \*(btree\_node \+ rbp\_2 \- 0x70)

0x555556abb443int128\_tvar\_268\_1 = \*(btree\_node \+ rbp\_2 \- 0x80)

0x555556abb44fuint64\_tvar\_288

0x555556abb44fvar\_288.o = \*(btree\_node \+ rbp\_2 \- 0xa0)

0x555556abb454int64\_tvar\_210\_1 = rbx\_2

0x555556abb462doublevar\_208\_1\[0x2\] = \*(btree\_node \+ rbp\_2 \- 0x20)

0x555556abb46fint64\_tvar\_1f8\_1 = \*(btree\_node \+ rbp\_2 \- 0x10)

0x555556abb47cint64\_tvar\_1f0\_1 = rdx\_3

0x555556abb488structOptionUnitQtyvar\_198

0x555556abb488var\_198.value = \*(result\_1 \+ 0x10)

0x555556abb490doublezmm0\[0x2\] = \*result\_1

0x555556abb493var\_198.tag = zmm0\[0\]

0x555556abb493var\_198.unit = zmm0\[1\]

0x555556abb4a3uint64\_tresult\_6 = result\_3

0x555556abb4c5int32\_tresult

0x555556abb4c5int32\_tleverage = compute\_margin\_requirement\_by\_mode(&result, &var\_288, &var\_198, 2, r8\_1.d)

0x555556abb4cfint64\_tentry\_notional\_3 = entry\_notional

0x555556abb4d7int64\_tentry\_notional\_1

0x555556abb4d7int64\_tvar\_1e8\_1

0x555556abb4d7structOptionUnitQtyvar\_1d8

0x555556abb4d7int64\_taccount\_value

0x555556abb4d7int64\_tabs\_notional

0x555556abb4d7uint64\_ttag

0x555556abb4d7uint64\_tunit

0x555556abb4d7if (rbx\_2 != 3)

0x555556abb53evar\_288 = expected\_kind

0x555556abb548uint64\_texpected\_asset\_1 = expected\_asset

0x555556abb552entry\_notional\_1 = entry\_notional\_6

0x555556abb579entry\_notional\_1:8.o = var\_f8\_1

0x555556abb57evar\_268\_1:8.o = var\_e8\_1

0x555556abb584var\_258\_1:8.o = var\_d8\_1

0x555556abb58dvar\_248\_1\[1\].o = var\_c8\_1

0x555556abb59dvar\_238\_1\[1\] = rcx\_2

0x555556abb5aavar\_228\_1\[0\] = btree\_node\_2

0x555556abb5b7var\_228\_1\[1\] = index\_3

0x555556abb5bfint64\_tentry\_notional\_2 = entry\_notional

0x555556abb5c7int64\_tvar\_210\_2 = rbx\_2

0x555556abb5d7doublevar\_208\_2\[0x2\] = var\_118\_1

0x555556abb5e7int64\_tvar\_1f8\_2 = rcx\_3

0x555556abb5f4int64\_tvar\_1f0\_2 = rdx\_3

0x555556abb604var\_1d8.value = entry\_notional\_4

0x555556abb614var\_1d8.tag = var\_1b8\_1\[0\]

0x555556abb614var\_1d8.unit = var\_1b8\_1\[1\]

0x555556abb61cuint64\_tresult\_5 = result\_3

0x555556abb62centry\_notional = &var\_288

0x555556abb641compute\_margin\_requirement\_by\_mode(&var\_198, &var\_288, &var\_1d8, 1, leverage)

0x555556abb647tag = var\_198.tag

0x555556abb653if (tag == 3)

0x555556abb653gotolabel\_555556abbaa8

0x555556abb659unit = var\_198.unit

0x555556abb661abs\_notional = var\_198.value

0x555556abb679int64\_tvar\_160

0x555556abb679var\_1e8\_1 = var\_160

0x555556abb681int64\_taccount\_value\_1

0x555556abb681account\_value = account\_value\_1

0x555556abb4d7else

0x555556abb4f1compute\_user\_margin\_and\_shortfall(&var\_288, ch, clearinghouse\_ptr \+ 0xd8, nullptr)

0x555556abb4ffif (result != 3)

0x555556abba74var\_288 = &data\_5555587f7ee0

0x555556abba79int64\_tvar\_280 = 1

0x555556abba82entry\_notional\_1 = &var\_288

0x555556abba8aentry\_notional\_1:8.o = zx.o(0)

0x555556abba9bcore::panicking::panic\_fmt::h62f63d096dd276af(&var\_288, &data\_5555587f7ef0)

0x555556abbaa8label\_555556abbaa8:

0x555556abbaa8var\_288 = &data\_5555587f7f20

0x555556abbaadint64\_tvar\_280\_1 = 1

0x555556abbab6entry\_notional\_1 = entry\_notional

0x555556abbabeentry\_notional\_1:8.o = zx.o(0)

0x555556abbacfint64\_t\\* rcx\_9

0x555556abbacfint64\_t\\* rdx\_13

0x555556abbacfvoid\\* rsi\_14

0x555556abbacfint64\_t\\* rdi\_14

0x555556abbacfrcx\_9, rdx\_13, rsi\_14, rdi\_14 =

0x555556abbacfcore::panicking::panic\_fmt::h62f63d096dd276af(&var\_288, &data\_5555587f7f30)

0x555556abbadfreturnsub\_555556abbae0(rdi\_14, rsi\_14, rdx\_13, rcx\_9) \_\_tailcall

0x555556abb505tag = var\_288

0x555556abb50auint64\_tunit\_1

0x555556abb50aunit = unit\_1

0x555556abb50fabs\_notional = abs\_notional\_1

0x555556abb524int64\_tvar\_68

0x555556abb524var\_1e8\_1 = var\_68

0x555556abb52cint64\_taccount\_value\_2

0x555556abb52caccount\_value = account\_value\_2

0x555556abb68evar\_198.tag = tag

0x555556abb696var\_198.unit = unit

0x555556abb69evar\_198.value = abs\_notional

0x555556abb6aevar\_288.o = OPTION\_UNIT\_QTY\_NONE

0x555556abb6b4entry\_notional\_1 = 0

0x555556abb6caint64\_trbx\_3

0x555556abb6caint64\_trbp\_3

0x555556abb6caint64\_tr14\_1

0x555556abb6cauint64\_tzmm0\_3\[0x2\]

0x555556abb6carbx\_3, rbp\_3, r14\_1, index, zmm0\_3 = option\_unit\_qty\_add\_a(&var\_198, &var\_288)

0x555556abb6d3int64\_tratio1\_margin\_ratio

0x555556abb6d3ratio1\_margin\_ratio.o = \_mm\_xor\_pd(zmm0\_3, zmm0\_3)

0x555556abb6dcif (rbx\_3s\> 0)

0x555556abb6e6if (index != 2)

0x555556abb6e8var\_1d8.tag = index

0x555556abb6f8var\_1d8.unit = var\_1e8\_1

0x555556abb704if (tag == 2)

0x555556abba5apanic\_unwrap\_none(&data\_5555587fefc8)

0x555556abba5anoreturn

0x555556abb70avar\_198.tag = tag

0x555556abb712var\_198.unit = r14\_1

0x555556abb72cif (index != tag \|\| (tag == 1 && var\_1e8\_1 != r14\_1))

0x555556abb71dgotolabel\_555556abb9f5

0x555556abb73fzmm0\_3 = \_\_subpd\_xmmpd\_mempd(

0x555556abb73f\_\_unpcklps\_xmmps\_memdq(zx.o(account\_value), data\_555557dd12e0\[0x20\]\[0\].o),

0x555556abb73fdata\_555557dd1310)

0x555556abb74bdoublezmm1\_1\[0x2\] = \_mm\_unpackhi\_pd(zmm0\_3, zmm0\_3\[0\])

0x555556abb74fzmm1\_1\[0\] = zmm1\_1\[0\] f\+ zmm0\_3\[0\]

0x555556abb753zmm0\_3 = zx.o(0)

0x555556abb756zmm0\_3\[0\] = float.d(rbx\_3)

0x555556abb75bzmm1\_1\[0\] = zmm1\_1\[0\] f/ zmm0\_3\[0\]

0x555556abb75fratio1\_margin\_ratio.o = zmm1\_1

0x555556abb76dint64\_trbx\_4 = \*(btree\_node \+ rbp\_3 \- 0x30)

0x555556abb772zmm0\_3 = \*(btree\_node \+ rbp\_3 \- 0x40)

0x555556abb775var\_198.tag = zmm0\_3\[0\]

0x555556abb775var\_198.unit = zmm0\_3\[1\]

0x555556abb77dvar\_198.value = rbx\_4

0x555556abb78dvar\_288.o = OPTION\_UNIT\_QTY\_NONE

0x555556abb793entry\_notional\_1 = 0

0x555556abb7a9uint64\_tzmm2\_2\[0x2\]

0x555556abb7a9result\_1, zmm2\_2 = option\_unit\_qty\_add\_b(&var\_198, &var\_288)

0x555556abb7aezmm2\_2 = \_mm\_xor\_pd(zmm2\_2, zmm2\_2)

0x555556abb7b5if (rbx\_4 == 0)

0x555556abb7b5gotolabel\_555556abb952

0x555556abb7c6if (result\_3s&lt; 0)

0x555556abba40panic\_unwrap\_err(

0x555556abba40"called \`Result::unwrap()\` on an \`Err\` "

0x555556abba40"

0x555556abba40value/rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/iter/traits/accum."

0x555556abba40"rsTryFromIntErrorOkErr/home/ubuntu/.cargo/registry/src/index.crates."

0x555556abba40"io-6f17d22bba15001f/serde\_jsonrc-0.1.0/src/read.rsPoisonErrorullrue/home/ubuntu/."

0x555556abba40"cargo/registry/src/index.crates.io-6f17d22bba15001f/serde\_jsonrc-0.1.0/src/de.rs/home/ubuntu/."

0x555556abba40"cargo/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.14.5/src/raw/mod."

0x555556abba40"rs/home/ubuntu/hl/code\_Testnet/l1/src/qtys.rsassertion failed:…",

0x555556abba400x2b, &var\_288, &data\_5555587fdcf0, &data\_5555587fe640)

0x555556abb7c6else

0x555556abb7ccint64\_trbx\_5 = result\_3 \\* entry\_notional\_6

0x555556abb7ccboolo\_1 = unimplemented {imulrbx, qword \[rsp+0x18\]}

0x555556abb7e8if (not(o\_1))

0x555556abb7f6entry\_notional\_1 = entry\_notional\_4

0x555556abb804var\_288.o = var\_1b8\_1

0x555556abb80fuint64\_trax\_23

0x555556abb80fint64\_trdx\_8

0x555556abb80frax\_23, rdx\_8 = oracle\_price\_type\_validate(&var\_288, expected\_kind, expected\_asset)

0x555556abb817if (rbx\_5 != 0)

0x555556abb81dvar\_198.unit = rdx\_8

0x555556abb825var\_198.value = rbx\_5

0x555556abb82dvar\_198.tag = rax\_23

0x555556abb838if (entry\_notional\_3s&lt; 0)

0x555556abb838gotolabel\_555556abb9b5

0x555556abb838gotolabel\_555556abb83e

0x555556abb97dvar\_198.value = rbx\_5

0x555556abb985var\_198.tag = 2

0x555556abb990if (entry\_notional\_3s>= 0)

0x555556abb83elabel\_555556abb83e:

0x555556abb841if (arg4 == 0)

0x555556abb878index = index\_3

0x555556abb87dbtree\_node = btree\_node\_2

0x555556abb882if (entry\_notional\_3 == 0)

0x555556abb882gotolabel\_555556abb9bb

0x555556abb88bint64\_tentry\_notional\_5 = neg.q(entry\_notional\_3)

0x555556abb88eentry\_notional\_1 = entry\_notional\_5

0x555556abb893var\_288 = btree\_node

0x555556abb898uint64\_tindex\_2 = index

0x555556abb8a0if (add\_overflow(rbx\_5, neg.q(entry\_notional\_5)))

0x555556abb8a0gotolabel\_555556abb9df

0x555556abb8a0gotolabel\_555556abb8b3

0x555556abb846uint64\_tbtree\_node\_1 = 2

0x555556abb84bbtree\_node = btree\_node\_2

0x555556abb850if (entry\_notional\_3 != 0)

0x555556abb850btree\_node\_1 = btree\_node

0x555556abb854var\_288 = btree\_node\_1

0x555556abb859index = index\_3

0x555556abb85euint64\_tindex\_1 = index

0x555556abb863entry\_notional\_1 = entry\_notional\_3

0x555556abb86eif (not(add\_overflow(rbx\_5, neg.q(entry\_notional\_3))))

0x555556abb86egotolabel\_555556abb8b3

0x555556abb86egotolabel\_555556abb9df

0x555556abb9b5label\_555556abb9b5:

0x555556abb9b5panic\_unwrap\_err(

0x555556abb9b5"called \`Result::unwrap()\` on an \`Err\` "

0x555556abb9b5"value/rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/iter/traits/accum."

0x555556abb9b5"rsTryFromIntErrorOkErr/home/ubuntu/.cargo/registry/src/index.crates."

0x555556abb9b5"io-6f17d22bba15001f/serde\_jsonrc-0.1.0/src/read.rsPoisonErrorullrue/home/ubuntu/."

0x555556abb9b5"cargo/registry/src/index.crates.io-6f17d22bba15001f/serde\_jsonrc-0.1.0/src/de."

0x555556abb9b5"rs/home/ubuntu/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.14."

0x555556abb9b5"5/src/raw/mod.rs/home/ubuntu/hl/code\_Testnet/l1/src/qtys.rsassertion failed:…",

0x555556abb9b50x2b, &var\_288, &data\_5555587fdcf0, &data\_5555587ff0e0)

0x555556abb9bblabel\_555556abb9bb:

0x555556abb9bbentry\_notional\_1 = 0

0x555556abb9c4var\_288 = 2

0x555556abb9d2if (not(add\_overflow(rbx\_5, 0)))

0x555556abb8b3label\_555556abb8b3:

0x555556abb8b3int64\_trdx\_9

0x555556abb8b3int64\_trbx\_7

0x555556abb8b3int64\_tr14\_3

0x555556abb8b3int64\_tr15\_3

0x555556abb8b3result\_1, rdx\_9, rbx\_7, r14\_3, r15\_3 = option\_unit\_qty\_add\_a(&var\_198, &var\_288)

0x555556abb8b8int64\_trcx\_7 = 0

0x555556abb8bduint64\_tresult\_4 = 2

0x555556abb8c2if (rbx\_7s\> 0)

0x555556abb8c2result\_4 = result\_1

0x555556abb8c6if (rbx\_7s\> 0)

0x555556abb8c6rcx\_7 = rbx\_7

0x555556abb8cdif (r14\_3 == 0)

0x555556abba67panic\_unwrap\_none(&data\_5555587f7f08)

0x555556abba67noreturn

0x555556abb8d7if (result\_4 != 2)

0x555556abb8d9var\_1d8.tag = result\_4

0x555556abb8e1var\_1d8.unit = rdx\_9

0x555556abb8edif (btree\_node == 2)

0x555556abba5apanic\_unwrap\_none(&data\_5555587fefc8)

0x555556abba5anoreturn

0x555556abb8f3var\_198.tag = btree\_node

0x555556abb8fbvar\_198.unit = r15\_3

0x555556abb915if (result\_4 != btree\_node \|\| (btree\_node == 1 && rdx\_9 != r15\_3))

0x555556abb906gotolabel\_555556abb9f5

0x555556abb928doublezmm0\_4\[0x2\] = \_\_subpd\_xmmpd\_mempd(

0x555556abb928\_\_punpckldq\_xmmdq\_memdq(zx.o(rcx\_7), data\_555557dd12e0\[0x20\]\[0\].o),

0x555556abb928data\_555557dd1310)

0x555556abb934zmm2\_2 = \_mm\_unpackhi\_pd(zmm0\_4, zmm0\_4\[0\])

0x555556abb938zmm2\_2\[0\] = zmm2\_2\[0\] f\+ zmm0\_4\[0\]

0x555556abb93czmm0\_4 = zx.o(0)

0x555556abb93fzmm0\_4\[0\] = float.d(r14\_3)

0x555556abb944zmm2\_2\[0\] = zmm2\_2\[0\] f/ zmm0\_4\[0\]

0x555556abb952label\_555556abb952:

0x555556abb952doublezmm1\_2\[0x2\] = \_\_maxpd\_xmmpd\_mempd(

0x555556abb952\_mm\_unpacklo\_pd(ratio1\_margin\_ratio.o, zmm2\_2\[0\]), ADL\_SCORE\_CLAMP\_1E\_NEG8)

0x555556abb95ezmm0\_4 = \_mm\_unpackhi\_pd(zmm1\_2, zmm1\_2\[0\])

0x555556abb962zmm0\_4\[0\] = zmm0\_4\[0\] \\* zmm1\_2\[0\]

0x555556abb977returnresult\_1

0x555556abb9dflabel\_555556abb9df:

0x555556abb9dflen = panic\_overflow\_sub(&data\_5555587fd610)

0x555556abb9eflabel\_555556abb9ef:

0x555556abb9efpanic\_index\_out\_of\_bounds(index, len, &data\_5555587fede8)

0x555556abb9f5label\_555556abb9f5:

0x555556abb9f5var\_288 = 0

0x555556abba1cpanic\_unit\_mismatch\_assertion(0, &var\_1d8, &var\_198, &var\_288)

0x555556abba40panic\_unwrap\_err(

0x555556abba40"called \`Result::unwrap()\` on an \`Err\` "

0x555556abba40"value/rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/iter/traits/accum."

0x555556abba40"rsTryFromIntErrorOkErr/home/ubuntu/.cargo/registry/src/index.crates."

0x555556abba40"io-6f17d22bba15001f/serde\_jsonrc-0.1.0/src/read.rsPoisonErrorullrue/home/ubuntu/."

0x555556abba40"cargo/registry/src/index.crates.io-6f17d22bba15001f/serde\_jsonrc-0.1.0/src/de."

0x555556abba40"rs/home/ubuntu/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.14."

0x555556abba40"5/src/raw/mod.rs/home/ubuntu/hl/code\_Testnet/l1/src/qtys.rsassertion failed:…",

0x555556abba400x2b, &var\_288, &data\_5555587fdcf0, &data\_5555587fe640)

0x555556abba4dpanic\_overflow\_mul(&data\_5555587fe658)

0x555556abba5apanic\_unwrap\_none(&data\_5555587fefc8)

0x555556abba5anoreturn

0x555556abb484int64\_tabs\_notional\_2 = \*(result\_1 \+ 0x10)

0x555556abb4c5 &var\_198, 2, r8\_1.d)

0x555556abb4d7if (rbx\_2 != 3)

0x555556abb4d7else

0x555556abb641 &signed\_notional, 1, leverage)

0x555556abb669int64\_tvar\_168

0x555556abb669r15\_2 = var\_168

0x555556abb4f1clearinghouse\_ptr \+ 0xd8, nullptr)

0x555556abba9bnoreturn

0x555556abb514int64\_tvar\_70

0x555556abb514r15\_2 = var\_70

0x555556abb6a6uint64\_tOPTION\_UNIT\_QTY\_NONE\_2\[0x2\] = OPTION\_UNIT\_QTY\_NONE

0x555556abb6dcgotolabel\_555556abb76d

0x555556abb6dcbreak

0x555556abba1c &OPTION\_UNIT\_QTY\_NONE\_1)

0x555556abba1cnoreturn

0x555556abb73fdata\_555557dd1310)

0x555556abb76dint64\_trbx\_3 = \*(btree\_node \+ rbp\_2 \- 0x30)

0x555556abba4dnoreturn

0x555556abb817else

0x555556abb9b50x2b, &OPTION\_UNIT\_QTY\_NONE\_1)

0x555556abb9b5noreturn

0x555556abb9b5panic\_unwrap\_err(

0x555556abb9b5"called \`Result::unwrap()\` on an \`Err\` "

0x555556abb9b5"value/rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/iter/traits/accum."

0x555556abb9b5"rsTryFromIntErrorOkErr/home/ubuntu/.cargo/registry/src/index.crates."

0x555556abb9b5"io-6f17d22bba15001f/serde\_jsonrc-0.1.0/src/read."

0x555556abb9b5"rsPoisonErrorullrue/home/ubuntu/.cargo/registry/src/index.crates."

0x555556abb9b5"io-6f17d22bba15001f/serde\_jsonrc-0.1.0/src/de.rs/home/ubuntu/."

0x555556abb9b5"cargo/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.14."

0x555556abb9b5"5/src/raw/mod.rs/home/ubuntu/hl/code\_Testnet/l1/src/qtys.rsassertion failed:"

0x555556abb9b5"…",

0x555556abb9b50x2b, &OPTION\_UNIT\_QTY\_NONE\_1)

0x555556abb9b5noreturn

0x555556abb841int64\_tr12\_1

0x555556abb841int64\_tr15\_3

0x555556abb841if (arg4 == 0)

0x555556abb841else

0x555556abb9cfsigned\_notional\_product = signed\_notional\_product\_2

0x555556abb9dfpanic\_overflow\_sub()

0x555556abb9dfnoreturn

0x555556abb9dfpanic\_overflow\_sub()

0x555556abb9dfnoreturn

0x555556abb89dsigned\_notional\_product = signed\_notional\_product\_2 \- entry\_notional\_4

0x555556abb86bsigned\_notional\_product = signed\_notional\_product\_2 \- entry\_notional

0x555556abb928data\_555557dd12e0\[0x20\]\[0\].o),

0x555556abb928data\_555557dd1310)

0x555556abb906gotolabel\_555556abb928

0x555556abb327break

}

存在限制(clamping)以避免舍入问题。两个比例都限制在最小 $1e-8$,以免相互抵消。最终的 ADL 排名分数是 $effective_leverage \times profit_ratio$,与两个比例的方向以及 PNL 的最大限制一致。

所以,本质上,我们在寻找高风险且盈利的仓位!

部分和全部 ADL

最后,请注意去杠杆也可以是部分的,但即便如此,它也会按照此分数定义的顺序进行。

在这里,我们根据 ADL 是否为全部进行分支,在前者的情况下关闭仓位。

所以本质上,在伪代码中,clearinghouse_adl_orchestrator 的整个后半部分归结为:

fnclearinghouse_adl_orchestrator(ch: &Clearinghouse, fill_ctx: &mutAdlFillTracker, oracle: &mutOracleData, candidates: &BTreeMap<[u8; 20], u64>) -> BTreeMap<(u64, u8), Vec<u8>>0x555556ac3850 4 / 4· rust 源码 · ✓ 已接受 ×0.05T 思考

4 / 4

0x555556ac3850Clearinghouse\\* clearinghouse\_6

0x555556ac3850Clearinghouse\\* clearinghouse\_3 = clearinghouse\_6

0x555556ac3871Clearinghouse\\* clearinghouse = ch

0x555556ac387cint128\_t\\* deferred\_cross\_queue = nullptr

0x555556ac3888int128\_t\\* adl\_was\_triggered = nullptr

0x555556ac3894int64\_tcpty\_vec\_cap = 0

0x555556ac38a0int128\_t\\* i\_26 = 8

0x555556ac38acint64\_tcpty\_vec\_len = 0

0x555556ac38bcuint64\_tlength = adl\_candidates->length

0x555556ac38c5int128\_tvar\_9c0 = adl\_candidates->root\_node\_ptr.o

0x555556ac38caint128\_t\\* constvar\_9c8 = 1

0x555556ac38e4int128\_tresult\_2

0x555556ac38e4adl\_init\_user\_position\_iterators(&result\_2, ch, 0, &var\_9c8)

0x555556ac38f2int128\_ttotal\_shortfall\_tag = OPTION\_UNIT\_QTY\_NONE

0x555556ac38fbint64\_ttotal\_shortfall\_value = 0

0x555556ac3907int64\_tlog\_vec\_cap = 0

0x555556ac3913int64\_tlog\_vec\_ptr = 8

0x555556ac391fint64\_tvar\_840 = 0

0x555556ac392bint64\_tdeferred\_queue\_len = 0

0x555556ac3937int64\_t\\* deferred\_queue\_cap = 8

0x555556ac3943int64\_tdeferred\_queue\_buf = 0

0x555556ac395aClearinghouse\\* clearinghouse\_1 = clearinghouse

0x555556ac3962void\\* constvar\_9a0

0x555556ac3962int32\_t\\* str1\_ptr\_5

0x555556ac3962char\\* logger\_lock\_ptr

0x555556ac3962int128\_tvar\_8f8

0x555556ac3962uint64\_t\\* var\_8e0

0x555556ac3962int64\_t\\* logger\_data\_ptr

0x555556ac3962int32\_t\\* str1\_ptr

0x555556ac3962int128\_tvar\_798

0x555556ac3962charvar\_748

0x555556ac3962int128\_t\\* size\_17

0x555556ac3962int128\_tcounterparty\_info

0x555556ac3962int128\_tvar\_558

0x555556ac3962int128\_t\\* shortfall\_discriminant

0x555556ac3962int128\_tcounterparty\_info\_1

0x555556ac3962int32\_t\\* str1\_ptr\_6

0x555556ac3962int64\_tdeferred\_queue\_buf\_1

0x555556ac3962if (deferred\_queue\_buf\_1 != 0)

0x555556ac3968int32\_t\\* str1\_ptr\_4 = str1\_ptr\_6

0x555556ac3974void\\* rax\_3 = &str1\_ptr\_4\[deferred\_queue\_buf\_1 \\* 0xa\]

0x555556ac3980void\\* \_\_offset(Clearinghouse, 0x60) user\_state\_2 = clearinghouse \+ 0x60

0x555556ac398cvoid\\* \_\_offset(Clearinghouse, 0xd8) oracle\_data = clearinghouse \+ 0xd8

0x555556ac39a7logger\_lock\_ptr = &TRACING\_LOG\_LOCK

0x555556ac39bblogger\_data\_ptr = &TRACING\_LOG\_DATA

0x555556ac3a1awhile (true)

0x555556ac3a1astr1\_ptr = str1\_ptr\_4

0x555556ac3a26var\_9c0:8.d = str1\_ptr\_4\[8\]

0x555556ac3a2astr1\_ptr\_5 = str1\_ptr\_4

0x555556ac3a38var\_9c8.o = \*(str1\_ptr\_4 \+ 0x10)

0x555556ac3a3evoid\\* r13\_1 = \*(clearinghouse \+ 0x128)

0x555556ac3a48void\\* user\_state

0x555556ac3a48if (r13\_1 == 0)

0x555556ac3af0user\_state = nullptr

0x555556ac3a48else

0x555556ac3a4eint64\_trbx\_1 = \*(clearinghouse \+ 0x130)

0x555556ac3a55while (true)

0x555556ac3a55void\\* rsi = r13\_1 \+ 0x428

0x555556ac3a5cuint64\_trax\_6 = zx.q(\*(r13\_1 \+ 0x506))

0x555556ac3a70uint64\_tr15\_1 = zx.q((rax\_6 &lt;&lt; 2).d) \\* 5

0x555556ac3a74user\_state = r13\_1 \- 0x60

0x555556ac3a78uint64\_tr14 = -1

0x555556ac3ab9booli

0x555556ac3ab9do

0x555556ac3a83if (r15\_1 == 0)

0x555556ac3ad0r14 = rax\_6

0x555556ac3ad5int64\_ttemp2\_1 = rbx\_1

0x555556ac3ad5rbx\_1 -= 1

0x555556ac3ad9if (temp2\_1u&lt; 1)

0x555556ac3ad9gotolabel\_555556ac3af4

0x555556ac3ad9gotolabel\_555556ac3adb

0x555556ac3a93int32\_trax\_8 = memcmp(&var\_9c8, rsi, 0x14)

0x555556ac3a9di = rax\_8 != 0

0x555556ac3aa5if (rax\_8s&lt; 0)

0x555556ac3aa5i = true

0x555556ac3aa8r15\_1 -= 0x14

0x555556ac3aacuser\_state += 0x60

0x555556ac3ab0r14 += 1

0x555556ac3ab3rsi += 0x14

0x555556ac3ab9while (i == 1)

0x555556ac3ac0if (zx.d(i) == 0)

0x555556ac3ac0break

0x555556ac3ac2int64\_ttemp7\_1 = rbx\_1

0x555556ac3ac2rbx\_1 -= 1

0x555556ac3ac6if (temp7\_1u&lt; 1)

0x555556ac3af4label\_555556ac3af4:

0x555556ac3af4user\_state = nullptr

0x555556ac3af6break

0x555556ac3adblabel\_555556ac3adb:

0x555556ac3adbr13\_1 = \*(r13\_1 \+ (r14 &lt;&lt; 3) \+ 0x508)

0x555556ac3b00clearinghouse = clearinghouse\_1

0x555556ac3b0bif (user\_state == 0)

0x555556ac3b0buser\_state = user\_state\_2

0x555556ac3b14int64\_t\\* str1\_ptr\_11 = str1\_ptr\_5

0x555556ac3b36compute\_account\_value\_for\_direction(&var\_9c8, user\_state, (\*str1\_ptr\_11).b, str1\_ptr\_11\[1\],

0x555556ac3b360, oracle\_data)

0x555556ac3b3cint64\_trcx\_3 = var\_9c0:8.q

0x555556ac3b44structOptionUnitQtyrhs

0x555556ac3b44int64\_trax\_11

0x555556ac3b44int64\_trcx\_5

0x555556ac3b44uint64\_tlen\_9

0x555556ac3b44uint64\_tindex

0x555556ac3b44if (rcx\_3 != 0)

0x555556ac3b49rax\_11 = neg.q(rcx\_3)

0x555556ac3b4cclearinghouse\_6 = rust\_dealloc

0x555556ac3b53if (neg.q(rcx\_3) == -0x8000000000000000)

0x555556ac8c5blabel\_555556ac8c5b:

0x555556ac8c5bpanic\_negate\_min(&data\_5555587fd610)

0x555556ac8c69label\_555556ac8c69:

0x555556ac8c69size\_17 = &var\_798

0x555556ac8c78void\\* constvar\_630\_7 = &data\_555556c328d0

0x555556ac8c88int32\_t\\*\\* var\_628\_8 = &str1\_ptr

0x555556ac8c97void\\* constvar\_620\_1 = &data\_555556c0b930

0x555556ac8ca6var\_8f8.q = &data\_55555880a108

0x555556ac8caevar\_8f8:8.q = 2

0x555556ac8cbaint64\_tvar\_8d8\_5 = 0

0x555556ac8cceint128\_t\\*\\* var\_8e8\_20 = &size\_17

0x555556ac8cd6var\_8e0 = 2

0x555556ac8cf1core::panicking::panic\_fmt::h62f63d096dd276af(&var\_8f8, &data\_55555880a128)

0x555556ac8cf7label\_555556ac8cf7:

0x555556ac8cf7var\_8f8.q = 0

0x555556ac8d24panic\_unit\_mismatch\_assertion(0, &var\_798, &size\_17, &var\_8f8)

0x555556ac8d30label\_555556ac8d30:

0x555556ac8d30panic\_unwrap\_none(&data\_5555587fefc8)

0x555556ac8d30noreturn

0x555556ac3b59int64\_tvar\_8e8\_1 = rax\_11

0x555556ac3b61int128\_tzmm0\_2 = var\_9c8.o

0x555556ac3b67var\_8f8 = zmm0\_2

0x555556ac3b73if (rcx\_3s&lt;= 0)

0x555556ac3b79if (rcx\_3 == 0)

0x555556ac3bb0rcx\_5 = 2

0x555556ac3bb5rax\_11 = 0

0x555556ac3b79else

0x555556ac3b83rhs.unit = var\_8f8:8.q

0x555556ac3b8brcx\_5 = zmm0\_2.q

0x555556ac3b79gotolabel\_555556ac3bc0

0x555556ac8d4bshortfall\_discriminant = &var\_8f8

0x555556ac8d5acounterparty\_info\_1.q = &data\_555556b4bcb0

0x555556ac8d69var\_9c8 = &data\_555557dd1240

0x555556ac8d6evar\_9c0.q = 1

0x555556ac8d77int64\_tvar\_9a8\_21 = 0

0x555556ac8d88var\_9c0:8.q = &shortfall\_discriminant

0x555556ac8d8dlength = 1

0x555556ac8da2len\_9, index =

0x555556ac8da2core::panicking::panic\_fmt::h62f63d096dd276af(&var\_9c8, &data\_5555587fd610)

0x555556ac8daflabel\_555556ac8daf:

0x555556ac8dafpanic\_index\_out\_of\_bounds(index, len\_9, &data\_5555587fee70)

0x555556ac8db5label\_555556ac8db5:

0x555556ac8db5var\_8f8.q = 0

0x555556ac8de2panic\_unit\_mismatch\_lhs(0, &size\_17, &var\_748, &var\_8f8, &data\_55555880a0f0)

0x555556ac8de7label\_555556ac8de7:

0x555556ac8de7var\_8f8.q = 0

0x555556ac8e14panic\_unit\_mismatch\_rhs(0, &var\_748, &size\_17, &var\_8f8, &data\_55555880a0d8)

0x555556ac8e23label\_555556ac8e23:

0x555556ac8e23handle\_alloc\_error(1, 0x34)

0x555556ac8e30label\_555556ac8e30:

0x555556ac8e30var\_9c8 = &data\_5555587f8190

0x555556ac8e35var\_9c0.q = 1

0x555556ac8e46var\_9c0:8.q = &str1\_ptr

0x555556ac8e4flength.o = zx.o(0)

0x555556ac8e61core::panicking::panic\_fmt::h62f63d096dd276af(&var\_9c8, &data\_5555587f81a0)

0x555556ac8e6elabel\_555556ac8e6e:

0x555556ac8e6epanic\_unwrap\_none(&data\_5555587f8178)

0x555556ac8e6enoreturn

0x555556ac3ba0rcx\_5 = 2

0x555556ac3ba5rax\_11 = 0

0x555556ac3ba7clearinghouse\_6 = rust\_dealloc

0x555556ac3bc0label\_555556ac3bc0:

0x555556ac3bc0rhs.value = rax\_11

0x555556ac3bc8rhs.tag = rcx\_5

0x555556ac3bd0int32\_t\\* adl\_was\_triggered = str1\_ptr

0x555556ac3bdbif (\*adl\_was\_triggered == 1)

0x555556ac3be1index = \*(adl\_was\_triggered \+ 8)

0x555556ac3be5len\_9 = \*(clearinghouse \+ 0xd0)

0x555556ac3befif (len\_9u&lt;= index)

0x555556ac3befgotolabel\_555556ac8daf

0x555556ac3c05if (\*(\*(clearinghouse \+ 0xc8) \+ (index &lt;&lt; 5) \+ 0x18) != 0)

0x555556ac3c14if (LOGGER\_ONCE\_CELL != 3)

0x555556ac41e5var\_8f8.q = &data\_55555885f728

0x555556ac41f5var\_9c8 = &var\_8f8

0x555556ac4216once\_cell\_get\_or\_init(&LOGGER\_ONCE\_CELL, 0, &var\_9c8, &data\_55555878bb08,

0x555556ac4216 &data\_55555878c798)

0x555556ac3c21var\_798 = data\_55555885f730

0x555556ac3c30data\_55555886bd41

0x555556ac3c38uint8\_t\\* rax\_15 = rust\_alloc(0x34)

0x555556ac3c41if (rax\_15 == 0)

0x555556ac3c41gotolabel\_555556ac8e23

0x555556ac3c64\_\_builtin\_strncpy(rax\_15, "immediately auto-deleveraging only\_isolated position",

0x555556ac3c640x34)

0x555556ac3c6ecounterparty\_info.q = 0x34

0x555556ac3c7acounterparty\_info:8.q = rax\_15

0x555556ac3c82var\_558.q = 0x34

0x555556ac3c8eshortfall\_discriminant = nullptr

0x555556ac3c9acounterparty\_info\_1.q = 8

0x555556ac3ca6counterparty\_info\_1:8.q = 0

0x555556ac3cbavar\_8f8.q = &str1\_ptr

0x555556ac3cc9var\_8f8:8.q = &data\_555556bc9360

0x555556ac3cd8var\_9c8 = &data\_555557dd1240

0x555556ac3cddvar\_9c0.q = 1

0x555556ac3ce6int64\_tvar\_9a8 = 0

0x555556ac3cf7var\_9c0:8.q = &var\_8f8

0x555556ac3cfclength = 1

0x555556ac3d1fvoidinput

0x555556ac3d1ffmt\_arguments\_new(&input, &var\_9c8)

0x555556ac3d2dtruncate\_str\_to\_char\_limit(&var\_8f8, &input, 0x2710)

0x555556ac3d33size\_17 = &var\_8f8

0x555556ac3d42void\\* constvar\_630\_1 = &data\_555556ab0390

0x555556ac3d51var\_9c8 = &data\_5555587f80f0

0x555556ac3d56var\_9c0.q = 2

0x555556ac3d5fint64\_tvar\_9a8\_1 = 0

0x555556ac3d70var\_9c0:8.q = &size\_17

0x555556ac3d75length = 1

0x555556ac3d89int128\_tvar\_1d0

0x555556ac3d89fmt\_arguments\_new(&var\_1d0, &var\_9c8)

0x555556ac3d8cint64\_tsize = var\_8f8.q

0x555556ac3d97if (size != 0)

0x555556ac3da3rust\_dealloc(var\_8f8:8.q, size, 0)

0x555556ac3da5void\\* rbp = counterparty\_info\_1:8.q

0x555556ac3db5if (rbp == shortfall\_discriminant)

0x555556ac3dbfvec\_grow\_string(&shortfall\_discriminant)

0x555556ac3dc4int64\_trax\_16 = counterparty\_info\_1.q

0x555556ac3dd4void\\* rcx\_7 = rbp \\* 3

0x555556ac3ddfint64\_tvar\_1c0

0x555556ac3ddf \*(rax\_16 \+ (rcx\_7 &lt;&lt; 3) \+ 0x10) = var\_1c0

0x555556ac3dec \*(rax\_16 \+ (rcx\_7 &lt;&lt; 3)) = var\_1d0

0x555556ac3df0clearinghouse\_6 = rbp \+ 1

0x555556ac3df3counterparty\_info\_1:8.q = clearinghouse\_6

0x555556ac3e18tracing\_event\_emit(&var\_9c8, 8, clearinghouse\_6,

0x555556ac3e18" @ \\nNot performing auto-deleveraging because shortfall= is acceptable."

0x555556ac3e18"Auto-deleveragings triggered perform\_auto\_deleveraging=\[total\_shortfall: "

0x555556ac3e18"\[asset\_and\_side\_to\_adl\_requirements: Bug! Auto-deleveraging liquidatable already "

0x555556ac3e18"has account value that is more negative than max shortfall.\[liquidatable: internal "

0x555556ac3e18"error: entered unreachable code: leve",

0x555556ac3e183, fmt\_arguments\_new, &var\_8f8)

0x555556ac3e22int64\_tvar\_628\_1 = var\_9c0:8.q

0x555556ac3e30size\_17.o = var\_9c8.o

0x555556ac3e39int64\_ti\_33 = counterparty\_info\_1:8.q

0x555556ac3e4bif (i\_33 != 0)

0x555556ac3e59int64\_t\\* r14\_3 = counterparty\_info\_1.q \+ 8

0x555556ac3e67int64\_ti\_1

0x555556ac3e67do

0x555556ac3e6dint64\_tsize\_1 = r14\_3\[-1\]

0x555556ac3e74if (size\_1 != 0)

0x555556ac3e7brust\_dealloc(\*r14\_3, size\_1, 0)

0x555556ac3e60r14\_3 = &r14\_3\[3\]

0x555556ac3e64i\_1 = i\_33

0x555556ac3e64i\_33 -= 1

0x555556ac3e67while (i\_1 != 1)

0x555556ac3f80int128\_t\\* shortfall\_discriminant\_1 = shortfall\_discriminant

0x555556ac3f8bif (shortfall\_discriminant\_1 != 0)

0x555556ac3f9frust\_dealloc(counterparty\_info\_1.q, shortfall\_discriminant\_1 \\* 0x18, 0)

0x555556ac3faavar\_9c8 = &var\_798

0x555556ac3fb6var\_9c0.q = &data\_555556b50bd0

0x555556ac3fc3var\_9c0:8.q = &counterparty\_info

0x555556ac3fcflength = &data\_555556ab0390

0x555556ac3fdcint128\_t\\*\\* var\_9a8\_2 = &size\_17

0x555556ac3fe1var\_9a0 = &data\_555556ab0390

0x555556ac3fedvar\_8f8.q = &data\_5555587f7f98

0x555556ac3ff5var\_8f8:8.q = 4

0x555556ac4001int64\_tvar\_8d8\_1 = 0

0x555556ac4012int128\_t\\* const\\* var\_8e8\_2 = &var\_9c8

0x555556ac401avar\_8e0 = 3

0x555556ac4036int128\_tvar\_1e8

0x555556ac4036fmt\_arguments\_new(&var\_1e8, &var\_8f8)

0x555556ac403cint128\_t\\* size\_2 = size\_17

0x555556ac4047clearinghouse = clearinghouse\_1

0x555556ac404fif (size\_2 != 0)

0x555556ac405brust\_dealloc(var\_630\_1, size\_2, 0)

0x555556ac405eint64\_tsize\_3 = counterparty\_info.q

0x555556ac4069if (size\_3 != 0)

0x555556ac4075rust_dealloc(counterparty\_info:8.q, size\_3, 0)

0x555556ac4088if (var\_840 == log\_vec\_cap)

0x555556ac4092vec\_grow\_string(&log\_vec\_cap)

0x555556ac409fint64\_trcx\_8 = var\_840 \\* 3

0x555556ac40abint64\_tvar\_1d8

0x555556ac40ab \*(log\_vec\_ptr \+ (rcx\_8 &lt;&lt; 3) \+ 0x10) = var\_1d8

0x555556ac40b8 \*(log\_vec\_ptr \+ (rcx\_8 &lt;&lt; 3)) = var\_1e8

0x555556ac40bfvar\_840 += 1

0x555556ac40c7int32\_t\\* str1\_ptr\_1 = str1\_ptr

0x555556ac40d6var\_9c8.o = \*str1\_ptr\_1

0x555556ac40dbvar\_9c0:8.o = \*(str1\_ptr\_1 \+ 0x10)

0x555556ac40e0int128\_t\\*\\* rax\_25 = \*(str1\_ptr\_1 \+ 0x20)

0x555556ac40f9if (deferred\_queue\_buf == deferred\_queue\_len)

0x555556ac4107vec\_grow\_0x28(&deferred\_queue\_len)

0x555556ac39d8int64\_trcx\_1 = deferred\_queue\_buf \\* 5

0x555556ac39e1deferred\_queue\_cap\[rcx\_1 \+ 4\] = rax\_25

0x555556ac39e6int128\_tzmm0\_1 = var\_9c8.o

0x555556ac39f2 \*(deferred\_queue\_cap \+ (rcx\_1 &lt;&lt; 3) \+ 0x10) = var\_9c0:8.o

0x555556ac39f8 \*(deferred\_queue\_cap \+ (rcx\_1 &lt;&lt; 3)) = zmm0\_1

0x555556ac3a00deferred\_queue\_buf += 1

0x555556ac3a08str1\_ptr\_4 = &str1\_ptr\_11\[5\]

0x555556ac3a14if (str1\_ptr\_4 == rax\_3)

0x555556ac3a14break

0x555556ac3a14continue

0x555556ac3e90if (data\_55555885fb18 != 3)

0x555556ac4111var\_8f8.q = &data\_55555885f848

0x555556ac4121var\_9c8 = &var\_8f8

0x555556ac4142once\_cell\_get\_or\_init(&data\_55555885fb18, 0, &var\_9c8, &data\_5555587f5940,

0x555556ac4142 &data\_5555587f7d38)

0x555556ac3e99int64\_trsi\_5 = tracing\_subscriber\_interest(&data\_55555885f848)

0x555556ac3ea8if (data\_55555885fb18 == 3)

0x555556ac3eb2boolz\_1

0x555556ac3eb2if (0 == TRACING\_LOG\_LOCK)

0x555556ac3eb2TRACING\_LOG\_LOCK = 1

0x555556ac3eb2z\_1 = true

0x555556ac3eb2else

0x555556ac3eb2int64\_trax\_20

0x555556ac3eb2rax\_20.b = TRACING\_LOG\_LOCK

0x555556ac3eb2z\_1 = false

0x555556ac3ebaif (not(z\_1))

0x555556ac3ebagotolabel\_555556ac41a3

0x555556ac3ebagotolabel\_555556ac3ece

0x555556ac414dvar\_8f8.q = &data\_55555885f848

0x555556ac415dvar\_9c8 = &var\_8f8

0x555556ac417ersi\_5 = once\_cell\_get\_or\_init(&data\_55555885fb18, 0, &var\_9c8, &data\_5555587f5940,

0x555556ac417e &data\_5555587f7d38)

0x555556ac4188boolz\_3

0x555556ac4188if (0 == TRACING\_LOG\_LOCK)

0x555556ac4188TRACING\_LOG\_LOCK = 1

0x555556ac4188z\_3 = true

0x555556ac4188else

0x555556ac4188int64\_trax\_26

0x555556ac4188rax\_26.b = TRACING\_LOG\_LOCK

0x555556ac4188z\_3 = false

0x555556ac4190if (z\_3)

0x555556ac3ecelabel\_555556ac3ece:

0x555556ac3ed5if (data\_55555885f9e0 != -0x7fffffffffffffff)

0x555556ac3ed7label\_555556ac3ed7:

0x555556ac3edeif (TRACING\_LOG\_DATA != -0x8000000000000000)

0x555556ac3ee8rwlock\_write\_unlock(logger\_data\_ptr, rust\_dealloc)

0x555556ac4190else

0x555556ac41a3label\_555556ac41a3:

0x555556ac41a3rwlock\_read\_lock(logger\_lock\_ptr, rsi\_5, 0x3b9aca00)

0x555556ac41beif (data\_55555885f9e0 != -0x7fffffffffffffff)

0x555556ac41begotolabel\_555556ac3ed7

0x555556ac3eeduint64\_trax\_21

0x555556ac3eedrax\_21.b = 1

0x555556ac3ef1boolz\_2

0x555556ac3ef1if (1 == TRACING\_LOG\_LOCK)

0x555556ac3ef1TRACING\_LOG\_LOCK = 0

0x555556ac3ef1z\_2 = true

0x555556ac3ef1else

0x555556ac3ef1rax\_21.b = TRACING\_LOG\_LOCK

0x555556ac3ef1z\_2 = false

0x555556ac3ef9if (not(z\_2))

0x555556ac41d3rwlock\_read\_unlock(logger\_lock\_ptr, 0)

0x555556ac3f07var\_9c0:8.q = total\_shortfall\_value

0x555556ac3f15var\_9c8.o = total\_shortfall\_tag

0x555556ac3f1bint64\_ttotal\_shortfall\_value\_3 = total\_shortfall\_value \+ rhs.value

0x555556ac3f23if (total\_shortfall\_value \+ rhs.valueu&lt; total\_shortfall\_value)

0x555556ac8bdflabel\_555556ac8bdf:

0x555556ac8bdfpanic\_overflow\_add(&data\_5555587fefb0)

0x555556ac8beclabel\_555556ac8bec:

0x555556ac8becpanic\_unwrap\_none(&data\_5555587f8148)

0x555556ac8becnoreturn

0x555556ac3f36int64\_trax\_22

0x555556ac3f36int64\_trdx\_4

0x555556ac3f36rax\_22, rdx\_4 = option\_unit\_qty\_add\_b(&var\_9c8, &rhs)

0x555556ac3f43if (total\_shortfall\_value\_3 == 0)

0x555556ac3f43rax\_22 = 2

0x555556ac3f47total\_shortfall\_tag.q = rax\_22

0x555556ac3f4ftotal\_shortfall\_tag:8.q = rdx\_4

0x555556ac3f57total\_shortfall\_value = total\_shortfall\_value\_3

0x555556ac3f5fstr1\_ptr\_4 = &str1\_ptr\_11\[5\]

0x555556ac3f6bif (str1\_ptr\_4 == rax\_3)

0x555556ac3f6bbreak

0x555556ac4221total\_shortfall\_value\_2 = total\_shortfall\_value

0x555556ac4229int64\_tr15\_2 = \*(clearinghouse \+ 0x40)

0x555556ac4235var\_8f8 = total\_shortfall\_tag

0x555556ac423dint64\_ttotal\_shortfall\_value\_4 = total\_shortfall\_value\_2

0x555556ac424bvar\_9c8.o = \*(clearinghouse \+ 0x30)

0x555556ac4251var\_9c0:8.q = r15\_2

0x555556ac4256int128\_t\\* \_ret\_2 = &var\_8f8

0x555556ac4266uint64\_tr10\_1 = option\_unit\_qty\_add\_b(&var\_8f8, &var\_9c8)

0x555556ac427eif (total\_shortfall\_value\_2u>= r15\_2)

0x555556ac4280int64\_tdeferred\_queue\_len\_1 = deferred\_queue\_len

0x555556ac428bif (deferred\_queue\_len\_1 != 0)

0x555556ac429fr10\_1 = rust\_dealloc(deferred\_queue\_cap, deferred\_queue\_len\_1 \\* 0x28, 0)

0x555556ac42addeferred\_queue\_buf = deferred\_queue\_buf\_1

0x555556ac42bedeferred\_queue\_len.o = result\_2

0x555556ac42c7int64\_tdeferred\_queue\_len\_2 = deferred\_queue\_len

0x555556ac42f2int128\_t\\*\\* asset\_idx\_2

0x555556ac42f2int64\_t\\* i\_62

0x555556ac42f2void\\* \_\_offset(Clearinghouse, 0x60) shortfall\_discriminant\_4

0x555556ac42f2int64\_tvar\_7d8

0x555556ac42f2int32\_t\\* str1\_ptr\_8

0x555556ac42f2uint64\_tvar\_738

0x555556ac42f2uint64\_tcpty\_array\_offset\_1

0x555556ac42f2int128\_t\\* size\_19

0x555556ac42f2int128\_tvar\_3b8

0x555556ac42f2int64\_t (\\* user\_shortfall)(int64\_targ1, int64\_targ2, int32\_targ3)

0x555556ac42f2int64\_t\\* i\_60

0x555556ac42f2int64\_tvar\_378

0x555556ac42f2if (deferred\_queue\_buf != 0)

0x555556ac4304void\\* rax\_32 = &deferred\_queue\_cap\[deferred\_queue\_buf \\* 5\]

0x555556ac4310void\\* \_\_offset(Clearinghouse, 0x60) ch\_2 = clearinghouse \+ 0x60

0x555556ac4328char\\* var\_820\_1 = &TRACING\_LOG\_LOCK

0x555556ac4330int64\_t\\* deferred\_queue\_cap\_1 = deferred\_queue\_cap

0x555556ac43c5while (true)

0x555556ac43c5label\_555556ac43c5:

0x555556ac43c5int128\_t\\* shortfall\_discriminant\_3 = \*deferred\_queue\_cap\_1

0x555556ac43ccvar\_558 = \*(deferred\_queue\_cap\_1 \+ 0x18)

0x555556ac43d8counterparty\_info = \*(deferred\_queue\_cap\_1 \+ 8)

0x555556ac43e4if (shortfall\_discriminant\_3 == 2)

0x555556ac43e4break

0x555556ac43eashortfall\_discriminant = shortfall\_discriminant\_3

0x555556ac440bint96\_tvar\_490\_1 = var\_558.12

0x555556ac4410counterparty\_info\_1 = counterparty\_info

0x555556ac441evar\_9c0:8.d = var\_558:8.d

0x555556ac4426var\_9c8.o = counterparty\_info:8.o

0x555556ac442fvoid\\* r14\_4 = \*(clearinghouse \+ 0x128)

0x555556ac4449void\\* \_\_offset(Clearinghouse, 0x60) ch\_1

0x555556ac4449if (r14\_4 == 0)

0x555556ac4510ch\_1 = nullptr

0x555556ac4449else

0x555556ac444fshortfall\_discriminant\_4 = shortfall\_discriminant\_3

0x555556ac4457int64\_tr15\_3 = \*(clearinghouse \+ 0x130)

0x555556ac445ewhile (true)

0x555556ac445evoid\\* rsi\_11 = r14\_4 \+ 0x428

0x555556ac4465uint64\_trax\_35 = zx.q(\*(r14\_4 \+ 0x506))

0x555556ac4479uint64\_trbx\_6 = zx.q((rax\_35 &lt;&lt; 2).d) \\* 5

0x555556ac447dch\_1 = r14\_4 \- 0x60

0x555556ac4481uint64\_trbp\_1 = -1

0x555556ac44d1booli\_2

0x555556ac44d1do

0x555556ac4493if (rbx\_6 == 0)

0x555556ac44f0rbp\_1 = rax\_35

0x555556ac44f5int64\_ttemp5\_1 = r15\_3

0x555556ac44f5r15\_3 -= 1

0x555556ac44f9if (temp5\_1u&lt; 1)

0x555556ac44f9gotolabel\_555556ac4515

0x555556ac44f9gotolabel\_555556ac44fb

0x555556ac44a3int32\_trax\_37 = memcmp(&var\_9c8, rsi\_11, 0x14)

0x555556ac44adi\_2 = rax\_37 != 0

0x555556ac44b5if (rax\_37s&lt; 0)

0x555556ac44b5i\_2 = true

0x555556ac44b8rbx\_6 -= 0x14

0x555556ac44bcch\_1 += 0x60

0x555556ac44c0rbp\_1 += 1

0x555556ac44c3rsi\_11 += 0x14

0x555556ac44c6\_ret\_2 = &var\_8f8

0x555556ac44d1while (i\_2 == 1)

0x555556ac44d8if (zx.d(i\_2) == 0)

0x555556ac44d8break

0x555556ac44daint64\_ttemp9\_1 = r15\_3

0x555556ac44dar15\_3 -= 1

0x555556ac44deif (temp9\_1u&lt; 1)

0x555556ac4515label\_555556ac4515:

0x555556ac4515ch\_1 = nullptr

0x555556ac4518break

0x555556ac44fblabel\_555556ac44fb:

0x555556ac44fbr14\_4 = \*(r14\_4 \+ (rbp\_1 &lt;&lt; 3) \+ 0x508)

0x555556ac4520shortfall_discriminant\_3 = shortfall\_discriminant\_4

0x555556ac452bif (ch\_1 == 0)

0x555556ac452bch\_1 = ch\_2

0x555556ac453fvar\_9c0:8.d = var\_558:8.d

0x555556ac4546var\_9c8.o = counterparty\_info:8.o

0x555556ac4563if (cpty\_vec\_len == cpty\_vec\_cap)

0x555556ac456dvec\_grow\_0x28(&cpty\_vec\_cap)

0x555556ac457aint64\_trcx\_13 = cpty\_vec\_len \\* 5

0x555556ac4583 \*(i\_26 \+ (rcx\_13 &lt;&lt; 3) \+ 0x10) = var\_9c0:8.q

0x555556ac458e \*(i\_26 \+ (rcx\_13 &lt;&lt; 3)) = var\_9c8.o

0x555556ac4593 \*(i\_26 \+ (rcx\_13 &lt;&lt; 3) \+ 0x18) = shortfall\_discriminant\_3

0x555556ac4598 \*(i\_26 \+ (rcx\_13 &lt;&lt; 3) \+ 0x20) = counterparty\_info\_1.q

0x555556ac45a0cpty\_vec\_len += 1

0x555556ac45b0int128\_tzmm0\_6

0x555556ac45b0if ((shortfall\_discriminant.b & 1) == 0)

0x555556ac4650i\_60 = nullptr

0x555556ac465cvar\_378 = 0

0x555556ac4668uint64\_t\\* i\_44 = \*(ch\_1 \+ 0x30)

0x555556ac4670int64\_tvar\_6c0

0x555556ac4670uint64\_tlength\_11

0x555556ac4670int64\_trbx\_10

0x555556ac4670uint64\_tlen\_10

0x555556ac4670int128\_t\\* constindex\_2

0x555556ac4670if (i\_44 != 0)

0x555556ac4676void\\* \_\_offset(Clearinghouse, 0x60) r8\_1 = \*(ch\_1 \+ 0x40)

0x555556ac467eif (r8\_1 != 0)

0x555556ac4684uint64\_ti\_45 = \*(ch\_1 \+ 0x38)

0x555556ac468esize\_19 = 2

0x555556ac4696rbx\_10 = 0

0x555556ac4698uint64\_t\\* i\_54 = nullptr

0x555556ac46cewhile (true)

0x555556ac46ceuint64\_ti\_51

0x555556ac46ceuint64\_t\\* i\_58

0x555556ac46ceif (i\_54 == 0)

0x555556ac46f3if (i\_45 == 0)

0x555556ac472di\_54 = i\_44

0x555556ac46f3else

0x555556ac46f8i\_54 = i\_44

0x555556ac46fbint64\_trcx\_17 = i\_45 & 7

0x555556ac46ffuint64\_ti\_27

0x555556ac46ffif (rcx\_17 == 0)

0x555556ac4732i\_27 = i\_45

0x555556ac4739if (i\_45u>= 8)

0x555556ac477clabel\_555556ac477c:

0x555556ac477cuint64\_ti\_3

0x555556ac477cdo

0x555556ac4771i\_54 = \*(\*(\*(\*(\

0x555556ac4771 \*(\*(\*(i\_54\[0xe9\] \+ 0x748) \+ 0x748) \+ 0x748) \+ 0x748)\

0x555556ac4771 \+ 0x748) \+ 0x748) \+ 0x748)

0x555556ac4778i\_3 = i\_27

0x555556ac4778i\_27 -= 8

0x555556ac477cwhile (i\_3 != 8)

0x555556ac46ffelse

0x555556ac4701int64\_trdx\_16 = 0

0x555556ac471ddo

0x555556ac4710i\_54 = i\_54\[0xe9\]

0x555556ac4717rdx\_16 += 1

0x555556ac471dwhile (rcx\_17 != rdx\_16)

0x555556ac4722i\_27 = i\_45 \- rdx\_16

0x555556ac4729if (i\_45u>= 8)

0x555556ac4729gotolabel\_555556ac477c

0x555556ac477ei\_44 = nullptr

0x555556ac478cif (0u>= zx.q(\*(i\_54 \+ 0x742)))

0x555556ac478cgotolabel\_555556ac47c5

0x555556ac46e0i\_58 = i\_54

0x555556ac46e3i\_51 = 0

0x555556ac46ceelseif (i\_45u>= zx.q(\*(i\_54 \+ 0x742)))

0x555556ac47c5label\_555556ac47c5:

0x555556ac47c5do

0x555556ac47a0i\_58 = i\_54\[0xdc\]

0x555556ac47aaif (i\_58 == 0)

0x555556ac8b8elabel\_555556ac8b8e:

0x555556ac8b8epanic\_unwrap\_none(&data\_5555587ff668)

0x555556ac8b8enoreturn

0x555556ac47b0i\_44 += 1

0x555556ac47b3i\_51 = zx.q(i\_54\[0xe8\].w)

0x555556ac47bai\_54 = i\_58

0x555556ac47c5while (i\_51.wu>= \*(i\_58 \+ 0x742))

0x555556ac46daelse

0x555556ac46e0i\_58 = i\_54

0x555556ac46e3i\_51 = i\_45

0x555556ac47dbuint64\_ti\_48

0x555556ac47dbif (i\_44 == 0)

0x555556ac4870i\_48 = i\_51 \+ 1

0x555556ac47dbelse

0x555556ac47e5int64\_t\\* rdx\_19 = &i\_58\[i\_51 \+ 0xea\]

0x555556ac47efvoid\\* rsi\_14 = i\_44 & 7

0x555556ac47f3uint64\_t\\* i\_38

0x555556ac47f3if (rsi\_14 == 0)

0x555556ac4a50i\_38 = i\_44

0x555556ac4a57if (i\_44u>= 8)

0x555556ac485flabel\_555556ac485f:

0x555556ac485fuint64\_t\\* i\_4

0x555556ac485fdo

0x555556ac4854rdx\_19 = \*(\*(\*(\

0x555556ac4854 \*(\*(\*(\*(\*rdx\_19 \+ 0x748) \+ 0x748) \+ 0x748) \+ 0x748)\

0x555556ac4854 \+ 0x748) \+ 0x748) \+ 0x748) \+ 0x748

0x555556ac485bi\_4 = i\_38

0x555556ac485bi\_38 = &i\_38\[-1\]

0x555556ac485fwhile (i\_4 != 8)

0x555556ac47f3else

0x555556ac47f9int64\_trdi\_27 = 0

0x555556ac4810do

0x555556ac4803rdx\_19 = \*rdx\_19 \+ 0x748

0x555556ac480ardi\_27 += 1

0x555556ac4810while (rsi\_14 != rdi\_27)

0x555556ac4815i\_38 = i\_44 \- rdi\_27

0x555556ac481cif (i\_44u>= 8)

0x555556ac481cgotolabel\_555556ac485f

0x555556ac4861i\_48 = 0

0x555556ac4883i\_58\[i\_51 \+ 0xdd\]

0x555556ac488buint64\_texpected\_kind = i\_58\[i\_51 \\* 0x14\]

0x555556ac488fint64\_t\\* expected\_asset = i\_58\[i\_51 \\* 0x14 \+ 1\]

0x555556ac48a1var\_8f8.q = expected\_kind

0x555556ac48b1var\_8f8:8.q = expected\_asset

0x555556ac48b9int64\_tvar\_8e8\_3 = i\_58\[i\_51 \\* 0x14 \+ 2\]

0x555556ac48c9var\_9c8.o = OPTION\_UNIT\_QTY\_NONE

0x555556ac48cfvar\_9c0:8.q = 0

0x555556ac48e5int64\_trbx\_12

0x555556ac48e5int64\_tr15\_4

0x555556ac48e5rbx\_12, i\_54, r15\_4 = option\_unit\_qty\_sub(&var\_8f8, &var\_9c8)

0x555556ac48fbif (rbx\_12 == 0 \|\| \*(r15\_4 \+ i\_51 \\* 0xa0 \+ 0x78) != 3)

0x555556ac46a0\_ret\_2 = &var\_8f8

0x555556ac48fbelse

0x555556ac4909var\_8f8.q = expected\_kind

0x555556ac4921var\_8f8:8.q = expected\_asset

0x555556ac4931int64\_tvar\_8e8\_4 = rbx\_12

0x555556ac4941var\_9c8.o = OPTION\_UNIT\_QTY\_NONE

0x555556ac4947var\_9c0:8.q = 0

0x555556ac4950\_ret\_2 = &var\_8f8

0x555556ac4960int64\_trbx\_14

0x555556ac4960uint64\_tcpty\_array\_offset\_2

0x555556ac4960int64\_tr15\_7

0x555556ac4960rbx\_14, i\_54, cpty\_array\_offset\_2, index\_2, r15\_7 =

0x555556ac4960option\_unit\_qty\_sub(&var\_8f8, &var\_9c8)

0x555556ac4965var\_8f8.q = r15\_7

0x555556ac496dvar\_8f8:8.q = rbx\_14

0x555556ac4988uint8\_trax\_52 = (rbx\_12u>\> 0x3f).b

0x555556ac498cint64\_t\\* i\_64 = i\_60

0x555556ac4997void\\* oracle\_asset\_data\_1

0x555556ac4997if (i\_64 != 0)

0x555556ac499duint64\_tlength\_12 = length\_11

0x555556ac49a5int128\_t\\* rdi\_30

0x555556ac49a5while (true)

0x555556ac49a5uint64\_tcpty\_array\_offset\_3 = zx.q(\*(i\_64 \+ 0x1c2))

0x555556ac49adcpty\_array\_offset\_1 = cpty\_array\_offset\_3

0x555556ac49b5uint64\_tr9\_1 = zx.q(cpty\_array\_offset\_3.d &lt;&lt; 4)
  • 原文链接: osec.io/blog/2026-06-22-...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~

相关文章

0 条评论