571c5f9261
Task A, static phase. Ghidra 12.1.2 headless via the repo's own pyghidra harness
over CardsDLL_Win64_retail.dll (13,382 functions). Queries and raw decompiler
output committed under docs/evidence/market-sold-re-2026-08-17/.
RECOVERED FROM THE BINARY
1. No sold token, now EXHAUSTIVELY: both vocabularies dumped to their sentinels
rather than sampled. tradeState is exactly 4 rows; itemState is exactly 12
(invalid/free/WAITING_FOR_GAME/inGame/forSale/offered/activeBadge/
activeHomeKit/activeAwayKit/activeBall/activeStadium/active=255). A sold row
MUST therefore be a combination of existing atoms.
2. What closed does, complete, from the auctionInfo deserializer 0x18013e410:
IS_GLOW = (tradeState==closed) ? bidState != none
: bidState in {outbid, buyNow}
INBOX = bidState in {highest, buyNow}
3. The full record -> Flash map from the publisher 0x1801bf030, superseding the
partial list. The prize: record +0xbf is published as COINS_AWARDED, fed by the
coinsProcessed atom 0x2f4. The corpus had recorded that atom's type and noted
its consumer was never found; it is now traced. DURATION also renders the
localised FUT_AUCTION_EXPIRED when expires underflows.
4. highest vs buyNow on a closed row is UNDECIDABLE from CardsDLL, by proof: both
yield IS_GLOW=1/INBOX=1, bit-identical. But bidState is ALSO published verbatim
as YOURBID alongside STATE and COINS_AWARDED, so the movie does receive the raw
values - the discrimination exists and lives entirely in unread ActionScript.
This retires the question as a static target, and it contradicts the
third-party lore that a seller's sold row is closed+buyNow (the corpus's own
lifecycle table says closed+highest and assigns buyNow to the buyer).
5. The clear-sold verb EXISTS. Builder 0x1801647c0 emits "/sold" when the tradeId
field is zero and "/%lld" otherwise, on route base ut/delete/%s/trade, response
class RS4 FutISRemoveTradeServerResponse. Confirmed by the client's own
request-name table entry RemoveAllSoldFromTradePile. A BULK clear-sold verb only
makes sense if sold rows PERSIST in the seller's pile until cleared, which is
incompatible with our Fix A invariant - so the sold path will require revisiting
it under live validation.
6. The seller's SOLD counter is real, proven end to end with no inference: the hub
tradePile sub-deserializer 0x18013ead0 writes atom sold 0x2c9 to +0x1d8, and the
tile publisher 0x1800b1dc0 renders +0x1d8 as Flash TEXT3 under the localised
caption FUT_TF_SOLD. Siblings: selling -> +0x1d2 -> FUT_TF_SELLING,
count -> +0x1d4 -> FUT_UC_ITEMS, plus FUT_TF_WINNING/FUT_TF_OUTBID on the
Transfer Targets tile. We and the Python oracle both hardcode sold:0, so that
bucket can never fill.
7. Reusable method: an atom id is the INDEX into the alphabetical atom-name pointer
table at base 0x1802d2760. Validated 12/12 against the known auctionInfo atoms
and cross-checked against fifa17-recon/docs/fut_atoms.tsv. Documented gotcha:
resolve a name by the pointer slot INSIDE the table, never by the first matching
string in the binary, or you get confident nonsense.
8. An auction-outcome vocabulary exists (auctionSoldBid 0x39, auctionSoldBuyNow
0x3a, auctionWon*/auctionLost*) but NO deserializer consumes it - every
candidate function was checked for the value-SKIP/atom-loop signature and none
qualifies. Server-side or telemetry only; it does not carry sold state here.
TASK B IS UNDECIDABLE FROM THE CLIENT, and this is a proof of absence: no 0.95 or
0.05 constant of either width, no tax/fee/net/proceeds caption, and no fee
arithmetic anywhere. The client never computes or displays a net, so no experiment
against our own server can measure the rounding - whatever we credit is what it
displays, and there is no oracle. Only an original EA-era seller-balance capture
could settle it. The rule stays an explicit CHOICE (floor the fee, so
fee + proceeds == gross exactly) and is now pinned at the requested boundaries
100/101/119/120/149/150/151/199/200 plus 15,000 and i64::MAX.
Settlement NOT promoted. No production process, port or database was touched.
470 lines
16 KiB
Plaintext
470 lines
16 KiB
Plaintext
==============================================================================
|
|
== (a) xrefs: request names + the /sold path suffix
|
|
==============================================================================
|
|
RemoveAllSoldFromTradePile 1 xref(s)
|
|
0x1800293fe DATA in FUN_180028b50 (entry 0x180028b50)
|
|
RemoveFromTradePile 1 xref(s)
|
|
0x1800293d4 DATA in FUN_180028b50 (entry 0x180028b50)
|
|
AddToWatchList 1 xref(s)
|
|
0x180029380 DATA in FUN_180028b50 (entry 0x180028b50)
|
|
/sold suffix 1 xref(s)
|
|
0x180164813 DATA in FUN_1801647c0 (entry 0x1801647c0)
|
|
RS4:FutISRemoveTradeServerResponse 2 xref(s)
|
|
0x1801defe9 DATA in Unwind@1801defd0 (entry 0x1801defd0)
|
|
0x18016488d DATA in FUN_180164860 (entry 0x180164860)
|
|
|
|
==============================================================================
|
|
== (b) xrefs: the Transfer List caption keys
|
|
==============================================================================
|
|
FUT_TOTAL_AUCTIONS 1 xref(s)
|
|
0x1800b1ef8 DATA in FUN_1800b1dc0 (entry 0x1800b1dc0)
|
|
FUT_UC_ITEMS 4 xref(s)
|
|
0x1800fbbdc DATA in FUN_1800fbae0 (entry 0x1800fbae0)
|
|
0x1800fbe5a DATA in FUN_1800fbae0 (entry 0x1800fbae0)
|
|
0x1800b1fe7 DATA in FUN_1800b1dc0 (entry 0x1800b1dc0)
|
|
0x1800b21a9 DATA in FUN_1800b1dc0 (entry 0x1800b1dc0)
|
|
FUT_TF_SELLING 1 xref(s)
|
|
0x1800b2023 DATA in FUN_1800b1dc0 (entry 0x1800b1dc0)
|
|
FUT_TF_SOLD 1 xref(s)
|
|
0x1800b208e DATA in FUN_1800b1dc0 (entry 0x1800b1dc0)
|
|
FUT_TF_WINNING 1 xref(s)
|
|
0x1800b21e5 DATA in FUN_1800b1dc0 (entry 0x1800b1dc0)
|
|
FUT_TF_OUTBID 1 xref(s)
|
|
0x1800b2250 DATA in FUN_1800b1dc0 (entry 0x1800b1dc0)
|
|
|
|
caption publisher candidates (entry -> #caption refs): {'0x1800b1dc0': 7, '0x1800fbae0': 2}
|
|
|
|
==============================================================================
|
|
== decompiled caption publisher 0x1800b1dc0
|
|
==============================================================================
|
|
|
|
void FUN_1800b1dc0(undefined8 param_1,longlong *param_2)
|
|
|
|
{
|
|
char cVar1;
|
|
undefined8 uVar2;
|
|
longlong lVar3;
|
|
longlong *plVar4;
|
|
ushort uVar5;
|
|
longlong *local_res10;
|
|
undefined1 *local_90;
|
|
undefined1 *local_88;
|
|
undefined1 *local_80;
|
|
longlong *local_78;
|
|
undefined4 local_70;
|
|
char *local_68;
|
|
undefined1 *local_60;
|
|
undefined1 *local_58;
|
|
undefined1 *local_50;
|
|
longlong *local_48;
|
|
undefined4 local_40;
|
|
char *local_38;
|
|
|
|
uVar2 = FUN_1800d7170();
|
|
FUN_180009c80(&local_res10,uVar2);
|
|
lVar3 = (**(code **)(*local_res10 + 0x1f8))(local_res10);
|
|
local_78 = (longlong *)FUN_1800d7370();
|
|
local_70 = 1;
|
|
local_68 = "FUT String";
|
|
local_90 = &DAT_1802e13a0;
|
|
local_88 = &DAT_1802e13a0;
|
|
local_80 = &DAT_1802e13a1;
|
|
local_48 = (longlong *)FUN_1800d7370();
|
|
local_40 = 1;
|
|
local_38 = "FUT String";
|
|
local_60 = &DAT_1802e13a0;
|
|
local_58 = &DAT_1802e13a0;
|
|
local_50 = &DAT_1802e13a1;
|
|
(**(code **)(*param_2 + 0x58))(param_2,4);
|
|
(**(code **)(*param_2 + 0x78))(param_2,0,"UPDATE_TYPE",PTR_s_PANEL_UPDATE_1802a4fb0);
|
|
(**(code **)(*param_2 + 0x70))(param_2,0,"TILE_ID",0x1b0);
|
|
(**(code **)(*param_2 + 0x70))(param_2,0,"ADDON_ENUM",5);
|
|
plVar4 = (longlong *)FUN_18019e320();
|
|
(**(code **)(*plVar4 + 0xb8))(plVar4,&local_90,*(undefined4 *)(lVar3 + 0x38));
|
|
(**(code **)(*param_2 + 0x78))(param_2,0,"TEXT0",local_90);
|
|
plVar4 = (longlong *)FUN_18019e320();
|
|
(**(code **)(*plVar4 + 400))(plVar4,&local_90,"FUT_TOTAL_AUCTIONS",1);
|
|
(**(code **)(*param_2 + 0x78))(param_2,0,"TEXT1",local_90);
|
|
(**(code **)(*param_2 + 0x78))(param_2,1,"UPDATE_TYPE",PTR_s_PANEL_UPDATE_1802a4fb0);
|
|
(**(code **)(*param_2 + 0x70))(param_2,1,"TILE_ID",0x1c0);
|
|
uVar5 = *(ushort *)(lVar3 + 0x1d6);
|
|
if (0x62 < uVar5) {
|
|
uVar5 = 99;
|
|
}
|
|
(**(code **)(*param_2 + 0x70))(param_2,1,"NOTIFICATION",uVar5);
|
|
(**(code **)(*param_2 + 0x70))(param_2,1,"ADDON_ENUM");
|
|
plVar4 = (longlong *)FUN_18019e320();
|
|
(**(code **)(*plVar4 + 0xb8))(plVar4,&local_90,*(undefined2 *)(lVar3 + 0x1d4));
|
|
(**(code **)(*param_2 + 0x78))(param_2,1,"TEXT0",local_90);
|
|
plVar4 = (longlong *)FUN_18019e320();
|
|
(**(code **)(*plVar4 + 400))(plVar4,&local_90,"FUT_UC_ITEMS",1);
|
|
(**(code **)(*param_2 + 0x78))(param_2,1,"TEXT1",local_90);
|
|
plVar4 = (longlong *)FUN_18019e320();
|
|
(**(code **)(*plVar4 + 400))(plVar4,&local_90,"FUT_TF_SELLING",1);
|
|
plVar4 = (longlong *)FUN_18019e320();
|
|
(**(code **)(*plVar4 + 0xb8))(plVar4,&local_60,*(undefined2 *)(lVar3 + 0x1d2));
|
|
FUN_18000fbd0(&local_90,local_90,local_60);
|
|
(**(code **)(*param_2 + 0x78))(param_2,1,"TEXT2",local_90);
|
|
plVar4 = (longlong *)FUN_18019e320();
|
|
(**(code **)(*plVar4 + 400))(plVar4,&local_90,"FUT_TF_SOLD",1);
|
|
plVar4 = (longlong *)FUN_18019e320();
|
|
(**(code **)(*plVar4 + 0xb8))(plVar4,&local_60,*(undefined2 *)(lVar3 + 0x1d8));
|
|
FUN_18000fbd0(&local_90,local_90,local_60);
|
|
(**(code **)(*param_2 + 0x78))(param_2,1,"TEXT3",local_90);
|
|
(**(code **)(*param_2 + 0x78))(param_2,2,"UPDATE_TYPE",PTR_s_PANEL_UPDATE_1802a4fb0);
|
|
(**(code **)(*param_2 + 0x70))(param_2,2,"TILE_ID",0x1d0);
|
|
uVar5 = 99;
|
|
if (*(ushort *)(lVar3 + 0x1ce) < 99) {
|
|
uVar5 = *(ushort *)(lVar3 + 0x1ce);
|
|
}
|
|
(**(code **)(*param_2 + 0x70))(param_2,2,"NOTIFICATION",uVar5);
|
|
(**(code **)(*param_2 + 0x70))(param_2,2,"ADDON_ENUM");
|
|
plVar4 = (longlong *)FUN_18019e320();
|
|
(**(code **)(*plVar4 + 0xb8))(plVar4,&local_90,*(undefined2 *)(lVar3 + 0x1ca));
|
|
(**(code **)(*param_2 + 0x78))(param_2,2,"TEXT0",local_90);
|
|
plVar4 = (longlong *)FUN_18019e320();
|
|
(**(code **)(*plVar4 + 400))(plVar4,&local_90,"FUT_UC_ITEMS",1);
|
|
(**(code **)(*param_2 + 0x78))(param_2,2,"TEXT1",local_90);
|
|
plVar4 = (longlong *)FUN_18019e320();
|
|
(**(code **)(*plVar4 + 400))(plVar4,&local_90,"FUT_TF_WINNING",1);
|
|
plVar4 = (longlong *)FUN_18019e320();
|
|
(**(code **)(*plVar4 + 0xb8))(plVar4,&local_60,*(undefined2 *)(lVar3 + 0x1c8));
|
|
FUN_18000fbd0(&local_90,local_90,local_60);
|
|
(**(code **)(*param_2 + 0x78))(param_2,2,"TEXT2",local_90);
|
|
plVar4 = (longlong *)FUN_18019e320();
|
|
(**(code **)(*plVar4 + 400))(plVar4,&local_90,"FUT_TF_OUTBID",1);
|
|
plVar4 = (longlong *)FUN_18019e320();
|
|
(**(code **)(*plVar4 + 0xb8))(plVar4,&local_60,*(undefined2 *)(lVar3 + 0x1cc));
|
|
FUN_18000fbd0(&local_90,local_90,local_60);
|
|
(**(code **)(*param_2 + 0x78))(param_2,2,"TEXT3",local_90);
|
|
uVar2 = FUN_1800264e0();
|
|
cVar1 = FUN_180026510(uVar2);
|
|
if (cVar1 == '\0') {
|
|
(**(code **)(*param_2 + 0x78))(param_2,3,"UPDATE_TYPE",PTR_s_PANEL_UPDATE_1802a4fb0);
|
|
(**(code **)(*param_2 + 0x70))(param_2,3,"TILE_ID",0x200);
|
|
(**(code **)(*param_2 + 0x70))(param_2,3,"ADDON_ENUM");
|
|
}
|
|
if ((1 < (longlong)local_50 - (longlong)local_60) && (local_60 != (undefined1 *)0x0)) {
|
|
(**(code **)(*local_48 + 0x18))(local_48,local_60,(int)local_50 - (int)local_60);
|
|
}
|
|
if ((1 < (longlong)local_80 - (longlong)local_90) && (local_90 != (undefined1 *)0x0)) {
|
|
(**(code **)(*local_78 + 0x18))(local_78,local_90,(int)local_80 - (int)local_90);
|
|
}
|
|
(**(code **)(*local_res10 + 8))(local_res10);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
==============================================================================
|
|
== decompiled caption publisher 0x1800fbae0
|
|
==============================================================================
|
|
|
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
uint FUN_1800fbae0(undefined8 param_1,undefined4 param_2,undefined8 *param_3)
|
|
|
|
{
|
|
undefined1 *puVar1;
|
|
longlong lVar2;
|
|
uint uVar3;
|
|
int iVar4;
|
|
longlong *plVar5;
|
|
undefined8 uVar6;
|
|
longlong *plVar7;
|
|
longlong lVar8;
|
|
size_t sVar9;
|
|
size_t sVar10;
|
|
undefined1 auStack_2e8 [32];
|
|
undefined4 local_2c8;
|
|
undefined1 local_2b8;
|
|
uint local_2b4;
|
|
undefined4 local_2b0;
|
|
undefined4 uStack_2ac;
|
|
undefined1 *local_2a8;
|
|
undefined1 *local_2a0;
|
|
undefined1 *local_298;
|
|
longlong *local_290;
|
|
undefined4 local_288;
|
|
char *local_280;
|
|
undefined1 *local_278;
|
|
undefined1 *local_270;
|
|
undefined1 *local_268;
|
|
longlong *local_260;
|
|
undefined4 local_258;
|
|
char *local_250;
|
|
undefined1 *local_248;
|
|
undefined1 *local_240;
|
|
undefined1 *local_238;
|
|
longlong *local_230;
|
|
undefined4 local_228;
|
|
char *local_220;
|
|
longlong local_218;
|
|
undefined8 local_210;
|
|
longlong local_208;
|
|
longlong *local_200;
|
|
undefined4 local_1f8;
|
|
char *local_1f0;
|
|
void *local_1e8;
|
|
longlong local_1e0;
|
|
longlong local_1d8;
|
|
longlong *local_1d0;
|
|
undefined8 local_1b8;
|
|
longlong *local_1a8;
|
|
undefined8 local_1a0;
|
|
undefined8 local_198;
|
|
undefined8 local_190;
|
|
undefined4 local_188;
|
|
undefined2 local_184;
|
|
undefined8 local_180;
|
|
undefined8 local_178;
|
|
undefined8 local_170;
|
|
undefined8 local_168;
|
|
undefined2 local_160;
|
|
undefined4 local_15c;
|
|
ulonglong local_158;
|
|
undefined8 uStack_150;
|
|
undefined4 local_148;
|
|
undefined2 local_144;
|
|
undefined4 local_140;
|
|
undefined **local_138;
|
|
undefined8 local_130;
|
|
undefined8 local_128;
|
|
undefined8 local_120;
|
|
undefined8 local_118;
|
|
undefined8 local_110;
|
|
undefined8 local_108;
|
|
undefined8 local_100;
|
|
undefined4 local_f8;
|
|
undefined2 local_f4;
|
|
undefined1 local_f2;
|
|
undefined1 local_f0 [168];
|
|
ulonglong local_48;
|
|
|
|
local_1b8 = 0xfffffffffffffffe;
|
|
local_48 = DAT_1802db6e0 ^ (ulonglong)auStack_2e8;
|
|
local_200 = (longlong *)FUN_1800d7370();
|
|
local_218 = 0;
|
|
local_208 = 0;
|
|
local_1f8 = 1;
|
|
local_1f0 = "FUT Vector";
|
|
FUN_18004fff0(0,0,local_2b8);
|
|
local_210 = 0;
|
|
local_2b0 = 0;
|
|
uVar3 = FUN_1800fb8c0(param_1,param_2,&local_218,&local_2b0);
|
|
if ((undefined1 *)*param_3 != (undefined1 *)param_3[1]) {
|
|
*(undefined1 *)*param_3 = 0;
|
|
param_3[1] = *param_3;
|
|
}
|
|
local_2b4 = uVar3;
|
|
local_260 = (longlong *)FUN_1800d7370();
|
|
lVar2 = local_218;
|
|
local_258 = 1;
|
|
local_250 = "FUT String";
|
|
local_278 = &DAT_1802e13a0;
|
|
local_270 = &DAT_1802e13a0;
|
|
local_268 = &DAT_1802e13a1;
|
|
if (uVar3 < 2) {
|
|
if (uVar3 == 1) {
|
|
local_1a8 = (longlong *)0x0;
|
|
local_1a0 = 0;
|
|
local_198 = 0;
|
|
local_190 = 0;
|
|
local_188 = 0;
|
|
local_184 = 0;
|
|
local_180 = 0;
|
|
local_178 = 0;
|
|
local_170 = 0;
|
|
local_168 = 0;
|
|
local_160 = 0x100;
|
|
lVar8 = -1;
|
|
local_15c = 0xffffffff;
|
|
local_158 = _DAT_1801f66a0;
|
|
uStack_150 = _UNK_1801f66a8;
|
|
local_148 = 0;
|
|
local_144 = 0;
|
|
local_140 = 0;
|
|
local_130 = 0;
|
|
local_138 = &PTR_LAB_1801eaac0;
|
|
local_128 = 0;
|
|
local_120 = 0;
|
|
local_118 = 0;
|
|
local_f4 = 0;
|
|
local_f2 = 0;
|
|
local_110 = 0;
|
|
local_108 = 0;
|
|
local_100 = 0;
|
|
local_f8 = 0;
|
|
memset(local_f0,0,0xa0);
|
|
local_190 = CONCAT44(local_190._4_4_,*(undefined4 *)(lVar2 + 4)) & 0xffffffff00ffffff;
|
|
FUN_1801362e0(&local_1a8);
|
|
FUN_180141660(&local_1a8);
|
|
uVar6 = FUN_1800d7170();
|
|
FUN_180009c80(&local_2b0,uVar6);
|
|
plVar5 = (longlong *)CONCAT44(uStack_2ac,local_2b0);
|
|
local_2c8 = (undefined4)local_190;
|
|
(**(code **)(*plVar5 + 0x490))(plVar5,&local_1e8,local_15c,local_158 & 0xffffffff);
|
|
sVar10 = local_1e0 - (longlong)local_1e8;
|
|
sVar9 = sVar10;
|
|
if (0 < (longlong)sVar10) {
|
|
sVar9 = 0;
|
|
}
|
|
iVar4 = memcmp(local_1e8,&DAT_1801e9caf,sVar9);
|
|
if (((iVar4 == 0) && (-1 < (longlong)sVar10)) && ((longlong)sVar10 < 1)) {
|
|
local_230 = (longlong *)FUN_1800d7370();
|
|
local_228 = 1;
|
|
local_220 = "FUT String";
|
|
local_248 = &DAT_1802e13a0;
|
|
local_240 = &DAT_1802e13a0;
|
|
local_238 = &DAT_1802e13a1;
|
|
local_290 = (longlong *)FUN_1800d7370();
|
|
local_288 = 1;
|
|
local_280 = "FUT String";
|
|
local_2a8 = &DAT_1802e13a0;
|
|
local_2a0 = &DAT_1802e13a0;
|
|
local_298 = &DAT_1802e13a1;
|
|
FUN_18000fbd0(&local_248,"AWARD_LABEL_%i",*(undefined4 *)(lVar2 + 8));
|
|
plVar7 = (longlong *)FUN_18019e320();
|
|
puVar1 = local_248;
|
|
(**(code **)(*plVar7 + 400))(plVar7,&local_2a8,local_248,1);
|
|
sVar10 = (longlong)local_2a0 - (longlong)local_2a8;
|
|
sVar9 = sVar10;
|
|
if (0 < (longlong)sVar10) {
|
|
sVar9 = 0;
|
|
}
|
|
iVar4 = memcmp(local_2a8,&DAT_1801e9caf,sVar9);
|
|
if (((iVar4 == 0) && (-1 < (longlong)sVar10)) && ((longlong)sVar10 < 1)) {
|
|
plVar7 = (longlong *)FUN_18019e320();
|
|
(**(code **)(*plVar7 + 400))(plVar7,&local_2a8,"FUT_UC_ITEMS",1);
|
|
}
|
|
FUN_18000fbd0(param_3,&DAT_18021940c,*(undefined4 *)(lVar2 + 0xc));
|
|
do {
|
|
lVar8 = lVar8 + 1;
|
|
} while (local_2a8[lVar8] != '\0');
|
|
FUN_18000f650(param_3,local_2a8,local_2a8 + lVar8);
|
|
if (1 < (longlong)local_298 - (longlong)local_2a8) {
|
|
if (local_2a8 != (undefined1 *)0x0) {
|
|
(**(code **)(*local_290 + 0x18))(local_290,local_2a8,(int)local_298 - (int)local_2a8);
|
|
}
|
|
}
|
|
if (1 < (longlong)local_238 - (longlong)puVar1) {
|
|
if (puVar1 != (undefined1 *)0x0) {
|
|
(**(code **)(*local_230 + 0x18))(local_230,puVar1,(int)local_238 - (int)local_248);
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
FUN_18000fbd0(param_3,&DAT_18021940c,*(undefined4 *)(lVar2 + 0xc));
|
|
do {
|
|
lVar8 = lVar8 + 1;
|
|
} while (*(char *)((longlong)local_1e8 + lVar8) != '\0');
|
|
FUN_18000f650(param_3,local_1e8,(longlong)local_1e8 + lVar8);
|
|
}
|
|
if ((1 < local_1d8 - (longlong)local_1e8) && (local_1e8 != (void *)0x0)) {
|
|
(**(code **)(*local_1d0 + 0x18))(local_1d0,local_1e8,(int)local_1d8 - (int)local_1e8);
|
|
}
|
|
(**(code **)(*plVar5 + 8))(plVar5);
|
|
FUN_18000a3c0(&local_138);
|
|
plVar5 = local_1a8;
|
|
while (uVar3 = local_2b4, plVar5 != (longlong *)0x0) {
|
|
plVar7 = (longlong *)plVar5[1];
|
|
(**(code **)(*plVar5 + 8))();
|
|
plVar5 = plVar7;
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
plVar5 = (longlong *)FUN_18019e320();
|
|
(**(code **)(*plVar5 + 400))(plVar5,&local_278,"FUT_UC_ITEMS",1);
|
|
FUN_18000fbd0(param_3,"%i %s",local_2b0,local_278);
|
|
}
|
|
if (1 < (longlong)local_268 - (longlong)local_278) {
|
|
if (local_278 != (undefined1 *)0x0) {
|
|
(**(code **)(*local_260 + 0x18))(local_260,local_278,(int)local_268 - (int)local_278);
|
|
}
|
|
}
|
|
FUN_18004fff0(lVar2,local_210,local_2b8);
|
|
if (lVar2 != 0) {
|
|
(**(code **)(*local_200 + 0x18))(local_200,lVar2,((local_208 - lVar2) / 0x38) * 0x38);
|
|
}
|
|
return uVar3;
|
|
}
|
|
|
|
|
|
|
|
==============================================================================
|
|
== (c) GetAuctionCount deserializer FUN_180163770
|
|
==============================================================================
|
|
|
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
|
|
|
undefined8 FUN_180163770(undefined8 param_1,undefined8 *param_2)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
int iVar2;
|
|
undefined4 uVar3;
|
|
undefined8 uVar4;
|
|
longlong *plVar5;
|
|
longlong lVar6;
|
|
undefined1 auStack_168 [32];
|
|
int local_148 [2];
|
|
undefined8 local_140;
|
|
undefined1 local_138 [288];
|
|
ulonglong local_18;
|
|
|
|
local_140 = 0xfffffffffffffffe;
|
|
local_18 = DAT_1802db6e0 ^ (ulonglong)auStack_168;
|
|
FUN_1801c63e0(local_138,0,0);
|
|
local_148[0] = 0x38c;
|
|
uVar4 = FUN_180008130(*param_2);
|
|
FUN_1801c8270(local_138,*param_2,uVar4,0);
|
|
FUN_1801c7f10(local_138);
|
|
FUN_1801c7f10(local_138);
|
|
plVar5 = (longlong *)FUN_18011a830();
|
|
lVar6 = (**(code **)(*plVar5 + 0x130))(plVar5);
|
|
*(undefined4 *)(lVar6 + 0x30) = 0xffffffff;
|
|
*(undefined8 *)(lVar6 + 0x34) = 0;
|
|
iVar2 = FUN_1801c7f10(local_138);
|
|
while (iVar2 != 10) {
|
|
iVar2 = FUN_180141ee0(local_148,local_138);
|
|
if (iVar2 != 6) {
|
|
if (local_148[0] == 0xbc) {
|
|
uVar4 = FUN_1801c79d0(local_138);
|
|
uVar1 = FUN_1800d7b10(uVar4);
|
|
*(undefined2 *)(lVar6 + 0x34) = uVar1;
|
|
}
|
|
else if (local_148[0] == 0x1bf) {
|
|
uVar4 = FUN_1801c79d0(local_138);
|
|
uVar3 = FUN_1800d7af0(uVar4);
|
|
*(undefined4 *)(lVar6 + 0x30) = uVar3;
|
|
}
|
|
else if (local_148[0] == 0x1e5) {
|
|
uVar4 = FUN_1801c79d0(local_138);
|
|
uVar1 = FUN_1800d7b10(uVar4);
|
|
*(undefined2 *)(lVar6 + 0x3a) = uVar1;
|
|
}
|
|
else if (local_148[0] == 0x2b8) {
|
|
uVar4 = FUN_1801c79d0(local_138);
|
|
uVar1 = FUN_1800d7b10(uVar4);
|
|
*(undefined2 *)(lVar6 + 0x36) = uVar1;
|
|
}
|
|
else if (local_148[0] == 0x2c9) {
|
|
uVar4 = FUN_1801c79d0(local_138);
|
|
uVar1 = FUN_1800d7b10(uVar4);
|
|
*(undefined2 *)(lVar6 + 0x38) = uVar1;
|
|
}
|
|
else {
|
|
FUN_180135ff0(local_148[0],local_138);
|
|
}
|
|
}
|
|
iVar2 = FUN_1801c7f10(local_138);
|
|
}
|
|
*(undefined1 *)(lVar6 + 0x28) = 1;
|
|
FUN_1801c6560(local_138);
|
|
return 1;
|
|
}
|
|
|
|
|