1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
/* hdcp 23.0.4.49 (0478f2fb) -- UNNAMED functions
* generated by fw/ta_re.py -- do not edit
* reference: hdcp2.elf
* functions: 100 total in build, 96 named, 4 anonymous
* porting tiers: {"DISPATCH": 3, "EXACT": 33, "FUZZY": 0, "MNEM": 20, "ambiguous": 10, "cmd_protos": 0, "comments": 16, "dispatch_conflict": 0, "none": 34, "protos": 53, "relabelled": 0, "types": 1}
*
* Addresses are omitted and functions are ordered by NAME so that the same
* function lines up across versions. See the .index.json sidecar for
* name -> address.
*
* CAUTION on ported names: a name is only an identity claim at tier=EXACT.
* At tier=MNEM/FUZZY the bytes differ from the reference, so any ADDRESS or
* CONTENT HASH embedded in the name (e.g. *_4025F8, gcp_lib_<hash8>_*) still
* refers to the REFERENCE build and does not describe this one.
*/
/* These did not match the reference above the 0.90 similarity floor and are
* deliberately left unnamed rather than guessed. Ordered by size then body
* hash, because sub_* numbering is not stable across builds.
*/
/* ==== ANON size=4 ==== */
void sub_401058()
{
JUMPOUT(0x401702);
}
/* ==== ANON size=42 ==== */
int sub_40176E()
{
_DWORD v5[12]; // [sp+8h] [bp-78h] BYREF
bzero_core(result: v5, a2: 0x20u);
__asm { SVC 0xF2 }
return 1;
}
/* ==== ANON size=46 ==== */
int sub_40170C()
{
_DWORD v5[10]; // [sp+10h] [bp+10h] BYREF
bzero_core(result: v5, a2: 0x18u);
__asm { SVC 0xF2 }
return 1;
}
/* ==== ANON size=46 ==== */
int sub_401604()
{
_DWORD v5[10]; // [sp+10h] [bp+10h] BYREF
bzero_core(result: v5, a2: 0x18u);
__asm { SVC 0xF2 }
return 1;
}
|