Finished reading the BB document. A couple of comments:
1) Different piece-definitions, different promotion, castling, ep definitions. One of the last things a RE programmer will do is to touch this, the work involved + the risk for bugs is extremely high without detailed and precise knowledge what is going on. It's a hint Ippo*.* isn't a clone.
2) Missing in the document: LMR similarities / differences
3) One thing still amazes me, perhaps BB can explain the technical process. How do you know what is what? I assume you took the R3 executable as your starting point, then how do you eventually learn (detect) what is what from the gibberish disassembled machine code. For instance and taken from your document, how do you know this is about castling and not about something totally else? See code below.
4) It's hard for me (although willing) to accept your document as real without understanding how you did the work and came to your conclusions. Not that I want to disparage your work but with so many weird things going on the last year it should be excluded the document is a bad joke, for instance, to change the banned Ippo*.* status.
One thing for sure: you are a chess programmer
Ed
0x482a00: xor %eax,%eax
0x482a02: cmp $0x6,%ecx # if to is G1
0x482a05: mov %eax,2392757(%rip) # 50move = 0
0x482a0b: jne 0x482a84 ###### then do Q-side ooo
0x482a0d: xorq $0xa0,2392584(%rip) # WhOcc ^= F1 | H1
0x482a18: xorq $0xa0,2392637(%rip) # WhRook ^= F1 | H1
0x482a23: xorq $0xa0,2392698(%rip) # Occupied ^= F1 | H1
0x482a2e: xorq $0x9,2392682(%rip) # Right45 ^= F1 | H1
0x482a36: addl $0x5a0000,2392712(%rip) # Static += 90op+0eg
0x482a40: mov %eax,2392310(%rip) # Board[H1] = Empty
0x482a46: mov $0x80008000,%rax
0x482a50: movl $0x8,2392282(%rip) # Board[F1] = WhRook
0x482a5a: xor %rax,2392655(%rip) # Left90 ^= F1 | H1
0x482a61: mov $0x800100000,%rax
0x482a6b: xor %rax,2392614(%rip) # Left45 ^= F1 | H1
0x482a72: mov $0xd8b3287ea544969,%rax
0x482a7c: xor %rax,2392653(%rip) # Hash ^= WRf1 | WRh1
0x482a83: retq ###### below is Q-side
0x482a84: xorq $0x9,2392468(%rip) # WhOcc ^= A1 | D1
0x482a8c: xorq $0x9,2392524(%rip) # WhRook ^ = A1 | D1
0x482a94: xorq $0x9,2392588(%rip) # Occupied ^ = A1 | D1
0x482a9c: xorq $0x201,2392561(%rip) # Left45 ^ = A1 | D1
0x482aa7: xorq $0x10000400,2392558(%rip) # Right45 ^= A1 | D1
0x482ab2: addl $0x820000,2392588(%rip) # Static += 130op+0eg
0x482abc: mov %eax,2392158(%rip) # Board[A1] = Empty
0x482ac2: mov $0x80000080,%eax
0x482ac7: movl $0x8,2392155(%rip) # Board[D1] = WhRook
0x482ad1: xor %rax,2392536(%rip) # Left90 ^= A1 | D1
0x482ad8: mov $0xaaaff37267ceded3,%rax
0x482ae2: xor %rax,2392551(%rip) # Hash ^= WRa1 | WRd1
0x482ae9: retq